X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=readcluster.cpp;h=b6cb71de5fdbb888f4a7c1614987f74cd0bf8b1a;hb=2bb9267aa4b4ecdf8488b06605cc9f3f36fa4332;hp=205581c72ab26bd767a0a4c47fdfcb3d73e124d5;hpb=260ae19c36cb11a53ddc5a75b5e507f8dd8b31d6;p=mothur.git diff --git a/readcluster.cpp b/readcluster.cpp index 205581c..b6cb71d 100644 --- a/readcluster.cpp +++ b/readcluster.cpp @@ -12,7 +12,6 @@ /***********************************************************************/ ReadCluster::ReadCluster(string distfile, float c, string o, bool s){ - globaldata = GlobalData::getInstance(); m = MothurOut::getInstance(); distFile = distfile; cutoff = c; @@ -23,7 +22,7 @@ ReadCluster::ReadCluster(string distfile, float c, string o, bool s){ /***********************************************************************/ -int ReadCluster::read(NameAssignment* nameMap){ +int ReadCluster::read(NameAssignment*& nameMap){ try { if (format == "phylip") { convertPhylip2Column(nameMap); } @@ -44,7 +43,7 @@ int ReadCluster::read(NameAssignment* nameMap){ } /***********************************************************************/ -int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ +int ReadCluster::convertPhylip2Column(NameAssignment*& nameMap){ try { //convert phylip file to column file map rowToName; @@ -61,8 +60,13 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ int square, nseqs; string name; vector 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); @@ -105,7 +109,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ for(int j=0;jcontrol_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; @@ -122,7 +126,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ for(int j=0;jcontrol_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; @@ -144,7 +148,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ if(nameMap == NULL){ list->set(i, name); for(int j=0;jcontrol_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; @@ -159,7 +163,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ 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;jcontrol_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; @@ -183,7 +187,6 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ for(int i=0;ipush_back(matrixNames[i]); } - globaldata->nameMap = nameMap; } @@ -198,7 +201,7 @@ int ReadCluster::convertPhylip2Column(NameAssignment* 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; @@ -207,10 +210,10 @@ int ReadCluster::convertPhylip2Column(NameAssignment* nameMap){ 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; }