dag6_seqrun_processing.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from datetime import timedelta
  2. from airflow.models import DAG,Variable
  3. from airflow.utils.dates import days_ago
  4. from airflow.operators.bash_operator import BashOperator
  5. from airflow.contrib.operators.ssh_operator import SSHOperator
  6. from airflow.contrib.hooks.ssh_hook import SSHHook
  7. default_args = {
  8. 'owner': 'airflow',
  9. 'depends_on_past': False,
  10. 'start_date': days_ago(2),
  11. 'email_on_failure': False,
  12. 'email_on_retry': False,
  13. 'retries': 1,
  14. 'retry_delay': timedelta(minutes=5),
  15. }
  16. dag = \
  17. DAG(
  18. dag_id='dag6_seqrun_processing',
  19. catchup=False,
  20. schedule_interval="None",
  21. max_active_runs=1,
  22. default_args=default_args)
  23. orwell_ssh_hook = \
  24. SSHHook(
  25. key_file=Variable.get('hpc_ssh_key_file'),
  26. username=Variable.get('hpc_user'),
  27. remote_host='orwell.hh.med.ic.ac.uk')
  28. hpc_hook = SSHHook(ssh_conn_id='hpc_conn')
  29. with dag:
  30. switch_off_project_barcode = \
  31. SSHOperator(
  32. task_id = 'switch_off_project_barcode',
  33. dag = dag,
  34. ssh_hook = orwell_ssh_hook,
  35. queue='hpc_4G',
  36. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/switch_off_project_barcode_check.sh '
  37. )
  38. change_samplesheet_for_run = \
  39. SSHOperator(
  40. task_id = 'change_samplesheet_for_run',
  41. dag = dag,
  42. queue='hpc_4G',
  43. ssh_hook = orwell_ssh_hook,
  44. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/change_samplesheet_for_seqrun.sh '
  45. )
  46. restart_seqrun_processing = \
  47. SSHOperator(
  48. task_id = 'restart_seqrun_processing',
  49. dag = dag,
  50. queue='hpc_4G',
  51. ssh_hook = orwell_ssh_hook,
  52. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/restart_seqrun_processing.sh '
  53. )
  54. register_project_metadata = \
  55. SSHOperator(
  56. task_id = 'register_project_metadata',
  57. dag = dag,
  58. queue='hpc_4G',
  59. ssh_hook = orwell_ssh_hook,
  60. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/register_metadata.sh '
  61. )
  62. find_new_seqrun = \
  63. SSHOperator(
  64. task_id = 'find_new_seqrun',
  65. dag = dag,
  66. queue='hpc_4G',
  67. ssh_hook = orwell_ssh_hook,
  68. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/find_new_seqrun.sh '
  69. )
  70. seed_demultiplexing_pipe = \
  71. SSHOperator(
  72. task_id = 'seed_demultiplexing_pipe',
  73. dag = dag,
  74. ssh_hook=hpc_hook,
  75. queue='hpc_4G',
  76. command = 'bash /rds/general/user/igf/home/git_repo/IGF-cron-scripts/hpc/seed_demultiplexing_pipeline.sh '
  77. )
  78. switch_off_project_barcode >> change_samplesheet_for_run >> restart_seqrun_processing
  79. restart_seqrun_processing >> register_project_metadata >> find_new_seqrun >> seed_demultiplexing_pipe