pipeline/wdl/statistics.wdl

118 lines
3.3 KiB
Plaintext
Raw Permalink Normal View History

2023-12-28 09:14:58 +08:00
# statistics
2023-12-25 14:06:30 +08:00
2023-12-19 13:37:52 +08:00
task run_statistics {
String name
String output_dir
String rmdupBam
String ref
String bed
2024-01-01 14:25:34 +08:00
command {
2023-12-19 13:37:52 +08:00
if [ ! -d ${output_dir}/qc/${name}_bamdst ];then
mkdir -p ${output_dir}/qc/${name}_bamdst
fi
samtools flagstat -@ 10 ${rmdupBam} >${output_dir}/qc/${name}.rmdup.flagstat
samtools stats --reference ${ref} -t ${bed} -@ 10 ${rmdupBam} > ${output_dir}/qc/${name}.rmdup.stat
bamdst -p ${bed} -o ${output_dir}/qc/${name}_bamdst ${rmdupBam}
qc_stat.py ${output_dir}/qc/${name}.json ${output_dir}/qc/${name}_bamdst/ ${output_dir}/qc/${name}_qc.txt
2023-12-28 09:14:58 +08:00
2023-12-19 13:37:52 +08:00
# InsertAndDepthStat.R \
# ${output_dir}/qc/${name}_InsertAndDepthStat \
# ${output_dir}/qc/${name}_bamdst/insertsize.plot \
# ${output_dir}/qc/${name}_bamdst/depth_distribution.plot
2024-01-01 14:25:34 +08:00
}
2023-12-19 13:37:52 +08:00
}
2024-01-02 11:48:43 +08:00
task run_statistics_umi {
String name
String output_dir
String sortedBam
String rmdupBam
String genecore_json
String ref
String bed
command {
if [ ! -d ${output_dir}/qc/${name}_bamdst ];then
mkdir -p ${output_dir}/qc/${name}_bamdst
mkdir -p ${output_dir}/qc/${name}_sorted_bamdst
fi
samtools flagstat -@ 10 ${rmdupBam} >${output_dir}/qc/${name}.rmdup.flagstat
samtools stats --reference ${ref} -t ${bed} -@ 10 ${rmdupBam} > ${output_dir}/qc/${name}.rmdup.stat
bamdst -p ${bed} -o ${output_dir}/qc/${name}_bamdst ${rmdupBam}
bamdst -p ${bed} -o ${output_dir}/qc/${name}_sorted_bamdst ${sortedBam}
qc_stat_umi.py ${output_dir}/qc/${name}.json ${output_dir}/qc/${name}_bamdst/ ${output_dir}/qc/${name}_sorted_bamdst/ ${genecore_json} ${output_dir}/qc/${name}_qc.txt
# InsertAndDepthStat.R \
# ${output_dir}/qc/${name}_InsertAndDepthStat \
# ${output_dir}/qc/${name}_bamdst/insertsize.plot \
# ${output_dir}/qc/${name}_bamdst/depth_distribution.plot
}
}
2023-12-19 13:37:52 +08:00
workflow statistics {
Boolean run=true
2024-01-02 11:48:43 +08:00
Boolean umi
2023-12-19 13:37:52 +08:00
String tumor
String tumor_rmdup_bam
2024-01-02 11:48:43 +08:00
String tumor_sorted_bam
2023-12-19 13:37:52 +08:00
String? normal
String? normal_rmdup_bam
2024-01-02 11:48:43 +08:00
String genecore_json
2023-12-19 13:37:52 +08:00
String ref
String bed
String output_dir
if (run) {
2024-01-02 11:48:43 +08:00
if (umi) {
call run_statistics_umi as runstatistics_umi_tumor {
input:
name=tumor,
output_dir=output_dir,
rmdupBam=tumor_rmdup_bam,
genecore_json=genecore_json,
sortedBam=tumor_sorted_bam,
ref=ref,
bed=bed
}
}
if (!umi) {
call run_statistics as runstatistics_tumor {
input:
name=tumor,
output_dir=output_dir,
rmdupBam=tumor_rmdup_bam,
ref=ref,
bed=bed
}
2023-12-19 13:37:52 +08:00
}
if (defined(normal)) {
call run_statistics as runstatistics_normal {
input:
name=normal,
output_dir=output_dir,
rmdupBam=normal_rmdup_bam,
ref=ref,
bed=bed
}
}
}
output {
String tumor_bamdst_depth = "${output_dir}/qc/${tumor}_bamdst/depth.tsv.gz"
}
2023-08-29 10:31:06 +08:00
}