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.

278 lines
6.7KB

  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/corealigner.wdl" as corealigner
  8. import "./tasks/PON.wdl" as PON
  9. import "./tasks/TNseq.wdl" as TNseq
  10. import "./tasks/TNscope.wdl" as TNscope
  11. import "./tasks/annovar.wdl" as annovar
  12. import "./tasks/vcf2maf.wdl" as vcf2maf
  13. workflow {{ project_name }} {
  14. String sample
  15. File fastq_1
  16. File fastq_2
  17. File? normal_recaled_bam
  18. File? normal_recaled_bam_index
  19. String type
  20. String SENTIEON_INSTALL_DIR
  21. String SENTIEON_LICENSE
  22. String sentieon_docker
  23. String annovar_docker
  24. String maftools_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 regions
  32. String disk_size
  33. String cluster_config
  34. Boolean set_pon
  35. File? pon_vcf
  36. File? cosmic_dir
  37. String? cosmic_vcf
  38. Boolean set_annovar
  39. File? database
  40. Boolean set_vcf2maf
  41. Boolean germline
  42. call mapping.mapping as mapping {
  43. input:
  44. group=sample + '_' + type,
  45. sample=sample + '_' + type,
  46. fastq_1=fastq_1,
  47. fastq_2=fastq_2,
  48. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  49. SENTIEON_LICENSE=SENTIEON_LICENSE,
  50. pl="ILLUMINAL",
  51. fasta=fasta,
  52. ref_dir=ref_dir,
  53. docker=sentieon_docker,
  54. disk_size=disk_size,
  55. cluster_config=cluster_config
  56. }
  57. call Metrics.Metrics as Metrics {
  58. input:
  59. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  60. SENTIEON_LICENSE=SENTIEON_LICENSE,
  61. fasta=fasta,
  62. ref_dir=ref_dir,
  63. sorted_bam=mapping.sorted_bam,
  64. sorted_bam_index=mapping.sorted_bam_index,
  65. sample=sample + '_' + type,
  66. docker=sentieon_docker,
  67. disk_size=disk_size,
  68. cluster_config=cluster_config
  69. }
  70. call Dedup.Dedup as Dedup {
  71. input:
  72. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  73. SENTIEON_LICENSE=SENTIEON_LICENSE,
  74. sorted_bam=mapping.sorted_bam,
  75. sorted_bam_index=mapping.sorted_bam_index,
  76. sample=sample + '_' + type,
  77. docker=sentieon_docker,
  78. disk_size=disk_size,
  79. cluster_config=cluster_config
  80. }
  81. call deduped_Metrics.deduped_Metrics as deduped_Metrics {
  82. input:
  83. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  84. SENTIEON_LICENSE=SENTIEON_LICENSE,
  85. fasta=fasta,
  86. ref_dir=ref_dir,
  87. Dedup_bam=Dedup.Dedup_bam,
  88. Dedup_bam_index=Dedup.Dedup_bam_index,
  89. sample=sample + '_' + type,
  90. docker=sentieon_docker,
  91. disk_size=disk_size,
  92. cluster_config=cluster_config
  93. }
  94. call Realigner.Realigner as Realigner {
  95. input:
  96. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  97. SENTIEON_LICENSE=SENTIEON_LICENSE,
  98. fasta=fasta,
  99. ref_dir=ref_dir,
  100. Dedup_bam=Dedup.Dedup_bam,
  101. Dedup_bam_index=Dedup.Dedup_bam_index,
  102. db_mills=db_mills,
  103. dbmills_dir=dbmills_dir,
  104. sample=sample + '_' + type,
  105. docker=sentieon_docker,
  106. disk_size=disk_size,
  107. regions=regions,
  108. cluster_config=cluster_config
  109. }
  110. call BQSR.BQSR as BQSR {
  111. input:
  112. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  113. SENTIEON_LICENSE=SENTIEON_LICENSE,
  114. fasta=fasta,
  115. ref_dir=ref_dir,
  116. realigned_bam=Realigner.realigner_bam,
  117. realigned_bam_index=Realigner.realigner_bam_index,
  118. db_mills=db_mills,
  119. dbmills_dir=dbmills_dir,
  120. dbsnp=dbsnp,
  121. dbsnp_dir=dbsnp_dir,
  122. sample=sample + '_' + type,
  123. regions=regions,
  124. docker=sentieon_docker,
  125. disk_size=disk_size,
  126. cluster_config=cluster_config
  127. }
  128. if (set_pon && type == "normal") {
  129. call PON.PON as PON {
  130. input:
  131. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  132. SENTIEON_LICENSE=SENTIEON_LICENSE,
  133. sample=sample,
  134. fasta=fasta,
  135. ref_dir=ref_dir,
  136. normal_recaled_bam=BQSR.recaled_bam,
  137. normal_recaled_bam_index=BQSR.recaled_bam_index,
  138. cosmic_vcf=cosmic_vcf,
  139. cosmic_dir=cosmic_dir,
  140. dbsnp=dbsnp,
  141. dbsnp_dir=dbsnp_dir,
  142. docker=sentieon_docker,
  143. disk_size=disk_size,
  144. cluster_config=cluster_config
  145. }
  146. }
  147. if (germline) {
  148. call Haplotyper.Haplotyper as Haplotyper {
  149. input:
  150. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  151. SENTIEON_LICENSE=SENTIEON_LICENSE,
  152. sample=sample,
  153. fasta=fasta,
  154. ref_dir=ref_dir,
  155. recaled_bam=BQSR.recaled_bam,
  156. recaled_bam_index=BQSR.recaled_bam_index,
  157. dbsnp=dbsnp,
  158. dbsnp_dir=dbsnp_dir,
  159. regions=regions,
  160. docker=docker,
  161. disk_size=disk_size,
  162. cluster_config=cluster_config
  163. }
  164. }
  165. if (type == "tumor" && defined(normal_recaled_bam)) {
  166. call corealigner.corealigner as corealigner {
  167. input:
  168. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  169. SENTIEON_LICENSE=SENTIEON_LICENSE,
  170. fasta=fasta,
  171. ref_dir=ref_dir,
  172. sample=sample,
  173. docker=sentieon_docker,
  174. db_mills=db_mills,
  175. dbmills_dir=dbmills_dir,
  176. dbsnp=dbsnp,
  177. dbsnp_dir=dbsnp_dir,
  178. tumor_recaled_bam=BQSR.recaled_bam,
  179. tumor_recaled_bam_index=BQSR.recaled_bam_index,
  180. normal_recaled_bam=normal_recaled_bam,
  181. normal_recaled_bam_index=normal_recaled_bam_index,
  182. disk_size=disk_size,
  183. cluster_config=cluster_config
  184. }
  185. }
  186. if (type == "tumor") {
  187. call TNseq.TNseq as TNseq {
  188. input:
  189. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  190. SENTIEON_LICENSE=SENTIEON_LICENSE,
  191. fasta=fasta,
  192. ref_dir=ref_dir,
  193. corealigner_bam=corealigner.corealigner_bam,
  194. corealigner_bam_index=corealigner.corealigner_bam_index,
  195. tumor_recaled_bam=BQSR.recaled_bam,
  196. tumor_recaled_bam_index=BQSR.recaled_bam_index,
  197. dbsnp=dbsnp,
  198. dbsnp_dir=dbsnp_dir,
  199. set_pon=set_pon,
  200. pon_vcf=pon_vcf,
  201. cosmic_vcf=cosmic_vcf,
  202. cosmic_dir=cosmic_dir,
  203. tumor_name=sample + "_tumor",
  204. normal_name=sample + "_normal",
  205. docker=sentieon_docker,
  206. sample=sample,
  207. disk_size=disk_size,
  208. cluster_config=cluster_config
  209. }
  210. call TNscope.TNscope as TNscope {
  211. input:
  212. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  213. SENTIEON_LICENSE=SENTIEON_LICENSE,
  214. fasta=fasta,
  215. ref_dir=ref_dir,
  216. corealigner_bam=corealigner.corealigner_bam,
  217. corealigner_bam_index=corealigner.corealigner_bam_index,
  218. tumor_recaled_bam=BQSR.recaled_bam,
  219. tumor_recaled_bam_index=BQSR.recaled_bam_index,
  220. dbsnp=dbsnp,
  221. dbsnp_dir=dbsnp_dir,
  222. set_pon=set_pon,
  223. pon_vcf=pon_vcf,
  224. cosmic_vcf=cosmic_vcf,
  225. cosmic_dir=cosmic_dir,
  226. tumor_name=sample + "_tumor",
  227. normal_name=sample + "_normal",
  228. docker=sentieon_docker,
  229. sample=sample,
  230. disk_size=disk_size,
  231. cluster_config=cluster_config
  232. }
  233. }
  234. if (set_annovar && defined(TNscope.TNscope_vcf) && defined(TNseq.TNseq_vcf)){
  235. call annovar.annovar as annovar {
  236. input:
  237. docker=annovar_docker,
  238. database=database,
  239. TNscope_vcf=TNscope.TNscope_vcf,
  240. TNseq_vcf=TNseq.TNseq_vcf,
  241. sample=sample,
  242. cluster_config=cluster_config,
  243. disk_size=disk_size
  244. }
  245. if (set_vcf2maf){
  246. call vcf2maf.vcf2maf as vcf2maf {
  247. input:
  248. docker=maftools_docker,
  249. multianno_TNscope_txt=annovar.multianno_TNscope_txt,
  250. multianno_TNseq_txt=annovar.multianno_TNseq_txt,
  251. sample=sample,
  252. cluster_config=cluster_config,
  253. disk_size=disk_size
  254. }
  255. }
  256. }
  257. }