42 const size_t kMb (1u << 20);
52 "Query cDNA type: 'mrna' or 'est'."
53 " Sets basic scores to preset values",
60 "Score for a single match (positive)."
61 " Overrides value set by '-type'",
67 "Score for a single mismatch (negative)."
68 " Overrides value set by '-type'",
74 "Score for gap opening (negative)."
75 " Overrides value set by '-type'",
78 (
"gap_extension_score",
79 "gap_extension_score",
80 "Score for gap extension (negative)."
81 " Overrides value set by '-type'",
85 (
"gt_ag_splice_score",
87 "Score for splice (negative)."
88 " Overrides value set by '-type'",
92 (
"gc_ag_splice_score",
94 "Score for splice (negative)."
95 " Overrides value set by '-type'",
99 (
"at_ac_splice_score",
100 "at_ac_splice_score",
101 "Score for splice (negative)."
102 " Overrides value set by '-type'",
106 (
"non_consensus_splice_score",
107 "non_consensus_splice_score",
108 "Score for splice (negative)."
109 " Overrides value set by '-type'",
115 (
"compartment_penalty",
116 "compartment_penalty",
117 "Penalty to open a new compartment "
118 "(compartment identification parameter). "
119 "Multiple compartments will only be identified if "
120 "they have at least this level of coverage.",
125 (
"min_compartment_idty",
126 "min_compartment_identity",
127 "Minimal compartment identity to align.",
132 (
"min_singleton_idty",
133 "min_singleton_identity",
134 "Minimal singleton compartment identity to use per subject and strand, "
135 "expressed as a fraction of the query's length.",
139 (
"min_singleton_idty_bps",
140 "min_singleton_identity_bps",
141 "Minimal singleton compartment identity to use per subject and strand, "
143 "The actual value passed to the compartmentization procedure is the least of "
144 "(min_singleton_idty * query_length) and min_singleton_identity_bps.",
151 "Minimal exon identity. "
152 "Segments with lower identity will be marked as gaps.",
157 (
"min_polya_ext_idty",
159 "Minimal identity to extend alignment into polya. "
160 "Polya candidate region on mRNA is detected first. Alignment is produced without the polya candidate region "
161 "After that alignment will be extended into the polya candidate region to deal with case when initial polya detection was wrong",
168 "Minimal length of polya.",
175 "The upper bound on intron length, in base pairs.",
178 s_GetDefaultMaxIntron()));
183 "If a gap between exons is less than min_hole_len (on both query and subject), "
184 "stich the exons together. The gap will be represented as insertions and/or "
185 "deletions inside the joint exon. 0 - don\'t stich.",
190 (
"trim_holes_to_codons",
191 "trim_holes_to_codons",
192 "Trim exons around a gap to full codons if CDS location is known on the query.",
199 "The max space to allocate for a splice, in MB. "
200 "Specify lower values to spend less time stitching "
201 "over large genomic intervals.",
206 (
"max_part_exon_ident_drop",
207 "max_part_exon_ident_drop",
208 "Don't allow identity of part of exon to drop more than max_part_exon_trim_drop. "
209 "If identity near alignment gap drops more than max_part_exon_trim_drop in comparison to the rest of exon, "
210 "the low identity part will be trimmed out.",
217 "Test new developments. Default behavior if not set.",
221 argdescr->
SetConstraint(
"min_compartment_idty", constrain01);
247 argdescr->
SetConstraint(
"max_part_exon_ident_drop", constrain005);
260 if(args[
"min_singleton_idty"]) {
274 double max_space (args[
"max_space"].AsDouble() * kMb);
276 if(max_space > kMax32) max_space = kMax32;
285 const bool query_low_quality (args[
"type"].AsString() ==
kQueryType_EST);
286 if(query_low_quality) {
291 if(args[
"match_score"]) {
294 if(args[
"mismatch_score"]) {
297 if(args[
"gap_opening_score"]) {
300 if(args[
"gap_extension_score"]) {
303 if(args[
"gt_ag_splice_score"]) {
306 if(args[
"gc_ag_splice_score"]) {
309 if(args[
"at_ac_splice_score"]) {
312 if(args[
"non_consensus_splice_score"]) {
static void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup core splign argument descriptions for the application.
static void ArgsToSplign(CSplign *splign, const CArgs &args)
Translate command line arguments into splign algorithm core settings.
CSplign is the central library object for computing spliced cDNA-to-genomic alignments.
void SetMismatchScore(int score)
void SetMinHoleLen(size_t len)
void SetPolyaDetection(bool on)
void SetCompartmentPenalty(double penalty)
void SetMinSingletonIdentity(double idty)
void SetMatchScore(int score)
void SetMinPolyaLen(size_t len)
void SetMaxIntron(size_t max_intron)
static bool s_GetDefaultTrimToCodons(void)
void SetMinSingletonIdentityBps(size_t idty)
void SetMinExonIdentity(double idty)
static double s_GetDefaultMinCompartmentIdty(void)
void SetGapOpeningScore(int score)
void SetTestType(const string &test_type)
static size_t s_GetDefaultMinPolyaLen(void)
void SetGcAgSpliceScore(int score)
void SetScoringType(EScoringType type)
void SetNonConsensusSpliceScore(int score)
static double s_GetDefaultCompartmentPenalty(void)
void SetAlignerScores(void)
static double s_GetDefaultMinExonIdty(void)
static double s_GetDefaultMaxPartExonIdentDrop(void)
double GetMinCompartmentIdentity(void) const
void SetTrimToCodons(bool)
void SetAtAcSpliceScore(int score)
void SetPolyaExtIdentity(double idty)
void SetGapExtensionScore(int score)
CRef< TAligner > & SetAligner(void)
Access the spliced aligner core object.
static double s_GetDefaultPolyaExtIdty(void)
void SetMinCompartmentIdentity(double idty)
static CRef< CSplicedAligner > s_CreateDefaultAligner(void)
void SetEndGapDetection(bool on)
static size_t s_GetDefaultMinHoleLen(void)
void SetGtAgSpliceScore(int score)
void SetSpaceLimit(const size_t &maxmem)
static size_t GetDefaultSpaceLimit(void)
void SetConstraint(const string &name, const CArgAllow *constraint, EConstraintNegate negate=eConstraint)
Set additional user defined constraint on argument value.
void AddOptionalKey(const string &name, const string &synopsis, const string &comment, EType type, TFlags flags=0)
Add description for optional key without default value.
CArgAllow_Strings * Allow(const string &value)
Add allowed string values.
void SetCurrentGroup(const string &group)
Set current arguments group name.
void AddDefaultKey(const string &name, const string &synopsis, const string &comment, EType type, const string &default_value, TFlags flags=0, const string &env_var=kEmptyStr, const char *display_value=nullptr)
Add description for optional key with default value.
@ eBoolean
{'true', 't', 'false', 'f'}, case-insensitive
@ eDouble
Convertible into a floating point number (double)
@ eString
An arbitrary string.
@ eInteger
Convertible into an integer number (int or Int8)
uint32_t Uint4
4-byte (32-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string DoubleToString(double value, int precision=-1, TNumToStringFlags flags=0)
Convert double to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
const string kTestType_20_28
const string kTestType_20_28_plus
const string kTestType_production_default