]> git.donarmstrong.com Git - mothur.git/blobdiff - splitmatrix.cpp
mods in testing 1.16.0
[mothur.git] / splitmatrix.cpp
index a4e1f98581b9ce947dd53ad016dc347c71c99ffe..80f311dc61cbd8d52342ee55d39c2284b161761d 100644 (file)
@@ -10,6 +10,7 @@
 #include "splitmatrix.h"
 #include "phylotree.h"
 #include "distancecommand.h"
+#include "seqsummarycommand.h"
 
 /***********************************************************************/
 
@@ -24,12 +25,13 @@ SplitMatrix::SplitMatrix(string distfile, string name, string tax, float c, stri
 }
 /***********************************************************************/
 
-SplitMatrix::SplitMatrix(string ffile, string name, string tax, float c, string t, int p, string output){
+SplitMatrix::SplitMatrix(string ffile, string name, string tax, float c, float cu, string t, int p, string output){
        m = MothurOut::getInstance();
        fastafile = ffile;
        namefile = name;
        taxFile = tax;
-       cutoff = c;
+       cutoff = c;  //tax level cutoff
+       distCutoff = cu; //for fasta method if you are creating distance matrix you need a cutoff for that
        method = t;
        processors = p;
        outputDir = output;
@@ -64,6 +66,8 @@ int SplitMatrix::splitDistance(){
         
                if (large)      { splitDistanceLarge(); }
                else            { splitDistanceRAM();   }
+               
+               return 0;
                        
        }
        catch(exception& e) {
@@ -76,7 +80,7 @@ int SplitMatrix::splitDistance(){
 int SplitMatrix::splitClassify(){
        try {
                cutoff = int(cutoff);
-               
+                               
                map<string, int> seqGroup;
                map<string, int>::iterator it;
                map<string, int>::iterator it2;
@@ -181,9 +185,10 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                //process each distance file
                for (int i = 0; i < numGroups; i++) { 
                        
-                       string options = "fasta=" + (fastafile + "." + toString(i) + ".temp") + ", processors=" + toString(processors) + ", cutoff=" + toString(cutoff);
+                       string options = "fasta=" + (fastafile + "." + toString(i) + ".temp") + ", processors=" + toString(processors) + ", cutoff=" + toString(distCutoff);
                        
                        Command* command = new DistanceCommand(options);
+                       
                        command->execute();
                        delete command;
                        
@@ -192,7 +197,7 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                        //remove old names files just in case
                        remove((namefile + "." + toString(i) + ".temp").c_str());
                }
-               
+                       
                singleton = namefile + ".extra.temp";
                ofstream remainingNames;
                m->openOutputFile(singleton, remainingNames);
@@ -222,6 +227,7 @@ int SplitMatrix::createDistanceFilesFromTax(map<string, int>& seqGroup, int numG
                
                for(int i=0;i<numGroups;i++){
                        string tempNameFile = namefile + "." + toString(i) + ".temp";
+                       if (outputDir == "") { outputDir = m->hasPath(fastafile); }
                        string tempDistFile = outputDir + m->getRootName(m->getSimpleName((fastafile + "." + toString(i) + ".temp"))) + "dist";
 
                        //if there are valid distances