63 arg_desc.SetCurrentGroup(
"Data source and object manager options");
66 if (loaders & fLDS2) {
67 arg_desc.AddOptionalKey(
"lds2",
"LDSDatabases",
68 "Comma-separated list of LDS2 databases to use.",
74 if (loaders & fBLAST) {
75 arg_desc.AddOptionalKey(
"blastdb",
"BlastDatabases",
76 "Comma-separated list of BLAST databases to use. "
77 "Use na: prefix for nucleotide, "
78 "or aa: for protein.",
81 if(!arg_desc.Exist(
"d")) arg_desc.AddAlias(
"d",
"blastdb");
85 if (loaders & fAsnCache) {
86 arg_desc.AddOptionalKey(
"asn-cache",
"AsnCache",
87 "Comma-separated list of ASN Cache databases to use.",
95 if (((loaders & fGenbank) && (loaders & fGenbankOffByDefault)) ||
98 if (!arg_desc.Exist(
"r")) {
100 "Enable remote data retrieval");
104 if (loaders & fGenbank) {
105 if (loaders & fGenbankOffByDefault) {
106 if ( !arg_desc.Exist(
"genbank")) {
107 arg_desc.AddFlag(
"genbank",
108 "Enable remote data retrieval using the Genbank data loader");
112 if(!arg_desc.Exist(
"nogenbank")) {
113 arg_desc.AddFlag(
"nogenbank",
114 "Do not use GenBank data loader.");
117 arg_desc.AddOptionalKey(
"gb-method",
"GBMethod",
118 "Semicolon-separated list of Genbank loader method(s)",
121 arg_desc.AddOptionalKey(
"gb-snp",
"enable",
122 "Genbank SNP processor",
124 arg_desc.AddOptionalKey(
"gb-wgs",
"enable",
125 "Genbank WGS processor",
127 arg_desc.AddOptionalKey(
"gb-cdd",
"enable",
128 "Genbank SNP processor",
131 string dep_arg = loaders & fGenbankOffByDefault ?
"genbank" :
"nogenbank";
132 arg_desc.SetDependency(
"gb-method", dep_type, dep_arg);
133 arg_desc.SetDependency(
"gb-snp", dep_type, dep_arg);
134 arg_desc.SetDependency(
"gb-wgs", dep_type, dep_arg);
135 arg_desc.SetDependency(
"gb-cdd", dep_type, dep_arg);
139 if (loaders & fVDB) {
140 if (loaders & fVDBOnByDefault) {
141 arg_desc.AddFlag(
"vdb",
"Use VDB data loader.",
146 arg_desc.AddFlag(
"vdb",
"Use VDB data loader.");
148 arg_desc.AddFlag(
"novdb",
"Do not use VDB data loader.");
149 arg_desc.SetDependency(
"vdb",
152 arg_desc.AddOptionalKey(
"vdb-path",
"Path",
153 "Root path for VDB look-up",
158 if (loaders & fSRA) {
159 arg_desc.AddFlag(
"sra",
"Add the SRA data loader with no options.");
161 arg_desc.AddOptionalKey(
"sra-acc",
"AddSra",
"Add the SRA data loader, specifying an accession.",
164 arg_desc.AddOptionalKey(
"sra-file",
"AddSra",
"Add the SRA data loader, specifying an sra file.",
173 if (loaders & fVDB) {
174 arg_desc.AddFlag(
"novdb",
"Do not use VDB data loader.");
182 arg_desc.SetCurrentGroup(
"General application arguments");
191 bool nogenbank = args.
Exist(
"nogenbank") && args[
"nogenbank"];
193 if ((args.
Exist(
"genbank") && args[
"genbank"]) ||
194 (args.
Exist(
"r") && args[
"r"])) {
205 if (args.
Exist(
"gb-method") && args[
"gb-method"]) {
206 methods = args[
"gb-method"].GetStringList();
210 if (!gb_methods.empty()) gb_methods +=
";";
213 if (!gb_methods.empty()) {
217 if (args.
Exist(
"gb-snp") && args[
"gb-snp"]) {
220 if (args.
Exist(
"gb-wgs") && args[
"gb-wgs"]) {
223 if (args.
Exist(
"gb-cdd") && args[
"gb-cdd"]) {
230 #ifdef HAVE_PUBSEQ_OS
240 priority =
max(priority, 16000);
247 <<
" (" << priority <<
")");
261 (args.
Exist(
"vdb") && args[
"vdb"]);
262 if ( !use_vdb_loader ) {
263 string vdbEnabled = reg.
Get(
"Gpipe",
"enable_vdb");
264 if (vdbEnabled ==
"Y") {
265 use_vdb_loader =
true;
269 if (!use_vdb_loader) {
270 if (args.
Exist(
"r") && args[
"r"]) {
271 use_vdb_loader =
true;
275 if (args.
Exist(
"novdb") && args[
"novdb"]) {
276 use_vdb_loader =
false;
279 if (use_vdb_loader) {
280 string vdbpath = reg.
Get(
"Gpipe",
"VDB_PATH");
281 if (args.
Exist(
"vdb-path") && args[
"vdb-path"]) {
282 vdbpath = args[
"vdb-path"].AsString();
303 if ((args.
Exist(
"sra") && args[
"sra"]) || (args.
Exist(
"r") && args[
"r"])) {
308 else if(args.
Exist(
"sra-acc") && args[
"sra-acc"]) {
310 args[
"sra-acc"].AsString(),
314 else if(args.
Exist(
"sra-file") && args[
"sra-file"]) {
315 CDirEntry file_entry(args[
"sra-file"].AsString());
330 typedef vector<string> TDbs;
333 if (args.
Exist(
"blastdb") && args[
"blastdb"]) {
334 blastdbstr = args[
"blastdb"].GetStringList();
361 <<
" (" << priority <<
")");
371 typedef vector<string> TDbs;
374 if (args.
Exist(
"lds2") && args[
"lds2"]) {
375 lds2dbstr = args[
"lds2"].GetStringList();
388 if ( !
CFile(db).Exists() ) {
393 string alias(
"lds2_");
401 <<
" (" << priority <<
")");
411 typedef vector<string> TDbs;
415 string cachePaths = reg.
Get(
"ASN_CACHE",
"ASN_CACHE_PATH");
416 if(cachePaths.size() > 0) {
417 asn_cache_str.push_back(cachePaths);
418 LOG_POST(
Info <<
"From config: ASNCache:ASN_CACHE_PATH " << cachePaths);
421 if (args.
Exist(
"asn-cache") && args[
"asn-cache"]) {
422 asn_cache_str = args[
"asn-cache"].GetStringList();
432 if (
CDir(db).Exists()) {
439 <<
" (" << priority <<
")");
483 if (loaders &
fLDS2) {
511 if (loaders &
fSRA) {
542 scope->AddDefaults();
Data loader implementation that uses the blast databases.
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const string &db_path, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const string &dbname="nr", const EDbType dbtype=eUnknown, bool use_fixed_size_slices=true, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
EDbType
Describes the type of blast database to use.
@ eNucleotide
nucleotide database
@ eProtein
protein database
@ eUnknown
protein is attempted first, then nucleotide
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const SLoaderParams ¶ms, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
static void x_SetupLDS2DataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority)
static void SetupObjectManager(const CArgs &args, objects::CObjectManager &obj_mgr, TLoaders loaders=fDefault)
Set up the standard object manager data loaders according to the arguments provided above.
static void x_SetupSRADataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority)
static void x_SetupVDBDataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority, TLoaders loaders)
static CRef< objects::CScope > GetDefaultScope(const CArgs &args)
static void x_SetupBlastDataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority)
static void x_SetupGenbankDataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority, TLoaders loaders)
static void x_SetupASNCacheDataLoader(const CArgs &args, objects::CObjectManager &obj_mgr, int &priority)
static void SetupGenbankDataLoader(const CArgs &args, objects::CObjectManager &obj_mgr)
Set up just the GenBank data loader.
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CReader *reader=0, CObjectManager::EIsDefault is_default=CObjectManager::eDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
void SetEnableSNP(bool enable)
void SetLoaderMethod(const string &loader_method)
void SetEnableWGS(bool enable)
void SetEnableCDD(bool enable)
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
Argument-less loader - for compatibility only, unusable.
static CNcbiApplication * Instance(void)
Singleton method.
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const SLoaderParams ¶ms, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
const CNcbiRegistry & GetConfig(void) const
Get the application's cached configuration parameters (read-only).
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
bool Exist(const string &name) const
Check existence of argument description.
EDependency
Dependencies between arguments.
vector< string > TStringArray
Some values types can contain several value lists.
@ fAllowMultiple
Repeated key arguments are legal (use with AddKey)
@ fHidden
Hide it in Usage.
@ eRequires
One argument requires another.
@ eExcludes
One argument excludes another.
@ eBoolean
{'true', 't', 'false', 'f'}, case-insensitive
@ eString
An arbitrary string.
void DBAPI_RegisterDriver_FTDS(void)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
void Warning(CExceptionArgs_Base &args)
void Info(CExceptionArgs_Base &args)
static string NormalizePath(const string &path, EFollowLinks follow_links=eIgnoreLinks)
Normalize a path.
static string CreateAbsolutePath(const string &path, ERelativeToWhat rtw=eRelativeToCwd)
Get an absolute path from some, possibly relative, path.
string GetDir(EIfEmptyPath mode=eIfEmptyPath_Current) const
Get the directory component for this directory entry.
string GetName(void) const
Get the base entry name with extension (if any).
virtual const string & Get(const string §ion, const string &name, TFlags flags=0) const
Get the parameter value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another 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.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate spaces in a string.
@ eNocase
Case insensitive compare.
void GenBankReaders_Register_Pubseq2(void)
void GenBankReaders_Register_Pubseq(void)
Defines CRequestContext class for NCBI C++ diagnostic API.