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, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
+ ChimeraSlayer(string, string, bool, map<string, int>&, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
~ChimeraSlayer();
private:
Sequence* querySeq;
- Sequence* trimQuery;
+ Sequence trimQuery;
DeCalculator* decalc;
- map<int, int> spotMap;
Database* databaseRight;
Database* databaseLeft;
- map<string, vector<string> > nameMapRank; //sequence name to rank so you can construct a template of the abundant sequences if the user uses itself as template
-
+ 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
+
vector<data_struct> chimeraResults;
data_results printResults;
- string chimeraFlags, searchMethod, fastafile, includeAbunds;
+ string chimeraFlags, searchMethod, fastafile;
bool realign, trimChimera;
int window, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, increment;
float divR;
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*);
+ //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);
};