Переглянути джерело

添加 'workflow_VIP.wdl'

master
meng 2 роки тому
джерело
коміт
824c7aa3b9
1 змінених файлів з 203 додано та 0 видалено
  1. +203
    -0
      workflow_VIP.wdl

+ 203
- 0
workflow_VIP.wdl Переглянути файл

@@ -0,0 +1,203 @@
import "./tasks/BQSR.wdl" as Sentieon_BQSR
import "./tasks/TNseq.wdl" as TNseq
import "./tasks/TNscope.wdl" as TNscope
import "./tasks/manta.wdl" as manta_calling
import "./tasks/strelka.wdl" as strelka_calling
import "./tasks/bcftools.wdl" as bcftools
import "./tasks/bcftools_concat.wdl" as bcftools_concat
import "./tasks/annovar.wdl" as annovar
import "./tasks/Haplotyper.wdl" as Haplotyper
import "./tasks/MSIsensor.wdl" as MSIsensor
import "./tasks/tmb.wdl" as tmb

#VIP客户(只用TNseq进行call)
workflow {{ project_name }} {
#sample info
File? normal_deduped_bam
File? normal_deduped_bam_bai
File? tumor_deduped_bam
File? tumor_deduped_bam_bai
String sample_id
String Seq_platform
#reference fasta
String ref_fasta
File ref_fasta_dir
File annot_gff
File dbsnp_dir
File dbmills_dir
String dbsnp
String db_mills
File germline_resource
File germline_resource_tbi
File annovar_database
File? regions
File baseline
File hg38_CDS



#docker
String docker_fastp
String docker_sentieon
String SENTIEON_LICENSE
String docker_qualimap
String docker_manta
String docker_strelka
String docker_bcftools
String docker_annovar
String docker_tmb
String docker_MSIsensor

#config
String cluster_config
String disk_size
Boolean? fastqc
Boolean bamqc
Boolean Annovar
Boolean AF_filter


if (normal_deduped_bam != ""){

call Sentieon_BQSR.Sentieon_BQSR as Sentieon_BQSR_normal{
input:
ref_dir=ref_fasta_dir,
dbsnp_dir=dbsnp_dir,
dbmills_dir = dbmills_dir,
sample_id=sample_id+'_N',
ref_fasta=ref_fasta,
dbsnp=dbsnp,
db_mills=db_mills,
deduped_bam=normal_deduped_bam,
deduped_bam_index=normal_deduped_bam_bai,
docker=docker_sentieon,
cluster_config=cluster_config,
disk_size=disk_size,
SENTIEON_LICENSE=SENTIEON_LICENSE
}

}

if (tumor_deduped_bam != ""){

call Sentieon_BQSR.Sentieon_BQSR as Sentieon_BQSR_tumor{
input:
ref_dir=ref_fasta_dir,
dbsnp_dir=dbsnp_dir,
dbmills_dir = dbmills_dir,
sample_id=sample_id+'_T',
ref_fasta=ref_fasta,
dbsnp=dbsnp,
db_mills=db_mills,
deduped_bam=tumor_deduped_bam,
deduped_bam_index=tumor_deduped_bam_bai,
docker=docker_sentieon,
cluster_config=cluster_config,
disk_size=disk_size,
SENTIEON_LICENSE=SENTIEON_LICENSE
}

}

call MSIsensor.MSIsensor as MSIsensor {
input:
sample=sample_id,
fasta=ref_fasta,
ref_dir=ref_fasta_dir,
normal_bam=Sentieon_BQSR_normal.recaled_bam,
normal_bam_index=Sentieon_BQSR_normal.recaled_bam_index,
tumor_bam=Sentieon_BQSR_tumor.recaled_bam,
tumor_bam_index=Sentieon_BQSR_tumor.recaled_bam_index,
baseline=baseline,
docker=docker_MSIsensor,
cluster_config=cluster_config,
disk_size=disk_size
}


call Haplotyper.Haplotyper as Haplotyper {
input:
SENTIEON_LICENSE=SENTIEON_LICENSE,
sample=sample_id + '.N',
fasta=ref_fasta,
ref_dir=ref_fasta_dir,
recaled_bam=Sentieon_BQSR_normal.recaled_bam,
recaled_bam_index=Sentieon_BQSR_normal.recaled_bam_index,
dbsnp=dbsnp,
dbsnp_dir=dbsnp_dir,
regions=regions,
docker=docker_sentieon,
disk_size=disk_size,
cluster_config=cluster_config
}

call bcftools.bcftools as Haplotyper_bcftools {
input:
vcf=Haplotyper.vcf,
fasta=ref_fasta,
ref_dir=ref_fasta_dir,
docker=docker_bcftools,
cluster_config=cluster_config,
disk_size=disk_size
}

call TNseq.sentieon_TNseq as sentieon_TNseq{
input:
sample_id = sample_id,
tumor_bam = Sentieon_BQSR_tumor.recaled_bam,
tumor_bam_bai = Sentieon_BQSR_tumor.recaled_bam_index,
normal_bam = Sentieon_BQSR_normal.recaled_bam,
normal_bam_bai = Sentieon_BQSR_normal.recaled_bam_index,
tumor_name = sample_id+'_T',
normal_name = sample_id+'_N',

ref_dir = ref_fasta_dir,
ref_fasta = ref_fasta,
germline_resource = germline_resource,
germline_resource_tbi = germline_resource_tbi,

docker = docker_sentieon,
cluster_config = cluster_config,
disk_size = disk_size,
SENTIEON_LICENSE = SENTIEON_LICENSE
}



call bcftools.bcftools as TNseq_bcftools {
input:
vcf=sentieon_TNseq.vcf,
fasta=ref_fasta,
ref_dir=ref_fasta_dir,
docker=docker_bcftools,
cluster_config=cluster_config,
disk_size=disk_size
}



if (Annovar){
call annovar.ANNOVAR as TNseq_ANNOVAR {
input:
vcf=TNseq_bcftools.norm_vcf,
annovar_database=annovar_database,
docker=docker_annovar,
cluster_config=cluster_config,
disk_size=disk_size
}

call tmb.TMB as TMB{
input:
sample=sample_id,
hg38_CDS=hg38_CDS,
regions=regions,
snpindel_txt=TNseq_ANNOVAR.multianno_txt,
docker=docker_tmb,
cluster_config=cluster_config,
disk_size=disk_size,
AF_filter=AF_filter
}


}
}

Завантаження…
Відмінити
Зберегти