X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=mothur.h;h=b4fc3ce1c41171c0cde75a83f6365e12873984bc;hb=fefd5ee1517abd3bc38b469cb2dffc85a1571c7e;hp=cd14056b21ba82f9d6c07e650fcf210616e7a882;hpb=01f8d2c7d982a6209211f5abbcf2a086fdf60d0a;p=mothur.git diff --git a/mothur.h b/mothur.h index cd14056..b4fc3ce 100644 --- a/mothur.h +++ b/mothur.h @@ -120,6 +120,52 @@ struct diffPair { reverseProb = rp; } }; + +/**********************************************************/ +struct CommonHeader { + unsigned int magicNumber; + string version; + unsigned long long indexOffset; + unsigned int indexLength; + unsigned int numReads; + unsigned short headerLength; + unsigned short keyLength; + unsigned short numFlowsPerRead; + int flogramFormatCode; + string flowChars; //length depends on number flow reads + string keySequence; //length depends on key length + + CommonHeader(){ magicNumber=0; indexOffset=0; indexLength=0; numReads=0; headerLength=0; keyLength=0; numFlowsPerRead=0; flogramFormatCode='s'; } + ~CommonHeader() { } +}; +/**********************************************************/ +struct Header { + unsigned short headerLength; + unsigned short nameLength; + unsigned int numBases; + unsigned short clipQualLeft; + unsigned short clipQualRight; + unsigned short clipAdapterLeft; + unsigned short clipAdapterRight; + string name; //length depends on nameLength + string timestamp; + string region; + string xy; + + Header() { headerLength=0; nameLength=0; numBases=0; clipQualLeft=0; clipQualRight=0; clipAdapterLeft=0; clipAdapterRight=0; } + ~Header() { } +}; +/**********************************************************/ +struct seqRead { + vector flowgram; + vector flowIndex; + string bases; + vector qualScores; + + seqRead() { } + ~seqRead() { } +}; + /***********************************************************************/ struct PDistCell{ ull index; @@ -127,6 +173,21 @@ struct PDistCell{ PDistCell() : index(0), dist(0) {}; PDistCell(ull c, float d) : index(c), dist(d) {} }; +/***********************************************************************/ +struct consTax{ + string name; + string taxonomy; + int abundance; + consTax() : name(""), taxonomy("unknown"), abundance(0) {}; + consTax(string n, string t, int a) : name(n), taxonomy(t), abundance(a) {} +}; +/***********************************************************************/ +struct consTax2{ + string taxonomy; + int abundance; + consTax2() : taxonomy("unknown"), abundance(0) {}; + consTax2(string t, int a) : taxonomy(t), abundance(a) {} +}; /************************************************************/ struct clusterNode { int numSeq; @@ -149,6 +210,16 @@ struct distlinePair { int end; }; +/************************************************************/ +struct oligosPair { + string forward; + string reverse; + + oligosPair() { forward = ""; reverse = ""; } + oligosPair(string f, string r) : forward(f), reverse(r) {} + ~oligosPair() {} +}; + /************************************************************/ struct seqPriorityNode { int numIdentical; @@ -158,6 +229,15 @@ struct seqPriorityNode { seqPriorityNode(int n, string s, string nm) : numIdentical(n), seq(s), name(nm) {} ~seqPriorityNode() {} }; +/************************************************************/ +struct compGroup { + string group1; + string group2; + compGroup() {} + compGroup(string s, string nm) : group1(s), group2(nm) {} + string getCombo() { return group1+"-"+group2; } + ~compGroup() {} +}; /***************************************************************/ struct spearmanRank { string name; @@ -170,10 +250,26 @@ inline bool compareIndexes(PDistCell left, PDistCell right){ return (left.index > right.index); } //******************************************************************************************************************** -//sorts highest to lowest inline bool compareSpearman(spearmanRank left, spearmanRank right){ return (left.score < right.score); -} +} +//******************************************************************************************************************** +inline double max(double left, double right){ + if (left > right) { return left; } + else { return right; } +} +//******************************************************************************************************************** +inline double max(int left, double right){ + double value = left; + if (left > right) { return value; } + else { return right; } +} +//******************************************************************************************************************** +inline double max(double left, int right){ + double value = right; + if (left > value) { return left; } + else { return value; } +} //******************************************************************************************************************** //sorts highest to lowest inline bool compareSeqPriorityNodes(seqPriorityNode left, seqPriorityNode right){ @@ -185,11 +281,7 @@ inline bool compareSeqPriorityNodes(seqPriorityNode left, seqPriorityNode right) } return false; } -//******************************************************************************************************************** -//sorts lowest to highest -inline bool compareSpearmanReverse(spearmanRank left, spearmanRank right){ - return (left.score < right.score); -} + /************************************************************/ //sorts lowest to highest inline bool compareDistLinePairs(distlinePair left, distlinePair right){ @@ -199,7 +291,15 @@ inline bool compareDistLinePairs(distlinePair left, distlinePair right){ //sorts lowest to highest inline bool compareSequenceDistance(seqDist left, seqDist right){ return (left.dist < right.dist); -} +} +//******************************************************************************************************************** +//returns sign of double +inline double sign(double temp){ + //find sign + if (temp > 0) { return 1.0; } + else if (temp < 0) { return -1.0; } + return 0; +} /***********************************************************************/ // snagged from http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.2