Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

882 linhas
23KB

  1. import "./tasks/rename_fastq.wdl" as rename_fastq
  2. import "./tasks/rename_vcf.wdl" as rename_vcf
  3. import "./tasks/mapping.wdl" as mapping
  4. import "./tasks/Dedup.wdl" as Dedup
  5. import "./tasks/qualimap.wdl" as qualimap
  6. import "./tasks/deduped_Metrics.wdl" as deduped_Metrics
  7. import "./tasks/sentieon.wdl" as sentieon
  8. import "./tasks/BQSR.wdl" as BQSR
  9. import "./tasks/Haplotyper.wdl" as Haplotyper
  10. import "./tasks/benchmark.wdl" as benchmark
  11. import "./tasks/multiqc.wdl" as multiqc
  12. import "./tasks/multiqc_hap.wdl" as multiqc_hap
  13. import "./tasks/merge_sentieon_metrics.wdl" as merge_sentieon_metrics
  14. import "./tasks/extract_tables.wdl" as extract_tables
  15. import "./tasks/extract_tables_vcf.wdl" as extract_tables_vcf
  16. import "./tasks/mendelian.wdl" as mendelian
  17. import "./tasks/merge_mendelian.wdl" as merge_mendelian
  18. import "./tasks/quartet_mendelian.wdl" as quartet_mendelian
  19. import "./tasks/fastqc.wdl" as fastqc
  20. import "./tasks/fastqscreen.wdl" as fastqscreen
  21. import "./tasks/merge_family.wdl" as merge_family
  22. import "./tasks/filter_vcf.wdl" as filter_vcf
  23. workflow {{ project_name }} {
  24. File? fastq_1_D5
  25. File? fastq_1_D6
  26. File? fastq_1_F7
  27. File? fastq_1_M8
  28. File? fastq_2_D5
  29. File? fastq_2_D6
  30. File? fastq_2_F7
  31. File? fastq_2_M8
  32. File? vcf_D5
  33. File? vcf_D6
  34. File? vcf_F7
  35. File? vcf_M8
  36. String REPLACE_SENTIEON_DOCKER
  37. String DEEPVARIANT_DOCKER
  38. String FASTQCdocker
  39. String FASTQSCREENdocker
  40. String QUALIMAPdocker
  41. String BENCHMARKdocker
  42. String MENDELIANdocker
  43. String DIYdocker
  44. String MULTIQCdocker
  45. String BEDTOOLSdocker
  46. String fasta
  47. File ref_dir
  48. File dbmills_dir
  49. String db_mills
  50. File dbsnp_dir
  51. String dbsnp
  52. String pl
  53. File screen_ref_dir
  54. File fastq_screen_conf
  55. File benchmarking_dir
  56. String project
  57. String disk_size
  58. String BIGcluster_config
  59. String SMALLcluster_config
  60. # Fastq is not null, which means starting from fastq
  61. if (!defined(fastq_1_D5) && !defined(fastq_2_D5)
  62. && !defined(fastq_1_D6) && !defined(fastq_2_D6)
  63. && !defined(fastq_1_F7) && !defined(fastq_2_F7)
  64. && !defined(fastq_1_M8) && !defined(fastq_2_M8)) {
  65. call mapping.mapping as mapping_D5 {
  66. input:
  67. pl=pl,
  68. fasta=fasta,
  69. ref_dir=ref_dir,
  70. fastq_1=fastq_1_D5,
  71. fastq_2=fastq_2_D5,
  72. group=project,
  73. sample='LCL5',
  74. project=project,
  75. docker=REPLACE_SENTIEON_DOCKER,
  76. disk_size=disk_size,
  77. cluster_config=BIGcluster_config
  78. }
  79. call fastqc.fastqc as fastqc_D5 {
  80. input:
  81. read1=fastq_1_D5,
  82. read2=fastq_2_D5,
  83. project=project,
  84. sample="LCL5",
  85. docker=FASTQCdocker,
  86. cluster_config=BIGcluster_config,
  87. disk_size=disk_size
  88. }
  89. call fastqscreen.fastq_screen as fastqscreen_D5 {
  90. input:
  91. read1=fastq_1_D5,
  92. read2=fastq_2_D5,
  93. project=project,
  94. sample="LCL5",
  95. screen_ref_dir=screen_ref_dir,
  96. fastq_screen_conf=fastq_screen_conf,
  97. docker=FASTQSCREENdocker,
  98. cluster_config=BIGcluster_config,
  99. disk_size=disk_size
  100. }
  101. call Dedup.Dedup as Dedup_D5 {
  102. input:
  103. sorted_bam=mapping_D5.sorted_bam,
  104. sorted_bam_index=mapping_D5.sorted_bam_index,
  105. docker=REPLACE_SENTIEON_DOCKER,
  106. disk_size=disk_size,
  107. cluster_config=BIGcluster_config
  108. }
  109. call qualimap.qualimap as qualimap_D5 {
  110. input:
  111. bam=Dedup_D5.Dedup_bam,
  112. bai=Dedup_D5.Dedup_bam_index,
  113. docker=QUALIMAPdocker,
  114. disk_size=disk_size,
  115. cluster_config=BIGcluster_config
  116. }
  117. call deduped_Metrics.deduped_Metrics as deduped_Metrics_D5 {
  118. input:
  119. fasta=fasta,
  120. ref_dir=ref_dir,
  121. Dedup_bam=Dedup_D5.Dedup_bam,
  122. Dedup_bam_index=Dedup_D5.Dedup_bam_index,
  123. docker=REPLACE_SENTIEON_DOCKER,
  124. disk_size=disk_size,
  125. cluster_config=BIGcluster_config
  126. }
  127. call sentieon.sentieon as sentieon_D5 {
  128. input:
  129. quality_yield=deduped_Metrics_D5.deduped_QualityYield,
  130. wgs_metrics_algo=deduped_Metrics_D5.deduped_wgsmetrics,
  131. aln_metrics=deduped_Metrics_D5.dedeuped_aln_metrics,
  132. is_metrics=deduped_Metrics_D5.deduped_is_metrics,
  133. cluster_config=SMALLcluster_config,
  134. disk_size=disk_size
  135. }
  136. ### Bam realignment doesn't support in GATK 4
  137. # call Realigner.Realigner as Realigner_D5 {
  138. # input:
  139. # SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  140. # fasta=fasta,
  141. # ref_dir=ref_dir,
  142. # Dedup_bam=Dedup_D5.Dedup_bam,
  143. # Dedup_bam_index=Dedup_D5.Dedup_bam_index,
  144. # db_mills=db_mills,
  145. # dbmills_dir=dbmills_dir,
  146. # docker=SENTIEONdocker,
  147. # disk_size=disk_size,
  148. # cluster_config=BIGcluster_config
  149. # }
  150. call BQSR.BQSR as BQSR_D5 {
  151. input:
  152. fasta=fasta,
  153. ref_dir=ref_dir,
  154. realigned_bam=Dedup_D5.Dedup_bam,
  155. realigned_bam_index=Dedup_D5.Dedup_bam_index,
  156. db_mills=db_mills,
  157. dbmills_dir=dbmills_dir,
  158. dbsnp=dbsnp,
  159. dbsnp_dir=dbsnp_dir,
  160. docker=REPLACE_SENTIEON_DOCKER,
  161. disk_size=disk_size,
  162. cluster_config=BIGcluster_config
  163. }
  164. call Haplotyper.Haplotyper as Haplotyper_D5 {
  165. input:
  166. fasta=fasta,
  167. ref_dir=ref_dir,
  168. recaled_bam=BQSR_D5.recaled_bam,
  169. recaled_bam_index=BQSR_D5.recaled_bam_index,
  170. docker=DEEPVARIANT_DOCKER,
  171. disk_size=disk_size,
  172. cluster_config=BIGcluster_config
  173. }
  174. call filter_vcf.filter_vcf as filter_vcf_D5 {
  175. input:
  176. vcf=Haplotyper_D5.vcf,
  177. docker=BEDTOOLSdocker,
  178. cluster_config=SMALLcluster_config,
  179. disk_size=disk_size
  180. }
  181. call benchmark.benchmark as benchmark_D5 {
  182. input:
  183. filtered_vcf=filter_vcf_D5.filtered_vcf,
  184. benchmarking_dir=benchmarking_dir,
  185. ref_dir=ref_dir,
  186. fasta=fasta,
  187. docker=BENCHMARKdocker,
  188. cluster_config=BIGcluster_config,
  189. disk_size=disk_size
  190. }
  191. call mapping.mapping as mapping_D6 {
  192. input:
  193. pl=pl,
  194. fasta=fasta,
  195. ref_dir=ref_dir,
  196. fastq_1=fastq_1_D6,
  197. fastq_2=fastq_2_D6,
  198. group=project,
  199. sample='LCL6',
  200. project=project,
  201. docker=REPLACE_SENTIEON_DOCKER,
  202. disk_size=disk_size,
  203. cluster_config=BIGcluster_config
  204. }
  205. call fastqc.fastqc as fastqc_D6 {
  206. input:
  207. read1=fastq_1_D6,
  208. read2=fastq_2_D6,
  209. project=project,
  210. sample="LCL6",
  211. docker=FASTQCdocker,
  212. cluster_config=BIGcluster_config,
  213. disk_size=disk_size
  214. }
  215. call fastqscreen.fastq_screen as fastqscreen_D6 {
  216. input:
  217. read1=fastq_1_D6,
  218. read2=fastq_2_D6,
  219. project=project,
  220. sample="LCL6",
  221. screen_ref_dir=screen_ref_dir,
  222. fastq_screen_conf=fastq_screen_conf,
  223. docker=FASTQSCREENdocker,
  224. cluster_config=BIGcluster_config,
  225. disk_size=disk_size
  226. }
  227. call Dedup.Dedup as Dedup_D6 {
  228. input:
  229. sorted_bam=mapping_D6.sorted_bam,
  230. sorted_bam_index=mapping_D6.sorted_bam_index,
  231. docker=REPLACE_SENTIEON_DOCKER,
  232. disk_size=disk_size,
  233. cluster_config=BIGcluster_config
  234. }
  235. call qualimap.qualimap as qualimap_D6 {
  236. input:
  237. bam=Dedup_D6.Dedup_bam,
  238. bai=Dedup_D6.Dedup_bam_index,
  239. docker=QUALIMAPdocker,
  240. disk_size=disk_size,
  241. cluster_config=BIGcluster_config
  242. }
  243. call deduped_Metrics.deduped_Metrics as deduped_Metrics_D6 {
  244. input:
  245. fasta=fasta,
  246. ref_dir=ref_dir,
  247. Dedup_bam=Dedup_D6.Dedup_bam,
  248. Dedup_bam_index=Dedup_D6.Dedup_bam_index,
  249. docker=REPLACE_SENTIEON_DOCKER,
  250. disk_size=disk_size,
  251. cluster_config=BIGcluster_config
  252. }
  253. call sentieon.sentieon as sentieon_D6 {
  254. input:
  255. quality_yield=deduped_Metrics_D6.deduped_QualityYield,
  256. wgs_metrics_algo=deduped_Metrics_D6.deduped_wgsmetrics,
  257. aln_metrics=deduped_Metrics_D6.dedeuped_aln_metrics,
  258. is_metrics=deduped_Metrics_D6.deduped_is_metrics,
  259. cluster_config=SMALLcluster_config,
  260. disk_size=disk_size
  261. }
  262. # call Realigner.Realigner as Realigner_D6 {
  263. # input:
  264. # SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  265. # fasta=fasta,
  266. # ref_dir=ref_dir,
  267. # Dedup_bam=Dedup_D6.Dedup_bam,
  268. # Dedup_bam_index=Dedup_D6.Dedup_bam_index,
  269. # db_mills=db_mills,
  270. # dbmills_dir=dbmills_dir,
  271. # docker=SENTIEONdocker,
  272. # disk_size=disk_size,
  273. # cluster_config=BIGcluster_config
  274. # }
  275. call BQSR.BQSR as BQSR_D6 {
  276. input:
  277. fasta=fasta,
  278. ref_dir=ref_dir,
  279. realigned_bam=Dedup_D6.Dedup_bam,
  280. realigned_bam_index=Dedup_D6.Dedup_bam_index,
  281. db_mills=db_mills,
  282. dbmills_dir=dbmills_dir,
  283. dbsnp=dbsnp,
  284. dbsnp_dir=dbsnp_dir,
  285. docker=REPLACE_SENTIEON_DOCKER,
  286. disk_size=disk_size,
  287. cluster_config=BIGcluster_config
  288. }
  289. call Haplotyper.Haplotyper as Haplotyper_D6 {
  290. input:
  291. fasta=fasta,
  292. ref_dir=ref_dir,
  293. recaled_bam=BQSR_D6.recaled_bam,
  294. recaled_bam_index=BQSR_D6.recaled_bam_index,
  295. docker=DEEPVARIANT_DOCKER,
  296. disk_size=disk_size,
  297. cluster_config=BIGcluster_config
  298. }
  299. call filter_vcf.filter_vcf as filter_vcf_D6 {
  300. input:
  301. vcf=Haplotyper_D6.vcf,
  302. docker=BEDTOOLSdocker,
  303. cluster_config=SMALLcluster_config,
  304. disk_size=disk_size
  305. }
  306. call benchmark.benchmark as benchmark_D6 {
  307. input:
  308. filtered_vcf=filter_vcf_D6.filtered_vcf,
  309. benchmarking_dir=benchmarking_dir,
  310. ref_dir=ref_dir,
  311. fasta=fasta,
  312. docker=BENCHMARKdocker,
  313. cluster_config=BIGcluster_config,
  314. disk_size=disk_size
  315. }
  316. call mapping.mapping as mapping_F7 {
  317. input:
  318. pl=pl,
  319. fasta=fasta,
  320. ref_dir=ref_dir,
  321. fastq_1=fastq_1_F7,
  322. fastq_2=fastq_2_F7,
  323. group=project,
  324. sample='LCL7',
  325. project=project,
  326. docker=REPLACE_SENTIEON_DOCKER,
  327. disk_size=disk_size,
  328. cluster_config=BIGcluster_config
  329. }
  330. call fastqc.fastqc as fastqc_F7 {
  331. input:
  332. read1=fastq_1_F7,
  333. read2=fastq_2_F7,
  334. project=project,
  335. sample="LCL7",
  336. docker=FASTQCdocker,
  337. cluster_config=BIGcluster_config,
  338. disk_size=disk_size
  339. }
  340. call fastqscreen.fastq_screen as fastqscreen_F7 {
  341. input:
  342. read1=fastq_1_F7,
  343. read2=fastq_2_F7,
  344. project=project,
  345. sample="LCL7",
  346. screen_ref_dir=screen_ref_dir,
  347. fastq_screen_conf=fastq_screen_conf,
  348. docker=FASTQSCREENdocker,
  349. cluster_config=BIGcluster_config,
  350. disk_size=disk_size
  351. }
  352. call Dedup.Dedup as Dedup_F7 {
  353. input:
  354. sorted_bam=mapping_F7.sorted_bam,
  355. sorted_bam_index=mapping_F7.sorted_bam_index,
  356. docker=REPLACE_SENTIEON_DOCKER,
  357. disk_size=disk_size,
  358. cluster_config=BIGcluster_config
  359. }
  360. call qualimap.qualimap as qualimap_F7 {
  361. input:
  362. bam=Dedup_F7.Dedup_bam,
  363. bai=Dedup_F7.Dedup_bam_index,
  364. docker=QUALIMAPdocker,
  365. disk_size=disk_size,
  366. cluster_config=BIGcluster_config
  367. }
  368. call deduped_Metrics.deduped_Metrics as deduped_Metrics_F7 {
  369. input:
  370. fasta=fasta,
  371. ref_dir=ref_dir,
  372. Dedup_bam=Dedup_F7.Dedup_bam,
  373. Dedup_bam_index=Dedup_F7.Dedup_bam_index,
  374. docker=REPLACE_SENTIEON_DOCKER,
  375. disk_size=disk_size,
  376. cluster_config=BIGcluster_config
  377. }
  378. call sentieon.sentieon as sentieon_F7 {
  379. input:
  380. quality_yield=deduped_Metrics_F7.deduped_QualityYield,
  381. wgs_metrics_algo=deduped_Metrics_F7.deduped_wgsmetrics,
  382. aln_metrics=deduped_Metrics_F7.dedeuped_aln_metrics,
  383. is_metrics=deduped_Metrics_F7.deduped_is_metrics,
  384. cluster_config=SMALLcluster_config,
  385. disk_size=disk_size
  386. }
  387. # call Realigner.Realigner as Realigner_F7 {
  388. # input:
  389. # SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  390. # fasta=fasta,
  391. # ref_dir=ref_dir,
  392. # Dedup_bam=Dedup_F7.Dedup_bam,
  393. # Dedup_bam_index=Dedup_F7.Dedup_bam_index,
  394. # db_mills=db_mills,
  395. # dbmills_dir=dbmills_dir,
  396. # docker=SENTIEONdocker,
  397. # disk_size=disk_size,
  398. # cluster_config=BIGcluster_config
  399. # }
  400. call BQSR.BQSR as BQSR_F7 {
  401. input:
  402. fasta=fasta,
  403. ref_dir=ref_dir,
  404. realigned_bam=Dedup_F7.Dedup_bam,
  405. realigned_bam_index=Dedup_F7.Dedup_bam_index,
  406. db_mills=db_mills,
  407. dbmills_dir=dbmills_dir,
  408. dbsnp=dbsnp,
  409. dbsnp_dir=dbsnp_dir,
  410. docker=REPLACE_SENTIEON_DOCKER,
  411. disk_size=disk_size,
  412. cluster_config=BIGcluster_config
  413. }
  414. call Haplotyper.Haplotyper as Haplotyper_F7 {
  415. input:
  416. fasta=fasta,
  417. ref_dir=ref_dir,
  418. recaled_bam=BQSR_F7.recaled_bam,
  419. recaled_bam_index=BQSR_F7.recaled_bam_index,
  420. docker=DEEPVARIANT_DOCKER,
  421. disk_size=disk_size,
  422. cluster_config=BIGcluster_config
  423. }
  424. call filter_vcf.filter_vcf as filter_vcf_F7 {
  425. input:
  426. vcf=Haplotyper_F7.vcf,
  427. docker=BEDTOOLSdocker,
  428. cluster_config=SMALLcluster_config,
  429. disk_size=disk_size
  430. }
  431. call benchmark.benchmark as benchmark_F7 {
  432. input:
  433. filtered_vcf=filter_vcf_F7.filtered_vcf,
  434. benchmarking_dir=benchmarking_dir,
  435. ref_dir=ref_dir,
  436. fasta=fasta,
  437. docker=BENCHMARKdocker,
  438. cluster_config=BIGcluster_config,
  439. disk_size=disk_size
  440. }
  441. call mapping.mapping as mapping_M8 {
  442. input:
  443. pl=pl,
  444. fasta=fasta,
  445. ref_dir=ref_dir,
  446. fastq_1=fastq_1_M8,
  447. fastq_2=fastq_2_M8,
  448. group=project,
  449. project=project,
  450. sample='LCL8',
  451. docker=REPLACE_SENTIEON_DOCKER,
  452. disk_size=disk_size,
  453. cluster_config=BIGcluster_config
  454. }
  455. call fastqc.fastqc as fastqc_M8 {
  456. input:
  457. read1=fastq_1_M8,
  458. read2=fastq_2_M8,
  459. project=project,
  460. sample="LCL8",
  461. docker=FASTQCdocker,
  462. cluster_config=BIGcluster_config,
  463. disk_size=disk_size
  464. }
  465. call fastqscreen.fastq_screen as fastqscreen_M8 {
  466. input:
  467. read1=fastq_1_M8,
  468. read2=fastq_2_M8,
  469. project=project,
  470. sample="LCL8",
  471. screen_ref_dir=screen_ref_dir,
  472. fastq_screen_conf=fastq_screen_conf,
  473. docker=FASTQSCREENdocker,
  474. cluster_config=BIGcluster_config,
  475. disk_size=disk_size
  476. }
  477. call Dedup.Dedup as Dedup_M8 {
  478. input:
  479. sorted_bam=mapping_M8.sorted_bam,
  480. sorted_bam_index=mapping_M8.sorted_bam_index,
  481. docker=REPLACE_SENTIEON_DOCKER,
  482. disk_size=disk_size,
  483. cluster_config=BIGcluster_config
  484. }
  485. call qualimap.qualimap as qualimap_M8 {
  486. input:
  487. bam=Dedup_M8.Dedup_bam,
  488. bai=Dedup_M8.Dedup_bam_index,
  489. docker=QUALIMAPdocker,
  490. disk_size=disk_size,
  491. cluster_config=BIGcluster_config
  492. }
  493. call deduped_Metrics.deduped_Metrics as deduped_Metrics_M8 {
  494. input:
  495. fasta=fasta,
  496. ref_dir=ref_dir,
  497. Dedup_bam=Dedup_M8.Dedup_bam,
  498. Dedup_bam_index=Dedup_M8.Dedup_bam_index,
  499. docker=REPLACE_SENTIEON_DOCKER,
  500. disk_size=disk_size,
  501. cluster_config=BIGcluster_config
  502. }
  503. call sentieon.sentieon as sentieon_M8 {
  504. input:
  505. quality_yield=deduped_Metrics_M8.deduped_QualityYield,
  506. wgs_metrics_algo=deduped_Metrics_M8.deduped_wgsmetrics,
  507. aln_metrics=deduped_Metrics_M8.dedeuped_aln_metrics,
  508. is_metrics=deduped_Metrics_M8.deduped_is_metrics,
  509. cluster_config=SMALLcluster_config,
  510. disk_size=disk_size
  511. }
  512. # call Realigner.Realigner as Realigner_M8 {
  513. # input:
  514. # SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  515. # fasta=fasta,
  516. # ref_dir=ref_dir,
  517. # Dedup_bam=Dedup_M8.Dedup_bam,
  518. # Dedup_bam_index=Dedup_M8.Dedup_bam_index,
  519. # db_mills=db_mills,
  520. # dbmills_dir=dbmills_dir,
  521. # docker=SENTIEONdocker,
  522. # disk_size=disk_size,
  523. # cluster_config=BIGcluster_config
  524. # }
  525. call BQSR.BQSR as BQSR_M8 {
  526. input:
  527. fasta=fasta,
  528. ref_dir=ref_dir,
  529. realigned_bam=Dedup_M8.Dedup_bam,
  530. realigned_bam_index=Dedup_M8.Dedup_bam_index,
  531. db_mills=db_mills,
  532. dbmills_dir=dbmills_dir,
  533. dbsnp=dbsnp,
  534. dbsnp_dir=dbsnp_dir,
  535. docker=REPLACE_SENTIEON_DOCKER,
  536. disk_size=disk_size,
  537. cluster_config=BIGcluster_config
  538. }
  539. call Haplotyper.Haplotyper as Haplotyper_M8 {
  540. input:
  541. fasta=fasta,
  542. ref_dir=ref_dir,
  543. recaled_bam=BQSR_M8.recaled_bam,
  544. recaled_bam_index=BQSR_M8.recaled_bam_index,
  545. docker=DEEPVARIANT_DOCKER,
  546. disk_size=disk_size,
  547. cluster_config=BIGcluster_config
  548. }
  549. call filter_vcf.filter_vcf as filter_vcf_M8 {
  550. input:
  551. vcf=Haplotyper_M8.vcf,
  552. docker=BEDTOOLSdocker,
  553. cluster_config=SMALLcluster_config,
  554. disk_size=disk_size
  555. }
  556. call benchmark.benchmark as benchmark_M8 {
  557. input:
  558. filtered_vcf=filter_vcf_M8.filtered_vcf,
  559. benchmarking_dir=benchmarking_dir,
  560. ref_dir=ref_dir,
  561. fasta=fasta,
  562. docker=BENCHMARKdocker,
  563. cluster_config=BIGcluster_config,
  564. disk_size=disk_size
  565. }
  566. Array[File] fastqc_read1_zip = [fastqc_D5.read1_zip, fastqc_D6.read1_zip, fastqc_F7.read1_zip, fastqc_M8.read1_zip]
  567. Array[File] fastqc_read2_zip = [fastqc_D5.read2_zip, fastqc_D6.read2_zip, fastqc_F7.read2_zip, fastqc_M8.read2_zip]
  568. Array[File] fastqscreen_txt1 = [fastqscreen_D5.txt1, fastqscreen_D6.txt1, fastqscreen_F7.txt1, fastqscreen_M8.txt1]
  569. Array[File] fastqscreen_txt2 = [fastqscreen_D5.txt2, fastqscreen_D6.txt2, fastqscreen_F7.txt2, fastqscreen_M8.txt2]
  570. Array[File] benchmark_summary = [benchmark_D5.summary, benchmark_D6.summary, benchmark_F7.summary, benchmark_M8.summary]
  571. call multiqc.multiqc as multiqc_big {
  572. input:
  573. read1_zip=fastqc_read1_zip,
  574. read2_zip=fastqc_read2_zip,
  575. txt1=fastqscreen_txt1,
  576. txt2=fastqscreen_txt2,
  577. summary=benchmark_summary,
  578. docker=MULTIQCdocker,
  579. cluster_config=SMALLcluster_config,
  580. disk_size=disk_size
  581. }
  582. Array[File] sentieon_quality_yield_header = [sentieon_D5.quality_yield_header, sentieon_D6.quality_yield_header, sentieon_F7.quality_yield_header, sentieon_M8.quality_yield_header]
  583. Array[File] sentieon_wgs_metrics_algo_header = [sentieon_D5.wgs_metrics_algo_header, sentieon_D6.wgs_metrics_algo_header, sentieon_F7.wgs_metrics_algo_header, sentieon_M8.wgs_metrics_algo_header]
  584. Array[File] sentieon_aln_metrics_header = [sentieon_D5.aln_metrics_header, sentieon_D6.aln_metrics_header, sentieon_F7.aln_metrics_header, sentieon_M8.aln_metrics_header]
  585. Array[File] sentieon_is_metrics_header = [sentieon_D5.is_metrics_header, sentieon_D6.is_metrics_header, sentieon_F7.is_metrics_header, sentieon_M8.is_metrics_header]
  586. Array[File] sentieon_quality_yield_data = [sentieon_D5.quality_yield_data, sentieon_D6.quality_yield_data, sentieon_F7.quality_yield_data, sentieon_M8.quality_yield_data]
  587. Array[File] sentieon_wgs_metrics_algo_data = [sentieon_D5.wgs_metrics_algo_data, sentieon_D6.wgs_metrics_algo_data, sentieon_F7.wgs_metrics_algo_data, sentieon_M8.wgs_metrics_algo_data]
  588. Array[File] sentieon_aln_metrics_data = [sentieon_D5.aln_metrics_data, sentieon_D6.aln_metrics_data, sentieon_F7.aln_metrics_data, sentieon_M8.aln_metrics_data]
  589. Array[File] sentieon_is_metrics_data = [sentieon_D5.is_metrics_data, sentieon_D6.is_metrics_data, sentieon_F7.is_metrics_data, sentieon_M8.is_metrics_data]
  590. call merge_sentieon_metrics.merge_sentieon_metrics as merge_sentieon_metrics {
  591. input:
  592. quality_yield_header=sentieon_quality_yield_header,
  593. wgs_metrics_algo_header=sentieon_wgs_metrics_algo_header,
  594. aln_metrics_header=sentieon_aln_metrics_header,
  595. is_metrics_header=sentieon_is_metrics_header,
  596. quality_yield_data=sentieon_quality_yield_data,
  597. wgs_metrics_algo_data=sentieon_wgs_metrics_algo_data,
  598. aln_metrics_data=sentieon_aln_metrics_data,
  599. is_metrics_data=sentieon_is_metrics_data,
  600. project=project,
  601. docker=MULTIQCdocker,
  602. cluster_config=SMALLcluster_config,
  603. disk_size=disk_size
  604. }
  605. call extract_tables.extract_tables as extract_tables {
  606. input:
  607. quality_yield_summary=merge_sentieon_metrics.quality_yield_summary,
  608. wgs_metrics_summary=merge_sentieon_metrics.wgs_metrics_summary,
  609. aln_metrics_summary=merge_sentieon_metrics.aln_metrics_summary,
  610. is_metrics_summary=merge_sentieon_metrics.is_metrics_summary,
  611. fastqc=multiqc_big.fastqc,
  612. fastqscreen=multiqc_big.fastqscreen,
  613. hap=multiqc_big.hap,
  614. project=project,
  615. docker=DIYdocker,
  616. cluster_config=SMALLcluster_config,
  617. disk_size=disk_size
  618. }
  619. call merge_family.merge_family as merge_family {
  620. input:
  621. D5_vcf=benchmark_D5.rtg_vcf,
  622. D6_vcf=benchmark_D6.rtg_vcf,
  623. F7_vcf=benchmark_F7.rtg_vcf,
  624. M8_vcf=benchmark_M8.rtg_vcf,
  625. D5_vcf_tbi=benchmark_D5.rtg_vcf_index,
  626. D6_vcf_tbi=benchmark_D6.rtg_vcf_index,
  627. F7_vcf_tbi=benchmark_F7.rtg_vcf_index,
  628. M8_vcf_tbi=benchmark_M8.rtg_vcf_index,
  629. project=project,
  630. docker=BENCHMARKdocker,
  631. cluster_config=SMALLcluster_config,
  632. disk_size=disk_size,
  633. }
  634. call mendelian.mendelian as mendelian {
  635. input:
  636. family_vcf=merge_family.family_vcf,
  637. ref_dir=ref_dir,
  638. fasta=fasta,
  639. docker=MENDELIANdocker,
  640. cluster_config=BIGcluster_config,
  641. disk_size=disk_size
  642. }
  643. call merge_mendelian.merge_mendelian as merge_mendelian {
  644. input:
  645. D5_trio_vcf=mendelian.D5_trio_vcf,
  646. D6_trio_vcf=mendelian.D6_trio_vcf,
  647. family_vcf=merge_family.family_vcf,
  648. docker=DIYdocker,
  649. cluster_config=SMALLcluster_config,
  650. disk_size=disk_size
  651. }
  652. }
  653. # Fastq is null, check if starts with vcf
  654. if (!defined(vcf_D5) && !defined(vcf_D6) && !defined(vcf_F7) && !defined(vcf_M8) ) {
  655. call rename_vcf.rename_vcf as rename_vcf{
  656. input:
  657. vcf_D5=vcf_D5,
  658. vcf_D6=vcf_D6,
  659. vcf_F7=vcf_F7,
  660. vcf_M8=vcf_M8,
  661. project=project,
  662. docker=DIYdocker,
  663. cluster_config=SMALLcluster_config,
  664. disk_size=disk_size
  665. }
  666. call filter_vcf.filter_vcf as filter_vcf_D5_vcf {
  667. input:
  668. vcf=rename_vcf.vcf_D5_renamed,
  669. docker=BEDTOOLSdocker,
  670. cluster_config=SMALLcluster_config,
  671. disk_size=disk_size
  672. }
  673. call benchmark.benchmark as benchmark_D5_vcf {
  674. input:
  675. filtered_vcf=filter_vcf_D5_vcf.filtered_vcf,
  676. benchmarking_dir=benchmarking_dir,
  677. ref_dir=ref_dir,
  678. fasta=fasta,
  679. docker=BENCHMARKdocker,
  680. cluster_config=BIGcluster_config,
  681. disk_size=disk_size
  682. }
  683. call filter_vcf.filter_vcf as filter_vcf_D6_vcf {
  684. input:
  685. vcf=rename_vcf.vcf_D6_renamed,
  686. docker=BEDTOOLSdocker,
  687. cluster_config=SMALLcluster_config,
  688. disk_size=disk_size
  689. }
  690. call benchmark.benchmark as benchmark_D6_vcf {
  691. input:
  692. filtered_vcf=filter_vcf_D6_vcf.filtered_vcf,
  693. benchmarking_dir=benchmarking_dir,
  694. ref_dir=ref_dir,
  695. fasta=fasta,
  696. docker=BENCHMARKdocker,
  697. cluster_config=BIGcluster_config,
  698. disk_size=disk_size
  699. }
  700. call filter_vcf.filter_vcf as filter_vcf_F7_vcf {
  701. input:
  702. vcf=rename_vcf.vcf_F7_renamed,
  703. docker=BEDTOOLSdocker,
  704. cluster_config=SMALLcluster_config,
  705. disk_size=disk_size
  706. }
  707. call benchmark.benchmark as benchmark_F7_vcf {
  708. input:
  709. filtered_vcf=filter_vcf_F7_vcf.filtered_vcf,
  710. benchmarking_dir=benchmarking_dir,
  711. ref_dir=ref_dir,
  712. fasta=fasta,
  713. docker=BENCHMARKdocker,
  714. cluster_config=BIGcluster_config,
  715. disk_size=disk_size
  716. }
  717. call filter_vcf.filter_vcf as filter_vcf_M8_vcf {
  718. input:
  719. vcf=rename_vcf.vcf_M8_renamed,
  720. docker=BEDTOOLSdocker,
  721. cluster_config=SMALLcluster_config,
  722. disk_size=disk_size
  723. }
  724. call benchmark.benchmark as benchmark_M8_vcf {
  725. input:
  726. filtered_vcf=filter_vcf_M8_vcf.filtered_vcf,
  727. benchmarking_dir=benchmarking_dir,
  728. ref_dir=ref_dir,
  729. fasta=fasta,
  730. docker=BENCHMARKdocker,
  731. cluster_config=BIGcluster_config,
  732. disk_size=disk_size
  733. }
  734. Array[File] benchmark_summary_hap = [benchmark_D5_vcf.summary, benchmark_D6_vcf.summary, benchmark_F7_vcf.summary, benchmark_M8_vcf.summary]
  735. call multiqc_hap.multiqc_hap as multiqc_hap {
  736. input:
  737. summary=benchmark_summary_hap,
  738. docker=MULTIQCdocker,
  739. cluster_config=SMALLcluster_config,
  740. disk_size=disk_size
  741. }
  742. call extract_tables_vcf.extract_tables_vcf as extract_tables_vcf {
  743. input:
  744. hap=multiqc_hap.hap,
  745. project=project,
  746. docker=DIYdocker,
  747. cluster_config=SMALLcluster_config,
  748. disk_size=disk_size
  749. }
  750. call merge_family.merge_family as merge_family_vcf {
  751. input:
  752. D5_vcf=benchmark_D5_vcf.rtg_vcf,
  753. D6_vcf=benchmark_D6_vcf.rtg_vcf,
  754. F7_vcf=benchmark_F7_vcf.rtg_vcf,
  755. M8_vcf=benchmark_M8_vcf.rtg_vcf,
  756. D5_vcf_tbi=benchmark_D5_vcf.rtg_vcf_index,
  757. D6_vcf_tbi=benchmark_D6_vcf.rtg_vcf_index,
  758. F7_vcf_tbi=benchmark_F7_vcf.rtg_vcf_index,
  759. M8_vcf_tbi=benchmark_M8_vcf.rtg_vcf_index,
  760. project=project,
  761. docker=BENCHMARKdocker,
  762. cluster_config=SMALLcluster_config,
  763. disk_size=disk_size,
  764. }
  765. call mendelian.mendelian as mendelian_vcf {
  766. input:
  767. family_vcf=merge_family_vcf.family_vcf,
  768. ref_dir=ref_dir,
  769. fasta=fasta,
  770. docker=MENDELIANdocker,
  771. cluster_config=BIGcluster_config,
  772. disk_size=disk_size
  773. }
  774. call merge_mendelian.merge_mendelian as merge_mendelian_vcf {
  775. input:
  776. D5_trio_vcf=mendelian_vcf.D5_trio_vcf,
  777. D6_trio_vcf=mendelian_vcf.D6_trio_vcf,
  778. family_vcf=merge_family_vcf.family_vcf,
  779. docker=DIYdocker,
  780. cluster_config=SMALLcluster_config,
  781. disk_size=disk_size
  782. }
  783. }
  784. }