From b69fd06e8106f05be50cbeccf2c4ec4f03d86848 Mon Sep 17 00:00:00 2001 From: frankyan Date: Thu, 16 May 2019 14:08:13 -0700 Subject: [PATCH 1/4] fix QC metric bug Correct the calcualteion of the number in the 3rd row of pipelineStats log file. --- src/imargi_parse.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/imargi_parse.sh b/src/imargi_parse.sh index 448ae8c..70ede3e 100755 --- a/src/imargi_parse.sh +++ b/src/imargi_parse.sh @@ -50,7 +50,7 @@ while getopts :r:c:R:b:o:Q:G:O:M:d:D:t:h opt; do done # threshold of: (#paired_unique_mapping + #single_side_unique_mapping) / #total_read_pairs -pass_mapping=0.5 +pass_mapping=0.3 # threshold of: #final_valid_pairs / #paired_unique_mapping pass_valid=0.5 @@ -208,16 +208,16 @@ awk -v pass_mapping=$pass_mapping -v pass_valid=$pass_valid \ if(FNR<9){count[$1]=$2}else{exit}; }END{ qc_mapping=(count_raw["total_single_sided_mapped"] + count_raw["total_mapped"])/count_raw["total"]; - qc_valid=count["total"]/count_raw["total_mapped"]; + qc_valid=count["total"]/count_raw["total_nodups"]; if(qc_mapping >= pass_mapping && qc_valid >= pass_valid){ print "Sequence mapping QC\tpassed"; }else{print "Sequence mapping QC\tfailed"}; print "(#unique_mapped_pairs + #single_side_unique_mapped)/#total_read_pairs", qc_mapping; - print "#total_valid_interactions/#unique_mapped_pairs", qc_valid; + print "#total_valid_interactions/#non_dup_unique_mapped_pairs", qc_valid; print "total_read_pairs", count_raw["total"]; print "single_side_unique_mapped", count_raw["total_single_sided_mapped"]; print "unique_mapped_pairs", count_raw["total_mapped"]; - print "non_dup_unique_mapped_paris", count_raw["total_nodups"]; + print "non_dup_unique_mapped_pairs", count_raw["total_nodups"]; print "total_valid_interactions", count["total"]; print "inter_chr", count["trans"]; print "intra_chr", count["cis"]; From b3c81bc322d80f98d67e7b417882dd70845588ec Mon Sep 17 00:00:00 2001 From: frankyan Date: Thu, 16 May 2019 14:29:36 -0700 Subject: [PATCH 2/4] fix typo --- src/imargi_parse.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/imargi_parse.sh b/src/imargi_parse.sh index 70ede3e..68aabbf 100755 --- a/src/imargi_parse.sh +++ b/src/imargi_parse.sh @@ -213,11 +213,11 @@ awk -v pass_mapping=$pass_mapping -v pass_valid=$pass_valid \ print "Sequence mapping QC\tpassed"; }else{print "Sequence mapping QC\tfailed"}; print "(#unique_mapped_pairs + #single_side_unique_mapped)/#total_read_pairs", qc_mapping; - print "#total_valid_interactions/#non_dup_unique_mapped_pairs", qc_valid; + print "#total_valid_interactions/#nondup_unique_mapped_pairs", qc_valid; print "total_read_pairs", count_raw["total"]; print "single_side_unique_mapped", count_raw["total_single_sided_mapped"]; print "unique_mapped_pairs", count_raw["total_mapped"]; - print "non_dup_unique_mapped_pairs", count_raw["total_nodups"]; + print "nondup_unique_mapped_pairs", count_raw["total_nodups"]; print "total_valid_interactions", count["total"]; print "inter_chr", count["trans"]; print "intra_chr", count["cis"]; From fd92b9df1ac8f7d7dc64a61f82000889b0c59648 Mon Sep 17 00:00:00 2001 From: frankyan Date: Thu, 16 May 2019 16:26:17 -0700 Subject: [PATCH 3/4] fix bug in report QC metric 2 --- src/Dockerfile | 3 ++- src/imargi_parse.sh | 15 +++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Dockerfile b/src/Dockerfile index 7dcc206..853d3e3 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -37,6 +37,7 @@ ENV LC_ALL en_US.UTF-8 ENV PYTHONUNBUFFERED=0 COPY ./imargi_* /usr/local/bin/ -RUN chmod +x /usr/local/bin/imargi_* && mkdir /imargi +RUN chmod +x /usr/local/bin/imargi_* && mkdir /imargi && \ + sed -i -e 's/^\/repository\/user\/main\/public\/root = "$(HOME)\/ncbi\/public"/\/repository\/user\/main\/public\/root = "\/imargi"/' /usr/local/bin/ncbi/default.kfg WORKDIR /imargi diff --git a/src/imargi_parse.sh b/src/imargi_parse.sh index 68aabbf..4d204f3 100755 --- a/src/imargi_parse.sh +++ b/src/imargi_parse.sh @@ -50,9 +50,11 @@ while getopts :r:c:R:b:o:Q:G:O:M:d:D:t:h opt; do done # threshold of: (#paired_unique_mapping + #single_side_unique_mapping) / #total_read_pairs -pass_mapping=0.3 +pass_mapping=0.2 +warn_mapping=0.5 # threshold of: #final_valid_pairs / #paired_unique_mapping -pass_valid=0.5 +pass_valid=0.25 +warn_valid=0.5 [ -z "$ref_name" ] && echo "Error!! Please provide reference genome name with -r" && usage [ ! -f "$chromsize" ] && echo "Error!! Chomosome size file not exist: "$chromsize && usage @@ -199,7 +201,8 @@ pairtools stats \ rm $all_pairs -awk -v pass_mapping=$pass_mapping -v pass_valid=$pass_valid \ +awk -v pass_mapping=$pass_mapping -v warn_mapping=$warn_mapping \ + -v pass_valid=$pass_valid -v warn_valid=$warn_valid \ 'BEGIN{ FS="\t"; OFS="\t" }FNR==NR{ @@ -210,7 +213,11 @@ awk -v pass_mapping=$pass_mapping -v pass_valid=$pass_valid \ qc_mapping=(count_raw["total_single_sided_mapped"] + count_raw["total_mapped"])/count_raw["total"]; qc_valid=count["total"]/count_raw["total_nodups"]; if(qc_mapping >= pass_mapping && qc_valid >= pass_valid){ - print "Sequence mapping QC\tpassed"; + warn_message=""; + if(qc_mapping < warn_mapping || qc_valid < warn_valid){ + warn_message=" (The sequence mapping rates are lower than average. Experimental repetition or improvements are recommended.)" + }; + print "Sequence mapping QC\tpassed"warn_message; }else{print "Sequence mapping QC\tfailed"}; print "(#unique_mapped_pairs + #single_side_unique_mapped)/#total_read_pairs", qc_mapping; print "#total_valid_interactions/#nondup_unique_mapped_pairs", qc_valid; From 244eb3af98742e2dcc63a8736a15c61c3414f9b9 Mon Sep 17 00:00:00 2001 From: frankyan Date: Thu, 16 May 2019 17:02:36 -0700 Subject: [PATCH 4/4] fix typo --- src/imargi_parse.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/imargi_parse.sh b/src/imargi_parse.sh index 4d204f3..46ab899 100755 --- a/src/imargi_parse.sh +++ b/src/imargi_parse.sh @@ -50,7 +50,7 @@ while getopts :r:c:R:b:o:Q:G:O:M:d:D:t:h opt; do done # threshold of: (#paired_unique_mapping + #single_side_unique_mapping) / #total_read_pairs -pass_mapping=0.2 +pass_mapping=0.25 warn_mapping=0.5 # threshold of: #final_valid_pairs / #paired_unique_mapping pass_valid=0.25