]> git.donarmstrong.com Git - mothur.git/blobdiff - mothur.h
changes while testing
[mothur.git] / mothur.h
index 2c143e8667786c5740f0aa6324ea4062eab66b76..32f4778a7c1ee19db25eeb4e1eafaf74fabcd617 100644 (file)
--- a/mothur.h
+++ b/mothur.h
@@ -88,6 +88,7 @@ using namespace std;
 
 
 typedef unsigned long ull;
+typedef unsigned short intDist;
 
 struct IntNode {
        int lvalue;
@@ -119,7 +120,28 @@ struct diffPair {
                reverseProb = rp;
        }
 };
-
+/***********************************************************************/
+struct PDistCell{
+       ull index;
+       float dist;
+       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;
@@ -151,6 +173,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;
@@ -158,21 +189,26 @@ struct spearmanRank {
        
        spearmanRank(string n, float s) : name(n), score(s) {}
 };
+//***********************************************************************
+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);      
+       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);      
+       if (left.numIdentical > right.numIdentical) {
+        return true;
+    }else if (left.numIdentical == right.numIdentical) {
+        if (left.seq > right.seq) { return true; }
+        else { return false; }
+    }
+    return false;      
 } 
 /************************************************************/
 //sorts lowest to highest
 inline bool compareDistLinePairs(distlinePair left, distlinePair right){
@@ -182,7 +218,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