Germline & Somatic short variant discovery (SNVs + Indels) for WGS & WES.
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.

workflow.wdl 11KB

il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
il y a 4 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  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/Realigner.wdl" as Realigner
  6. import "./tasks/BQSR.wdl" as BQSR
  7. import "./tasks/Haplotyper.wdl" as Haplotyper
  8. import "./tasks/TNseq.wdl" as TNseq
  9. import "./tasks/TNscope.wdl" as TNscope
  10. import "./tasks/somatic.wdl" as somatic
  11. import "./tasks/processSomatic.wdl" as processSomatic
  12. import "./tasks/somaticFilter.wdl" as somaticFilter
  13. import "./tasks/annovar.wdl" as annovar
  14. workflow {{ project_name }} {
  15. String sample_id
  16. File? tumor_fastq_1
  17. File? tumor_fastq_2
  18. File normal_fastq_1
  19. File normal_fastq_2
  20. String SENTIEON_INSTALL_DIR
  21. String SENTIEON_LICENSE
  22. String sentieon_docker
  23. String varscan_docker
  24. String annovar_docker
  25. File ref_dir
  26. String fasta
  27. File dbmills_dir
  28. String db_mills
  29. File dbsnp_dir
  30. String dbsnp
  31. File germline_resource
  32. File germline_resource_tbi
  33. File database
  34. File? regions
  35. Int? interval_padding
  36. File? tnseq_pon
  37. File? tnscope_pon
  38. String disk_size
  39. String cluster_config
  40. Boolean haplotyper
  41. Boolean tnseq
  42. Boolean tnscope
  43. Boolean varscan
  44. if (tumor_fastq_1!= "") {
  45. call mapping.mapping as tumor_mapping {
  46. input:
  47. group=sample_id + '_tumor',
  48. sample=sample_id + '_tumor',
  49. fastq_1=tumor_fastq_1,
  50. fastq_2=tumor_fastq_2,
  51. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  52. SENTIEON_LICENSE=SENTIEON_LICENSE,
  53. pl="ILLUMINAL",
  54. fasta=fasta,
  55. ref_dir=ref_dir,
  56. docker=sentieon_docker,
  57. disk_size=disk_size,
  58. cluster_config=cluster_config
  59. }
  60. call Metrics.Metrics as tumor_Metrics {
  61. input:
  62. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  63. SENTIEON_LICENSE=SENTIEON_LICENSE,
  64. fasta=fasta,
  65. ref_dir=ref_dir,
  66. sorted_bam=tumor_mapping.sorted_bam,
  67. sorted_bam_index=tumor_mapping.sorted_bam_index,
  68. sample=sample_id + '_tumor',
  69. docker=sentieon_docker,
  70. disk_size=disk_size,
  71. cluster_config=cluster_config
  72. }
  73. call Dedup.Dedup as tumor_Dedup {
  74. input:
  75. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  76. SENTIEON_LICENSE=SENTIEON_LICENSE,
  77. sorted_bam=tumor_mapping.sorted_bam,
  78. sorted_bam_index=tumor_mapping.sorted_bam_index,
  79. sample=sample_id + '_tumor',
  80. docker=sentieon_docker,
  81. disk_size=disk_size,
  82. cluster_config=cluster_config
  83. }
  84. call deduped_Metrics.deduped_Metrics as tumor_deduped_Metrics {
  85. input:
  86. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  87. SENTIEON_LICENSE=SENTIEON_LICENSE,
  88. fasta=fasta,
  89. ref_dir=ref_dir,
  90. Dedup_bam=tumor_Dedup.Dedup_bam,
  91. Dedup_bam_index=tumor_Dedup.Dedup_bam_index,
  92. sample=sample_id + '_tumor',
  93. docker=sentieon_docker,
  94. disk_size=disk_size,
  95. cluster_config=cluster_config
  96. }
  97. call Realigner.Realigner as tumor_Realigner {
  98. input:
  99. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  100. SENTIEON_LICENSE=SENTIEON_LICENSE,
  101. fasta=fasta,
  102. ref_dir=ref_dir,
  103. Dedup_bam=tumor_Dedup.Dedup_bam,
  104. Dedup_bam_index=tumor_Dedup.Dedup_bam_index,
  105. db_mills=db_mills,
  106. dbmills_dir=dbmills_dir,
  107. sample=sample_id + '_tumor',
  108. docker=sentieon_docker,
  109. disk_size=disk_size,
  110. regions=regions,
  111. cluster_config=cluster_config
  112. }
  113. call BQSR.BQSR as tumor_BQSR {
  114. input:
  115. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  116. SENTIEON_LICENSE=SENTIEON_LICENSE,
  117. fasta=fasta,
  118. ref_dir=ref_dir,
  119. realigned_bam=tumor_Realigner.realigner_bam,
  120. realigned_bam_index=tumor_Realigner.realigner_bam_index,
  121. db_mills=db_mills,
  122. dbmills_dir=dbmills_dir,
  123. dbsnp=dbsnp,
  124. dbsnp_dir=dbsnp_dir,
  125. sample=sample_id + '_tumor',
  126. docker=sentieon_docker,
  127. disk_size=disk_size,
  128. cluster_config=cluster_config
  129. }
  130. }
  131. call mapping.mapping as normal_mapping {
  132. input:
  133. group=sample_id + '_normal',
  134. sample=sample_id + '_normal',
  135. fastq_1=normal_fastq_1,
  136. fastq_2=normal_fastq_2,
  137. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  138. SENTIEON_LICENSE=SENTIEON_LICENSE,
  139. pl="ILLUMINAL",
  140. fasta=fasta,
  141. ref_dir=ref_dir,
  142. docker=sentieon_docker,
  143. disk_size=disk_size,
  144. cluster_config=cluster_config
  145. }
  146. call Metrics.Metrics as normal_Metrics {
  147. input:
  148. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  149. SENTIEON_LICENSE=SENTIEON_LICENSE,
  150. fasta=fasta,
  151. ref_dir=ref_dir,
  152. sorted_bam=normal_mapping.sorted_bam,
  153. sorted_bam_index=normal_mapping.sorted_bam_index,
  154. sample=sample_id + '_normal',
  155. regions=regions,
  156. docker=sentieon_docker,
  157. disk_size=disk_size,
  158. cluster_config=cluster_config
  159. }
  160. call Dedup.Dedup as normal_Dedup {
  161. input:
  162. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  163. SENTIEON_LICENSE=SENTIEON_LICENSE,
  164. sorted_bam=normal_mapping.sorted_bam,
  165. sorted_bam_index=normal_mapping.sorted_bam_index,
  166. sample=sample_id + '_normal',
  167. docker=sentieon_docker,
  168. disk_size=disk_size,
  169. cluster_config=cluster_config
  170. }
  171. call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics {
  172. input:
  173. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  174. SENTIEON_LICENSE=SENTIEON_LICENSE,
  175. fasta=fasta,
  176. ref_dir=ref_dir,
  177. Dedup_bam=normal_Dedup.Dedup_bam,
  178. Dedup_bam_index=normal_Dedup.Dedup_bam_index,
  179. sample=sample_id + '_normal',
  180. regions=regions,
  181. docker=sentieon_docker,
  182. disk_size=disk_size,
  183. cluster_config=cluster_config
  184. }
  185. call Realigner.Realigner as normal_Realigner {
  186. input:
  187. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  188. SENTIEON_LICENSE=SENTIEON_LICENSE,
  189. fasta=fasta,
  190. ref_dir=ref_dir,
  191. Dedup_bam=normal_Dedup.Dedup_bam,
  192. Dedup_bam_index=normal_Dedup.Dedup_bam_index,
  193. db_mills=db_mills,
  194. dbmills_dir=dbmills_dir,
  195. sample=sample_id + '_normal',
  196. docker=sentieon_docker,
  197. disk_size=disk_size,
  198. cluster_config=cluster_config
  199. }
  200. call BQSR.BQSR as normal_BQSR {
  201. input:
  202. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  203. SENTIEON_LICENSE=SENTIEON_LICENSE,
  204. fasta=fasta,
  205. ref_dir=ref_dir,
  206. realigned_bam=normal_Realigner.realigner_bam,
  207. realigned_bam_index=normal_Realigner.realigner_bam_index,
  208. db_mills=db_mills,
  209. dbmills_dir=dbmills_dir,
  210. dbsnp=dbsnp,
  211. dbsnp_dir=dbsnp_dir,
  212. sample=sample_id + '_normal',
  213. docker=sentieon_docker,
  214. disk_size=disk_size,
  215. cluster_config=cluster_config
  216. }
  217. if (haplotyper) {
  218. call Haplotyper.Haplotyper as Haplotyper {
  219. input:
  220. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  221. SENTIEON_LICENSE=SENTIEON_LICENSE,
  222. sample=sample_id + '_normal',
  223. fasta=fasta,
  224. ref_dir=ref_dir,
  225. recaled_bam=normal_BQSR.recaled_bam,
  226. recaled_bam_index=normal_BQSR.recaled_bam_index,
  227. recal_table=normal_BQSR.recal_table,
  228. dbsnp=dbsnp,
  229. dbsnp_dir=dbsnp_dir,
  230. regions=regions,
  231. docker=sentieon_docker,
  232. disk_size=disk_size,
  233. cluster_config=cluster_config
  234. }
  235. }
  236. if (tnseq) {
  237. call TNseq.TNseq as TNseq {
  238. input:
  239. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  240. SENTIEON_LICENSE=SENTIEON_LICENSE,
  241. sample=sample_id,
  242. normal_recaled_bam=normal_BQSR.recaled_bam,
  243. normal_recaled_bam_index=normal_BQSR.recaled_bam_index,
  244. normal_recal_table=normal_BQSR.recal_table,
  245. tumor_recaled_bam=tumor_BQSR.recaled_bam,
  246. tumor_recaled_bam_index=tumor_BQSR.recaled_bam_index,
  247. tumor_recal_table=tumor_BQSR.recal_table,
  248. normal_name=sample_id + "_normal",
  249. tumor_name=sample_id + "_tumor",
  250. fasta=fasta,
  251. ref_dir=ref_dir,
  252. regions=regions,
  253. interval_padding=interval_padding,
  254. germline_resource=germline_resource,
  255. germline_resource_tbi=germline_resource_tbi,
  256. pon_vcf=tnseq_pon,
  257. docker=sentieon_docker,
  258. cluster_config=cluster_config,
  259. disk_size=disk_size
  260. }
  261. call annovar.annovar as TNseq_annovar {
  262. input:
  263. sample=sample_id,
  264. vcf=TNseq.TNseq_vcf,
  265. database=database,
  266. docker=annovar_docker,
  267. cluster_config=cluster_config,
  268. disk_size=disk_size
  269. }
  270. }
  271. if (tnscope) {
  272. call TNscope.TNscope as TNscope {
  273. input:
  274. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  275. SENTIEON_LICENSE=SENTIEON_LICENSE,
  276. sample=sample_id,
  277. normal_recaled_bam=normal_BQSR.recaled_bam,
  278. normal_recaled_bam_index=normal_BQSR.recaled_bam_index,
  279. normal_recal_table=normal_BQSR.recal_table,
  280. tumor_recaled_bam=tumor_BQSR.recaled_bam,
  281. tumor_recaled_bam_index=tumor_BQSR.recaled_bam_index,
  282. tumor_recal_table=tumor_BQSR.recal_table,
  283. normal_name=sample_id + "_normal",
  284. tumor_name=sample_id + "_tumor",
  285. fasta=fasta,
  286. ref_dir=ref_dir,
  287. regions=regions,
  288. interval_padding=interval_padding,
  289. dbsnp=dbsnp,
  290. dbsnp_dir=dbsnp_dir,
  291. pon_vcf=tnscope_pon,
  292. docker=sentieon_docker,
  293. cluster_config=cluster_config,
  294. disk_size=disk_size
  295. }
  296. call annovar.annovar as TNscope_annovar {
  297. input:
  298. sample=sample_id,
  299. vcf=TNscope.TNscope_vcf,
  300. database=database,
  301. docker=annovar_docker,
  302. cluster_config=cluster_config,
  303. disk_size=disk_size
  304. }
  305. }
  306. if (varscan) {
  307. call somatic.somatic as somatic {
  308. input:
  309. sample=sample_id,
  310. tumor_bam=tumor_BQSR.recaled_bam,
  311. tumor_bam_index=tumor_BQSR.recaled_bam_index,
  312. normal_bam=normal_BQSR.recaled_bam,
  313. normal_bam_index=normal_BQSR.recaled_bam_index,
  314. ref_dir=ref_dir,
  315. fasta=fasta,
  316. docker=varscan_docker,
  317. disk_size=disk_size,
  318. cluster_config=cluster_config
  319. }
  320. call processSomatic.processSomatic as processSomatic {
  321. input:
  322. sample=sample_id,
  323. varscan_snp=somatic.varscan_snp,
  324. varscan_indel=somatic.varscan_indel,
  325. docker=varscan_docker,
  326. disk_size=disk_size,
  327. cluster_config=cluster_config
  328. }
  329. call somaticFilter.somaticFilter as somaticFilter {
  330. input:
  331. sample=sample_id,
  332. varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc,
  333. varscan_snp_germline_hc=processSomatic.varscan_snp_germline_hc,
  334. varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc,
  335. varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc,
  336. varscan_indel_germline_hc=processSomatic.varscan_indel_germline_hc,
  337. varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc,
  338. varscan_indel=somatic.varscan_indel,
  339. docker=varscan_docker,
  340. disk_size=disk_size,
  341. cluster_config=cluster_config
  342. }
  343. call annovar.annovar as snp_somatic_annovar {
  344. input:
  345. sample=sample_id,
  346. vcf=somaticFilter.varscan_snp_somatic_filter,
  347. database=database,
  348. docker=annovar_docker,
  349. cluster_config=cluster_config,
  350. disk_size=disk_size
  351. }
  352. call annovar.annovar as snp_loh_annovar {
  353. input:
  354. sample=sample_id,
  355. vcf=somaticFilter.varscan_snp_loh_filter,
  356. database=database,
  357. docker=annovar_docker,
  358. cluster_config=cluster_config,
  359. disk_size=disk_size
  360. }
  361. call annovar.annovar as indel_somatic_annovar {
  362. input:
  363. sample=sample_id,
  364. vcf=somaticFilter.varscan_indel_somatic_filter,
  365. database=database,
  366. docker=annovar_docker,
  367. cluster_config=cluster_config,
  368. disk_size=disk_size
  369. }
  370. call annovar.annovar as indel_loh_annovar {
  371. input:
  372. sample=sample_id,
  373. vcf=somaticFilter.varscan_indel_loh_filter,
  374. database=database,
  375. docker=annovar_docker,
  376. cluster_config=cluster_config,
  377. disk_size=disk_size
  378. }
  379. }
  380. }