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;
48 map<int, int> spotMap;
51 data_results(vector<data_struct> d, string f, map<int, int> s, Sequence t) : results(d), flag(f), spotMap(s), 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 /***********************************************************************/
81 /***********************************************************************/
87 /***********************************************************************/
96 float queryToParentLocal;
99 /***********************************************************************/
105 //********************************************************************************************************************
106 //sorts lowest to highest
107 inline bool compareRegionStart(results left, results right){
108 return (left.nastRegionStart < right.nastRegionStart);
110 //********************************************************************************************************************
111 //sorts lowest to highest
112 inline bool compareSeqDist(SeqDist left, SeqDist right){
113 return (left.dist < right.dist);
115 //********************************************************************************************************************
125 unsigned long int start;
126 unsigned long int end;
127 linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
132 /***********************************************************************/
138 Chimera(){ m = MothurOut::getInstance(); length = 0; unaligned = false; }
139 virtual ~Chimera(){ for (int i = 0; i < templateSeqs.size(); i++) { delete templateSeqs[i]; } };
140 virtual bool getUnaligned() { return unaligned; }
141 virtual int getLength() { return length; }
142 virtual vector<Sequence*> readSeqs(string);
143 virtual void setMask(string);
144 virtual map<int, int> runFilter(Sequence*);
145 virtual string createFilter(vector<Sequence*>, float);
146 virtual void printHeader(ostream&){};
147 virtual int getChimeras(Sequence*){ return 0; }
148 virtual int getChimeras(){ return 0; }
149 virtual Sequence* print(ostream&, ostream&){ return NULL; }
150 virtual Sequence* print(ostream&, ostream&, data_results, data_results) { return NULL; }
151 virtual int print(ostream&, ostream&, string){ return 0; }
152 virtual data_results getResults() { data_results results; return results; }
155 virtual Sequence* print(MPI_File&, MPI_File&){ return 0; }
156 virtual Sequence* print(MPI_File&, MPI_File&, data_results, data_results){ return NULL; }
157 virtual int print(MPI_File&, MPI_File&, string){ return 0; }
163 vector<Sequence*> templateSeqs;
164 bool filter, unaligned;
166 string seqMask, filterString, outputDir, templateFileName;
167 Sequence* getSequence(string); //find sequence from name
171 /***********************************************************************/