]> git.donarmstrong.com Git - mothur.git/blobdiff - chimera.h
changes while testing
[mothur.git] / chimera.h
index f82734675dcbe23f7d38e7465b42d3b6fe4e0239..e187bfc60d8d504d80561d4347f9a838f1ddabee 100644 (file)
--- a/chimera.h
+++ b/chimera.h
@@ -45,10 +45,10 @@ struct data_struct {
 struct data_results {
        vector<data_struct> results;
        string flag;
-       map<int, int> spotMap;
        Sequence trimQuery;
+       //results malignerResults;
        
-       data_results(vector<data_struct> d, string f, map<int, int> s, Sequence t) : results(d), flag(f), spotMap(s), trimQuery(t) {}
+       data_results(vector<data_struct> d, string f, map<int, int> s, Sequence t) : results(d), flag(f), trimQuery(t) {}
        data_results() {}
 };
 /***********************************************************************/
@@ -103,6 +103,12 @@ struct SeqDist {
        float dist;
        int index;
 };
+/***********************************************************************/
+struct SeqCompare {
+       Sequence seq;
+       float dist;
+       int index;
+};
 //********************************************************************************************************************
 //sorts lowest to highest
 inline bool compareRegionStart(results left, results right){
@@ -114,7 +120,11 @@ inline bool compareSeqDist(SeqDist left, SeqDist right){
        return (left.dist < right.dist);        
 } 
 //********************************************************************************************************************
-
+//sorts lowest to highest
+inline bool compareSeqCompare(SeqCompare left, SeqCompare right){
+       return (left.dist < right.dist);        
+} 
+//********************************************************************************************************************
 struct sim {
                string leftParent;
                string rightParent; 
@@ -123,9 +133,9 @@ struct sim {
 };
 
 struct linePair {
-                       unsigned long int start;
-                       unsigned long int end;
-                       linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
+                       unsigned long long start;
+                       unsigned long long end;
+                       linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {}
                        linePair(){}
 };
 
@@ -136,8 +146,8 @@ class Chimera {
 
        public:
        
-               Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; }
-               virtual ~Chimera(){     for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i];  } };
+               Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false;  byGroup = false; }
+               virtual ~Chimera(){     for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i];  } for (int i = 0; i < filteredTemplateSeqs.size(); i++) { delete filteredTemplateSeqs[i];  } };
                virtual bool getUnaligned()                             {       return unaligned;                       }
                virtual int getLength()                                 {   return length;      }
                virtual vector<Sequence*> readSeqs(string);
@@ -147,14 +157,15 @@ class Chimera {
                virtual void printHeader(ostream&){};
                virtual int getChimeras(Sequence*){ return 0; }
                virtual int getChimeras(){ return 0; }
-               virtual Sequence* print(ostream&, ostream&){  return NULL; }
-               virtual Sequence* print(ostream&, ostream&, data_results, data_results) { return NULL; }
+               virtual Sequence print(ostream&, ostream&){  Sequence temp; return temp; }
+               virtual Sequence print(ostream&, ostream&, data_results, data_results) { Sequence temp; return temp; }
                virtual int print(ostream&, ostream&, string){  return 0; }
+               virtual int getNumNoParents(){  return 0; }
                virtual data_results getResults() { data_results results; return results; }
                
                #ifdef USE_MPI
-               virtual Sequence* print(MPI_File&, MPI_File&){  return 0; }
-               virtual Sequence* print(MPI_File&, MPI_File&, data_results, data_results){  return NULL; }
+               virtual Sequence print(MPI_File&, MPI_File&){  Sequence temp; return temp; }
+               virtual Sequence print(MPI_File&, MPI_File&, data_results, data_results, bool&){  Sequence temp; return temp; }
                virtual int print(MPI_File&, MPI_File&, string){  return 0; }
                #endif
                
@@ -162,7 +173,8 @@ class Chimera {
        protected:
                
                vector<Sequence*> templateSeqs;
-               bool filter, unaligned; 
+               vector<Sequence*> filteredTemplateSeqs;
+               bool filter, unaligned, byGroup; 
                int length; 
                string seqMask, filterString, outputDir, templateFileName; 
                Sequence* getSequence(string);  //find sequence from name