您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

907 行
24KB

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