diff --git a/src/Filter.hpp b/src/Filter.hpp index 5ecea7614bb3ae5f45fb3c32e4f5c17a2fdd6208..5e4bd3484a3e65c883ddd29c5ca38d710d71e4af 100644 --- a/src/Filter.hpp +++ b/src/Filter.hpp @@ -6,6 +6,9 @@ */ #ifndef FILTER_HPP_ #define FILTER_HPP_ +#include <errno.h> +#include <sys/time.h> +#include <sys/resource.h> #include "CountMinSketch.hpp" #include "ReadProcessor.h" diff --git a/src/ROCKparams.cpp b/src/ROCKparams.cpp index 947c64c1caa1794bd88d97426931a28d230b5ac0..813374d640f0d279e4f549930c37e899fa8b5ff1 100644 --- a/src/ROCKparams.cpp +++ b/src/ROCKparams.cpp @@ -222,3 +222,60 @@ int ROCKparams::processInOutFileArgs(const std::vector<string>& v_input_lines,st } return EXIT_SUCCESS; } + +void ROCKparams::initFromMainOptsArgs(int argc,char ** argv) { + int i; + std::vector<string> v_input_lines; + std::vector<string> v_output_lines; + + while((i = getopt(argc, argv, "i:o:l:k:c:C:g:n:v")) != -1) { + switch(i) { + case 'i': + input_file=optarg;break; + case 'c': + parms.kappa_prime=atoi(optarg);break; + case 'h': + usage(EXIT_SUCCESS); break; + case 'o': + output_file=optarg; break; + case 'C': + parms.kappa=atoi(optarg); + if (parms.kappa<=0 || parms.kappa>get_mask<unsigned short>::value) { + cout<<"Bad value for kappa. Must choose kappa so that 0<kappa<="<<get_mask<unsigned short>::value<<endl; + usage(EXIT_FAILURE); + } + break; + case 'l': + parms.lambda = atoi(optarg); + if (parms.lambda<=0) { + cout<<"Bad value for lambda. Choose a value that is >0 or let ROCK choose for you."<<endl; + usage(EXIT_FAILURE); + } + break; + case 'k': + k=atoi(optarg); + if (k<=0 || k>32) { + cout<<"Bad value for k. Must choose k so that 0<k<=32."<<endl; + usage(EXIT_FAILURE); + } + break; + case 'n': + nb_k_mers=atoi(optarg);break; // number of distinct k-mers + case 'g': + // cout<<optarg<<endl; + g=atoi(optarg); + break; + case 'v': + verbose_mode=1; + break; + default: + usage(EXIT_FAILURE); break; } + } + processMainArgs(optind, argc, argv,v_input_lines); + optArgConsistency(input_file,output_file,g,parms,nb_k_mers,v_input_lines); + if (nb_k_mers) { + expected_collision_proba=getCollisionProba(nb_k_mers,parms.lambda); + } + if (v_input_lines.empty() && (loadInOutFileArgs(input_file,output_file,v_input_lines,v_output_lines)==EXIT_FAILURE)) throw EXIT_FAILURE; + if (processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id)!=EXIT_SUCCESS) throw EXIT_FAILURE; + } diff --git a/src/ROCKparams.h b/src/ROCKparams.h index 5448008ea62115fbeddaae8b691afb16d7db8516..a970a5f83c48f3afb59c4bf2a13d4cf5983b4882 100644 --- a/src/ROCKparams.h +++ b/src/ROCKparams.h @@ -42,7 +42,7 @@ class ROCKparams{ void computeLambda(); - void processMainArgs(int optind, const int argc, char ** argv,std::vector<string>& v_input_lines); + void processMainArgs(int optind, int argc, char ** argv,std::vector<string>& v_input_lines); int loadInOutFileArgs(const std::string& input_file,const std::string& output_file,std::vector<string>& v_input_lines,std::vector<string>& v_output_lines); int loadFileArgs(const std::string& afile,std::vector<string>& v_lines); void removePathfromFName(string& FName); @@ -79,62 +79,7 @@ public: - void initFromMainOptsArgs(int argc,char * argv[]) { - int i; - std::vector<string> v_input_lines; - std::vector<string> v_output_lines; - - while((i = getopt(argc, argv, "i:o:l:k:c:C:g:n:v")) != -1) { - switch(i) { - case 'i': - input_file=optarg;break; - case 'c': - parms.kappa_prime=atoi(optarg);break; - case 'h': - usage(EXIT_SUCCESS); break; - case 'o': - output_file=optarg; break; - case 'C': - parms.kappa=atoi(optarg); - if (parms.kappa<=0 || parms.kappa>get_mask<unsigned short>::value) { - cout<<"Bad value for kappa. Must choose kappa so that 0<kappa<="<<get_mask<unsigned short>::value<<endl; - usage(EXIT_FAILURE); - } - break; - case 'l': - parms.lambda = atoi(optarg); - if (parms.lambda<=0) { - cout<<"Bad value for lambda. Choose a value that is >0 or let ROCK choose for you."<<endl; - usage(EXIT_FAILURE); - } - break; - case 'k': - k=atoi(optarg); - if (k<=0 || k>32) { - cout<<"Bad value for k. Must choose k so that 0<k<=32."<<endl; - usage(EXIT_FAILURE); - } - break; - case 'n': - nb_k_mers=atoi(optarg);break; // number of distinct k-mers - case 'g': - // cout<<optarg<<endl; - g=atoi(optarg); - break; - case 'v': - verbose_mode=1; - break; - default: - usage(EXIT_FAILURE); break; } - } - processMainArgs(optind, argc, argv,v_input_lines); - optArgConsistency(input_file,output_file,g,parms,nb_k_mers,v_input_lines); - if (nb_k_mers) { - expected_collision_proba=getCollisionProba(nb_k_mers,parms.lambda); - } - if (v_input_lines.empty() && (loadInOutFileArgs(input_file,output_file,v_input_lines,v_output_lines)==EXIT_FAILURE)) throw EXIT_FAILURE; - if (processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id)!=EXIT_SUCCESS) throw EXIT_FAILURE; - } + void initFromMainOptsArgs(int argc,char ** argv); CMSparams getCMSparams() { return parms;