#include <ctime>
#include <limits>
+#ifdef USE_MPI
+ #include "mpi.h"
+#endif
/***********************************************************************/
#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
int index = dirs.size()-1;
-
+
while((pos = path.rfind("./")) != -1) { //while you don't have a complete path
- if (path[(pos-1)] == '.') { //you want your parent directory ../
+ if (pos == 0) { break; //you are at the end
+ }else if (path[(pos-1)] == '.') { //you want your parent directory ../
path = path.substr(0, pos-1);
index--;
if (index == 0) { break; }
}else if (path[(pos-1)] == '/') { //you want the current working dir ./
path = path.substr(0, pos);
- }else if (pos == 1) { break;
+ }else if (pos == 1) { break; //you are at the end
}else { cout << "cannot resolve path for " << fileName << endl; return fileName; }
}
int index = dirs.size()-1;
while((pos = path.rfind(".\\")) != -1) { //while you don't have a complete path
- if (path[(pos-1)] == '.') { //you want your parent directory ../
+ if (pos == 0) { break; //you are at the end
+ }else if (path[(pos-1)] == '.') { //you want your parent directory ../
path = path.substr(0, pos-1);
index--;
if (index == 0) { break; }
}else if (path[(pos-1)] == '\\') { //you want the current working dir ./
path = path.substr(0, pos);
- }else if (pos == 1) { break;
- }else { cout << "cannot resolve path for " << fileName << endl; return fileName; }
+ }else if (pos == 1) { break; //you are at the end
+ }else { cout << "cannot resolve path for " << fileName << endl; return fileName; }
}
for (int i = index; i >= 0; i--) {
}
/**************************************************************************************************/
-inline string sortFile(string distFile){
+inline string sortFile(string distFile, string outputDir){
try {
+
+ //if (outputDir == "") { outputDir += hasPath(distFile); }
string outfile = getRootName(distFile) + "sorted.dist";
+
//if you can, use the unix sort since its been optimized for years
#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
exit(1);
}
}
+/**************************************************************************************************/
+inline vector<long> setFilePosFasta(string filename, int& num) {
+
+ vector<long> positions;
+ ifstream inFASTA;
+ openInputFile(filename, inFASTA);
+
+ string input;
+ while(!inFASTA.eof()){
+ input = getline(inFASTA); gobble(inFASTA);
+ if (input.length() != 0) {
+ if(input[0] == '>'){ long pos = inFASTA.tellg(); positions.push_back(pos - input.length() - 1); }
+ }
+ }
+ inFASTA.close();
+
+ num = positions.size();
+
+ FILE * pFile;
+ long size;
+
+ //get num bytes in file
+ pFile = fopen (filename.c_str(),"rb");
+ if (pFile==NULL) perror ("Error opening file");
+ else{
+ fseek (pFile, 0, SEEK_END);
+ size=ftell (pFile);
+ fclose (pFile);
+ }
+
+ positions.push_back(size);
+
+ return positions;
+}
+/**************************************************************************************************/
+inline vector<long> setFilePosEachLine(string filename, int& num) {
+
+ vector<long> positions;
+ ifstream in;
+ openInputFile(filename, in);
+
+ string input;
+ while(!in.eof()){
+ long lastpos = in.tellg();
+ input = getline(in); gobble(in);
+ if (input.length() != 0) {
+ long pos = in.tellg();
+ if (pos != -1) { positions.push_back(pos - input.length() - 1); }
+ else { positions.push_back(lastpos); }
+ }
+ }
+ in.close();
+
+ num = positions.size();
+
+ FILE * pFile;
+ long size;
+
+ //get num bytes in file
+ pFile = fopen (filename.c_str(),"rb");
+ if (pFile==NULL) perror ("Error opening file");
+ else{
+ fseek (pFile, 0, SEEK_END);
+ size=ftell (pFile);
+ fclose (pFile);
+ }
+
+ positions.push_back(size);
+
+ return positions;
+}
+
/**************************************************************************************************/
#endif