ReadPhylipMatrix::ReadPhylipMatrix(string distFile){
- successOpen = openInputFile(distFile, fileHandle);
+ successOpen = m->openInputFile(distFile, fileHandle);
}
/***********************************************************************/
-void ReadPhylipMatrix::read(NameAssignment* nameMap){
+int ReadPhylipMatrix::read(NameAssignment* nameMap){
try {
float distance;
}
else{
list = new ListVector(nameMap->getListVector());
- if(nameMap->count(name)==0){ mothurOut("Error: Sequence '" + name + "' was not found in the names file, please correct"); mothurOutEndLine(); }
+ if(nameMap->count(name)==0){ m->mothurOut("Error: Sequence '" + name + "' was not found in the names file, please correct"); m->mothurOutEndLine(); }
}
char d;
}
Progress* reading;
-
+
if(square == 0){
reading = new Progress("Reading matrix: ", nseqs * (nseqs - 1) / 2);
int index = 0;
-
+
for(int i=1;i<nseqs;i++){
+ if (m->control_pressed) { fileHandle.close(); delete reading; return 0; }
+
fileHandle >> name;
matrixNames.push_back(name);
+
//there's A LOT of repeated code throughout this method...
if(nameMap == NULL){
list->set(i, name);
for(int j=0;j<i;j++){
+
+ if (m->control_pressed) { delete reading; fileHandle.close(); return 0; }
+
fileHandle >> distance;
+
if (distance == -1) { distance = 1000000; }
+ else if (globaldata->sim) { distance = 1.0 - distance; } //user has entered a sim matrix that we need to convert.
if(distance < cutoff){
PCell value(i, j, distance);
}
else{
- if(nameMap->count(name)==0){ mothurOut("Error: Sequence '" + name + "' was not found in the names file, please correct"); mothurOutEndLine(); }
+ 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<i;j++){
fileHandle >> distance;
+
+ if (m->control_pressed) { delete reading; fileHandle.close(); return 0; }
if (distance == -1) { distance = 1000000; }
+ else if (globaldata->sim) { distance = 1.0 - distance; } //user has entered a sim matrix that we need to convert.
if(distance < cutoff){
PCell value(nameMap->get(matrixNames[i]), nameMap->get(matrixNames[j]), distance);
for(int i=1;i<nseqs;i++){
fileHandle >> name;
matrixNames.push_back(name);
+
+
if(nameMap == NULL){
list->set(i, name);
for(int j=0;j<nseqs;j++){
fileHandle >> distance;
-
+
+ if (m->control_pressed) { fileHandle.close(); delete reading; return 0; }
+
if (distance == -1) { distance = 1000000; }
+ else if (globaldata->sim) { distance = 1.0 - distance; } //user has entered a sim matrix that we need to convert.
if(distance < cutoff && j < i){
PCell value(i, j, distance);
}
else{
- if(nameMap->count(name)==0){ mothurOut("Error: Sequence '" + name + "' was not found in the names file, please correct"); mothurOutEndLine(); }
+ 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++){
fileHandle >> distance;
-
- if (distance == -1) { distance = 1000000; }
+
+ if (m->control_pressed) { fileHandle.close(); delete reading; return 0; }
+
+ if (distance == -1) { distance = 1000000; }
+ else if (globaldata->sim) { distance = 1.0 - distance; } //user has entered a sim matrix that we need to convert.
- if(distance < cutoff && j < i){
+ if(distance < cutoff && j < i){
PCell value(nameMap->get(matrixNames[i]), nameMap->get(matrixNames[j]), distance);
D->addCell(value);
}
}
}
}
+
+ if (m->control_pressed) { fileHandle.close(); delete reading; return 0; }
+
reading->finish();
delete reading;
list->setLabel("0");
fileHandle.close();
- if(nameMap != NULL){
+ /* if(nameMap != NULL){
for(int i=0;i<matrixNames.size();i++){
nameMap->erase(matrixNames[i]);
}
if(nameMap->size() > 0){
//should probably tell them what is missing if we missed something
- mothurOut("missed something\t" + toString(nameMap->size())); mothurOutEndLine();
+ m->mothurOut("missed something\t" + toString(nameMap->size())); m->mothurOutEndLine();
}
- }
+ } */
+
+ return 1;
}
catch(exception& e) {
- errorOut(e, "ReadPhylipMatrix", "read");
+ m->errorOut(e, "ReadPhylipMatrix", "read");
exit(1);
}
}