DNA-seq pipeline with Sentieon + Varscan.
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.

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