]> git.donarmstrong.com Git - mothur.git/commitdiff
chimera.slayer debugging
authorpschloss <pschloss>
Thu, 5 May 2011 21:45:48 +0000 (21:45 +0000)
committerpschloss <pschloss>
Thu, 5 May 2011 21:45:48 +0000 (21:45 +0000)
chimeraslayer.cpp
slayer.cpp

index 826f38ba962681e883809c5dcb2711939d205c99..1d22bdfe36f74194d2609c01b956cf0ab8ba67c8 100644 (file)
@@ -782,7 +782,7 @@ int ChimeraSlayer::getChimeras(Sequence* query) {
                                realigner.reAlign(query, parents);
 
                        }
-
+                       
                        //get sequence that were given from maligner results
                        vector<SeqDist> seqs;
                        map<string, float> removeDups;
@@ -792,14 +792,20 @@ int ChimeraSlayer::getChimeras(Sequence* query) {
                        for (int j = 0; j < Results.size(); j++) {
                                float dist = (Results[j].regionEnd - Results[j].regionStart + 1) * Results[j].queryToParentLocal;
                                //only add if you are not a duplicate
-                               itDup = removeDups.find(Results[j].parent);
-                               if (itDup == removeDups.end()) { //this is not duplicate
-                                       removeDups[Results[j].parent] = dist;
-                                       parentNameSeq[Results[j].parent] = Results[j].parentAligned;
-                               }else if (dist > itDup->second) { //is this a stronger number for this parent
-                                       removeDups[Results[j].parent] = dist;
-                                       parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+
+                               if(Results[j].queryToParentLocal >= 90){        //local match has to be over 90% similarity
+                               
+                                       itDup = removeDups.find(Results[j].parent);
+                                       if (itDup == removeDups.end()) { //this is not duplicate
+                                               removeDups[Results[j].parent] = dist;
+                                               parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+                                       }else if (dist > itDup->second) { //is this a stronger number for this parent
+                                               removeDups[Results[j].parent] = dist;
+                                               parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+                                       }
+                               
                                }
+                               
                        }
                        
                        for (itDup = removeDups.begin(); itDup != removeDups.end(); itDup++) {
@@ -809,7 +815,6 @@ int ChimeraSlayer::getChimeras(Sequence* query) {
                                SeqDist member;
                                member.seq = seq;
                                member.dist = itDup->second;
-                               
                                seqs.push_back(member);
                        }
                        
index 877f2414833eb0f54a761fc6f162a4f52e8b5970..61b7b6341c6cfaaf7adf5158cfe5248c59507388 100644 (file)
@@ -18,6 +18,7 @@ string Slayer::getResults(Sequence* query, vector<Sequence*> refSeqs) {
                vector<data_struct> all; all.clear();
                myQuery = *query;
                
+                               
                for (int i = 0; i < refSeqs.size(); i++) {
                
                        for (int j = i+1; j < refSeqs.size(); j++) {
@@ -153,8 +154,8 @@ vector<data_struct> Slayer::runBellerophon(Sequence* q, Sequence* pA, Sequence*
                        float QRA = computePercentID(query, parentA, breakpoint+1, length);
                
                        float LAB = computePercentID(parentA, parentB, 0, breakpoint);
-                       float RAB = computePercentID(parentA, parentB, breakpoint+1, length);
-                                       
+                       float RAB = computePercentID(parentA, parentB, breakpoint+1, length);   
+                       
                        float AB = ((LAB*leftLength) + (RAB*rightLength)) / (float) length;
                        float QA = ((QLA*leftLength) + (QRA*rightLength)) / (float) length;
                        float QB = ((QLB*leftLength) + (QRB*rightLength)) / (float) length;
@@ -168,6 +169,7 @@ vector<data_struct> Slayer::runBellerophon(Sequence* q, Sequence* pA, Sequence*
                        float divR_QLA_QRB = min((QLA_QRB/QA), (QLA_QRB/QB));
                        float divR_QLB_QRA = min((QLB_QRA/QA), (QLB_QRA/QB));
                        
+                       
                        //cout << q->getName() << '\t';
                        //cout << pA->getName() << '\t';
                        //cout << pB->getName() << '\t';
@@ -216,6 +218,7 @@ vector<data_struct> Slayer::runBellerophon(Sequence* q, Sequence* pA, Sequence*
                        }//if
                }//for
                
+               
                return data;
                
        }