]> git.donarmstrong.com Git - mothur.git/blobdiff - chimeraslayer.h
working on pam
[mothur.git] / chimeraslayer.h
index cac96eb158a721ac5fe3d5c68a82d61979fd99e8..7bf663afeadeb3517daf4f9bfa25135fbf872cab 100644 (file)
@@ -15,6 +15,8 @@
 #include "maligner.h"
 #include "slayer.h"
 
+
+
 //***********************************************************************/
 //This class was modeled after the chimeraSlayer written by the Broad Institute
 /***********************************************************************/
 class ChimeraSlayer : public Chimera {
        
        public:
-               ChimeraSlayer(string, string, bool, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
-               ChimeraSlayer(string, string, bool, string, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
+               ChimeraSlayer(string, string, bool, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool, string, int);
+               ChimeraSlayer(string, string, bool, map<string, int>&, string,  int, int, int, int, float, int, int, int, int, int, int, int, int, bool, string, int);
+               ChimeraSlayer(string, string, bool, map<string, int>&, string,  int, int, int, int, float, int, int, int, int, int, int, int, int, bool, string, int, bool);
 
                ~ChimeraSlayer();
                
                int getChimeras(Sequence*);
-               Sequence* print(ostream&, ostream&);
-               Sequence* print(ostream&, ostream&, data_results, data_results);
+               Sequence print(ostream&, ostream&);
+               Sequence print(ostream&, ostream&, data_results, data_results);
                void printHeader(ostream&);
                int doPrep();
+               int getNumNoParents() { return numNoParents; }
                data_results getResults() { return printResults; }
                
                #ifdef USE_MPI
-               Sequence* print(MPI_File&, MPI_File&);
-               Sequence* print(MPI_File&, MPI_File&, data_results, data_results);
+               Sequence print(MPI_File&, MPI_File&);
+               Sequence print(MPI_File&, MPI_File&, data_results, data_results, bool&);
                #endif
                
        private:
-               Sequence* querySeq;
+               Sequence querySeq;
                Sequence trimQuery;
-               DeCalculator* decalc;
-               map<int, int>  spotMap;
+               DeCalculator decalc;
                Database* databaseRight;
                Database* databaseLeft;
-               vector<Sequence*> userTemplate;  //when template=self, the query file is sorted from most abundance to least abundant
-                                                                                //userTemplate grows as the query file is processed by adding sequences that are not chimeric
-               set<string> namesOfChimericSeqs; //only used when template=self
-               
+               map<string, int> priority; //for template=self, seqname, seqAligned, abundance
+               set<string> chimericSeqs; //for template=self, so we don't add chimeric sequences to the userTemplate set
+               int numNoParents, threadID;
+       
                vector<data_struct>  chimeraResults;
                data_results printResults;
-               string chimeraFlags, searchMethod, fastafile;
+               string chimeraFlags, searchMethod, fastafile, blastlocation;
                bool realign, trimChimera;
                int window, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, increment;
                float divR;
@@ -62,7 +65,10 @@ class ChimeraSlayer : public Chimera {
                string getBlock(data_struct, string);
                string getBlock(data_results, data_results, bool, bool, string);
                //int readNameFile(string);
-               int getTemplate(Sequence*);
+               vector<Sequence*> getTemplate(Sequence, vector<Sequence*>&);
+               vector<Sequence> getRefSeqs(Sequence, vector<Sequence*>&, vector<Sequence*>&);
+               vector<Sequence> getBlastSeqs(Sequence, vector<Sequence*>&, int);
+               vector<Sequence> getKmerSeqs(Sequence, vector<Sequence*>&, int);
                
 };