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 //********************************************************************************************************************
107 //sorts lowest to highest
108 inline bool compareRegionStart(results left, results right){
109 return (left.nastRegionStart < right.nastRegionStart);
111 //********************************************************************************************************************
112 //sorts lowest to highest
113 inline bool compareSeqDist(SeqDist left, SeqDist right){
114 return (left.dist < right.dist);
116 //********************************************************************************************************************
126 unsigned long int start;
127 unsigned long int end;
128 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
133 /***********************************************************************/
139 Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; }
140 virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } for (int i = 0; i < filteredTemplateSeqs.size(); i++) { delete filteredTemplateSeqs[i]; } };
141 virtual bool getUnaligned() { return unaligned; }
142 virtual int getLength() { return length; }
143 virtual vector<Sequence*> readSeqs(string);
144 virtual void setMask(string);
145 virtual map<int, int> runFilter(Sequence*);
146 virtual string createFilter(vector<Sequence*>, float);
147 virtual void printHeader(ostream&){};
148 virtual int getChimeras(Sequence*){ return 0; }
149 virtual int getChimeras(){ return 0; }
150 virtual Sequence* print(ostream&, ostream&){ return NULL; }
151 virtual Sequence* print(ostream&, ostream&, data_results, data_results) { return NULL; }
152 virtual int print(ostream&, ostream&, string){ return 0; }
153 virtual data_results getResults() { data_results results; return results; }
156 virtual Sequence* print(MPI_File&, MPI_File&){ return 0; }
157 virtual Sequence* print(MPI_File&, MPI_File&, data_results, data_results){ return NULL; }
158 virtual int print(MPI_File&, MPI_File&, string){ return 0; }
164 vector<Sequence*> templateSeqs;
165 vector<Sequence*> filteredTemplateSeqs;
166 bool filter, unaligned;
168 string seqMask, filterString, outputDir, templateFileName;
169 Sequence* getSequence(string); //find sequence from name
173 /***********************************************************************/