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 string leftParent; //keep the name of closest left
21 string rightParent; //keep the name of closest
22 float score; //preference score
23 float closestLeft; //keep the closest left
24 float closestRight; //keep the closest right
26 Preference() { name = ""; leftParent = ""; rightParent = ""; score = 0.0; closestLeft = 10000.0; closestRight = 10000.0; midpoint = 0; }
29 /***********************************************************************/
36 /***********************************************************************/
42 /***********************************************************************/
51 float queryToParentLocal;
54 /***********************************************************************/
60 //********************************************************************************************************************
61 //sorts lowest to highest
62 inline bool compareRegionStart(results left, results right){
63 return (left.nastRegionStart < right.nastRegionStart);
65 //********************************************************************************************************************
66 //sorts lowest to highest
67 inline bool compareSeqDist(SeqDist left, SeqDist right){
68 return (left.dist < right.dist);
70 //********************************************************************************************************************
82 linePair(int i, int j) : start(i), end(j) {}
86 /***********************************************************************/
92 Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; }
93 //Chimera(string) { m = MothurOut::getInstance(); }
94 //Chimera(string, bool, string) { m = MothurOut::getInstance(); }
95 //Chimera(string, string) { m = MothurOut::getInstance(); }
96 virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } };
97 //virtual void setFilter(bool f) { filter = f; }
98 //virtual void setCorrection(bool c) { correction = c; }
99 //virtual void setProcessors(int p) { processors = p; }
100 //virtual void setWindow(int w) { window = w; }
101 //virtual void setIncrement(int i) { increment = i; }
102 //virtual void setNumWanted(int n) { numWanted = n; }
103 //virtual void setKmerSize(int k) { kmerSize = k; }
104 //virtual void setSVG(int s) { svg = s; }
105 //virtual void setName(string n) { name = n; }
106 //virtual void setMatch(int m) { match = m; }
107 //virtual void setMisMatch(int m) { misMatch = m; }
108 //virtual void setDivR(float d) { divR = d; }
109 //virtual void setParents(int p) { parents = p; }
110 //virtual void setMinSim(int s) { minSim = s; }
111 //virtual void setMinCoverage(int c) { minCov = c; }
112 //virtual void setMinBS(int b) { minBS = b; }
113 //virtual void setMinSNP(int s) { minSNP = s; }
114 //virtual void setIters(int i) { iters = i; }
115 virtual bool getUnaligned() { return unaligned; }
116 //virtual void setTemplateFile(string t) { templateFileName = t; templateSeqs = readSeqs(t); }
117 virtual int getLength() { return length; }
119 //virtual void setCons(string){};
120 //virtual void setQuantiles(string){};
121 //virtual int doPrep(){ return 0; }
122 virtual vector<Sequence*> readSeqs(string);
123 //virtual vector< vector<float> > readQuantiles();
124 virtual void setMask(string);
125 virtual map<int, int> runFilter(Sequence*);
126 virtual string createFilter(vector<Sequence*>, float);
128 virtual void printHeader(ostream&){};
129 virtual int getChimeras(Sequence*){ return 0; }
130 virtual int getChimeras(){ return 0; }
131 virtual int print(ostream&, ostream&){ return 0; }
134 virtual int print(MPI_File&, MPI_File&){ return 0; }
140 vector<Sequence*> templateSeqs;
141 bool filter, unaligned; // correction, svg,
142 int length; //processors, window, increment, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters,
144 string seqMask, filterString, outputDir, templateFileName; //quanfile, name,
145 Sequence* getSequence(string); //find sequence from name
149 /***********************************************************************/