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.

workflow_VIP.wdl 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. import "./tasks/BQSR.wdl" as Sentieon_BQSR
  2. import "./tasks/TNseq.wdl" as TNseq
  3. import "./tasks/TNscope.wdl" as TNscope
  4. import "./tasks/manta.wdl" as manta_calling
  5. import "./tasks/strelka.wdl" as strelka_calling
  6. import "./tasks/bcftools.wdl" as bcftools
  7. import "./tasks/bcftools_concat.wdl" as bcftools_concat
  8. import "./tasks/annovar.wdl" as annovar
  9. import "./tasks/Haplotyper.wdl" as Haplotyper
  10. import "./tasks/MSIsensor.wdl" as MSIsensor
  11. import "./tasks/tmb.wdl" as tmb
  12. #VIP客户(只用TNseq进行call)
  13. workflow {{ project_name }} {
  14. #sample info
  15. File? normal_deduped_bam
  16. File? normal_deduped_bam_bai
  17. File? tumor_deduped_bam
  18. File? tumor_deduped_bam_bai
  19. String sample_id
  20. String Seq_platform
  21. #reference fasta
  22. String ref_fasta
  23. File ref_fasta_dir
  24. File annot_gff
  25. File dbsnp_dir
  26. File dbmills_dir
  27. String dbsnp
  28. String db_mills
  29. File germline_resource
  30. File germline_resource_tbi
  31. File annovar_database
  32. File? regions
  33. File baseline
  34. File hg38_CDS
  35. #docker
  36. String docker_fastp
  37. String docker_sentieon
  38. String SENTIEON_LICENSE
  39. String docker_qualimap
  40. String docker_manta
  41. String docker_strelka
  42. String docker_bcftools
  43. String docker_annovar
  44. String docker_tmb
  45. String docker_MSIsensor
  46. #config
  47. String cluster_config
  48. String disk_size
  49. Boolean? fastqc
  50. Boolean bamqc
  51. Boolean Annovar
  52. Boolean AF_filter
  53. if (normal_deduped_bam != ""){
  54. call Sentieon_BQSR.Sentieon_BQSR as Sentieon_BQSR_normal{
  55. input:
  56. ref_dir=ref_fasta_dir,
  57. dbsnp_dir=dbsnp_dir,
  58. dbmills_dir = dbmills_dir,
  59. sample_id=sample_id+'_N',
  60. ref_fasta=ref_fasta,
  61. dbsnp=dbsnp,
  62. db_mills=db_mills,
  63. deduped_bam=normal_deduped_bam,
  64. deduped_bam_index=normal_deduped_bam_bai,
  65. docker=docker_sentieon,
  66. cluster_config=cluster_config,
  67. disk_size=disk_size,
  68. SENTIEON_LICENSE=SENTIEON_LICENSE
  69. }
  70. }
  71. if (tumor_deduped_bam != ""){
  72. call Sentieon_BQSR.Sentieon_BQSR as Sentieon_BQSR_tumor{
  73. input:
  74. ref_dir=ref_fasta_dir,
  75. dbsnp_dir=dbsnp_dir,
  76. dbmills_dir = dbmills_dir,
  77. sample_id=sample_id+'_T',
  78. ref_fasta=ref_fasta,
  79. dbsnp=dbsnp,
  80. db_mills=db_mills,
  81. deduped_bam=tumor_deduped_bam,
  82. deduped_bam_index=tumor_deduped_bam_bai,
  83. docker=docker_sentieon,
  84. cluster_config=cluster_config,
  85. disk_size=disk_size,
  86. SENTIEON_LICENSE=SENTIEON_LICENSE
  87. }
  88. }
  89. call MSIsensor.MSIsensor as MSIsensor {
  90. input:
  91. sample=sample_id,
  92. fasta=ref_fasta,
  93. ref_dir=ref_fasta_dir,
  94. normal_bam=Sentieon_BQSR_normal.recaled_bam,
  95. normal_bam_index=Sentieon_BQSR_normal.recaled_bam_index,
  96. tumor_bam=Sentieon_BQSR_tumor.recaled_bam,
  97. tumor_bam_index=Sentieon_BQSR_tumor.recaled_bam_index,
  98. baseline=baseline,
  99. docker=docker_MSIsensor,
  100. cluster_config="OnDemand bcs.ps.g.large img-ubuntu-vpc",
  101. disk_size=disk_size
  102. }
  103. call Haplotyper.Haplotyper as Haplotyper {
  104. input:
  105. SENTIEON_LICENSE=SENTIEON_LICENSE,
  106. sample=sample_id + '.N',
  107. fasta=ref_fasta,
  108. ref_dir=ref_fasta_dir,
  109. recaled_bam=Sentieon_BQSR_normal.recaled_bam,
  110. recaled_bam_index=Sentieon_BQSR_normal.recaled_bam_index,
  111. dbsnp=dbsnp,
  112. dbsnp_dir=dbsnp_dir,
  113. regions=regions,
  114. docker=docker_sentieon,
  115. disk_size=disk_size,
  116. cluster_config=cluster_config
  117. }
  118. call bcftools.bcftools as Haplotyper_bcftools {
  119. input:
  120. vcf=Haplotyper.vcf,
  121. fasta=ref_fasta,
  122. ref_dir=ref_fasta_dir,
  123. docker=docker_bcftools,
  124. cluster_config="OnDemand bcs.ps.g.large img-ubuntu-vpc",
  125. disk_size=disk_size
  126. }
  127. call TNseq.sentieon_TNseq as sentieon_TNseq{
  128. input:
  129. sample_id = sample_id,
  130. tumor_bam = Sentieon_BQSR_tumor.recaled_bam,
  131. tumor_bam_bai = Sentieon_BQSR_tumor.recaled_bam_index,
  132. normal_bam = Sentieon_BQSR_normal.recaled_bam,
  133. normal_bam_bai = Sentieon_BQSR_normal.recaled_bam_index,
  134. tumor_name = sample_id+'_T',
  135. normal_name = sample_id+'_N',
  136. ref_dir = ref_fasta_dir,
  137. ref_fasta = ref_fasta,
  138. germline_resource = germline_resource,
  139. germline_resource_tbi = germline_resource_tbi,
  140. docker = docker_sentieon,
  141. cluster_config = cluster_config,
  142. disk_size = disk_size,
  143. SENTIEON_LICENSE = SENTIEON_LICENSE
  144. }
  145. call bcftools.bcftools as TNseq_bcftools {
  146. input:
  147. vcf=sentieon_TNseq.vcf,
  148. fasta=ref_fasta,
  149. ref_dir=ref_fasta_dir,
  150. docker=docker_bcftools,
  151. cluster_config="OnDemand bcs.ps.g.large img-ubuntu-vpc",
  152. disk_size=disk_size
  153. }
  154. if (Annovar){
  155. call annovar.ANNOVAR as TNseq_ANNOVAR {
  156. input:
  157. vcf=TNseq_bcftools.norm_vcf,
  158. annovar_database=annovar_database,
  159. docker=docker_annovar,
  160. cluster_config=cluster_config,
  161. disk_size=disk_size
  162. }
  163. call tmb.TMB as TMB{
  164. input:
  165. sample=sample_id,
  166. hg38_CDS=hg38_CDS,
  167. regions=regions,
  168. snpindel_txt=TNseq_ANNOVAR.multianno_txt,
  169. docker=docker_tmb,
  170. cluster_config="OnDemand bcs.ps.g.large img-ubuntu-vpc",
  171. disk_size=disk_size,
  172. AF_filter=AF_filter
  173. }
  174. call annovar.ANNOVAR as Haplotyper_ANNOVAR {
  175. input:
  176. vcf=Haplotyper_bcftools.norm_vcf,
  177. annovar_database=annovar_database,
  178. docker=docker_annovar,
  179. cluster_config=cluster_config,
  180. disk_size=disk_size
  181. }
  182. }
  183. }