From fb96fd356d7dba7b88b9eedc10fd4f3ede3a4f9d Mon Sep 17 00:00:00 2001 From: chaopower Date: Tue, 2 Jan 2024 11:48:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E6=B6=B2qc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pipeline.wdl | 3 +++ wdl/alignment.wdl | 2 ++ wdl/statistics.wdl | 65 +++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/pipeline.wdl b/pipeline.wdl index d9a4b81..09a6236 100644 --- a/pipeline.wdl +++ b/pipeline.wdl @@ -69,9 +69,12 @@ workflow pipeline { input: run=catecode['addAlignment'], tumor=tumor, + umi=umi, tumor_rmdup_bam=alignment.tumor_rmdup_bam, + tumor_sorted_bam=alignment.tumor_sorted_bam, normal=normal, normal_rmdup_bam=alignment.normal_rmdup_bam, + genecore_json=alignment.genecore_json, ref=ref, bed=bed, output_dir=workdir diff --git a/wdl/alignment.wdl b/wdl/alignment.wdl index f741df9..d53d89c 100755 --- a/wdl/alignment.wdl +++ b/wdl/alignment.wdl @@ -48,6 +48,7 @@ task markduplicates_genecore { output { String rmdup_bam = "${output_dir}/alignment/${name}.rmdup.bam" + String genecore_json = "${output_dir}/alignment/${name}_gencore.json" } } @@ -202,5 +203,6 @@ workflow alignment { String normal_sorted_bam = "${output_dir}/alignment/${normal}.sorted.bam" String normal_rmdup_bam = "${output_dir}/alignment/${normal}.rmdup.bam" String normal_pileup = "${output_dir}/alignment/${normal}.pileup" + String genecore_json = "${output_dir}/alignment/${name}_gencore.json" } } \ No newline at end of file diff --git a/wdl/statistics.wdl b/wdl/statistics.wdl index 09435a6..fa1c721 100755 --- a/wdl/statistics.wdl +++ b/wdl/statistics.wdl @@ -26,27 +26,78 @@ task run_statistics { } } +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 + } +} + workflow statistics { Boolean run=true + Boolean umi + String tumor String tumor_rmdup_bam + String tumor_sorted_bam String? normal String? normal_rmdup_bam + String genecore_json + String ref String bed String output_dir if (run) { - call run_statistics as runstatistics_tumor { - input: - name=tumor, - output_dir=output_dir, - rmdupBam=tumor_rmdup_bam, - ref=ref, - bed=bed + 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 + } } if (defined(normal)) {