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

workflow.wdl 6.7KB

5年前
5年前
5年前
5年前
5年前
5年前
5年前
4年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
4年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
5年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  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. }