]> git.donarmstrong.com Git - mothur.git/blobdiff - filterseqscommand.cpp
1.12.1
[mothur.git] / filterseqscommand.cpp
index fada19aeba83054f7d41b42d2827147e86215414..7ab00a7822f7a7fc7ddd1ef0de00d2d24b8c51de 100644 (file)
@@ -28,7 +28,7 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                        OptionParser parser(option);
                        map<string,string> parameters = parser.getParameters();
                        
-                       ValidParameters validParameter;
+                       ValidParameters validParameter("filter.seqs");
                        map<string,string>::iterator it;
                        
                        //check to make sure all parameters are valid for command
@@ -72,11 +72,22 @@ FilterSeqsCommand::FilterSeqsCommand(string option)  {
                                                if (path == "") {       fastafileNames[i] = inputDir + fastafileNames[i];               }
                                        }
 
-                                       int ableToOpen;
                                        ifstream in;
-                                       ableToOpen = openInputFile(fastafileNames[i], in);
+                                       int ableToOpen = openInputFile(fastafileNames[i], in, "noerror");
+                               
+                                       //if you can't open it, try default location
+                                       if (ableToOpen == 1) {
+                                               if (m->getDefaultPath() != "") { //default path is set
+                                                       string tryPath = m->getDefaultPath() + getSimpleName(fastafileNames[i]);
+                                                       m->mothurOut("Unable to open " + fastafileNames[i] + ". Trying default " + tryPath); m->mothurOutEndLine();
+                                                       ableToOpen = openInputFile(tryPath, in, "noerror");
+                                                       fastafileNames[i] = tryPath;
+                                               }
+                                       }
+                                       in.close();
+                                       
                                        if (ableToOpen == 1) { 
-                                               m->mothurOut(fastafileNames[i] + " will be disregarded."); m->mothurOutEndLine(); 
+                                               m->mothurOut("Unable to open " + fastafileNames[i] + ". It will be disregarded."); m->mothurOutEndLine();
                                                //erase from file list
                                                fastafileNames.erase(fastafileNames.begin()+i);
                                                i--;
@@ -247,12 +258,12 @@ int FilterSeqsCommand::filterSequences() {
 #ifdef USE_MPI 
                                int pid, start, end, numSeqsPerProcessor, num; 
                                int tag = 2001;
-                               vector<long>MPIPos;
+                               vector<unsigned long int>MPIPos;
                                                
                                MPI_Status status; 
                                MPI_Comm_size(MPI_COMM_WORLD, &processors); //set processors to the number of mpi processes running
                                MPI_Comm_rank(MPI_COMM_WORLD, &pid); //find out who we are
-                               
+       cout << pid << "is in create filter " << endl;                  
                                MPI_File outMPI;
                                MPI_File tempMPI;
                                MPI_File inMPI;
@@ -382,7 +393,7 @@ int FilterSeqsCommand::filterSequences() {
 }
 #ifdef USE_MPI
 /**************************************************************************************/
-int FilterSeqsCommand::driverMPIRun(int start, int num, MPI_File& inMPI, MPI_File& outMPI, vector<long>& MPIPos) {     
+int FilterSeqsCommand::driverMPIRun(int start, int num, MPI_File& inMPI, MPI_File& outMPI, vector<unsigned long int>& MPIPos) {        
        try {
                string outputString = "";
                int count = 0;
@@ -558,7 +569,7 @@ string FilterSeqsCommand::createFilter() {
 #ifdef USE_MPI 
                                int pid, numSeqsPerProcessor, num; 
                                int tag = 2001;
-                               vector<long> MPIPos;
+                               vector<unsigned long int> MPIPos;
                                
                                MPI_Status status; 
                                MPI_File inMPI; 
@@ -786,7 +797,7 @@ int FilterSeqsCommand::driverCreateFilter(Filters& F, string filename, linePair*
 }
 #ifdef USE_MPI
 /**************************************************************************************/
-int FilterSeqsCommand::MPICreateFilter(int start, int num, Filters& F, MPI_File& inMPI, vector<long>& MPIPos) {        
+int FilterSeqsCommand::MPICreateFilter(int start, int num, Filters& F, MPI_File& inMPI, vector<unsigned long int>& MPIPos) {   
        try {
                
                MPI_Status status;