X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothur.h;fp=mothur.h;h=0000000000000000000000000000000000000000;hb=4a877efa127e56e81a21f53cfdbbfd3bfbe8c4ff;hp=2c143e8667786c5740f0aa6324ea4062eab66b76;hpb=a6cf29fa4dac0909c7582cb1094151d34093ee76;p=mothur.git diff --git a/mothur.h b/mothur.h deleted file mode 100644 index 2c143e8..0000000 --- a/mothur.h +++ /dev/null @@ -1,285 +0,0 @@ -#ifndef MOTHUR_H -#define MOTHUR_H - - - -/* - * mothur.h - * Mothur - * - * Created by Sarah Westcott on 2/19/09. - * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved. - * - */ - -/* This file contains all the standard incudes we use in the project as well as some common utilities. */ - -//#include - -//io libraries -#include -#include -#include -#include -#include - - -//exception -#include -#include -#include - - -//containers -#include -#include -#include -#include -#include -#include - -//math -#include -#include -#include -#include - -//misc -#include -#include -#include - -#ifdef USE_MPI - #include "mpi.h" -#endif -/***********************************************************************/ - -#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) - #include - #include - #include - #include - #include - #include - - #ifdef USE_READLINE - #include - #include - #endif - -#else - #include //allows unbuffered screen capture from stdin - #include //get cwd - #include - #include - #include - #include - -#endif - -using namespace std; - -#define exp(x) (exp((double) x)) -#define sqrt(x) (sqrt((double) x)) -#define log10(x) (log10((double) x)) -#define log2(x) (log10(x)/log10(2)) -#define isnan(x) ((x) != (x)) -#define isinf(x) (fabs(x) == std::numeric_limits::infinity()) - - -typedef unsigned long ull; - -struct IntNode { - int lvalue; - int rvalue; - int lcoef; - int rcoef; - IntNode* left; - IntNode* right; - - IntNode(int lv, int rv, IntNode* l, IntNode* r) : lvalue(lv), rvalue(rv), left(l), right(r) {}; - IntNode() {}; -}; - -struct ThreadNode { - int* pid; - IntNode* left; - 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; - int parent; - int smallChild; //used to make linkTable work with list and rabund. represents bin number of this cluster node - clusterNode(int num, int par, int kid) : numSeq(num), parent(par), smallChild(kid) {}; -}; -/************************************************************/ -struct seqDist { - int seq1; - int seq2; - double dist; - seqDist() {} - 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){ - return (left.dist < right.dist); -} -/***********************************************************************/ - -// snagged from http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.2 -// works for now, but there should be a way to do it without killing the whole program - -class BadConversion : public runtime_error { -public: - BadConversion(const string& s) : runtime_error(s){ } -}; - -//********************************************************************************************************************** -template -void convert(const string& s, T& x, bool failIfLeftoverChars = true){ - - istringstream i(s); - char c; - if (!(i >> x) || (failIfLeftoverChars && i.get(c))) - throw BadConversion(s); - -} -//********************************************************************************************************************** -template int sgn(T val){ return (val > T(0)) - (val < T(0)); } -//********************************************************************************************************************** - -template -bool convertTestFloat(const string& s, T& x, bool failIfLeftoverChars = true){ - - istringstream i(s); - char c; - if (!(i >> x) || (failIfLeftoverChars && i.get(c))) - { - return false; - } - return true; - -} - -//********************************************************************************************************************** - -template -bool convertTest(const string& s, T& x, bool failIfLeftoverChars = true){ - - istringstream i(s); - char c; - if (!(i >> x) || (failIfLeftoverChars && i.get(c))) - { - return false; - } - return true; - -} -//********************************************************************************************************************** -template -string toString(const T&x){ - - stringstream output; - output << x; - return output.str(); - -} - -//********************************************************************************************************************** - -template -string toHex(const T&x){ - - stringstream output; - - output << hex << x; - - return output.str(); - -} -//********************************************************************************************************************** - -template -string toString(const T&x, int i){ - - stringstream output; - - output.precision(i); - output << fixed << x; - - return output.str(); - -} -//********************************************************************************************************************** - -template -T fromString(const string& s){ - istringstream stream (s); - T t; - stream >> t; - return t; -} - -//********************************************************************************************************************** - -#endif -