#include "sequence.hpp"
+#include "chimera.h"
/***********************************************************************/
//This class was modeled after the chimeraSlayer written by the Broad Institute
/***********************************************************************/
-struct data_struct { //not right needs work...
- int regionStart;
- int regionEnd;
- string parent;
- float queryToParent;
- float queryToParentLocal;
- float divR;
+struct snps {
+ char queryChar;
+ char parentAChar;
+ char parentBChar;
};
+
/***********************************************************************/
public:
- Slayer(int, int, int, float);
+ Slayer(int, int, int, float, int, int);
~Slayer() {};
- void getResults(Sequence*, vector<Sequence*>);
- //float getPercentID() { return percentIdenticalQueryChimera; }
- //vector<results> getOutput() { return outputResults; }
+ string getResults(Sequence*, vector<Sequence*>);
+ vector<data_struct> getOutput() { return outputResults; }
private:
- int windowSize, windowStep, parentFragmentThreshold;
+ int windowSize, windowStep, parentFragmentThreshold, iters, percentSNPSample;
float divRThreshold;
+ vector<data_struct> outputResults;
+ vector< map<int, int> > baseSpots;
- void verticalFilter(vector<Sequence*>);
+ map<int, int> verticalFilter(vector<Sequence*>);
float computePercentID(string, string, int, int);
- vector<data_struct> runBellerophon(Sequence*, Sequence*, Sequence*);
-
+ vector<data_struct> runBellerophon(Sequence*, Sequence*, Sequence*, map<int, int>&);
+ vector<snps> getSNPS(string, string, string, int, int);
+ int bootstrapSNPS(vector<snps>, vector<snps>, float&, float&);
+ float snpQA(vector<snps>);
+ float snpQB(vector<snps>);
+ float snpAB(vector<snps>);
+ MothurOut* m;
};