Germline & Somatic short variant discovery (SNVs + Indels) for WGS & WES.
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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