]> git.donarmstrong.com Git - mothur.git/blobdiff - mothur.h
added otu.association command. added calcSpearman, calcKendall and calcPearson functi...
[mothur.git] / mothur.h
index 6e5833f7032aafba146f8b92cd30bacc149ab931..50344e24bfea85e8b7c4b829b5136e3e63d34fc7 100644 (file)
--- a/mothur.h
+++ b/mothur.h
@@ -57,6 +57,7 @@
        #include <sys/wait.h>
        #include <sys/time.h>
        #include <sys/resource.h>
+       #include <sys/types.h>
        #include <sys/stat.h>
        #include <unistd.h>
        
@@ -70,6 +71,8 @@
        #include <direct.h> //get cwd
        #include <windows.h>
        #include <psapi.h>
+       #include <direct.h>
+       #include <tchar.h>
 
 #endif
 
@@ -82,6 +85,7 @@ using namespace std;
 #define isnan(x) ((x) != (x))
 #define isinf(x) (fabs(x) == std::numeric_limits<double>::infinity())
 
+
 typedef unsigned long ull;
 
 struct IntNode {
@@ -102,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 +141,15 @@ struct distlinePair {
        int end;
        
 };
+/************************************************************/
+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;
@@ -137,6 +163,11 @@ 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);      
@@ -171,7 +202,8 @@ void convert(const string& s, T& x, bool failIfLeftoverChars = true){
                        throw BadConversion(s);
        
 }
-
+//**********************************************************************************************************************
+template <typename T> int sgn(T val){ return (val > T(0)) - (val < T(0)); }
 //**********************************************************************************************************************
 
 template<typename T>
@@ -238,5 +270,15 @@ string toString(const T&x, int i){
 }
 //**********************************************************************************************************************
 
+template<class T>
+T fromString(const string& s){
+       istringstream stream (s);
+       T t;
+       stream >> t;
+       return t;
+}
+
+//**********************************************************************************************************************
+
 #endif