#include <map>
#include <string>
#include <list>
+#include <string.h>
//math
#include <cmath>
#include <math.h>
#include <algorithm>
+#include <numeric>
//misc
#include <cerrno>
#endif
/***********************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
#include <sys/wait.h>
#include <sys/time.h>
#include <sys/resource.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
#include <unistd.h>
#ifdef USE_READLINE
#include <direct.h> //get cwd
#include <windows.h>
#include <psapi.h>
+ #include <direct.h>
+ #include <tchar.h>
#endif
#define isnan(x) ((x) != (x))
#define isinf(x) (fabs(x) == std::numeric_limits<double>::infinity())
+
typedef unsigned long ull;
struct IntNode {
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;
struct seqDist {
int seq1;
int seq2;
- float dist;
+ double dist;
seqDist() {}
- seqDist(int s1, int s2, float d) : seq1(s1), seq2(s2), dist(d) {}
+ seqDist(int s1, int s2, double d) : seq1(s1), seq2(s2), dist(d) {}
~seqDist() {}
};
+/************************************************************/
+struct distlinePair {
+ int start;
+ 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;
+ 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);
+}
//********************************************************************************************************************
//sorts lowest to highest
inline bool compareSequenceDistance(seqDist left, seqDist right){
throw BadConversion(s);
}
-
+//**********************************************************************************************************************
+template <typename T> int sgn(T val){ return (val > T(0)) - (val < T(0)); }
//**********************************************************************************************************************
template<typename T>
}
//**********************************************************************************************************************
+template<class T>
+T fromString(const string& s){
+ istringstream stream (s);
+ T t;
+ stream >> t;
+ return t;
+}
+
+//**********************************************************************************************************************
+
#endif