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.

355 satır
9.1KB

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