X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=myPerseus.h;fp=myPerseus.h;h=93ef8ae2e56bf155705754240ddbbe5da811cf0b;hb=74dc92cf53df65fd8b14d8eaf35489bbecbccac6;hp=0000000000000000000000000000000000000000;hpb=4c5e7a20a03ddc6feb49ff9d21fcb4c79bc5508d;p=mothur.git diff --git a/myPerseus.h b/myPerseus.h new file mode 100644 index 0000000..93ef8ae --- /dev/null +++ b/myPerseus.h @@ -0,0 +1,85 @@ +#ifndef MOTHURPERSEUS +#define MOTHURPERSEUS + +/* + * myPerseus.h + * + * + * Created by Pat Schloss on 9/5/11. + * Copyright 2011 Patrick D. Schloss. All rights reserved. + * + */ + + +#include "mothurout.h" + +/**************************************************************************************************/ +struct seqData { + + seqData(string name, string seq, int freq) : seqName(name), sequence(seq), frequency(freq) { } + + bool operator<( seqData const& rhs ) const { + + bool verdict = 0; + + if(frequency < rhs.frequency){ + verdict = 1; + } + else if(frequency == rhs.frequency){ + verdict = (seqName > rhs.seqName); + } + + return verdict; + } + + string seqName; + string sequence; + int frequency; +}; +/**************************************************************************************************/ +struct pwModel { + pwModel(double m, double mm, double g): MATCH(m), MISMATCH(mm), GAP_OPEN(g) {;} + double MATCH; + double MISMATCH; + double GAP_OPEN; +}; +/**************************************************************************************************/ +struct pwAlign { + pwAlign(): query(""), reference(""){} + pwAlign(string q, string r): query(q), reference(r){} + string query; + string reference; + +}; +/**************************************************************************************************/ +class Perseus { + +public: + Perseus() { m = MothurOut::getInstance(); } + ~Perseus() {} + + vector > binomial(int); + double modeledPairwiseAlignSeqs(string, string, string&, string&, vector >&); + int getAlignments(int, vector, vector&, vector >& , vector >&, vector >&, vector >&, int&, int&, vector&); + int getChimera(vector,vector >&, vector >&,int&, int&, int&,vector&, vector&, vector&, vector&, vector); + string stitchBimera(vector&, int, int, int, vector >&, vector >&); + int getTrimera(vector&, vector >&, int&, int&, int&, int&, int&, vector&, vector&, vector&, vector&, vector); + string stitchTrimera(vector, int, int, int, int, int, vector >&, vector >&); + double calcLoonIndex(string, string, string, int, vector >&); + double classifyChimera(double, double, double, double, double); + +private: + MothurOut* m; + int toInt(char); + double basicPairwiseAlignSeqs(string, string, string&, string&, pwModel); + int getDiffs(string, string, vector&, vector&, vector&, vector&); + int getLastMatch(char, vector >&, int, int, string&, string&); + int threeWayAlign(string, string, string, string&, string&, string&); + double calcBestDistance(string, string); + + +}; +/**************************************************************************************************/ +#endif + +