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

преди 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 години
преди 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 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  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/TNscope.wdl" as TNscope
  9. import "./tasks/somatic.wdl" as somatic
  10. import "./tasks/processSomatic.wdl" as processSomatic
  11. import "./tasks/somaticFilter.wdl" as somaticFilter
  12. import "./tasks/annovar.wdl" as annovar
  13. workflow {{ project_name }} {
  14. String sample_id
  15. File? tumor_fastq_1
  16. File? tumor_fastq_2
  17. File normal_fastq_1
  18. File normal_fastq_2
  19. String SENTIEON_INSTALL_DIR
  20. String SENTIEON_LICENSE
  21. String sentieon_docker
  22. String varscan_docker
  23. String annovar_docker
  24. File ref_dir
  25. String fasta
  26. File dbmills_dir
  27. String db_mills
  28. File dbsnp_dir
  29. String dbsnp
  30. File germline_resource
  31. File germline_resource_tbi
  32. String hg
  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. deduped_bam=tumor_Dedup.deduped_bam,
  91. deduped_bam_index=tumor_Dedup.deduped_bam_index,
  92. sample=sample_id + '_tumor',
  93. docker=sentieon_docker,
  94. disk_size=disk_size,
  95. cluster_config=cluster_config
  96. }
  97. call BQSR.BQSR as tumor_BQSR {
  98. input:
  99. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  100. SENTIEON_LICENSE=SENTIEON_LICENSE,
  101. fasta=fasta,
  102. ref_dir=ref_dir,
  103. deduped_bam=tumor_Dedup.deduped_bam,
  104. deduped_bam_index=tumor_Dedup.deduped_bam_index,
  105. db_mills=db_mills,
  106. dbmills_dir=dbmills_dir,
  107. dbsnp=dbsnp,
  108. dbsnp_dir=dbsnp_dir,
  109. sample=sample_id + '_tumor',
  110. docker=sentieon_docker,
  111. disk_size=disk_size,
  112. cluster_config=cluster_config
  113. }
  114. }
  115. call mapping.mapping as normal_mapping {
  116. input:
  117. group=sample_id + '_normal',
  118. sample=sample_id + '_normal',
  119. fastq_1=normal_fastq_1,
  120. fastq_2=normal_fastq_2,
  121. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  122. SENTIEON_LICENSE=SENTIEON_LICENSE,
  123. pl="ILLUMINAL",
  124. fasta=fasta,
  125. ref_dir=ref_dir,
  126. docker=sentieon_docker,
  127. disk_size=disk_size,
  128. cluster_config=cluster_config
  129. }
  130. call Metrics.Metrics as normal_Metrics {
  131. input:
  132. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  133. SENTIEON_LICENSE=SENTIEON_LICENSE,
  134. fasta=fasta,
  135. ref_dir=ref_dir,
  136. sorted_bam=normal_mapping.sorted_bam,
  137. sorted_bam_index=normal_mapping.sorted_bam_index,
  138. sample=sample_id + '_normal',
  139. regions=regions,
  140. docker=sentieon_docker,
  141. disk_size=disk_size,
  142. cluster_config=cluster_config
  143. }
  144. call Dedup.Dedup as normal_Dedup {
  145. input:
  146. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  147. SENTIEON_LICENSE=SENTIEON_LICENSE,
  148. sorted_bam=normal_mapping.sorted_bam,
  149. sorted_bam_index=normal_mapping.sorted_bam_index,
  150. sample=sample_id + '_normal',
  151. docker=sentieon_docker,
  152. disk_size=disk_size,
  153. cluster_config=cluster_config
  154. }
  155. call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics {
  156. input:
  157. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  158. SENTIEON_LICENSE=SENTIEON_LICENSE,
  159. fasta=fasta,
  160. ref_dir=ref_dir,
  161. deduped_bam=normal_Dedup.deduped_bam,
  162. deduped_bam_index=normal_Dedup.deduped_bam_index,
  163. sample=sample_id + '_normal',
  164. regions=regions,
  165. docker=sentieon_docker,
  166. disk_size=disk_size,
  167. cluster_config=cluster_config
  168. }
  169. call BQSR.BQSR as normal_BQSR {
  170. input:
  171. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  172. SENTIEON_LICENSE=SENTIEON_LICENSE,
  173. fasta=fasta,
  174. ref_dir=ref_dir,
  175. deduped_bam=normal_Dedup.deduped_bam,
  176. deduped_bam_index=normal_Dedup.deduped_bam_index,
  177. db_mills=db_mills,
  178. dbmills_dir=dbmills_dir,
  179. dbsnp=dbsnp,
  180. dbsnp_dir=dbsnp_dir,
  181. sample=sample_id + '_normal',
  182. docker=sentieon_docker,
  183. disk_size=disk_size,
  184. cluster_config=cluster_config
  185. }
  186. if (haplotyper) {
  187. call Haplotyper.Haplotyper as Haplotyper {
  188. input:
  189. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  190. SENTIEON_LICENSE=SENTIEON_LICENSE,
  191. sample=sample_id + '_normal',
  192. fasta=fasta,
  193. ref_dir=ref_dir,
  194. deduped_bam=normal_Dedup.deduped_bam,
  195. deduped_bam_index=normal_Dedup.deduped_bam_index,
  196. recal_table=normal_BQSR.recal_table,
  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. }
  205. if (tnseq) {
  206. call TNseq.TNseq as TNseq {
  207. input:
  208. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  209. SENTIEON_LICENSE=SENTIEON_LICENSE,
  210. sample=sample_id,
  211. normal_deduped_bam=normal_Dedup.deduped_bam,
  212. normal_deduped_bam_index=normal_Dedup.deduped_bam_index,
  213. normal_recal_table=normal_BQSR.recal_table,
  214. tumor_deduped_bam=tumor_Dedup.deduped_bam,
  215. tumor_deduped_bam_index=tumor_Dedup.deduped_bam_index,
  216. tumor_recal_table=tumor_BQSR.recal_table,
  217. normal_name=sample_id + "_normal",
  218. tumor_name=sample_id + "_tumor",
  219. fasta=fasta,
  220. ref_dir=ref_dir,
  221. regions=regions,
  222. interval_padding=interval_padding,
  223. germline_resource=germline_resource,
  224. germline_resource_tbi=germline_resource_tbi,
  225. pon_vcf=tnseq_pon,
  226. docker=sentieon_docker,
  227. cluster_config=cluster_config,
  228. disk_size=disk_size
  229. }
  230. call annovar.annovar as TNseq_annovar {
  231. input:
  232. vcf=TNseq.TNseq_vcf,
  233. hg=hg,
  234. database=database,
  235. docker=annovar_docker,
  236. cluster_config=cluster_config,
  237. disk_size=disk_size
  238. }
  239. }
  240. if (tnscope) {
  241. call TNscope.TNscope as TNscope {
  242. input:
  243. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  244. SENTIEON_LICENSE=SENTIEON_LICENSE,
  245. sample=sample_id,
  246. normal_deduped_bam=normal_Dedup.deduped_bam,
  247. normal_deduped_bam_index=normal_Dedup.deduped_bam_index,
  248. normal_recal_table=normal_BQSR.recal_table,
  249. tumor_deduped_bam=tumor_Dedup.deduped_bam,
  250. tumor_deduped_bam_index=tumor_Dedup.deduped_bam_index,
  251. tumor_recal_table=tumor_BQSR.recal_table,
  252. normal_name=sample_id + "_normal",
  253. tumor_name=sample_id + "_tumor",
  254. fasta=fasta,
  255. ref_dir=ref_dir,
  256. regions=regions,
  257. interval_padding=interval_padding,
  258. dbsnp=dbsnp,
  259. dbsnp_dir=dbsnp_dir,
  260. pon_vcf=tnscope_pon,
  261. docker=sentieon_docker,
  262. cluster_config=cluster_config,
  263. disk_size=disk_size
  264. }
  265. call annovar.annovar as TNscope_annovar {
  266. input:
  267. vcf=TNscope.TNscope_vcf,
  268. hg=hg,
  269. database=database,
  270. docker=annovar_docker,
  271. cluster_config=cluster_config,
  272. disk_size=disk_size
  273. }
  274. }
  275. if (varscan) {
  276. call somatic.somatic as somatic {
  277. input:
  278. sample=sample_id,
  279. tumor_bam=tumor_Dedup.deduped_bam,
  280. tumor_bam_index=tumor_Dedup.deduped_bam_index,
  281. normal_bam=normal_Dedup.deduped_bam,
  282. normal_bam_index=normal_Dedup.deduped_bam_index,
  283. ref_dir=ref_dir,
  284. fasta=fasta,
  285. docker=varscan_docker,
  286. disk_size=disk_size,
  287. cluster_config=cluster_config
  288. }
  289. call processSomatic.processSomatic as processSomatic {
  290. input:
  291. sample=sample_id,
  292. varscan_snp=somatic.varscan_snp,
  293. varscan_indel=somatic.varscan_indel,
  294. docker=varscan_docker,
  295. disk_size=disk_size,
  296. cluster_config=cluster_config
  297. }
  298. call somaticFilter.somaticFilter as somaticFilter {
  299. input:
  300. sample=sample_id,
  301. varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc,
  302. varscan_snp_germline_hc=processSomatic.varscan_snp_germline_hc,
  303. varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc,
  304. varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc,
  305. varscan_indel_germline_hc=processSomatic.varscan_indel_germline_hc,
  306. varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc,
  307. varscan_indel=somatic.varscan_indel,
  308. docker=varscan_docker,
  309. disk_size=disk_size,
  310. cluster_config=cluster_config
  311. }
  312. call annovar.annovar as VarScan_annovar {
  313. input:
  314. vcf=somaticFilter.varscan_somatic_filter,
  315. hg=hg,
  316. database=database,
  317. docker=annovar_docker,
  318. cluster_config=cluster_config,
  319. disk_size=disk_size
  320. }
  321. }
  322. }