X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothur.h;h=50344e24bfea85e8b7c4b829b5136e3e63d34fc7;hb=16abd6271c455bd01b34ff89a2e3641bef0fa128;hp=2e2299ec2ad6fa1938a2f49e1f8601993b232cbd;hpb=8173238f9f94af9baab8471de58bed7c8830948d;p=mothur.git diff --git a/mothur.h b/mothur.h index 2e2299e..50344e2 100644 --- a/mothur.h +++ b/mothur.h @@ -36,6 +36,7 @@ #include #include #include +#include //math #include @@ -56,6 +57,7 @@ #include #include #include + #include #include #include @@ -69,6 +71,8 @@ #include //get cwd #include #include + #include + #include #endif @@ -81,6 +85,7 @@ using namespace std; #define isnan(x) ((x) != (x)) #define isinf(x) (fabs(x) == std::numeric_limits::infinity()) + typedef unsigned long ull; struct IntNode { @@ -101,6 +106,19 @@ struct ThreadNode { IntNode* right; }; +struct diffPair { + float prob; + float reverseProb; + + diffPair() { + prob = 0; reverseProb = 0; + } + diffPair(float p, float rp) { + prob = p; + reverseProb = rp; + } +}; + /************************************************************/ struct clusterNode { int numSeq; @@ -124,6 +142,37 @@ struct distlinePair { }; /************************************************************/ +struct seqPriorityNode { + int numIdentical; + string seq; + string name; + seqPriorityNode() {} + seqPriorityNode(int n, string s, string nm) : numIdentical(n), seq(s), name(nm) {} + ~seqPriorityNode() {} +}; +/***************************************************************/ +struct spearmanRank { + string name; + float score; + + spearmanRank(string n, float s) : name(n), score(s) {} +}; +//******************************************************************************************************************** +//sorts highest to lowest +inline bool compareSpearman(spearmanRank left, spearmanRank right){ + return (left.score > right.score); +} +//******************************************************************************************************************** +//sorts highest to lowest +inline bool compareSeqPriorityNodes(seqPriorityNode left, seqPriorityNode right){ + return (left.numIdentical > right.numIdentical); +} +//******************************************************************************************************************** +//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){ return (left.end < right.end); @@ -153,7 +202,8 @@ void convert(const string& s, T& x, bool failIfLeftoverChars = true){ throw BadConversion(s); } - +//********************************************************************************************************************** +template int sgn(T val){ return (val > T(0)) - (val < T(0)); } //********************************************************************************************************************** template @@ -220,5 +270,15 @@ string toString(const T&x, int i){ } //********************************************************************************************************************** +template +T fromString(const string& s){ + istringstream stream (s); + T t; + stream >> t; + return t; +} + +//********************************************************************************************************************** + #endif