From 9e7f628e8a6d66e02553bef330c0efbb702c8b59 Mon Sep 17 00:00:00 2001 From: ExpressionAnalysis Date: Thu, 26 Jan 2017 17:57:16 -0500 Subject: [PATCH] new options for min max and handle 0 length reads --- clipper/fastq-mcf.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/clipper/fastq-mcf.cpp b/clipper/fastq-mcf.cpp index af59e57..a19c1c9 100644 --- a/clipper/fastq-mcf.cpp +++ b/clipper/fastq-mcf.cpp @@ -31,7 +31,7 @@ See "void usage" below for usage. #include "fastq-lib.h" -#define VERSION "1.04.807" +#define VERSION "1.05" #define MAX_ADAPTER_NUM 1000 #define SCANLEN 15 @@ -220,6 +220,8 @@ int main (int argc, char **argv) { int ilv3 = -1; int duplen = 0; int dupskip = 0; + int min_start_trim = 0; + int min_end_trim = 0; bool noexec = 0; bool hompol_filter = 0; bool lowcom_filter = 0; @@ -258,6 +260,8 @@ int main (int argc, char **argv) { {"mate-min-len", 1, 0, 0}, {"homopolymer-pct", 1, 0, 0}, {"lowcomplex-pct", 1, 0, 0}, + {"min-start-trim", 1, 0, 0}, + {"min-end-trim", 1, 0, 0}, {0, 0, 0, 0} }; @@ -275,6 +279,10 @@ int main (int argc, char **argv) { keeponlyclip=1; } else if(!strcmp(oname, "mate-qual-mean")) { qf2_mean=atoi(optarg); + } else if (!strcmp(oname, "min-start-trim")) { + min_start_trim = atoi(optarg); + } else if (!strcmp(oname, "min-end-trim")) { + min_end_trim = atoi(optarg); } else if(!strcmp(oname, "homopolymer-pct")) { hompol_pct=atof(optarg)/100.0; hompol_filter=1; @@ -631,6 +639,10 @@ int main (int argc, char **argv) { --nq; --ns; // don't count newline for read len // skip poor quals/lots of N's when doing sampling (otherwise you'll miss some) + if (ns == 0) { + ++skipped; + continue; + } if ((st.st_size > (sampcnt * 500)) && (skipped < sampcnt) && poorqual(i, ns, s, q)) { ++skipped; continue; @@ -1003,6 +1015,9 @@ int main (int argc, char **argv) { for (f=0;f