Automated integrated analysis software for genomics data of the cancer patients.
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.

356 lines
9.2KB

  1. import "./tasks/mapping.wdl" as mapping
  2. import "./tasks/Metrics.wdl" as Metrics
  3. import "./tasks/Dedup.wdl" as Dedup
  4. import "./tasks/deduped_Metrics.wdl" as deduped_Metrics
  5. import "./tasks/BQSR.wdl" as BQSR
  6. import "./tasks/Haplotyper.wdl" as Haplotyper
  7. import "./tasks/TNseq.wdl" as TNseq
  8. import "./tasks/bcftools.wdl" as bcftools
  9. import "./tasks/ANNOVAR.wdl" as ANNOVAR
  10. import "./tasks/Manta.wdl" as Manta
  11. import "./tasks/AnnotSV.wdl" as AnnotSV
  12. import "./tasks/CNVkit.wdl" as CNVkit
  13. import "./tasks/MSIsensor.wdl" as MSIsensor
  14. import "./tasks/HRD.wdl" as HRD
  15. import "./tasks/TMB.wdl" as TMB
  16. workflow {{ project_name }} {
  17. String sample_id
  18. File? tumor_fastq_1
  19. File? tumor_fastq_2
  20. File? normal_fastq_1
  21. File? normal_fastq_2
  22. String? duplex_umi
  23. String? read_structure
  24. String SENTIEON_LICENSE
  25. String sentieon_docker
  26. String manta_docker
  27. String bcftools_docker
  28. String annovar_docker
  29. String annotsv_docker
  30. String cnvkit_docker
  31. String sequenza_docker
  32. String msisensor_docker
  33. String tmb_docker
  34. String platform
  35. File ref_dir
  36. String fasta
  37. File dbmills_dir
  38. String db_mills
  39. File dbsnp_dir
  40. String dbsnp
  41. File germline_resource
  42. File germline_resource_tbi
  43. File annovar_database
  44. File annotsv_database
  45. File gc
  46. File baseline
  47. File ref_flat
  48. File? regions
  49. Int? interval_padding
  50. String disk_size
  51. String cluster_2cpu_4gb
  52. String cluster_16cpu_32gb
  53. if (tumor_fastq_1!= "") {
  54. call mapping.mapping as tumor_mapping {
  55. input:
  56. group=sample_id + '.T',
  57. sample=sample_id + '.T',
  58. fastq_1=tumor_fastq_1,
  59. fastq_2=tumor_fastq_2,
  60. SENTIEON_LICENSE=SENTIEON_LICENSE,
  61. duplex_umi=duplex_umi,
  62. read_structure=read_structure,
  63. platform=platform,
  64. fasta=fasta,
  65. ref_dir=ref_dir,
  66. docker=sentieon_docker,
  67. disk_size=disk_size,
  68. cluster_config=cluster_16cpu_32gb
  69. }
  70. call Metrics.Metrics as tumor_Metrics {
  71. input:
  72. SENTIEON_LICENSE=SENTIEON_LICENSE,
  73. fasta=fasta,
  74. ref_dir=ref_dir,
  75. sorted_bam=tumor_mapping.sorted_bam,
  76. sorted_bam_index=tumor_mapping.sorted_bam_index,
  77. sample=sample_id + '.T',
  78. docker=sentieon_docker,
  79. disk_size=disk_size,
  80. cluster_config=cluster_16cpu_32gb
  81. }
  82. call Dedup.Dedup as tumor_Dedup {
  83. input:
  84. SENTIEON_LICENSE=SENTIEON_LICENSE,
  85. sorted_bam=tumor_mapping.sorted_bam,
  86. sorted_bam_index=tumor_mapping.sorted_bam_index,
  87. sample=sample_id + '.T',
  88. docker=sentieon_docker,
  89. disk_size=disk_size,
  90. cluster_config=cluster_16cpu_32gb
  91. }
  92. call deduped_Metrics.deduped_Metrics as tumor_deduped_Metrics {
  93. input:
  94. SENTIEON_LICENSE=SENTIEON_LICENSE,
  95. fasta=fasta,
  96. ref_dir=ref_dir,
  97. deduped_bam=tumor_Dedup.deduped_bam,
  98. deduped_bam_index=tumor_Dedup.deduped_bam_index,
  99. sample=sample_id + '.T',
  100. docker=sentieon_docker,
  101. disk_size=disk_size,
  102. cluster_config=cluster_16cpu_32gb
  103. }
  104. call BQSR.BQSR as tumor_BQSR {
  105. input:
  106. SENTIEON_LICENSE=SENTIEON_LICENSE,
  107. fasta=fasta,
  108. ref_dir=ref_dir,
  109. deduped_bam=tumor_Dedup.deduped_bam,
  110. deduped_bam_index=tumor_Dedup.deduped_bam_index,
  111. db_mills=db_mills,
  112. dbmills_dir=dbmills_dir,
  113. dbsnp=dbsnp,
  114. dbsnp_dir=dbsnp_dir,
  115. sample=sample_id + '.T',
  116. docker=sentieon_docker,
  117. disk_size=disk_size,
  118. cluster_config=cluster_16cpu_32gb
  119. }
  120. }
  121. if (normal_fastq_1!= "") {
  122. call mapping.mapping as normal_mapping {
  123. input:
  124. group=sample_id + '.N',
  125. sample=sample_id + '.N',
  126. fastq_1=normal_fastq_1,
  127. fastq_2=normal_fastq_2,
  128. SENTIEON_LICENSE=SENTIEON_LICENSE,
  129. duplex_umi=duplex_umi,
  130. read_structure=read_structure,
  131. platform=platform,
  132. fasta=fasta,
  133. ref_dir=ref_dir,
  134. docker=sentieon_docker,
  135. disk_size=disk_size,
  136. cluster_config=cluster_16cpu_32gb
  137. }
  138. call Metrics.Metrics as normal_Metrics {
  139. input:
  140. SENTIEON_LICENSE=SENTIEON_LICENSE,
  141. fasta=fasta,
  142. ref_dir=ref_dir,
  143. sorted_bam=normal_mapping.sorted_bam,
  144. sorted_bam_index=normal_mapping.sorted_bam_index,
  145. sample=sample_id + '.N',
  146. regions=regions,
  147. docker=sentieon_docker,
  148. disk_size=disk_size,
  149. cluster_config=cluster_16cpu_32gb
  150. }
  151. call Dedup.Dedup as normal_Dedup {
  152. input:
  153. SENTIEON_LICENSE=SENTIEON_LICENSE,
  154. sorted_bam=normal_mapping.sorted_bam,
  155. sorted_bam_index=normal_mapping.sorted_bam_index,
  156. sample=sample_id + '.N',
  157. docker=sentieon_docker,
  158. disk_size=disk_size,
  159. cluster_config=cluster_16cpu_32gb
  160. }
  161. call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics {
  162. input:
  163. SENTIEON_LICENSE=SENTIEON_LICENSE,
  164. fasta=fasta,
  165. ref_dir=ref_dir,
  166. deduped_bam=normal_Dedup.deduped_bam,
  167. deduped_bam_index=normal_Dedup.deduped_bam_index,
  168. sample=sample_id + '.N',
  169. regions=regions,
  170. docker=sentieon_docker,
  171. disk_size=disk_size,
  172. cluster_config=cluster_16cpu_32gb
  173. }
  174. call BQSR.BQSR as normal_BQSR {
  175. input:
  176. SENTIEON_LICENSE=SENTIEON_LICENSE,
  177. fasta=fasta,
  178. ref_dir=ref_dir,
  179. deduped_bam=normal_Dedup.deduped_bam,
  180. deduped_bam_index=normal_Dedup.deduped_bam_index,
  181. db_mills=db_mills,
  182. dbmills_dir=dbmills_dir,
  183. dbsnp=dbsnp,
  184. dbsnp_dir=dbsnp_dir,
  185. sample=sample_id + '.N',
  186. docker=sentieon_docker,
  187. disk_size=disk_size,
  188. cluster_config=cluster_16cpu_32gb
  189. }
  190. call Haplotyper.Haplotyper as Haplotyper {
  191. input:
  192. SENTIEON_LICENSE=SENTIEON_LICENSE,
  193. sample=sample_id + '.N',
  194. fasta=fasta,
  195. ref_dir=ref_dir,
  196. recaled_bam=normal_BQSR.recaled_bam,
  197. recaled_bam_index=normal_BQSR.recaled_bam_index,
  198. dbsnp=dbsnp,
  199. dbsnp_dir=dbsnp_dir,
  200. regions=regions,
  201. docker=sentieon_docker,
  202. disk_size=disk_size,
  203. cluster_config=cluster_16cpu_32gb
  204. }
  205. call bcftools.bcftools as Haplotyper_bcftools {
  206. input:
  207. vcf=Haplotyper.vcf,
  208. fasta=fasta,
  209. ref_dir=ref_dir,
  210. docker=bcftools_docker,
  211. cluster_config=cluster_2cpu_4gb,
  212. disk_size=disk_size
  213. }
  214. }
  215. call Manta.Manta as Manta {
  216. input:
  217. sample=sample_id,
  218. fasta=fasta,
  219. ref_dir=ref_dir,
  220. regions=regions,
  221. normal_bam=normal_BQSR.recaled_bam,
  222. normal_bam_index=normal_BQSR.recaled_bam_index,
  223. tumor_bam=tumor_BQSR.recaled_bam,
  224. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  225. docker=manta_docker,
  226. cluster_config=cluster_16cpu_32gb,
  227. disk_size=disk_size
  228. }
  229. call AnnotSV.AnnotSV as Manta_AnnotSV {
  230. input:
  231. sample=sample_id,
  232. somatic_vcf=Manta.somatic_vcf,
  233. germline_vcf=Manta.germline_vcf,
  234. annotsv_database=annotsv_database,
  235. docker=annotsv_docker,
  236. cluster_config=cluster_2cpu_4gb,
  237. disk_size=disk_size
  238. }
  239. call TNseq.TNseq as TNseq {
  240. input:
  241. SENTIEON_LICENSE=SENTIEON_LICENSE,
  242. sample=sample_id,
  243. normal_bam=normal_BQSR.recaled_bam,
  244. normal_bam_index=normal_BQSR.recaled_bam_index,
  245. tumor_bam=tumor_BQSR.recaled_bam,
  246. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  247. normal_name=sample_id + ".N",
  248. tumor_name=sample_id + ".T",
  249. fasta=fasta,
  250. ref_dir=ref_dir,
  251. regions=regions,
  252. interval_padding=interval_padding,
  253. germline_resource=germline_resource,
  254. germline_resource_tbi=germline_resource_tbi,
  255. docker=sentieon_docker,
  256. cluster_config=cluster_16cpu_32gb,
  257. disk_size=disk_size
  258. }
  259. call bcftools.bcftools as TNseq_bcftools {
  260. input:
  261. vcf=TNseq.vcf,
  262. fasta=fasta,
  263. ref_dir=ref_dir,
  264. docker=bcftools_docker,
  265. cluster_config=cluster_2cpu_4gb,
  266. disk_size=disk_size
  267. }
  268. call ANNOVAR.ANNOVAR as TNseq_ANNOVAR {
  269. input:
  270. vcf=TNseq_bcftools.norm_vcf,
  271. annovar_database=annovar_database,
  272. docker=annovar_docker,
  273. cluster_config=cluster_16cpu_32gb,
  274. disk_size=disk_size
  275. }
  276. call MSIsensor.MSIsensor as MSIsensor {
  277. input:
  278. sample=sample_id,
  279. fasta=fasta,
  280. ref_dir=ref_dir,
  281. normal_bam=normal_BQSR.recaled_bam,
  282. normal_bam_index=normal_BQSR.recaled_bam_index,
  283. tumor_bam=tumor_BQSR.recaled_bam,
  284. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  285. baseline=baseline,
  286. docker=msisensor_docker,
  287. cluster_config=cluster_2cpu_4gb,
  288. disk_size=disk_size
  289. }
  290. call HRD.HRD as HRD {
  291. input:
  292. sample=sample_id,
  293. fasta=fasta,
  294. ref_dir=ref_dir,
  295. gc=gc,
  296. normal_bam=normal_BQSR.recaled_bam,
  297. normal_bam_index=normal_BQSR.recaled_bam_index,
  298. tumor_bam=tumor_BQSR.recaled_bam,
  299. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  300. docker=sequenza_docker,
  301. cluster_config=cluster_16cpu_32gb,
  302. disk_size=disk_size
  303. }
  304. call TMB.TMB as TMB {
  305. input:
  306. sample=sample_id,
  307. regions=regions,
  308. snpindel_txt=TNseq_ANNOVAR.multianno_txt,
  309. docker=tmb_docker,
  310. cluster_config=cluster_2cpu_4gb,
  311. disk_size=disk_size
  312. }
  313. call CNVkit.CNVkit as CNVkit {
  314. input:
  315. sample=sample_id,
  316. fasta=fasta,
  317. ref_dir=ref_dir,
  318. regions=regions,
  319. ref_flat=ref_flat,
  320. normal_bam=normal_BQSR.recaled_bam,
  321. normal_bam_index=normal_BQSR.recaled_bam_index,
  322. tumor_bam=tumor_BQSR.recaled_bam,
  323. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  324. hrd=HRD.hrd,
  325. docker=cnvkit_docker,
  326. cluster_config=cluster_2cpu_4gb,
  327. disk_size=disk_size
  328. }
  329. }