]> git.donarmstrong.com Git - mothur.git/blobdiff - chimeraslayer.cpp
working on chimera.perseus. made removeConfidences function smarter. Fixed bug in...
[mothur.git] / chimeraslayer.cpp
index 9da0d3c522526a7fb76720aef8a38c83fab11814..458e89d075f0f6044158cfcc6b1b9daee24fc2f7 100644 (file)
@@ -14,7 +14,7 @@
 
 //***************************************************************************************************************
 ChimeraSlayer::ChimeraSlayer(string file, string temp, bool trim, string mode, int k, int ms, int mms, int win, float div, 
-int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int numw, bool r, string blas) : Chimera()  {         
+int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int numw, bool r, string blas, int tid) : Chimera()  {        
        try {
                fastafile = file;
                templateFileName = temp; templateSeqs = readSeqs(temp);
@@ -36,6 +36,7 @@ int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int num
                trimChimera = trim;
                numNoParents = 0;
                blastlocation = blas;
+               threadID = tid;
        
                doPrep();
        }
@@ -47,7 +48,7 @@ int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int num
 //***************************************************************************************************************
 //template=self
 ChimeraSlayer::ChimeraSlayer(string file, string temp, bool trim, map<string, int>& prior, string mode, int k, int ms, int mms, int win, float div, 
-                                                        int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int numw, bool r, string blas) : Chimera()  {         
+                                                        int minsim, int mincov, int minbs, int minsnp, int par, int it, int inc, int numw, bool r, string blas, int tid) : Chimera()  {        
        try {
                fastafile = file; templateSeqs = readSeqs(fastafile);
                templateFileName = temp; 
@@ -70,11 +71,12 @@ ChimeraSlayer::ChimeraSlayer(string file, string temp, bool trim, map<string, in
                priority = prior;
                numNoParents = 0;
                blastlocation = blas;
+               threadID = tid;
                
                createFilter(templateSeqs, 0.0); //just removed columns where all seqs have a gap
                
                if (searchMethod == "distance") { 
-                       createFilter(templateSeqs, 0.0); //just removed columns where all seqs have a gap
+                       //createFilter(templateSeqs, 0.0); //just removed columns where all seqs have a gap
                        
                        //run filter on template copying templateSeqs into filteredTemplateSeqs
                        for (int i = 0; i < templateSeqs.size(); i++) {  
@@ -218,7 +220,7 @@ int ChimeraSlayer::doPrep() {
                }else if (searchMethod == "blast") {
                
                        //generate blastdb
-                       databaseLeft = new BlastDB(m->getRootName(m->getSimpleName(fastafile)), -1.0, -1.0, 1, -3, blastlocation);
+                       databaseLeft = new BlastDB(m->getRootName(m->getSimpleName(fastafile)), -1.0, -1.0, 1, -3, blastlocation, threadID);
                        
                        if (m->control_pressed) { return 0; }
 
@@ -332,7 +334,7 @@ vector<Sequence*> ChimeraSlayer::getTemplate(Sequence q, vector<Sequence*>& user
                }else if (searchMethod == "blast") {
                        
                        //generate blastdb
-                       databaseLeft = new BlastDB(m->getRootName(m->getSimpleName(templateFileName)), -1.0, -1.0, 1, -3, blastlocation);
+                       databaseLeft = new BlastDB(m->getRootName(m->getSimpleName(templateFileName)), -1.0, -1.0, 1, -3, blastlocation, threadID);
                        
                        if (m->control_pressed) { return userTemplate; }
 
@@ -380,7 +382,7 @@ Sequence ChimeraSlayer::print(ostream& out, ostream& outAcc) {
                        
                        if (chimeraFlag == "yes") {     
                                if ((chimeraResults[0].bsa >= minBS) || (chimeraResults[0].bsb >= minBS)) {
-                                       m->mothurOut(querySeq.getName() + "\tyes"); m->mothurOutEndLine();
+                                       m->mothurOut(toString(threadID) +"\t"+ querySeq.getName() + "\tyes"); m->mothurOutEndLine();
                                        outAcc << querySeq.getName() << endl;
                                        
                                        if (templateFileName == "self") {  chimericSeqs.insert(querySeq.getName()); }