8 * Created by Sarah Westcott on 7/9/09.
9 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
15 #include "sequence.hpp"
17 /***********************************************************************/
20 vector<string> leftParent; //keep the name of closest left associated with the two scores
21 vector<string> rightParent; //keep the name of closest right associated with the two scores
22 vector<float> score; //so you can keep last score and calc this score and keep whichever is bigger.
23 vector<float> closestLeft; //keep the closest left associated with the two scores
24 vector<float> closestRight; //keep the closest right associated with the two scores
28 /***********************************************************************/
35 /***********************************************************************/
41 /***********************************************************************/
50 float queryToParentLocal;
53 /***********************************************************************/
59 //********************************************************************************************************************
60 //sorts lowest to highest
61 inline bool compareRegionStart(results left, results right){
62 return (left.nastRegionStart < right.nastRegionStart);
64 //********************************************************************************************************************
65 //sorts lowest to highest
66 inline bool compareSeqDist(SeqDist left, SeqDist right){
67 return (left.dist < right.dist);
69 //********************************************************************************************************************
81 linePair(int i, int j) : start(i), end(j) {}
85 /***********************************************************************/
91 Chimera(){ m = MothurOut::getInstance(); }
92 Chimera(string) { m = MothurOut::getInstance(); }
93 Chimera(string, bool, string) { m = MothurOut::getInstance(); }
94 Chimera(string, string) { m = MothurOut::getInstance(); }
95 virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } };
96 virtual void setFilter(bool f) { filter = f; }
97 virtual void setCorrection(bool c) { correction = c; }
98 virtual void setProcessors(int p) { processors = p; }
99 virtual void setWindow(int w) { window = w; }
100 virtual void setIncrement(int i) { increment = i; }
101 virtual void setNumWanted(int n) { numWanted = n; }
102 virtual void setKmerSize(int k) { kmerSize = k; }
103 virtual void setSVG(int s) { svg = s; }
104 virtual void setName(string n) { name = n; }
105 virtual void setMatch(int m) { match = m; }
106 virtual void setMisMatch(int m) { misMatch = m; }
107 virtual void setDivR(float d) { divR = d; }
108 virtual void setParents(int p) { parents = p; }
109 virtual void setMinSim(int s) { minSim = s; }
110 virtual void setMinCoverage(int c) { minCov = c; }
111 virtual void setMinBS(int b) { minBS = b; }
112 virtual void setMinSNP(int s) { minSNP = s; }
113 virtual void setIters(int i) { iters = i; }
114 virtual bool getUnaligned() { return unaligned; }
115 virtual void setTemplateFile(string t) { templateFileName = t; templateSeqs = readSeqs(t); }
116 virtual int getLength() { return length; }
118 virtual void setCons(string){};
119 virtual void setQuantiles(string){};
120 virtual void doPrep(){};
121 virtual vector<Sequence*> readSeqs(string);
122 virtual vector< vector<float> > readQuantiles();
123 virtual void setMask(string);
124 virtual map<int, int> runFilter(Sequence*);
125 virtual string createFilter(vector<Sequence*>, float);
127 virtual void printHeader(ostream&){};
128 virtual int getChimeras(Sequence*){ return 0; }
129 virtual int getChimeras(){ return 0; }
130 virtual void print(ostream&, ostream&){};
135 vector<Sequence*> templateSeqs;
136 bool filter, correction, svg, unaligned;
137 int processors, window, increment, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, length;
139 string seqMask, quanfile, filterString, name, outputDir, templateFileName;
140 Sequence* getSequence(string); //find sequence from name
144 /***********************************************************************/