+++ /dev/null
-#include "muscle.h"\r
-#include "objscore.h"\r
-#include "profile.h"\r
-#include "enumopts.h"\r
-\r
-const double DEFAULT_MAX_MB_FRACT = 0.8;\r
-\r
-SCORE g_scoreCenter = 0;\r
-SCORE g_scoreGapExtend = 0;\r
-SCORE g_scoreGapOpen2 = MINUS_INFINITY;\r
-SCORE g_scoreGapExtend2 = MINUS_INFINITY;\r
-SCORE g_scoreGapAmbig = 0;\r
-SCORE g_scoreAmbigFactor = 0;\r
-\r
-extern SCOREMATRIX VTML_LA;\r
-extern SCOREMATRIX PAM200;\r
-extern SCOREMATRIX PAM200NoCenter;\r
-extern SCOREMATRIX VTML_SP;\r
-extern SCOREMATRIX VTML_SPNoCenter;\r
-extern SCOREMATRIX NUC_SP;\r
-\r
-PTR_SCOREMATRIX g_ptrScoreMatrix;\r
-\r
-const char *g_pstrInFileName = "-";\r
-const char *g_pstrOutFileName = "-";\r
-const char *g_pstrFASTAOutFileName = 0;\r
-const char *g_pstrMSFOutFileName = 0;\r
-const char *g_pstrClwOutFileName = 0;\r
-const char *g_pstrClwStrictOutFileName = 0;\r
-const char *g_pstrHTMLOutFileName = 0;\r
-const char *g_pstrPHYIOutFileName = 0;\r
-const char *g_pstrPHYSOutFileName = 0;\r
-const char *g_pstrDistMxFileName1 = 0;\r
-const char *g_pstrDistMxFileName2 = 0;\r
-\r
-const char *g_pstrFileName1 = 0;\r
-const char *g_pstrFileName2 = 0;\r
-\r
-const char *g_pstrSPFileName = 0;\r
-const char *g_pstrMatrixFileName = 0;\r
-\r
-const char *g_pstrUseTreeFileName = 0;\r
-bool g_bUseTreeNoWarn = false;\r
-\r
-const char *g_pstrComputeWeightsFileName;\r
-const char *g_pstrScoreFileName;\r
-\r
-const char *g_pstrProf1FileName = 0;\r
-const char *g_pstrProf2FileName = 0;\r
-\r
-unsigned g_uSmoothWindowLength = 7;\r
-unsigned g_uAnchorSpacing = 32;\r
-unsigned g_uMaxTreeRefineIters = 1;\r
-\r
-unsigned g_uRefineWindow = 200;\r
-unsigned g_uWindowFrom = 0;\r
-unsigned g_uWindowTo = 0;\r
-unsigned g_uSaveWindow = uInsane;\r
-unsigned g_uWindowOffset = 0;\r
-\r
-unsigned g_uMaxSubFamCount = 5;\r
-\r
-unsigned g_uHydrophobicRunLength = 5;\r
-float g_dHydroFactor = (float) 1.2;\r
-\r
-unsigned g_uMinDiagLength = 24; // TODO alpha -- should depend on alphabet?\r
-unsigned g_uMaxDiagBreak = 1;\r
-unsigned g_uDiagMargin = 5;\r
-\r
-float g_dSUEFF = (float) 0.1;\r
-\r
-bool g_bPrecompiledCenter = true;\r
-bool g_bNormalizeCounts = false;\r
-bool g_bDiags1 = false;\r
-bool g_bDiags2 = false;\r
-bool g_bAnchors = true;\r
-bool g_bQuiet = false;\r
-bool g_bVerbose = false;\r
-bool g_bRefine = false;\r
-bool g_bRefineW = false;\r
-bool g_bProfDB = false;\r
-bool g_bLow = false;\r
-bool g_bSW = false;\r
-bool g_bClusterOnly = false;\r
-bool g_bProfile = false;\r
-bool g_bPPScore = false;\r
-bool g_bBrenner = false;\r
-bool g_bDimer = false;\r
-bool g_bVersion = false;\r
-bool g_bStable = false;\r
-bool g_bFASTA = false;\r
-bool g_bPAS = false;\r
-bool g_bTomHydro = false;\r
-bool g_bMakeTree = false;\r
-\r
-#if DEBUG\r
-bool g_bCatchExceptions = false;\r
-#else\r
-bool g_bCatchExceptions = true;\r
-#endif\r
-\r
-bool g_bMSF = false;\r
-bool g_bAln = false;\r
-bool g_bClwStrict = false;\r
-bool g_bHTML = false;\r
-bool g_bPHYI = false;\r
-bool g_bPHYS = false;\r
-\r
-unsigned g_uMaxIters = 8;\r
-unsigned long g_ulMaxSecs = 0;\r
-unsigned g_uMaxMB = 500;\r
-\r
-PPSCORE g_PPScore = PPSCORE_LE;\r
-OBJSCORE g_ObjScore = OBJSCORE_SPM;\r
-\r
-SEQWEIGHT g_SeqWeight1 = SEQWEIGHT_ClustalW;\r
-SEQWEIGHT g_SeqWeight2 = SEQWEIGHT_ClustalW;\r
-\r
-DISTANCE g_Distance1 = DISTANCE_Kmer6_6;\r
-DISTANCE g_Distance2 = DISTANCE_PctIdKimura;\r
-\r
-CLUSTER g_Cluster1 = CLUSTER_UPGMB;\r
-CLUSTER g_Cluster2 = CLUSTER_UPGMB;\r
-\r
-ROOT g_Root1 = ROOT_Pseudo;\r
-ROOT g_Root2 = ROOT_Pseudo;\r
-\r
-bool g_bDiags;\r
-\r
-SEQTYPE g_SeqType = SEQTYPE_Auto;\r
-\r
-TERMGAPS g_TermGaps = TERMGAPS_Half;\r
-\r
-//------------------------------------------------------\r
-// These parameters depending on the chosen prof-prof\r
-// score (g_PPScore), initialized to "Undefined".\r
-float g_dSmoothScoreCeil = fInsane;\r
-float g_dMinBestColScore = fInsane;\r
-float g_dMinSmoothScore = fInsane;\r
-SCORE g_scoreGapOpen = fInsane;\r
-//------------------------------------------------------\r
-\r
-static unsigned atou(const char *s)\r
- {\r
- return (unsigned) atoi(s);\r
- }\r
-\r
-const char *MaxSecsToStr()\r
- {\r
- if (0 == g_ulMaxSecs)\r
- return "(No limit)";\r
- return SecsToStr(g_ulMaxSecs);\r
- }\r
-\r
-void ListParams()\r
- {\r
- Log("\n");\r
- Log("%s\n", MUSCLE_LONG_VERSION);\r
- Log("http://www.drive5.com/muscle\n");\r
- Log("\n");\r
- Log("Profile-profile score %s\n", PPSCOREToStr(g_PPScore));\r
- Log("Max iterations %u\n", g_uMaxIters);\r
- Log("Max trees %u\n", g_uMaxTreeRefineIters);\r
- Log("Max time %s\n", MaxSecsToStr());\r
- Log("Max MB %u\n", g_uMaxMB);\r
- Log("Gap open %g\n", g_scoreGapOpen);\r
- Log("Gap extend (dimer) %g\n", g_scoreGapExtend);\r
- Log("Gap ambig factor %g\n", g_scoreAmbigFactor);\r
- Log("Gap ambig penalty %g\n", g_scoreGapAmbig);\r
- Log("Center (LE) %g\n", g_scoreCenter);\r
- Log("Term gaps %s\n", TERMGAPSToStr(g_TermGaps));\r
-\r
- Log("Smooth window length %u\n", g_uSmoothWindowLength);\r
- Log("Refine window length %u\n", g_uRefineWindow);\r
- Log("Min anchor spacing %u\n", g_uAnchorSpacing);\r
- Log("Min diag length (lambda) %u\n", g_uMinDiagLength);\r
- Log("Diag margin (mu) %u\n", g_uDiagMargin);\r
- Log("Min diag break %u\n", g_uMaxDiagBreak);\r
- Log("Hydrophobic window %u\n", g_uHydrophobicRunLength);\r
-\r
- Log("Hydrophobic gap factor %g\n", g_dHydroFactor);\r
- Log("Smooth score ceiling %g\n", g_dSmoothScoreCeil);\r
- Log("Min best col score %g\n", g_dMinBestColScore);\r
- Log("Min anchor score %g\n", g_dMinSmoothScore);\r
- Log("SUEFF %g\n", g_dSUEFF);\r
-\r
- Log("Brenner root MSA %s\n", BoolToStr(g_bBrenner));\r
- Log("Normalize counts %s\n", BoolToStr(g_bNormalizeCounts));\r
- Log("Diagonals (1) %s\n", BoolToStr(g_bDiags1));\r
- Log("Diagonals (2) %s\n", BoolToStr(g_bDiags2));\r
- Log("Anchors %s\n", BoolToStr(g_bAnchors));\r
- Log("MSF output format %s\n", BoolToStr(g_bMSF));\r
- Log("Phylip interleaved %s\n", BoolToStr(g_bPHYI));\r
- Log("Phylip sequential %s\n", BoolToStr(g_bPHYS));\r
- Log("ClustalW output format %s\n", BoolToStr(g_bAln));\r
- Log("Catch exceptions %s\n", BoolToStr(g_bCatchExceptions));\r
- Log("Quiet %s\n", BoolToStr(g_bQuiet));\r
- Log("Refine %s\n", BoolToStr(g_bRefine));\r
- Log("ProdfDB %s\n", BoolToStr(g_bProfDB));\r
- Log("Low complexity profiles %s\n", BoolToStr(g_bLow));\r
-\r
- Log("Objective score %s\n", OBJSCOREToStr(g_ObjScore));\r
-\r
- Log("Distance method (1) %s\n", DISTANCEToStr(g_Distance1));\r
- Log("Clustering method (1) %s\n", CLUSTERToStr(g_Cluster1));\r
- Log("Root method (1) %s\n", ROOTToStr(g_Root1));\r
- Log("Sequence weighting (1) %s\n", SEQWEIGHTToStr(g_SeqWeight1));\r
-\r
- Log("Distance method (2) %s\n", DISTANCEToStr(g_Distance2));\r
- Log("Clustering method (2) %s\n", CLUSTERToStr(g_Cluster2));\r
- Log("Root method (2) %s\n", ROOTToStr(g_Root2));\r
- Log("Sequence weighting (2) %s\n", SEQWEIGHTToStr(g_SeqWeight2));\r
-\r
- Log("\n");\r
- }\r
-\r
-static void SetDefaultsLE()\r
- {\r
- g_ptrScoreMatrix = &VTML_LA;\r
-\r
- //g_scoreGapOpen = (SCORE) -3.00;\r
- //g_scoreCenter = (SCORE) -0.55;\r
- g_scoreGapOpen = (SCORE) -2.9;\r
- g_scoreCenter = (SCORE) -0.52;\r
-\r
- g_bNormalizeCounts = true;\r
-\r
- //g_dSmoothScoreCeil = 5.0;\r
- //g_dMinBestColScore = 4.0;\r
- //g_dMinSmoothScore = 2.0;\r
- g_dSmoothScoreCeil = 3.0;\r
- g_dMinBestColScore = 2.0;\r
- g_dMinSmoothScore = 1.0;\r
-\r
- g_Distance1 = DISTANCE_Kmer6_6;\r
- g_Distance2 = DISTANCE_PctIdKimura;\r
- }\r
-\r
-static void SetDefaultsSP()\r
- {\r
- g_ptrScoreMatrix = &PAM200;\r
-\r
- g_scoreGapOpen = -1439;\r
- g_scoreCenter = 0.0; // center pre-added into score mx\r
-\r
- g_bNormalizeCounts = false;\r
-\r
- g_dSmoothScoreCeil = 200.0;\r
- g_dMinBestColScore = 300.0;\r
- g_dMinSmoothScore = 125.0;\r
-\r
- g_Distance1 = DISTANCE_Kmer6_6;\r
- g_Distance2 = DISTANCE_PctIdKimura;\r
- }\r
-\r
-static void SetDefaultsSV()\r
- {\r
- g_ptrScoreMatrix = &VTML_SP;\r
-\r
- g_scoreGapOpen = -300;\r
- g_scoreCenter = 0.0; // center pre-added into score mx\r
-\r
- g_bNormalizeCounts = false;\r
-\r
- g_dSmoothScoreCeil = 90.0;\r
- g_dMinBestColScore = 130.0;\r
- g_dMinSmoothScore = 40.0;\r
-\r
- g_Distance1 = DISTANCE_Kmer6_6;\r
- g_Distance2 = DISTANCE_PctIdKimura;\r
- }\r
-\r
-//static void SetDefaultsSPN()\r
-// {\r
-// g_ptrScoreMatrix = &NUC_SP;\r
-//\r
-// g_scoreGapOpen = -400;\r
-// g_scoreCenter = 0.0; // center pre-added into score mx\r
-//\r
-// g_bNormalizeCounts = false;\r
-//\r
-// g_dSmoothScoreCeil = 999.0; // disable\r
-// g_dMinBestColScore = 90;\r
-// g_dMinSmoothScore = 90;\r
-//\r
-// g_Distance1 = DISTANCE_Kmer4_6;\r
-// g_Distance2 = DISTANCE_PctIdKimura;\r
-// }\r
-\r
-static void SetDefaultsSPN_DNA()\r
- {\r
- g_ptrScoreMatrix = &NUC_SP;\r
-\r
- g_scoreGapOpen = -400;\r
- g_scoreCenter = 0.0; // center pre-added into score mx\r
- g_scoreGapExtend = 0.0;\r
-\r
- g_bNormalizeCounts = false;\r
-\r
- g_dSmoothScoreCeil = 999.0; // disable\r
- g_dMinBestColScore = 90;\r
- g_dMinSmoothScore = 90;\r
-\r
- g_Distance1 = DISTANCE_Kmer4_6;\r
- g_Distance2 = DISTANCE_PctIdKimura;\r
- }\r
-\r
-static void SetDefaultsSPN_RNA()\r
- {\r
- g_ptrScoreMatrix = &NUC_SP;\r
-\r
- g_scoreGapOpen = -420;\r
- g_scoreCenter = -300; // total center = NUC_EXTEND - 300 \r
- g_scoreGapExtend = 0.0;\r
-\r
- g_bNormalizeCounts = false;\r
-\r
- g_dSmoothScoreCeil = 999.0; // disable\r
- g_dMinBestColScore = 90;\r
- g_dMinSmoothScore = 90;\r
-\r
- g_Distance1 = DISTANCE_Kmer4_6;\r
- g_Distance2 = DISTANCE_PctIdKimura;\r
- }\r
-\r
-static void FlagParam(const char *OptName, bool *ptrParam, bool bValueIfFlagSet)\r
- {\r
- bool bIsSet = FlagOpt(OptName);\r
- if (bIsSet)\r
- *ptrParam = bValueIfFlagSet;\r
- }\r
-\r
-static void StrParam(const char *OptName, const char **ptrptrParam)\r
- {\r
- const char *opt = ValueOpt(OptName);\r
- if (0 != opt)\r
- *ptrptrParam = opt;\r
- }\r
-\r
-static void FloatParam(const char *OptName, float *ptrParam)\r
- {\r
- const char *opt = ValueOpt(OptName);\r
- if (0 != opt)\r
- *ptrParam = (float) atof(opt);\r
- }\r
-\r
-static void UintParam(const char *OptName, unsigned *ptrParam)\r
- {\r
- const char *opt = ValueOpt(OptName);\r
- if (0 != opt)\r
- *ptrParam = atou(opt);\r
- }\r
-\r
-static void EnumParam(const char *OptName, EnumOpt *Opts, int *Param)\r
- {\r
- const char *Value = ValueOpt(OptName);\r
- if (0 == Value)\r
- return;\r
-\r
- for (;;)\r
- {\r
- if (0 == Opts->pstrOpt)\r
- Quit("Invalid parameter -%s %s", OptName, Value);\r
- if (0 == stricmp(Value, Opts->pstrOpt))\r
- {\r
- *Param = Opts->iValue;\r
- return;\r
- }\r
- ++Opts;\r
- }\r
- }\r
-\r
-static void SetPPDefaultParams()\r
- {\r
- switch (g_PPScore)\r
- {\r
- case PPSCORE_SP:\r
- SetDefaultsSP();\r
- break;\r
-\r
- case PPSCORE_LE:\r
- SetDefaultsLE();\r
- break;\r
-\r
- case PPSCORE_SV:\r
- SetDefaultsSV();\r
- break;\r
-\r
- case PPSCORE_SPN:\r
- switch (g_Alpha)\r
- {\r
- case ALPHA_DNA:\r
- SetDefaultsSPN_DNA();\r
- break;\r
- case ALPHA_RNA:\r
- SetDefaultsSPN_RNA();\r
- break;\r
- default:\r
- Quit("Invalid alpha %d", g_Alpha);\r
- }\r
- break;\r
-\r
- default:\r
- Quit("Invalid g_PPScore");\r
- }\r
- }\r
-\r
-static void SetPPCommandLineParams()\r
- {\r
- FloatParam("GapOpen", &g_scoreGapOpen);\r
- FloatParam("GapOpen2", &g_scoreGapOpen2);\r
- FloatParam("GapExtend", &g_scoreGapExtend);\r
- FloatParam("GapExtend2", &g_scoreGapExtend2);\r
- FloatParam("GapAmbig", &g_scoreAmbigFactor);\r
- FloatParam("Center", &g_scoreCenter);\r
- FloatParam("SmoothScoreCeil", &g_dSmoothScoreCeil);\r
- FloatParam("MinBestColScore", &g_dMinBestColScore);\r
- FloatParam("MinSmoothScore", &g_dMinSmoothScore);\r
-\r
- EnumParam("Distance", DISTANCE_Opts, (int *) &g_Distance1);\r
- EnumParam("Distance", DISTANCE_Opts, (int *) &g_Distance2);\r
-\r
- EnumParam("Distance1", DISTANCE_Opts, (int *) &g_Distance1);\r
- EnumParam("Distance2", DISTANCE_Opts, (int *) &g_Distance2);\r
- }\r
-\r
-void SetPPScore(bool bRespectFlagOpts)\r
- {\r
- if (bRespectFlagOpts)\r
- {\r
- if (FlagOpt("SP"))\r
- g_PPScore = PPSCORE_SP;\r
- else if (FlagOpt("LE"))\r
- g_PPScore = PPSCORE_LE;\r
- else if (FlagOpt("SV"))\r
- g_PPScore = PPSCORE_SV;\r
- else if (FlagOpt("SPN"))\r
- g_PPScore = PPSCORE_SPN;\r
- }\r
-\r
- switch (g_PPScore)\r
- {\r
- case PPSCORE_LE:\r
- case PPSCORE_SP:\r
- case PPSCORE_SV:\r
- if (ALPHA_RNA == g_Alpha || ALPHA_DNA == g_Alpha)\r
- g_PPScore = PPSCORE_SPN;\r
- break;\r
- case PPSCORE_SPN:\r
- if (ALPHA_Amino == g_Alpha)\r
- g_PPScore = PPSCORE_LE;\r
- break;\r
- }\r
-\r
- SetPPDefaultParams();\r
- SetPPCommandLineParams();\r
-\r
- if (g_bVerbose)\r
- ListParams();\r
- }\r
-\r
-void SetPPScore(PPSCORE p)\r
- {\r
- g_PPScore = p;\r
- SetPPScore(true);\r
- }\r
-\r
-static void SetMaxSecs()\r
- {\r
- float fMaxHours = 0.0;\r
- FloatParam("MaxHours", &fMaxHours);\r
- if (0.0 == fMaxHours)\r
- return;\r
- g_ulMaxSecs = (unsigned long) (fMaxHours*60*60);\r
- }\r
-\r
-static bool CanDoLowComplexity()\r
- {\r
- if (g_SeqWeight1 != SEQWEIGHT_ClustalW)\r
- return false;\r
- if (1 == g_uMaxIters)\r
- return true;\r
- return g_SeqWeight2 == SEQWEIGHT_ClustalW;\r
- }\r
-\r
-bool MissingCommand()\r
- {\r
- if (strcmp(g_pstrInFileName, "-"))\r
- return false;\r
- if (0 != g_pstrFileName1)\r
- return false;\r
- if (0 != g_pstrSPFileName)\r
- return false;\r
- return true;\r
- }\r
-\r
-void SetParams()\r
- {\r
- SetMaxSecs();\r
-\r
- StrParam("in", &g_pstrInFileName);\r
- StrParam("out", &g_pstrOutFileName);\r
-\r
- StrParam("FASTAOut", &g_pstrFASTAOutFileName);\r
- StrParam("ClwOut", &g_pstrClwOutFileName);\r
- StrParam("ClwStrictOut", &g_pstrClwStrictOutFileName);\r
- StrParam("HTMLOut", &g_pstrHTMLOutFileName);\r
- StrParam("PHYIOut", &g_pstrPHYIOutFileName);\r
- StrParam("PHYSOut", &g_pstrPHYSOutFileName);\r
- StrParam("MSFOut", &g_pstrMSFOutFileName);\r
-\r
- StrParam("in1", &g_pstrFileName1);\r
- StrParam("in2", &g_pstrFileName2);\r
-\r
- StrParam("Matrix", &g_pstrMatrixFileName);\r
- StrParam("SPScore", &g_pstrSPFileName);\r
-\r
- StrParam("UseTree_NoWarn", &g_pstrUseTreeFileName);\r
- if (0 != g_pstrUseTreeFileName)\r
- g_bUseTreeNoWarn = true;\r
-\r
- StrParam("UseTree", &g_pstrUseTreeFileName);\r
- StrParam("ComputeWeights", &g_pstrComputeWeightsFileName);\r
- StrParam("ScoreFile", &g_pstrScoreFileName);\r
- StrParam("DistMx1", &g_pstrDistMxFileName1);\r
- StrParam("DistMx2", &g_pstrDistMxFileName2);\r
-\r
- FlagParam("Core", &g_bCatchExceptions, false);\r
- FlagParam("NoCore", &g_bCatchExceptions, true);\r
-\r
- FlagParam("Diags1", &g_bDiags1, true);\r
- FlagParam("Diags2", &g_bDiags2, true);\r
-\r
- bool Diags = false;\r
- FlagParam("Diags", &Diags, true);\r
- if (Diags)\r
- {\r
- g_bDiags1 = true;\r
- g_bDiags2 = true;\r
- }\r
-\r
- FlagParam("Anchors", &g_bAnchors, true);\r
- FlagParam("NoAnchors", &g_bAnchors, false);\r
-\r
- FlagParam("Quiet", &g_bQuiet, true);\r
- FlagParam("Verbose", &g_bVerbose, true);\r
- FlagParam("Version", &g_bVersion, true);\r
- FlagParam("Stable", &g_bStable, true);\r
- FlagParam("Group", &g_bStable, false);\r
- FlagParam("Refine", &g_bRefine, true);\r
- FlagParam("RefineW", &g_bRefineW, true);\r
- FlagParam("ProfDB", &g_bProfDB, true);\r
- FlagParam("SW", &g_bSW, true);\r
- FlagParam("ClusterOnly", &g_bClusterOnly, true);\r
- FlagParam("Profile", &g_bProfile, true);\r
- FlagParam("PPScore", &g_bPPScore, true);\r
- FlagParam("Brenner", &g_bBrenner, true);\r
- FlagParam("Dimer", &g_bDimer, true);\r
-\r
- FlagParam("MSF", &g_bMSF, true);\r
- FlagParam("PHYI", &g_bPHYI, true);\r
- FlagParam("PHYS", &g_bPHYS, true);\r
- FlagParam("clw", &g_bAln, true);\r
- FlagParam("HTML", &g_bHTML, true);\r
- FlagParam("FASTA", &g_bFASTA, true);\r
- FlagParam("PAS", &g_bPAS, true);\r
- FlagParam("MakeTree", &g_bMakeTree, true);\r
-\r
- if (g_bStable)\r
- Quit("-stable not supported in this version of muscle");\r
-\r
- bool b = false;\r
- FlagParam("clwstrict", &b, true);\r
- if (b)\r
- {\r
- g_bAln = true;\r
- g_bClwStrict = true;\r
- }\r
-\r
- UintParam("MaxIters", &g_uMaxIters);\r
- UintParam("MaxTrees", &g_uMaxTreeRefineIters);\r
- UintParam("SmoothWindow", &g_uSmoothWindowLength);\r
- UintParam("RefineWindow", &g_uRefineWindow);\r
- UintParam("FromWindow", &g_uWindowFrom);\r
- UintParam("ToWindow", &g_uWindowTo);\r
- UintParam("SaveWindow", &g_uSaveWindow);\r
- UintParam("WindowOffset", &g_uWindowOffset);\r
- UintParam("AnchorSpacing", &g_uAnchorSpacing);\r
- UintParam("DiagLength", &g_uMinDiagLength);\r
- UintParam("DiagMargin", &g_uDiagMargin);\r
- UintParam("DiagBreak", &g_uMaxDiagBreak);\r
- UintParam("MaxSubFam", &g_uMaxSubFamCount);\r
-\r
- UintParam("Hydro", &g_uHydrophobicRunLength);\r
- FlagParam("TomHydro", &g_bTomHydro, true);\r
- if (g_bTomHydro)\r
- g_uHydrophobicRunLength = 0;\r
-\r
- FloatParam("SUEFF", &g_dSUEFF);\r
- FloatParam("HydroFactor", &g_dHydroFactor);\r
-\r
- EnumParam("ObjScore", OBJSCORE_Opts, (int *) &g_ObjScore);\r
- EnumParam("TermGaps", TERMGAPS_Opts, (int *) &g_TermGaps);\r
-\r
- EnumParam("Weight", SEQWEIGHT_Opts, (int *) &g_SeqWeight1);\r
- EnumParam("Weight", SEQWEIGHT_Opts, (int *) &g_SeqWeight2);\r
-\r
- EnumParam("Weight1", SEQWEIGHT_Opts, (int *) &g_SeqWeight1);\r
- EnumParam("Weight2", SEQWEIGHT_Opts, (int *) &g_SeqWeight2);\r
-\r
- EnumParam("Cluster", CLUSTER_Opts, (int *) &g_Cluster1);\r
- EnumParam("Cluster", CLUSTER_Opts, (int *) &g_Cluster2);\r
-\r
- EnumParam("Cluster1", CLUSTER_Opts, (int *) &g_Cluster1);\r
- EnumParam("Cluster2", CLUSTER_Opts, (int *) &g_Cluster2);\r
-\r
- EnumParam("Root1", ROOT_Opts, (int *) &g_Root1);\r
- EnumParam("Root2", ROOT_Opts, (int *) &g_Root2);\r
-\r
- EnumParam("SeqType", SEQTYPE_Opts, (int *) &g_SeqType);\r
-\r
- g_scoreGapAmbig = g_scoreGapOpen*g_scoreAmbigFactor;\r
- g_bLow = CanDoLowComplexity();\r
-\r
- if (g_bDimer)\r
- g_bPrecompiledCenter = false;\r
-\r
- UintParam("MaxMB", &g_uMaxMB);\r
- if (0 == ValueOpt("MaxMB"))\r
- g_uMaxMB = (unsigned) (GetRAMSizeMB()*DEFAULT_MAX_MB_FRACT);\r
- }\r