8 * Created by Sarah Westcott on 7/9/09.
9 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
15 #include "sequence.hpp"
16 /***********************************************************************/
44 /***********************************************************************/
46 vector<data_struct> results;
49 //results malignerResults;
51 data_results(vector<data_struct> d, string f, map<int, int> s, Sequence t) : results(d), flag(f), trimQuery(t) {}
54 /***********************************************************************/
55 //sorts lowest to highest first by bsMax, then if tie by chimeraMax
56 inline bool compareDataStruct(data_struct left, data_struct right){
57 if (left.bsMax < right.bsMax) { return true; }
58 else if (left.bsMax == right.bsMax) {
59 return (left.chimeraMax < right.chimeraMax);
60 }else { return false; }
62 /***********************************************************************/
65 string leftParent; //keep the name of closest left
66 string rightParent; //keep the name of closest
67 float score; //preference score
68 float closestLeft; //keep the closest left
69 float closestRight; //keep the closest right
71 Preference() { name = ""; leftParent = ""; rightParent = ""; score = 0.0; closestLeft = 10000.0; closestRight = 10000.0; midpoint = 0; }
74 /***********************************************************************/
82 /***********************************************************************/
88 /***********************************************************************/
97 float queryToParentLocal;
100 /***********************************************************************/
106 /***********************************************************************/
112 //********************************************************************************************************************
113 //sorts lowest to highest
114 inline bool compareRegionStart(results left, results right){
115 return (left.nastRegionStart < right.nastRegionStart);
117 //********************************************************************************************************************
118 //sorts lowest to highest
119 inline bool compareSeqDist(SeqDist left, SeqDist right){
120 return (left.dist < right.dist);
122 //********************************************************************************************************************
123 //sorts lowest to highest
124 inline bool compareSeqCompare(SeqCompare left, SeqCompare right){
125 return (left.dist < right.dist);
127 //********************************************************************************************************************
136 unsigned long long start;
137 unsigned long long end;
138 linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {}
143 /***********************************************************************/
149 Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; byGroup = false; }
150 virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } for (int i = 0; i < filteredTemplateSeqs.size(); i++) { delete filteredTemplateSeqs[i]; } };
151 virtual bool getUnaligned() { return unaligned; }
152 virtual int getLength() { return length; }
153 virtual vector<Sequence*> readSeqs(string);
154 virtual void setMask(string);
155 virtual map<int, int> runFilter(Sequence*);
156 virtual string createFilter(vector<Sequence*>, float);
157 virtual void printHeader(ostream&){};
158 virtual int getChimeras(Sequence*){ return 0; }
159 virtual int getChimeras(){ return 0; }
160 virtual Sequence print(ostream&, ostream&){ Sequence temp; return temp; }
161 virtual Sequence print(ostream&, ostream&, data_results, data_results) { Sequence temp; return temp; }
162 virtual int print(ostream&, ostream&, string){ return 0; }
163 virtual int getNumNoParents(){ return 0; }
164 virtual data_results getResults() { data_results results; return results; }
167 virtual Sequence print(MPI_File&, MPI_File&){ Sequence temp; return temp; }
168 virtual Sequence print(MPI_File&, MPI_File&, data_results, data_results, bool&){ Sequence temp; return temp; }
169 virtual int print(MPI_File&, MPI_File&, string){ return 0; }
175 vector<Sequence*> templateSeqs;
176 vector<Sequence*> filteredTemplateSeqs;
177 bool filter, unaligned, byGroup;
179 string seqMask, filterString, outputDir, templateFileName;
180 Sequence* getSequence(string); //find sequence from name
184 /***********************************************************************/