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
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--;
vertical = validParameter.validFile(parameters, "vertical", false);
if (vertical == "not found") {
- if ((hard == "") && (trump == '*')) { vertical = "T"; } //you have not given a hard file or set the trump char.
+ if ((hard == "") && (trump == '*') && (soft == 0)) { vertical = "T"; } //you have not given a hard file or set the trump char.
else { vertical = "F"; }
}
#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;
}
#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;
#ifdef USE_MPI
int pid, numSeqsPerProcessor, num;
int tag = 2001;
- vector<long> MPIPos;
+ vector<unsigned long int> MPIPos;
MPI_Status status;
MPI_File inMPI;
}
#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;
int FilterSeqsCommand::setLines(string filename) {
try {
- vector<long int> positions;
+ vector<unsigned long int> positions;
bufferSizes.clear();
ifstream inFASTA;
input = getline(inFASTA);
if (input.length() != 0) {
- if(input[0] == '>'){ long int pos = inFASTA.tellg(); positions.push_back(pos - input.length() - 1); }
+ if(input[0] == '>'){ unsigned long int pos = inFASTA.tellg(); positions.push_back(pos - input.length() - 1); }
}
}
inFASTA.close();
int numFastaSeqs = positions.size();
FILE * pFile;
- long size;
+ unsigned long int size;
//get num bytes in file
pFile = fopen (filename.c_str(),"rb");
for (int i = 0; i < processors; i++) {
- long int startPos = positions[ i * numSeqsPerProcessor ];
+ unsigned long int startPos = positions[ i * numSeqsPerProcessor ];
if(i == processors - 1){
numSeqsPerProcessor = numFastaSeqs - i * numSeqsPerProcessor;
bufferSizes.push_back(size - startPos);
}else{
- long int myEnd = positions[ (i+1) * numSeqsPerProcessor ];
+ unsigned long int myEnd = positions[ (i+1) * numSeqsPerProcessor ];
bufferSizes.push_back(myEnd-startPos);
}
lines.push_back(new linePair(startPos, numSeqsPerProcessor));