Automated integrated analysis software for genomics data of the cancer patients.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

356 lignes
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. }