+ if (m->control_pressed) { return 0; }
+
+ vector<string> seqNameVector;
+ string bin = list->get(i);
+ m->splitAtComma(bin, seqNameVector);
+
+ numSeqs += seqNameVector.size();
+
+ for(int j=0;j<seqNameVector.size();j++){
+ string seqPairString = "";
+ for(int k=0;k<j;k++){
+ if(seqNameVector[j] < seqNameVector[k]) { seqPairString = seqNameVector[j] + '\t' + seqNameVector[k]; }
+ else { seqPairString = seqNameVector[k] + '\t' + seqNameVector[j]; }
+ seqPairSet.insert(seqPairString);
+ }
+ }
+ }
+
+ return numSeqs;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "SensSpecCommand", "fillSeqPairSet");
+ exit(1);
+ }
+}
+//***************************************************************************************************************
+int SensSpecCommand::process(map<string, int>& seqMap, string label, bool& getCutoff, string& origCutoff){
+ try {
+
+ int lNumSeqs = seqMap.size();
+ int pNumSeqs = 0;
+
+ ifstream phylipFile;
+ m->openInputFile(distFile, phylipFile);
+ phylipFile >> pNumSeqs;
+ if(pNumSeqs != lNumSeqs){ m->mothurOut("numSeq mismatch!\n"); /*m->control_pressed = true;*/ }
+
+ string seqName;
+ double distance;
+ vector<int> otuIndices(lNumSeqs, -1);
+
+ truePositives = 0;
+ falsePositives = 0;
+ trueNegatives = 0;
+ falseNegatives = 0;
+
+ if(getCutoff == 1){
+ if(label != "unique"){
+ origCutoff = label;
+ convert(label, cutoff);
+ if(hard == 0){ cutoff += (0.49 / double(precision)); }
+ }
+ else{
+ origCutoff = "unique";
+ cutoff = 0.0000;
+ }
+ }
+
+ m->mothurOut(label); m->mothurOutEndLine();
+
+ for(int i=0;i<pNumSeqs;i++){
+
+ if (m->control_pressed) { return 0; }
+
+ phylipFile >> seqName;
+ otuIndices[i] = seqMap[seqName];
+
+ for(int j=0;j<i;j++){
+ phylipFile >> distance;