/***********************************************************************/
struct Preference {
string name;
- vector<string> leftParent; //keep the name of closest left associated with the two scores
- vector<string> rightParent; //keep the name of closest right associated with the two scores
- vector<float> score; //so you can keep last score and calc this score and keep whichever is bigger.
- vector<float> closestLeft; //keep the closest left associated with the two scores
- vector<float> closestRight; //keep the closest right associated with the two scores
+ string leftParent; //keep the name of closest left
+ string rightParent; //keep the name of closest
+ float score; //preference score
+ float closestLeft; //keep the closest left
+ float closestRight; //keep the closest right
int midpoint;
-
+ Preference() { name = ""; leftParent = ""; rightParent = ""; score = 0.0; closestLeft = 10000.0; closestRight = 10000.0; midpoint = 0; }
+ ~Preference() {}
};
/***********************************************************************/
struct score_struct {
int nastRegionStart;
int nastRegionEnd;
string parent;
+ string parentAligned;
float queryToParent;
float queryToParentLocal;
float divR;
struct SeqDist {
Sequence* seq;
float dist;
+ int index;
};
//********************************************************************************************************************
//sorts lowest to highest
public:
- Chimera(){};
- Chimera(string);
- Chimera(string, bool);
- Chimera(string, string);
- virtual ~Chimera(){};
- virtual void setFilter(bool f) { filter = f; }
- virtual void setCorrection(bool c) { correction = c; }
- virtual void setProcessors(int p) { processors = p; }
- virtual void setWindow(int w) { window = w; }
- virtual void setIncrement(int i) { increment = i; }
- virtual void setNumWanted(int n) { numWanted = n; }
- virtual void setKmerSize(int k) { kmerSize = k; }
- virtual void setSVG(int s) { svg = s; }
- virtual void setName(string n) { name = n; }
- virtual void setMatch(int m) { match = m; }
- virtual void setMisMatch(int m) { misMatch = m; }
- virtual void setDivR(float d) { divR = d; }
- virtual void setParents(int p) { parents = p; }
- virtual void setMinSim(int s) { minSim = s; }
- virtual void setMinCoverage(int c) { minCov = c; }
- virtual void setMinBS(int b) { minBS = b; }
- virtual void setMinSNP(int s) { minSNP = s; }
- virtual void setIters(int i) { iters = i; }
- virtual void setTemplateSeqs(vector<Sequence*> t) { templateSeqs = t; }
+ Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; }
+ //Chimera(string) { m = MothurOut::getInstance(); }
+ //Chimera(string, bool, string) { m = MothurOut::getInstance(); }
+ //Chimera(string, string) { m = MothurOut::getInstance(); }
+ virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } };
+ //virtual void setFilter(bool f) { filter = f; }
+ //virtual void setCorrection(bool c) { correction = c; }
+ //virtual void setProcessors(int p) { processors = p; }
+ //virtual void setWindow(int w) { window = w; }
+ //virtual void setIncrement(int i) { increment = i; }
+ //virtual void setNumWanted(int n) { numWanted = n; }
+ //virtual void setKmerSize(int k) { kmerSize = k; }
+ //virtual void setSVG(int s) { svg = s; }
+ //virtual void setName(string n) { name = n; }
+ //virtual void setMatch(int m) { match = m; }
+ //virtual void setMisMatch(int m) { misMatch = m; }
+ //virtual void setDivR(float d) { divR = d; }
+ //virtual void setParents(int p) { parents = p; }
+ //virtual void setMinSim(int s) { minSim = s; }
+ //virtual void setMinCoverage(int c) { minCov = c; }
+ //virtual void setMinBS(int b) { minBS = b; }
+ //virtual void setMinSNP(int s) { minSNP = s; }
+ //virtual void setIters(int i) { iters = i; }
virtual bool getUnaligned() { return unaligned; }
- virtual void setTemplateFile(string t) { templateFileName = t; }
+ //virtual void setTemplateFile(string t) { templateFileName = t; templateSeqs = readSeqs(t); }
+ virtual int getLength() { return length; }
- virtual void setCons(string){};
- virtual void setQuantiles(string){};
- virtual void doPrep(){};
+ //virtual void setCons(string){};
+ //virtual void setQuantiles(string){};
+ //virtual int doPrep(){ return 0; }
virtual vector<Sequence*> readSeqs(string);
- virtual vector< vector<float> > readQuantiles();
+ //virtual vector< vector<float> > readQuantiles();
virtual void setMask(string);
- virtual void runFilter(Sequence*);
- virtual void createFilter(vector<Sequence*>);
+ virtual map<int, int> runFilter(Sequence*);
+ virtual string createFilter(vector<Sequence*>, float);
virtual void printHeader(ostream&){};
virtual int getChimeras(Sequence*){ return 0; }
virtual int getChimeras(){ return 0; }
- virtual void print(ostream&){};
+ virtual int print(ostream&, ostream&){ return 0; }
+
+ #ifdef USE_MPI
+ virtual int print(MPI_File&, MPI_File&){ return 0; }
+ #endif
protected:
vector<Sequence*> templateSeqs;
- bool filter, correction, svg, unaligned;
- int processors, window, increment, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters;
- float divR;
- string seqMask, quanfile, filterString, name, outputDir, templateFileName;
+ bool filter, unaligned; // correction, svg,
+ int length; //processors, window, increment, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters,
+ //float divR;
+ string seqMask, filterString, outputDir, templateFileName; //quanfile, name,
Sequence* getSequence(string); //find sequence from name
+ MothurOut* m;
};
/***********************************************************************/