From f7532528e0f91432b4c42714578d059d0dbe0e76 Mon Sep 17 00:00:00 2001
From: Veronique Legrand <vlegrand@pasteur.fr>
Date: Fri, 29 Apr 2022 12:28:58 +0200
Subject: [PATCH]  work in progress for version 2.0; fixed test; still todo :
 merge tests with those from version 1.9.6

---
 configure.ac                 |  6 ++---
 src/CountMinSketch.hpp       |  5 ++--
 src/Filter.hpp               | 11 ++++-----
 src/ROCKparams.cpp           |  6 +++--
 src/ROCKparams.h             |  4 ++--
 src/unit_test_read_utils.cpp |  3 ++-
 test/rock.sh                 |  2 +-
 test/rock_mem.sh             | 44 +++++++++++++++++++++++-------------
 8 files changed, 47 insertions(+), 34 deletions(-)

diff --git a/configure.ac b/configure.ac
index 37c685a..4a44bdc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,10 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.59)
-AC_INIT(rock, 2.0_beta)
+AC_PREREQ([2.71])
+AC_INIT([rock],[2.0_beta])
 
 
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE()
 
 # Checks for programs.
diff --git a/src/CountMinSketch.hpp b/src/CountMinSketch.hpp
index 24d5d0d..f38eeef 100644
--- a/src/CountMinSketch.hpp
+++ b/src/CountMinSketch.hpp
@@ -42,6 +42,7 @@ typedef struct {
     int kappa_prime;
     int max_filter_size; // max amount of RAM wanted for the CMS.
     float wanted_max_collision_proba;
+    int process_PE_separately;
 } CMSparams;
 
 template <typename T>
