📄 params.cpp
字号:
#include "muscle.h"
#include "objscore.h"
#include "profile.h"
#include "enumopts.h"
const double DEFAULT_MAX_MB_FRACT = 0.8;
SCORE g_scoreCenter = 0;
SCORE g_scoreGapExtend = 0;
SCORE g_scoreGapOpen2 = MINUS_INFINITY;
SCORE g_scoreGapExtend2 = MINUS_INFINITY;
SCORE g_scoreGapAmbig = 0;
SCORE g_scoreAmbigFactor = 0;
extern SCOREMATRIX VTML_LA;
extern SCOREMATRIX PAM200;
extern SCOREMATRIX PAM200NoCenter;
extern SCOREMATRIX VTML_SP;
extern SCOREMATRIX VTML_SPNoCenter;
extern SCOREMATRIX NUC_SP;
PTR_SCOREMATRIX g_ptrScoreMatrix;
const char *g_pstrInFileName = "-";
const char *g_pstrOutFileName = "-";
const char *g_pstrFASTAOutFileName = 0;
const char *g_pstrMSFOutFileName = 0;
const char *g_pstrClwOutFileName = 0;
const char *g_pstrClwStrictOutFileName = 0;
const char *g_pstrHTMLOutFileName = 0;
const char *g_pstrPHYIOutFileName = 0;
const char *g_pstrPHYSOutFileName = 0;
const char *g_pstrDistMxFileName1 = 0;
const char *g_pstrDistMxFileName2 = 0;
const char *g_pstrFileName1 = 0;
const char *g_pstrFileName2 = 0;
const char *g_pstrSPFileName = 0;
const char *g_pstrMatrixFileName = 0;
const char *g_pstrUseTreeFileName = 0;
bool g_bUseTreeNoWarn = false;
const char *g_pstrComputeWeightsFileName;
const char *g_pstrScoreFileName;
const char *g_pstrProf1FileName = 0;
const char *g_pstrProf2FileName = 0;
unsigned g_uSmoothWindowLength = 7;
unsigned g_uAnchorSpacing = 32;
unsigned g_uMaxTreeRefineIters = 1;
unsigned g_uRefineWindow = 200;
unsigned g_uWindowFrom = 0;
unsigned g_uWindowTo = 0;
unsigned g_uSaveWindow = uInsane;
unsigned g_uWindowOffset = 0;
unsigned g_uMaxSubFamCount = 5;
unsigned g_uHydrophobicRunLength = 5;
float g_dHydroFactor = (float) 1.2;
unsigned g_uMinDiagLength = 24; // TODO alpha -- should depend on alphabet?
unsigned g_uMaxDiagBreak = 1;
unsigned g_uDiagMargin = 5;
float g_dSUEFF = (float) 0.1;
bool g_bPrecompiledCenter = true;
bool g_bNormalizeCounts = false;
bool g_bDiags1 = false;
bool g_bDiags2 = false;
bool g_bAnchors = true;
bool g_bQuiet = false;
bool g_bVerbose = false;
bool g_bRefine = false;
bool g_bRefineW = false;
bool g_bProfDB = false;
bool g_bLow = false;
bool g_bSW = false;
bool g_bClusterOnly = false;
bool g_bProfile = false;
bool g_bPPScore = false;
bool g_bBrenner = false;
bool g_bDimer = false;
bool g_bVersion = false;
bool g_bStable = false;
bool g_bFASTA = false;
bool g_bPAS = false;
bool g_bTomHydro = false;
bool g_bMakeTree = false;
#if DEBUG
bool g_bCatchExceptions = false;
#else
bool g_bCatchExceptions = true;
#endif
bool g_bMSF = false;
bool g_bAln = false;
bool g_bClwStrict = false;
bool g_bHTML = false;
bool g_bPHYI = false;
bool g_bPHYS = false;
unsigned g_uMaxIters = 8;
unsigned long g_ulMaxSecs = 0;
unsigned g_uMaxMB = 500;
PPSCORE g_PPScore = PPSCORE_LE;
OBJSCORE g_ObjScore = OBJSCORE_SPM;
SEQWEIGHT g_SeqWeight1 = SEQWEIGHT_ClustalW;
SEQWEIGHT g_SeqWeight2 = SEQWEIGHT_ClustalW;
DISTANCE g_Distance1 = DISTANCE_Kmer6_6;
DISTANCE g_Distance2 = DISTANCE_PctIdKimura;
CLUSTER g_Cluster1 = CLUSTER_UPGMB;
CLUSTER g_Cluster2 = CLUSTER_UPGMB;
ROOT g_Root1 = ROOT_Pseudo;
ROOT g_Root2 = ROOT_Pseudo;
bool g_bDiags;
SEQTYPE g_SeqType = SEQTYPE_Auto;
TERMGAPS g_TermGaps = TERMGAPS_Half;
//------------------------------------------------------
// These parameters depending on the chosen prof-prof
// score (g_PPScore), initialized to "Undefined".
float g_dSmoothScoreCeil = fInsane;
float g_dMinBestColScore = fInsane;
float g_dMinSmoothScore = fInsane;
SCORE g_scoreGapOpen = fInsane;
//------------------------------------------------------
static unsigned atou(const char *s)
{
return (unsigned) atoi(s);
}
const char *MaxSecsToStr()
{
if (0 == g_ulMaxSecs)
return "(No limit)";
return SecsToStr(g_ulMaxSecs);
}
void ListParams()
{
Log("\n");
Log("%s\n", MUSCLE_LONG_VERSION);
Log("http://www.drive5.com/muscle\n");
Log("\n");
Log("Profile-profile score %s\n", PPSCOREToStr(g_PPScore));
Log("Max iterations %u\n", g_uMaxIters);
Log("Max trees %u\n", g_uMaxTreeRefineIters);
Log("Max time %s\n", MaxSecsToStr());
Log("Max MB %u\n", g_uMaxMB);
Log("Gap open %g\n", g_scoreGapOpen);
Log("Gap extend (dimer) %g\n", g_scoreGapExtend);
Log("Gap ambig factor %g\n", g_scoreAmbigFactor);
Log("Gap ambig penalty %g\n", g_scoreGapAmbig);
Log("Center (LE) %g\n", g_scoreCenter);
Log("Term gaps %s\n", TERMGAPSToStr(g_TermGaps));
Log("Smooth window length %u\n", g_uSmoothWindowLength);
Log("Refine window length %u\n", g_uRefineWindow);
Log("Min anchor spacing %u\n", g_uAnchorSpacing);
Log("Min diag length (lambda) %u\n", g_uMinDiagLength);
Log("Diag margin (mu) %u\n", g_uDiagMargin);
Log("Min diag break %u\n", g_uMaxDiagBreak);
Log("Hydrophobic window %u\n", g_uHydrophobicRunLength);
Log("Hydrophobic gap factor %g\n", g_dHydroFactor);
Log("Smooth score ceiling %g\n", g_dSmoothScoreCeil);
Log("Min best col score %g\n", g_dMinBestColScore);
Log("Min anchor score %g\n", g_dMinSmoothScore);
Log("SUEFF %g\n", g_dSUEFF);
Log("Brenner root MSA %s\n", BoolToStr(g_bBrenner));
Log("Normalize counts %s\n", BoolToStr(g_bNormalizeCounts));
Log("Diagonals (1) %s\n", BoolToStr(g_bDiags1));
Log("Diagonals (2) %s\n", BoolToStr(g_bDiags2));
Log("Anchors %s\n", BoolToStr(g_bAnchors));
Log("MSF output format %s\n", BoolToStr(g_bMSF));
Log("Phylip interleaved %s\n", BoolToStr(g_bPHYI));
Log("Phylip sequential %s\n", BoolToStr(g_bPHYS));
Log("ClustalW output format %s\n", BoolToStr(g_bAln));
Log("Catch exceptions %s\n", BoolToStr(g_bCatchExceptions));
Log("Quiet %s\n", BoolToStr(g_bQuiet));
Log("Refine %s\n", BoolToStr(g_bRefine));
Log("ProdfDB %s\n", BoolToStr(g_bProfDB));
Log("Low complexity profiles %s\n", BoolToStr(g_bLow));
Log("Objective score %s\n", OBJSCOREToStr(g_ObjScore));
Log("Distance method (1) %s\n", DISTANCEToStr(g_Distance1));
Log("Clustering method (1) %s\n", CLUSTERToStr(g_Cluster1));
Log("Root method (1) %s\n", ROOTToStr(g_Root1));
Log("Sequence weighting (1) %s\n", SEQWEIGHTToStr(g_SeqWeight1));
Log("Distance method (2) %s\n", DISTANCEToStr(g_Distance2));
Log("Clustering method (2) %s\n", CLUSTERToStr(g_Cluster2));
Log("Root method (2) %s\n", ROOTToStr(g_Root2));
Log("Sequence weighting (2) %s\n", SEQWEIGHTToStr(g_SeqWeight2));
Log("\n");
}
static void SetDefaultsLE()
{
g_ptrScoreMatrix = &VTML_LA;
//g_scoreGapOpen = (SCORE) -3.00;
//g_scoreCenter = (SCORE) -0.55;
g_scoreGapOpen = (SCORE) -2.9;
g_scoreCenter = (SCORE) -0.52;
g_bNormalizeCounts = true;
//g_dSmoothScoreCeil = 5.0;
//g_dMinBestColScore = 4.0;
//g_dMinSmoothScore = 2.0;
g_dSmoothScoreCeil = 3.0;
g_dMinBestColScore = 2.0;
g_dMinSmoothScore = 1.0;
g_Distance1 = DISTANCE_Kmer6_6;
g_Distance2 = DISTANCE_PctIdKimura;
}
static void SetDefaultsSP()
{
g_ptrScoreMatrix = &PAM200;
g_scoreGapOpen = -1439;
g_scoreCenter = 0.0; // center pre-added into score mx
g_bNormalizeCounts = false;
g_dSmoothScoreCeil = 200.0;
g_dMinBestColScore = 300.0;
g_dMinSmoothScore = 125.0;
g_Distance1 = DISTANCE_Kmer6_6;
g_Distance2 = DISTANCE_PctIdKimura;
}
static void SetDefaultsSV()
{
g_ptrScoreMatrix = &VTML_SP;
g_scoreGapOpen = -300;
g_scoreCenter = 0.0; // center pre-added into score mx
g_bNormalizeCounts = false;
g_dSmoothScoreCeil = 90.0;
g_dMinBestColScore = 130.0;
g_dMinSmoothScore = 40.0;
g_Distance1 = DISTANCE_Kmer6_6;
g_Distance2 = DISTANCE_PctIdKimura;
}
//static void SetDefaultsSPN()
// {
// g_ptrScoreMatrix = &NUC_SP;
//
// g_scoreGapOpen = -400;
// g_scoreCenter = 0.0; // center pre-added into score mx
//
// g_bNormalizeCounts = false;
//
// g_dSmoothScoreCeil = 999.0; // disable
// g_dMinBestColScore = 90;
// g_dMinSmoothScore = 90;
//
// g_Distance1 = DISTANCE_Kmer4_6;
// g_Distance2 = DISTANCE_PctIdKimura;
// }
static void SetDefaultsSPN_DNA()
{
g_ptrScoreMatrix = &NUC_SP;
g_scoreGapOpen = -400;
g_scoreCenter = 0.0; // center pre-added into score mx
g_scoreGapExtend = 0.0;
g_bNormalizeCounts = false;
g_dSmoothScoreCeil = 999.0; // disable
g_dMinBestColScore = 90;
g_dMinSmoothScore = 90;
g_Distance1 = DISTANCE_Kmer4_6;
g_Distance2 = DISTANCE_PctIdKimura;
}
static void SetDefaultsSPN_RNA()
{
g_ptrScoreMatrix = &NUC_SP;
g_scoreGapOpen = -420;
g_scoreCenter = -300; // total center = NUC_EXTEND - 300
g_scoreGapExtend = 0.0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -