Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / muscle / muscle.h
diff --git a/website/archive/binaries/mac/src/muscle/muscle.h b/website/archive/binaries/mac/src/muscle/muscle.h
new file mode 100644 (file)
index 0000000..30c7b6d
--- /dev/null
@@ -0,0 +1,330 @@
+#if    DEBUG && !_DEBUG\r
+#define _DEBUG 1\r
+#endif\r
+\r
+#if    _DEBUG && !DEBUG\r
+#define DEBUG  1\r
+#endif\r
+\r
+#if    _MSC_VER\r
+#define TIMING 0\r
+#endif\r
+\r
+#define VER_3_52       0\r
+\r
+#ifdef _MSC_VER        // Miscrosoft compiler\r
+#pragma warning(disable : 4800)        // int-bool conversion\r
+#pragma warning(disable : 4996)        // deprecated names like strdup, isatty.\r
+#endif\r
+\r
+extern const char *MUSCLE_LONG_VERSION;\r
+#define SHORT_VERSION "3.8"\r
+\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <ctype.h>\r
+#include <stdarg.h>\r
+#include <stdio.h>\r
+\r
+#define DOUBLE_AFFINE  0\r
+#define SINGLE_AFFINE  1\r
+#define PAF                            0\r
+\r
+#include "types.h"\r
+#include "intmath.h"\r
+#include "alpha.h"\r
+#include "params.h"\r
+\r
+#ifndef _WIN32\r
+#define stricmp strcasecmp\r
+#define strnicmp strncasecmp\r
+#define        _snprintf snprintf\r
+#define _fsopen(name, mode, share)     fopen((name), (mode))\r
+#endif\r
+\r
+#if    DEBUG\r
+#undef assert\r
+#define assert(b)      Call_MY_ASSERT(__FILE__, __LINE__, b, #b)\r
+void Call_MY_ASSERT(const char *file, int line, bool b, const char *msg);\r
+#else\r
+#define assert(exp)     ((void)0)\r
+#endif\r
+\r
+extern int g_argc;\r
+extern char **g_argv;\r
+\r
+#define Rotate(a, b, c)        { SCORE *tmp = a; a = b; b = c; c = tmp; }\r
+\r
+const double VERY_LARGE_DOUBLE = 1e20;\r
+\r
+extern unsigned g_uTreeSplitNode1;\r
+extern unsigned g_uTreeSplitNode2;\r
+\r
+// Number of elements in array a[]\r
+#define countof(a)     (sizeof(a)/sizeof(a[0]))\r
+\r
+// Maximum of two of any type\r
+#define        Max2(a, b)                      ((a) > (b) ? (a) : (b))\r
+\r
+// Maximum of three of any type\r
+#define        Max3(a, b, c)           Max2(Max2(a, b), c)\r
+\r
+// Minimum of two of any type\r
+#define Min2(a, b)             ((a) < (b) ? (a) : (b))\r
+\r
+// Maximum of four of any type\r
+#define Max4(a, b, c, d)       Max2(Max2(a, b), Max2(c, d))\r
+\r
+const double VERY_NEGATIVE_DOUBLE = -9e29;\r
+const float VERY_NEGATIVE_FLOAT = (float) -9e29;\r
+\r
+const double BLOSUM_DIST = 0.62;       // todo settable\r
+\r
+// insane value for uninitialized variables\r
+const unsigned uInsane = 8888888;\r
+const int iInsane = 8888888;\r
+const SCORE scoreInsane = 8888888;\r
+const char cInsane = (char) 0xcd;              // int 3 instruction, used e.g. for unint. memory\r
+const double dInsane = VERY_NEGATIVE_DOUBLE;\r
+const float fInsane = VERY_NEGATIVE_FLOAT;\r
+const char INVALID_STATE = '*';\r
+const BASETYPE BTInsane = (BASETYPE) dInsane;\r
+const WEIGHT wInsane = BTInsane;\r
+\r
+extern double g_dNAN;\r
+\r
+extern unsigned long g_tStart;\r
+\r
+void Quit(const char szFormat[], ...);\r
+void Warning(const char szFormat[], ...);\r
+void TrimBlanks(char szStr[]);\r
+void TrimLeadingBlanks(char szStr[]);\r
+void TrimTrailingBlanks(char szStr[]);\r
+void Log(const char szFormat[], ...);\r
+bool Verbose();\r
+const char *ScoreToStr(SCORE Score);\r
+const char *ScoreToStrL(SCORE Score);\r
+SCORE StrToScore(const char *pszStr);\r
+void Break();\r
+\r
+double VecSum(const double v[], unsigned n);\r
+bool IsValidInteger(const char *Str);\r
+bool IsValidSignedInteger(const char *Str);\r
+bool IsValidIdentifier(const char *Str);\r
+bool IsValidFloatChar(char c);\r
+bool isident(char c);\r
+bool isidentf(char c);\r
+\r
+void TreeFromSeqVect(const SeqVect &c, Tree &tree, CLUSTER Cluster,\r
+  DISTANCE Distance, ROOT Root, const char *SaveFileName = 0);\r
+void TreeFromMSA(const MSA &msa, Tree &tree, CLUSTER Cluster,\r
+  DISTANCE Distance, ROOT Root, const char *SaveFileName = 0);\r
+\r
+void StripGaps(char szStr[]);\r
+void StripWhitespace(char szStr[]);\r
+const char *GetTimeAsStr();\r
+unsigned CalcBLOSUMWeights(MSA &Aln, ClusterTree &BlosumCluster);\r
+void CalcGSCWeights(MSA &Aln, const ClusterTree &BlosumCluster);\r
+void AssertNormalized(const PROB p[]);\r
+void AssertNormalizedOrZero(const PROB p[]);\r
+void AssertNormalized(const double p[]);\r
+bool VectorIsZero(const double dValues[], unsigned n);\r
+void VectorSet(double dValues[], unsigned n, double d);\r
+bool VectorIsZero(const float dValues[], unsigned n);\r
+void VectorSet(float dValues[], unsigned n, float d);\r
+\r
+// @@TODO should be "not linux"\r
+#if    _WIN32\r
+double log2(double x); // Defined in <math.h> on Linux\r
+#endif\r
+\r
+double pow2(double x);\r
+double lnTolog2(double ln);\r
+\r
+double lp2(double x);\r
+SCORE SumLog(SCORE x, SCORE y);\r
+SCORE SumLog(SCORE x, SCORE y, SCORE z);\r
+SCORE SumLog(SCORE w, SCORE x, SCORE y, SCORE z);\r
+\r
+double lp2Fast(double x);\r
+double SumLogFast(double x, double y);\r
+double SumLogFast(double x, double y, double z);\r
+double SumLogFast(double w, double x, double y, double z);\r
+\r
+void chkmem(const char szMsg[] = "");\r
+\r
+void Normalize(PROB p[], unsigned n);\r
+void Normalize(PROB p[], unsigned n, double dRequiredTotal);\r
+void NormalizeUnlessZero(PROB p[], unsigned n);\r
+\r
+void DebugPrintf(const char szFormat[], ...);\r
+void SetListFileName(const char *ptrListFileName, bool bAppend);\r
+void ModelFromAlign(const char *strInputFileName, const char *strModelFileName,\r
+  double dMaxNIC);\r
+double GetMemUseMB();\r
+double GetRAMSizeMB();\r
+double GetPeakMemUseMB();\r
+void CheckMemUse();\r
+const char *ElapsedTimeAsString();\r
+char *SecsToHHMMSS(long lSecs, char szStr[]);\r
+double GetCPUGHz();\r
+SCORE GetBlosum62(unsigned uLetterA, unsigned uLetterB);\r
+SCORE GetBlosum62d(unsigned uLetterA, unsigned uLetterB);\r
+SCORE GetBlosum50(unsigned uLetterA, unsigned uLetterB);\r
+void AssertNormalizedDist(const PROB p[], unsigned N);\r
+void CmdLineError(const char *Format, ...);\r
+void Fatal(const char *Format, ...);\r
+void InitCmd();\r
+void ExecCommandLine(int argc, char *argv[]);\r
+void DoCmd();\r
+void SetLogFile();\r
+void NameFromPath(const char szPath[], char szName[], unsigned uBytes);\r
+char *strsave(const char *s);\r
+void DistKmer20_3(const SeqVect &v, DistFunc &DF);\r
+void DistKbit20_3(const SeqVect &v, DistFunc &DF);\r
+void DistKmer6_6(const SeqVect &v, DistFunc &DF);\r
+void DistKmer4_6(const SeqVect &v, DistFunc &DF);\r
+void DistPWKimura(const SeqVect &v, DistFunc &DF);\r
+void FastDistKmer(const SeqVect &v, DistFunc &DF);\r
+void DistUnaligned(const SeqVect &v, DISTANCE DistMethod, DistFunc &DF);\r
+double PctIdToMAFFTDist(double dPctId);\r
+double KimuraDist(double dPctId);\r
+void SetFastParams();\r
+void AssertProfsEq(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB);\r
+void ValidateMuscleIds(const MSA &msa);\r
+void ValidateMuscleIds(const Tree &tree);\r
+void TraceBackToPath(int **TraceBack, unsigned uLengthA,\r
+  unsigned uLengthB, PWPath &Path);\r
+void BitTraceBack(char **TraceBack, unsigned uLengthA, unsigned uLengthB,\r
+  char LastEdge, PWPath &Path);\r
+SCORE AlignTwoMSAs(const MSA &msa1, const MSA &msa2, MSA &msaOut, PWPath &Path,\r
+  bool bLockLeft = false, bool bLockRight = false);\r
+SCORE AlignTwoProfs(\r
+  const ProfPos *PA, unsigned uLengthA, WEIGHT wA,\r
+  const ProfPos *PB, unsigned uLengthB, WEIGHT wB,\r
+  PWPath &Path, ProfPos **ptrPout, unsigned *ptruLengthOut);\r
+void AlignTwoProfsGivenPath(const PWPath &Path,\r
+  const ProfPos *PA, unsigned uLengthA, WEIGHT wA,\r
+  const ProfPos *PB, unsigned uLengthB, WEIGHT wB,\r
+  ProfPos **ptrPOut, unsigned *ptruLengthOut);\r
+void AlignTwoMSAsGivenPathSW(const PWPath &Path, const MSA &msaA, const MSA &msaB,\r
+  MSA &msaCombined);\r
+void AlignTwoMSAsGivenPath(const PWPath &Path, const MSA &msaA, const MSA &msaB,\r
+  MSA &msaCombined);\r
+SCORE FastScorePath2(const ProfPos *PA, unsigned uLengthA,\r
+  const ProfPos *PB, unsigned uLengthB, const PWPath &Path);\r
+SCORE GlobalAlignDiags(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+SCORE GlobalAlignSimple(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+SCORE GlobalAlignSP(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+SCORE GlobalAlignSPN(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+SCORE GlobalAlignLE(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+void CalcThreeWayWeights(const Tree &tree, unsigned uNode1, unsigned uNode2,\r
+  WEIGHT *Weights);\r
+SCORE GlobalAlignSS(const Seq &seqA, const Seq &seqB, PWPath &Path);\r
+bool RefineHoriz(MSA &msaIn, const Tree &tree, unsigned uIters, bool bLockLeft, bool bLockRight);\r
+bool RefineVert(MSA &msaIn, const Tree &tree, unsigned uIters);\r
+SCORE GlobalAlignNoDiags(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+\r
+void SetInputFileName(const char *pstrFileName);\r
+void SetIter(unsigned uIter);\r
+void IncIter();\r
+void SetMaxIters(unsigned uMaxIters);\r
+void Progress(unsigned uStep, unsigned uTotalSteps);\r
+void Progress(const char *szFormat, ...);\r
+void SetStartTime();\r
+void ProgressStepsDone();\r
+void SetProgressDesc(const char szDesc[]);\r
+void SetSeqStats(unsigned uSeqCount, unsigned uMaxL, unsigned uAvgL);\r
+\r
+void SetNewHandler();\r
+void SaveCurrentAlignment();\r
+void SetCurrentAlignment(MSA &msa);\r
+void SetOutputFileName(const char *out);\r
+\r
+#if    DEBUG\r
+void SetMuscleSeqVect(SeqVect &v);\r
+void SetMuscleInputMSA(MSA &msa);\r
+void ValidateMuscleIds(const MSA &msa);\r
+void ValidateMuscleIds(const Tree &tree);\r
+#else\r
+#define SetMuscleSeqVect(x)            /* empty */\r
+#define SetMuscleInputMSA(x)   /* empty */\r
+#define ValidateMuscleIds(x)   /* empty */\r
+#endif\r
+\r
+void ProcessArgVect(int argc, char *argv[]);\r
+void ProcessArgStr(const char *Str);\r
+void Usage();\r
+void SetParams();\r
+\r
+void SortCounts(const FCOUNT fcCounts[], unsigned SortOrder[]);\r
+unsigned ResidueGroupFromFCounts(const FCOUNT fcCounts[]);\r
+FCOUNT SumCounts(const FCOUNT Counts[]);\r
+\r
+bool FlagOpt(const char *Name);\r
+const char *ValueOpt(const char *Name);\r
+void DoMuscle();\r
+void ProfDB();\r
+void DoSP();\r
+void ProgAlignSubFams();\r
+void Run();\r
+void ListParams();\r
+void OnException();\r
+void SetSeqWeightMethod(SEQWEIGHT Method);\r
+SEQWEIGHT GetSeqWeightMethod();\r
+WEIGHT GetMuscleSeqWeightById(unsigned uId);\r
+void ListDiagSavings();\r
+void CheckMaxTime();\r
+const char *MaxSecsToStr();\r
+unsigned long GetStartTime();\r
+\r
+void ProgressiveAlign(const SeqVect &v, const Tree &GuideTree, MSA &a);\r
+ProgNode *ProgressiveAlignE(const SeqVect &v, const Tree &GuideTree, MSA &a);\r
+\r
+void CalcDistRangeKmer6_6(const MSA &msa, unsigned uRow, float Dist[]);\r
+void CalcDistRangeKmer20_3(const MSA &msa, unsigned uRow, float Dist[]);\r
+void CalcDistRangeKmer20_4(const MSA &msa, unsigned uRow, float Dist[]);\r
+void CalcDistRangePctIdKimura(const MSA &msa, unsigned uRow, float Dist[]);\r
+void CalcDistRangePctIdLog(const MSA &msa, unsigned uRow, float Dist[]);\r
+\r
+void MakeRootMSA(const SeqVect &v, const Tree &GuideTree, ProgNode Nodes[], MSA &a);\r
+void MakeRootMSABrenner(SeqVect &v, const Tree &GuideTree, ProgNode Nodes[], MSA &a);\r
+\r
+void Refine();\r
+void Local();\r
+void Profile();\r
+void PPScore();\r
+void UPGMA2(const DistCalc &DC, Tree &tree, LINKAGE Linkage);\r
+\r
+char *GetFastaSeq(FILE *f, unsigned *ptrSeqLength, char **ptrLabel,\r
+  bool DeleteGaps = true);\r
+SCORE SW(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+void TraceBackSW(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, const SCORE *DPM_, const SCORE *DPD_, const SCORE *DPI_,\r
+  unsigned uPrefixLengthAMax, unsigned uPrefixLengthBMax, PWPath &Path);\r
+void DiffPaths(const PWPath &p1, const PWPath &p2, unsigned Edges1[],\r
+  unsigned *ptruDiffCount1, unsigned Edges2[], unsigned *ptruDiffCount2);\r
+void SetPPScore(bool bRespectFlagOpts = true);\r
+void SetPPScore(PPSCORE p);\r
+SCORE GlobalAlignDimer(const ProfPos *PA, unsigned uLengthA, const ProfPos *PB,\r
+  unsigned uLengthB, PWPath &Path);\r
+bool MissingCommand();\r
+void Credits();\r
+void ProfileProfile(MSA &msa1, MSA &msa2, MSA &msaOut);\r
+void MHackStart(SeqVect &v);\r
+void MHackEnd(MSA &msa);\r
+void WriteScoreFile(const MSA &msa);\r
+char ConsensusChar(const ProfPos &PP);\r
+void Stabilize(const MSA &msa, MSA &msaStable);\r
+void MuscleOutput(MSA &msa);\r
+PTR_SCOREMATRIX ReadMx(TextFile &File);\r
+void MemPlus(size_t Bytes, char *Where);\r
+void MemMinus(size_t Bytes, char *Where);\r