選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

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