You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

978 line
26KB

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