#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);
+ 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();
- void getChimeras();
- void print(ostream&);
-
- void setCons(string){};
- void setQuantiles(string q) {};
+ int getChimeras(Sequence*);
+ 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);
+ #endif
private:
- DeCalculator* decalc;
- Maligner* maligner;
- Slayer* slayer;
- vector<linePair*> lines;
- vector<Sequence*> querySeqs;
- vector<Sequence*> templateSeqs;
-
- string fastafile, templateFile;
+ Sequence querySeq;
+ Sequence trimQuery;
+ DeCalculator decalc;
+ Database* databaseRight;
+ Database* databaseLeft;
+ 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, blastlocation;
+ bool realign, trimChimera;
+ int window, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, increment;
+ float divR;
+
+ void printBlock(data_struct, string, ostream&);
+ void printBlock(data_results, data_results, bool, bool, string, ostream&);
+ string getBlock(data_struct, string);
+ string getBlock(data_results, data_results, bool, bool, string);
+ //int readNameFile(string);
+ 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);
- Sequence* getSequence(string); //find sequence from name
-
-
};
/************************************************************************/