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.

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