@@ -96,12 +97,12 @@ public:
 
     CountMinSketch(int glambda,int gkappa,int gkappa_prime) {
         init(glambda,gkappa,gkappa_prime);
-        unsigned int test=hash64to32(657922856560023,0);
+        //unsigned int test=hash64to32(657922856560023,0);
     }
 
     CountMinSketch(CMSparams parms) {
         init(parms.lambda,parms.kappa,parms.kappa_prime);
-        unsigned int test=hash64to32(657922856560023,0);
+        //unsigned int test=hash64to32(657922856560023,0);
     }
 
     ~CountMinSketch() {
diff --git a/src/Filter.hpp b/src/Filter.hpp
index e439979..943a28b 100644
--- a/src/Filter.hpp
+++ b/src/Filter.hpp
@@ -49,8 +49,7 @@ class Filter {
     ShortCountMinSketch * pShortCMS;
 
     FasqQualThreshold qual_thres;
-    // long nb_bytes_before_fill_CMS,nb_bytes_after_fill_CMS;
-    //long nb_bytes_CMS; //! Number of bytes taken by the underlying CMS.
+    int process_PE_separately;
 
     void getRSS();
 
@@ -66,9 +65,7 @@ public:
         if (parms.kappa<ubytemask) pByteCMS=new ByteCountMinSketch(parms);
         else pShortCMS=new ShortCountMinSketch(parms);
         qual_thres=the_qual_thres;
-        //getRSS();
-        //nb_bytes_CMS=0;
-        //nb_bytes_after_fill_CMS=0;
+        process_PE_separately=parms.process_PE_separately;
     }
 
     void fillCMS(FqBaseBackend* map_id_backend[],int nb_be,int k,srp* io_sr);
@@ -103,7 +100,7 @@ template <typename T> void Filter::underlyingfillCMS(FqBaseBackend* map_id_backe
                 init_DnaSeqStr(&a_seqs[1]);
                 getDNASeqstr(map_id_backend,*it_struct,j,a_seqs,qual_thres.nucl_score_threshold);
                 // decompose dna string into k-mers and turn k_mers into numbers.
-                decomposeReadInKMerNums(read_p, nbrKmerDecompo,k,a_seqs);
+                decomposeReadInKMerNums(read_p, nbrKmerDecompo,k,a_seqs,process_PE_separately);
                 // insert k-mers into CMS if overall read satisfies kappa condition.
                 ret=cms->addRead(nbrKmerDecompo);
                 if (!ret) {
@@ -145,7 +142,7 @@ template <typename T> void Filter::underlyinglowFilterCMS(FqBaseBackend* map_id_
                 init_DnaSeqStr(&a_seqs[1]);
                 getDNASeqstr(map_id_backend,*it_struct,j,a_seqs);
                 // decompose dna string into k-mers and turn k_mers into numbers.
-                decomposeReadInKMerNums(read_p, nbrKmerDecompo,k,a_seqs);
+                decomposeReadInKMerNums(read_p, nbrKmerDecompo,k,a_seqs,process_PE_separately);
                 ret=cms->isBeneathMinKappa(nbrKmerDecompo);
                 if (ret) it_struct->fileid=0;
                 nbrKmerDecompo.single_or_PE_val.clear();
diff --git a/src/ROCKparams.cpp b/src/ROCKparams.cpp
index f46477b..79f0ed9 100755
--- a/src/ROCKparams.cpp
+++ b/src/ROCKparams.cpp
@@ -41,7 +41,7 @@ const int ROCKparams::undef_ext;
 
 void usage(int status) {
 	cout<<endl;
-	cout<<"ROCK 1.9.6                    Copyright (C) 2016-2021 Institut Pasteur"<<endl;
+	cout<<"ROCK 2.0                    Copyright (C) 2016-2022 Institut Pasteur"<<endl;
 	cout<<endl;
 	cout<<"Reducing Over-Covering K-mers within FASTQ file(s)"<<endl;
 	cout<<endl;
@@ -65,6 +65,8 @@ void usage(int status) {
 	cout<<" -f <float> maximum expected false positive probability when computing"<<endl;
 	cout<<"            the optimal number of hashing functions from the number of"<<endl;
 	cout<<"            distinct k-mers specified with option -n (default: 0.05)."<<endl;
+	cout<<" -p         process PE reads separately. This allows the selection of "<<endl;
+	cout<<"            more reads which in some cases gives better assembly results."<<endl;
 	cout<<" -q <int>   sets as valid  only k-mers  made  up  of  nucleotides with"<<endl;
 	cout<<"            Phred score (+33 offset) above this cutoff (default: 0)"<<endl;
 	cout<<" -m <int>   minimum number of  valid k-mer(s) to  consider a read;"<<endl;
@@ -370,7 +372,7 @@ void ROCKparams::initFromMainOptsArgs(int argc,char ** argv) {
             	//cout<<optarg<<endl;
                 nb_k_mers=strtoul(optarg,&t,10);break; // number of distinct k-mers
             case 'p':
-            	process_PE_separately=1;
+            	parms.process_PE_separately=1;
             	break;
             case 'v':
                 verbose_mode=1;
diff --git a/src/ROCKparams.h b/src/ROCKparams.h
index 137a638..31f727c 100755
--- a/src/ROCKparams.h
+++ b/src/ROCKparams.h
@@ -70,7 +70,7 @@ class ROCKparams{
     unsigned long nb_k_mers; // expected number of k-mers in input data if specified by the user.
     int k; // size of the k-mers
     int verbose_mode;
-    int process_PE_separately;
+    // int process_PE_separately;
     std::string input_file,output_file;
 
     std::vector<IO_fq_files> single_files;
@@ -120,7 +120,7 @@ public:
         qual_thres.nucl_score_threshold=k_phred_32;
         qual_thres.k=k;
         verbose_mode=0;
-        process_PE_separately=0;
+        parms.process_PE_separately=0;
         cms_size=0;
         expected_collision_proba=0.0; //! collision probability that is computed at the beginning of ROCK from the expected number of distinct k-mers provided by the user.
         parms.max_filter_size=getNodePhysMemory()/100.0*90-defaultGRPMAXSize; // Prefer not to use all the machine's memory
diff --git a/src/unit_test_read_utils.cpp b/src/unit_test_read_utils.cpp
index af81c08..04e99c6 100644
--- a/src/unit_test_read_utils.cpp
+++ b/src/unit_test_read_utils.cpp
@@ -196,6 +196,7 @@ void test_getReadPEWithNQST() {
 void test_decomposeReadInkMerNums() {
     int k=5;
     ReadProcessor read_p(k);
+    int processPE_separately=1;
     
     T_read_numericValues nbrKmerDecompo;
 
@@ -212,7 +213,7 @@ void test_decomposeReadInkMerNums() {
     strcpy(seq2->fq_record_buf,"@another_fake_stuff\nATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCG\n+\n....@\n");
     seq2->start_idx=20;
     seq2->length=80;
-    decomposeReadInKMerNums(read_p,nbrKmerDecompo,k,a_seqs);
+    decomposeReadInKMerNums(read_p,nbrKmerDecompo,k,a_seqs,processPE_separately);
     assert(nbrKmerDecompo.single_or_PE_val.size()==71+76);
     assert(nbrKmerDecompo.idx_start_PE2==71);
     readNumericValues::iterator it;
diff --git a/test/rock.sh b/test/rock.sh
index 861642e..e7a4b8d 100755
--- a/test/rock.sh
+++ b/test/rock.sh
@@ -67,7 +67,7 @@ echo "doing more checks on options and error messages"
 ../src/rock -C 500 -c 400 -k 10 -l 12 -n 85000000 -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt|grep "options are mutually exclusive">/dev/null || exit 14
 ../src/rock -l 1 -C 500 -c 400 -k 10 -q 3 -m 0  -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "minimum number of valid k-mer for keeping a read must be an integer">/dev/null || exit 15
 ../src/rock -l 1 -C 500 -c 400 -k 10 -q -1 -m 2  -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "q must be">/dev/null || exit 16
-#../src/rock -C 500 -c 400 -k 10 -q 4 -m 2 -p 10 -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "value for -p option must be 0, 1 or 2">/dev/null || exit 17
+#../src/rock -C 500 -c 400 -k 10 -q 4 -m 2 -p 10 -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "p option is a flag. You cannot provide a value for it">/dev/null || exit 17
 #../src/rock -C 500 -c 400 -k 10 -q 4 -m 2 -p 1,5 -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "value for -p option must be 0, 1 or 2">/dev/null || exit 18
 #../src/rock -C 500 -c 400 -k 10 -q 4 -m 2 -p -1 -i ${srcdir}/test/data/iofiles.args/extract_klebsiella_long_reads_100.txt|grep "value for -p option must be 0, 1 or 2">/dev/null || exit 17
 
diff --git a/test/rock_mem.sh b/test/rock_mem.sh
index 1d9b0c0..b856469 100755
--- a/test/rock_mem.sh
+++ b/test/rock_mem.sh
@@ -10,7 +10,7 @@ echo "##########################################################################
 echo "testing high filter"
 
 
-../src/rock -C 100 -c 0 -l 2  -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 101
+../src/rock -C 100 -c 0 -l 2 -p -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 101
 
 # output files should be the same size, contain the same elements but not in the same order.
 nb_PE1=`grep -c "@" ${srcdir}/data/fastq.raw/klebsiella_100_1.fq`
@@ -30,7 +30,7 @@ echo "  "
 echo "##################################################################################"
 echo "testing high filter and -f option"
 
-../src/rock -C 100 -c 0 -l 1 -f 0.05  -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 301
+../src/rock -C 100 -c 0 -l 1 -f 0.05 -p -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 301
 
 # output files should be the same size, contain the same elements but not in the same order.
 nb_PE1=`grep -c "@" ${srcdir}/data/fastq.raw/klebsiella_100_1.fq`
@@ -52,7 +52,7 @@ test $nb_PE2 -eq $nb_PE2_filtered || exit 305
 echo " "
 echo "##################################################################################"
 echo "testing low filter"
-../src/rock -C 100 -c 99 -l 2  -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 106
+../src/rock -C 100 -c 99 -l 2 -p -i ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100.txt -o ${srcdir}/data/iofiles.args/extract_klebsiella_long_reads_100_filtered.txt >/dev/null || exit 106
 
 [ -f "data/fastq.filtered/SRR1222430_1.filtered.fastq" ] || exit 107
 [ -f "data/fastq.filtered/SRR1222430_2.filtered.fastq" ] || exit 108
@@ -67,7 +67,7 @@ test $nb_PE2_filtered -eq 0 || exit 110
 echo " "
 echo "##################################################################################"
 echo "testing that input fastq file names can be provided in command line."
-../src/rock -C 100 -c 1 -l 2  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq >/dev/null || exit 111
+../src/rock -C 100 -c 1 -l 2 -p ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq >/dev/null || exit 111
 
 [ -f "klebsiella_100_1.rock.fq" ] || exit 112
 [ -f "klebsiella_100_2.rock.fq" ] || exit 113
@@ -96,9 +96,9 @@ rm -f "test_single2.rock.fq"|| exit 120
 echo " "
 echo "##################################################################################"
 echo "testing verbose mode"
-../src/rock -C 100 -c 1 -l 2  -v ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq|grep "count-min sketch size (Gb)" >/dev/null || exit 125
+../src/rock -C 100 -c 1 -l 2 -p -v ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq|grep "count-min sketch size (Gb)" >/dev/null || exit 125
 
-../src/rock -C 100 -c 1 -v  -n 1000 ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq|grep "expected false positive proba" >/dev/null || exit 126
+../src/rock -C 100 -c 1 -v -p -n 1000 ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq ${srcdir}/data/unit/test_single.fq ${srcdir}/data/unit/test_single2.fq|grep "expected false positive proba" >/dev/null || exit 126
 
 echo "erasing test result files"
 rm -f "klebsiella_100_1.rock.fq" || exit 127
@@ -126,35 +126,47 @@ expected_diff2="> @SRR1222430.37 37 length=251 \
 > A3>333BFA2FF4GBFFDGGCGED?FGEGGHGFFFEEG?AF13@50>///11B13@@1/>//B0?>////<//B/00??@/--:--.;:C000;:0/0009.-9:.00:-.;9/9...-;.--9@--9:////-9-9..////9/;//;9///.9-..--------..99.9.//////;-;--9-.////://9/9.;.-;-99-.//.;////-;?9;...9-9-----9;-.;.;/.-9.;/99=--;"
 
 mkdir tmp
-../src/rock -C 100 -k 30 -c 1 -l 2  -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 140
+echo "noNQ_Thres"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 140
 
-../src/rock -C 100 -k 30 -c 1 -l 2 -q 2 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 141
+echo "noNQ_Thres_very_low"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -q 2 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 141
 
 ret1=`diff tmp/klebsiella_100_1_very_low_qual_thres.fq tmp/klebsiella_100_1_no_qual_thres.fq|wc -l`
+echo "before exit 142" 
 test $ret1 -eq 0 || exit 142
 ret2=`diff tmp/klebsiella_100_2_very_low_qual_thres.fq tmp/klebsiella_100_2_no_qual_thres.fq|wc -l`
+echo "before exit 143" 
 test $ret2 -eq 0 || exit 143
 
-../src/rock -C 100 -k 30 -c 1 -l 2 -q 12 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_12.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null ||exit 144
+echo "q 12"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -q 12 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_12.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null ||exit 144
 
-../src/rock -C 100 -k 30 -c 1 -l 2 -q 13 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null ||exit 145
+echo "q 13"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -q 13 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null ||exit 145
 
 ret1=`diff tmp/klebsiella_100_1_13_qual_thres.fq tmp/klebsiella_100_1_12_qual_thres.fq|grep -c "@SRR1222430.14"`
+echo "before exit 146" 
 test $ret1 -eq  1 || exit 146
 
 ret1=`diff tmp/klebsiella_100_1_13_qual_thres.fq tmp/klebsiella_100_1_12_qual_thres.fq|grep -c "@SRR1222430.24"`
+echo "before exit 1461"
 test $ret1 -eq  1 || exit 1461
 
 ret2=`diff tmp/klebsiella_100_1_13_qual_thres.fq tmp/klebsiella_100_1_12_qual_thres.fq|grep -c "length"`
+echo "before exit 147"
 test $ret2 -eq  4 || exit 147
 
 ret1=`diff tmp/klebsiella_100_2_13_qual_thres.fq tmp/klebsiella_100_2_12_qual_thres.fq|grep -c "@SRR1222430.14"`
+echo "before exit 148"
 test $ret1 -eq  1 || exit 148
 
 ret1=`diff tmp/klebsiella_100_2_13_qual_thres.fq tmp/klebsiella_100_2_12_qual_thres.fq|grep -c "@SRR1222430.24"`
+echo "before exit 1481"
 test $ret1 -eq  1 || exit 1481
 
 ret2=`diff tmp/klebsiella_100_2_13_qual_thres.fq tmp/klebsiella_100_2_12_qual_thres.fq|grep -c "length"`
+echo "before exit 149"
 test $ret2 -eq  4 || exit 149
 
 rm -fr tmp
@@ -164,10 +176,10 @@ echo "##########################################################################
 echo "testing ROCK with a quality score threshold for nucleotides and minimum number of valid k-mer to keep a read."
 
 mkdir tmp
-echo "../src/rock -C 100 -k 30 -c 1 -l 2 -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
-../src/rock -C 100 -k 30 -c 1 -l 2 -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 150
-echo "../src/rock -C 100 -k 30 -c 1 -l 2 -q 2 -m 5 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
-../src/rock -C 100 -k 30 -c 1 -l 2 -q 2 -m 5 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 151
+echo "../src/rock -C 100 -k 30 -c 1 -p -l 2 -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -o ${srcdir}/data/iofiles.args/output_files_noNQ_Thres.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 150
+echo "../src/rock -C 100 -k 30 -c 1 -p -l 2 -q 2 -m 5 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
+../src/rock -C 100 -k 30 -c 1 -l 2 -p -q 2 -m 5 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_very_low.txt  ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 151
 
 ret1=`diff tmp/klebsiella_100_1_very_low_qual_thres.fq tmp/klebsiella_100_1_no_qual_thres.fq|wc -l`
 test $ret1 -eq 0 || exit 152
@@ -186,7 +198,7 @@ test $ret2 -eq 0 || exit 153
 
 # All reads should be rejected.
 echo "rock -k 30 -C 100 -c 1 -l 2 -q 13 -m 500 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
-../src/rock -k 30 -C 100 -c 1 -l 2 -q 13 -m 500 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 158
+../src/rock -k 30 -C 100 -c 1 -l 2 -q 13 -p -m 500 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 158
 [ -f "tmp/klebsiella_100_1_13_qual_thres.fq" ] || exit 159
 [ -f "tmp/klebsiella_100_2_13_qual_thres.fq" ] || exit 160
 
@@ -211,7 +223,7 @@ test $ret2 -eq 0 || exit 162
 #test $ret1 -eq 400 || exit 162
 
 echo "rock -k 30 -C 100 -c 1 -l 2 -q 13 -m 300 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq"
-../src/rock -k 30 -C 100 -c 1 -l 2 -q 13 -m 300 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 163
+../src/rock -k 30 -C 100 -c 1 -l 2 -q 13 -p -m 300 -o ${srcdir}/data/iofiles.args/output_files_NQ_Thres_13.txt ${srcdir}/data/fastq.raw/klebsiella_100_1.fq,${srcdir}/data/fastq.raw/klebsiella_100_2.fq >/dev/null || exit 163
 
 [ -f "tmp/klebsiella_100_1_13_qual_thres.fq" ] || exit 164
 [ -f "tmp/klebsiella_100_2_13_qual_thres.fq" ] || exit 165
-- 
GitLab