pipeline/wdl/msi.wdl

86 lines
1.8 KiB
Plaintext
Executable File

# msi
task msi_single {
String name
String bed
String output_dir
String rmdup_bam
command <<<
if [ ! -d ${output_dir}/msi ];then
mkdir ${output_dir}/msi
fi
msisensor2 msi \
-M /dataseq/jmdna/software/msisensor2/models_hg19_GRCh37 \
-t ${output_dir}/alignment/${name}.rmdup.bam \
-e ${bed} \
-b 10 \
-o ${output_dir}/msi/${name}.msi.txt
>>>
}
task msi_paired {
String bed
String name
String output_dir
String tumor_rmdup_bam
String normal_rmdup_bam
command <<<
if [ ! -d ${output_dir}/msi ];then
mkdir ${output_dir}/msi
fi
msisensor2 msi \
-d /dataseq/jmdna/software/msisensor2/hg19.microsatellites.list \
-n ${normal_rmdup_bam} \
-t ${tumor_rmdup_bam} \
-e ${bed} \
-b 10 \
-o ${output_dir}/msi/${name}.msi.txt
>>>
}
workflow call_msi {
Boolean run=true
String tumor
String tumor_rmdup_bam
String? normal
String? normal_rmdup_bam
String bed
String output_dir
if (run) {
# 单样本
if (!defined(normal)) {
call msi_single {
input:
name=tumor,
output_dir=output_dir,
rmdup_bam=tumor_rmdup_bam,
bed=bed
}
}
# 双样本
if (defined(normal)) {
call msi_paired {
input:
name=tumor,
bed=bed,
output_dir=output_dir,
tumor_rmdup_bam=tumor_rmdup_bam,
normal_rmdup_bam=normal_rmdup_bam
}
}
}
output {
String msi_txt = "${output_dir}/msi/${tumor}.msi.txt"
}
}