/***********************************************************************/
ReadCluster::ReadCluster(string distfile, float c, string o, bool s){
- globaldata = GlobalData::getInstance();
m = MothurOut::getInstance();
distFile = distfile;
cutoff = c;
/***********************************************************************/
-int ReadCluster::read(NameAssignment* nameMap){
+int ReadCluster::read(NameAssignment*& nameMap){
try {
if (format == "phylip") { convertPhylip2Column(nameMap); }
}
/***********************************************************************/
-int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){
+int ReadCluster::convertPhylip2Column(NameAssignment*& nameMap){
try {
//convert phylip file to column file
map<int, string> rowToName;
int square, nseqs;
string name;
vector<string> matrixNames;
-
- in >> nseqs >> name;
+
+ string numTest;
+ in >> numTest >> name;
+
+ if (!m->isContainingOnlyDigits(numTest)) { m->mothurOut("[ERROR]: expected a number and got " + numTest + ", quitting."); m->mothurOutEndLine(); exit(1); }
+ else { convert(numTest, nseqs); }
+
rowToName[0] = name;
matrixNames.push_back(name);
for(int j=0;j<i;j++){
- if (m->control_pressed) { in.close(); out.close(); remove(tempFile.c_str()); return 0; }
+ if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(tempFile); return 0; }
in >> distance;
for(int j=0;j<i;j++){
- if (m->control_pressed) { in.close(); out.close(); remove(tempFile.c_str()); return 0; }
+ if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(tempFile); return 0; }
in >> distance;
if(nameMap == NULL){
list->set(i, name);
for(int j=0;j<nseqs;j++){
- if (m->control_pressed) { in.close(); out.close(); remove(tempFile.c_str()); return 0; }
+ if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(tempFile); return 0; }
in >> distance;
if(nameMap->count(name)==0){ m->mothurOut("Error: Sequence '" + name + "' was not found in the names file, please correct"); m->mothurOutEndLine(); }
for(int j=0;j<nseqs;j++){
- if (m->control_pressed) { in.close(); out.close(); remove(tempFile.c_str()); return 0; }
+ if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(tempFile); return 0; }
in >> distance;
for(int i=0;i<matrixNames.size();i++){
nameMap->push_back(matrixNames[i]);
}
- globaldata->nameMap = nameMap;
}
float dist;
while (in2) {
- if (m->control_pressed) { in2.close(); out2.close(); remove(tempFile.c_str()); remove(outputFile.c_str()); return 0; }
+ if (m->control_pressed) { in2.close(); out2.close(); m->mothurRemove(tempFile); m->mothurRemove(outputFile); return 0; }
in2 >> first >> second >> dist;
out2 << rowToName[first] << '\t' << rowToName[second] << '\t' << dist << endl;
in2.close();
out2.close();
- remove(tempFile.c_str());
+ m->mothurRemove(tempFile);
distFile = outputFile;
- if (m->control_pressed) { remove(outputFile.c_str()); }
+ if (m->control_pressed) { m->mothurRemove(outputFile); }
return 0;
}