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