78 #define NCBI_USE_ERRCODE_X WGSLoader
214 static unsigned value =
226 static unsigned value =
238 static unsigned value =
250 static unsigned value =
267 : m_WGSPrefix(
info.
file->GetWGSPrefix()),
268 m_SeqType(
info.seq_type),
269 m_RowId(
info.row_id),
298 if ( slash ==
NPOS ) {
300 "Bad CWGSBlobId: "<<
str);
303 str =
str.substr(slash+1);
305 if (
str[pos] ==
'S' ||
str[pos] ==
'P' ) {
316 m_Version = NStr::StringToNumeric<int>(
str.substr(dot+1));
358 if ( resolver.
Update() ) {
367 "Exception while updating WGS index: "<<exc);
370 catch ( exception& exc ) {
373 "Exception while updating WGS index: "<<exc.
what());
417 : m_WGSVolPath(params.m_WGSVolPath),
423 m_FileReopenTime, m_FileRecheckTime),
427 m_ResolverCreated(
false)
436 info_slot)).second ) {
438 "Duplicated fixed WGS prefix: "<<
439 info->GetWGSPrefix());
480 if ( !resolver->IsValid() ) {
503 "Asking DataLoader for ids of "<<
id.AsFastaString());
509 LOG_POST_X(22,
"CWGSResolver_DL: Parsing Seq-id "<<*rit);
512 if ( !prefix.empty() ) {
514 LOG_POST_X(23,
"CWGSResolver_DL: WGS prefix: "<<prefix);
516 prefixes.push_back(prefix);
533 unsigned retry_count)
535 if ( retry_count == 0 ) {
538 for (
unsigned t = 1;
t < retry_count; ++
t ) {
547 LOG_POST(
Warning<<
"CWGSDataLoader::"<<name<<
"() try "<<
t<<
" exception: "<<exc);
549 catch ( exception& exc ) {
558 LOG_POST(
Warning<<
"CWGSDataLoader: waiting "<<wait_sec<<
"s before retry");
567 const string& prefix)
570 ref(info_slot), cref(prefix)),
576 const string& prefix)
611 if (
m_Resolver && m_IndexUpdateDeadline->IsExpired() ) {
629 info_slot = it->second;
642 ERR_POST_X(11,
"CWGSDataLoader: WGS Project "<<prefix<<
" is replaced with GenBank entry");
654 const string& prefix)
664 "Reopening WGS project expired in cache: "<<prefix);
707 "Failed to resolve gi "<<gi);
718 " -> "<<
file->GetWGSPrefix());
720 if (
file->FindGi(ret, gi) ) {
726 if ( !prefixes.empty() ) {
743 "Resolved prot acc "<<acc<<
751 "Failed to resolve prot acc "<<acc);
761 "Resolved prot acc "<<acc<<
762 " -> "<<
file->GetWGSPrefix());
764 if (
file->FindProtAcc(ret, text_id) ) {
770 if ( !prefixes.empty() ) {
837 string prefix = acc.substr(0, prefix_len);
839 if ( acc[row_pos] ==
'S' || acc[row_pos] ==
'P' ) {
842 if ( acc.size() <= row_pos ) {
845 ret.
row_id = NStr::StringToNumeric<Uint8>(acc.substr(row_pos),
852 SIZE_TYPE row_digits = acc.size() - row_pos;
853 if (
info->m_WGSDb->GetIdRowDigits() == row_digits ) {
870 const string& db = dbtag.
GetDb();
871 if ( db.size() != 8 &&
885 string wgs_acc = db.substr(4);
888 if (
isalpha(wgs_acc.back()&0xff) ) {
896 if ( wgs_db->IsTSA() != is_tsa ) {
901 if ( object_id.
IsStr() ) {
932 switch ( idh.
Which() ) {
1037 _ASSERT(IsContig() && row_id != 0);
1048 _ASSERT(IsScaffold() && row_id != 0);
1056 _ASSERT(IsProtein() && row_id != 0);
1095 data_source, cref(blob_id)),
1119 data_source, cref(idh), choice),
1145 "blob state error for "+idh.
AsString(),
1158 GetFileInfo(blob_id)->LoadBlob(blob_id, load_lock);
1166 cref(blob_id), ref(chunk_info)),
1174 GetFileInfo(blob_id)->LoadChunk(blob_id, chunk_info);
1181 cref(idh), ref(ids)),
1190 switch (
info.seq_type ) {
1192 info.GetScaffoldIterator().GetIds(ids2);
1195 info.GetProteinIterator().GetIds(ids2);
1198 info.GetContigIterator().GetIds(ids2);
1224 switch (
info.seq_type ) {
1227 acc_id = it.GetAccSeq_id();
1232 acc_id = it.GetAccSeq_id();
1237 acc_id = it.GetAccSeq_id();
1264 if (
info.IsContig() ) {
1267 ret.
gi = it.GetGi();
1271 else if (
info.IsProtein() ) {
1274 ret.
gi = it.GetGi();
1295 auto& vdb =
info.file->GetDb();
1296 if ( vdb->HasCommonTaxId() ) {
1297 return vdb->GetCommonTaxId();
1299 if (
info.IsContig() ) {
1300 return info.GetContigIterator().GetTaxId();
1302 if (
info.IsProtein() ) {
1303 if (
auto root =
info.GetRootFileInfo() ) {
1304 if ( root.IsContig() ) {
1305 return root.GetContigIterator().GetTaxId();
1307 if ( root.IsProtein() ) {
1308 return root.GetProteinIterator().GetTaxId();
1311 return info.GetProteinIterator().GetTaxId();
1324 "GetSequenceLength");
1331 switch (
info.seq_type ) {
1334 return it.GetSeqLength();
1339 return it.GetSeqLength();
1344 return it.GetSeqLength();
1368 switch (
info.seq_type ) {
1378 if ( it.HasSeqHash() ) {
1379 ret.
hash = it.GetSeqHash();
1386 if ( it.HasSeqHash() ) {
1387 ret.
hash = it.GetSeqHash();
1413 switch (
info.seq_type ) {
1415 ret.
type =
info.file->GetDb()->GetScaffoldMolType();
1418 ret.
type =
info.file->GetDb()->GetProteinMolType();
1421 ret.
type =
info.file->GetDb()->GetContigMolType();
1435 const string& prefix)
1442 const string& prefix)
1453 "Exception while opening WGS DB "<<prefix<<
": "<<exc);
1463 "Exception while opening WGS DB "<<prefix<<
": "<<exc);
1466 "CWGSDataLoader: exception while opening WGS DB "<<prefix);
1472 const string& prefix)
1474 auto mgr =
impl.m_Mgr;
1479 "Opened WGS DB "<<prefix<<
" -> "<<
1482 if (
impl.GetAddWGSMasterDescr() ) {
1523 if ( !real_seq_id ) {
1528 !real_text_id->IsSetVersion() ) {
1533 return real_text_id->GetVersion() == asked_text_id.
GetVersion();
1548 if ( !iter.
HasGi() ) {
1551 auto project_state =
file->GetDb()->GetProjectGBState();
1552 switch (project_state) {
1565 if ( row_id == 0 ) {
1568 if ( IsScaffold() ) {
1573 else if ( IsProtein() ) {
1575 if ( IsMigrated(iter) ) {
1590 if ( !iter.HasAccVersion(
version) ) {
1593 iter.SelectAccVersion(
version);
1597 version = iter.GetLatestAccVersion();
1609 if ( row_id == 0 ) {
1612 if ( IsScaffold() ) {
1616 else if ( IsProtein() ) {
1618 if ( IsMigrated(iter) ) {
1621 ERR_POST_X(11,
"CWGSDataLoader: WGS protein "<<gi<<
" migrated to GenBank");
1625 return iter.GetGi() == gi;
1630 if ( iter.GetGi() == gi ) {
1632 version = iter.GetLatestAccVersion();
1649 if ( !
info.ValidateGi(gi) ) {
1663 info.row_id = row_id;
1664 info.seq_type =
'P';
1666 if ( !
info.ValidateAcc(text_id) ) {
1678 switch ( gb_state ) {
1707 entry = it.GetSeq_entry();
1714 entry = it.GetSeq_entry();
1722 CWGSSeqIterator::TFlags
flags = it.fDefaultFlags;
1724 flags &= ~it.fSplitQualityGraph;
1727 flags &= ~it.fSplitSeqData;
1730 flags &= ~it.fSplitFeatures;
1733 if ( !
split.first ) {
1734 entry = it.GetSeq_entry(
flags);
1739 if ( !entry && !
split.first ) {
1755 if (
split.first ) {
1758 " split-version="<<
split.second<<
1768 if (
split.first ) {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
std::invoke_result< Call >::type CallWithRetry(Call &&call, const char *name, int retry_count=0)
bool IsSetDescr(void) const
const TDescr & GetDescr(void) const
Blob state exceptions, used by GenBank loader.
CTSE_LoadLock GetTSE_LoadLock(const TBlobId &blob_id)
virtual void DoJob(void)
Payload function.
CIndexUpdateThread(unsigned update_delay, CRef< CWGSResolver > resolver)
CRef< CWGSResolver > m_Resolver
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
static void Attach(CTSE_Info &tse, const CID2S_Split_Info &split)
static void Load(CTSE_Chunk_Info &chunk, const CID2S_Chunk &data)
@ eProtectedDb
DB is protected.
@ eNotFoundDb
DB main file not found.
void SetParam(const string ¶m)
const string & GetParam(void) const
virtual TErrCode GetErrCode(void) const
void SetLoaded(CObject *obj=0)
TChunkId GetChunkId(void) const
const CTSE_Split_Info & GetSplitInfo(void) const
TBlobState GetBlobState(void) const
void SetBlobState(TBlobState state)
CTSE_Split_Info & GetSplitInfo(void)
void SetSeq_entry(CSeq_entry &entry, CTSE_SetObjectInfo *set_info=0)
bool IsLoaded(void) const
void SetSplitVersion(TSplitVersion version)
TSplitVersion GetSplitVersion(void) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Adaptation of CThread class repeatedly running some job.
void RequestStop()
Schedule thread Stop.
TSlotMutex & GetSlotMutex()
void UpdateExpiration(const CVDBCacheWithExpiration &cache, const string &acc_or_path)
void SetObject(CObject *object)
bool IsExpired(const CVDBCacheWithExpiration &cache, const string &acc_or_path) const
CRef< Object > GetObject() const
CRef< CSlot > GetSlot(const string &acc_or_path)
CWGSBlobId(const string &str)
string ToString(void) const
Get string representation of blob id.
bool operator<(const CBlobId &id) const
void FromString(CTempString str)
bool operator==(const CBlobId &id) const
CWGSResolver & GetResolver(void)
CWGSDataLoader_Impl(const CWGSDataLoader::SLoaderParams ¶ms)
CDataLoader::TTSE_LockSet GetRecordsOnce(CDataSource *data_source, const CSeq_id_Handle &idh, CDataLoader::EChoice choice)
CDataLoader::SHashFound GetSequenceHash(const CSeq_id_Handle &idh)
CDataLoader::TTSE_LockSet GetRecords(CDataSource *data_source, const CSeq_id_Handle &idh, CDataLoader::EChoice choice)
TTaxId GetTaxIdOnce(const CSeq_id_Handle &idh)
vector< CSeq_id_Handle > TIds
TTaxId GetTaxId(const CSeq_id_Handle &idh)
CDataLoader::STypeFound GetSequenceTypeOnce(const CSeq_id_Handle &idh)
unsigned m_IndexUpdateDelay
CRef< CThreadNonStop > m_IndexUpdateThread
CRef< CWGSFileInfo > OpenWGSFile(SWGSFileInfoSlot &slot, const string &prefix)
CRef< CWGSFileInfo > GetWGSFile(const string &acc)
CDataLoader::SAccVerFound GetAccVerOnce(const CSeq_id_Handle &idh)
CRef< CWGSBlobId > GetBlobIdOnce(const CSeq_id_Handle &idh)
SAccFileInfo GetFileInfoByProtAcc(const CTextseq_id &text_id)
friend class CWGSFileInfo
std::invoke_result< Call >::type CallWithRetry(Call &&call, const char *name, unsigned retry_count=0)
SAccFileInfo GetFileInfoByAcc(const CTextseq_id &text_id)
CDataLoader::STypeFound GetSequenceType(const CSeq_id_Handle &idh)
CDataLoader::SGiFound GetGi(const CSeq_id_Handle &idh)
void GetChunkOnce(const CWGSBlobId &blob_id, CTSE_Chunk_Info &chunk)
CDataLoader::SHashFound GetSequenceHashOnce(const CSeq_id_Handle &idh)
CDataLoader::SGiFound GetGiOnce(const CSeq_id_Handle &idh)
CRef< CWGSFileInfo > x_GetFileInfo(SWGSFileInfoSlot &info_slot, const string &prefix)
CRef< CWGSFileInfo > OpenWGSFileOnce(SWGSFileInfoSlot &slot, const string &prefix)
SAccFileInfo GetFileInfoByGi(TGi gi)
CTSE_LoadLock GetBlobById(CDataSource *data_source, const CWGSBlobId &blob_id)
CRef< CWGSBlobId > GetBlobId(const CSeq_id_Handle &idh)
void GetChunk(const CWGSBlobId &blob_id, CTSE_Chunk_Info &chunk)
atomic< bool > m_ResolverCreated
CDataLoader::SAccVerFound GetAccVer(const CSeq_id_Handle &idh)
TSeqPos GetSequenceLengthOnce(const CSeq_id_Handle &idh)
CTSE_LoadLock GetBlobByIdOnce(CDataSource *data_source, const CWGSBlobId &blob_id)
void GetIds(const CSeq_id_Handle &idh, TIds &ids)
CWGSFileInfo::SAccFileInfo SAccFileInfo
CFastMutex m_ResolverMutex
CRef< CWGSResolver > m_Resolver
SAccFileInfo GetFileInfoByGeneral(const CDbtag &dbtag)
TSeqPos GetSequenceLength(const CSeq_id_Handle &idh)
CRef< CWGSFileInfo > GetFileInfo(const CWGSBlobId &blob_id)
~CWGSDataLoader_Impl(void)
void LoadBlob(const CWGSBlobId &blob_id, CTSE_LoadLock &load_lock)
void GetIdsOnce(const CSeq_id_Handle &idh, TIds &ids)
static string NormalizePathOrAccession(CTempString path_or_acc, CTempString vol_path=CTempString())
const string & GetWGSPath(void) const
TVDBRowId GetContigNameRowId(const string &name) const
void SetMasterDescr(const TMasterDescr &descr, EDescrFilter filter=eDescrDefaultFilter) const
TVDBRowId GetProteinNameRowId(const string &name) const
TVDBRowId GetProtAccRowId(const string &acc, int version=-1) const
bool LoadMasterDescr(EDescrFilter filter=eDescrDefaultFilter) const
TVDBRowId GetScaffoldNameRowId(const string &name) const
TVDBRowId GetLocRowId(void) const
NCBI_WGS_seqtype GetLocSeqType(void) const
bool FindProtAcc(SAccFileInfo &info, const CTextseq_id &text_id)
void x_Initialize(const CWGSDataLoader_Impl &impl, const string &prefix)
void Open(const CWGSDataLoader_Impl &impl, const string &prefix)
CWGSFileInfo(const CWGSDataLoader_Impl &impl, const string &prefix)
CWGSProteinIterator GetProteinIterator(const CWGSBlobId &blob_id) const
CWGSSeqIterator GetContigIterator(const CWGSBlobId &blob_id) const
bool FindGi(SAccFileInfo &info, TGi gi)
void LoadChunk(const CWGSBlobId &blob_id, CTSE_Chunk_Info &chunk) const
void LoadBlob(const CWGSBlobId &blob_id, CTSE_LoadLock &load_lock) const
CWGSScaffoldIterator GetScaffoldIterator(const CWGSBlobId &blob_id) const
const string & GetWGSPrefix(void) const
const CWGSDb & GetDb(void) const
void x_InitMasterDescr(void)
ESeqType GetSeqType(void) const
TVDBRowId GetRowId(void) const
NCBI_gb_state GetGBState(void) const
TVDBRowId GetBestProductFeatRowId(void) const
CWGSResolver_DL(CDataLoader *loader)
CRef< CDataLoader > m_Loader
static CRef< CWGSResolver > CreateResolver(void)
static CRef< CWGSResolver > CreateResolver(CDataLoader *loader)
virtual TWGSPrefixes GetPrefixes(const CSeq_id &id)
string ParseWGSPrefix(const CDbtag &dbtag) const
virtual TWGSPrefixes GetPrefixes(TGi gi)=0
virtual void SetNonWGS(TGi gi, const TWGSPrefixes &prefixes)
static bool s_DebugEnabled(EDebugLevel level)
vector< string > TWGSPrefixes
virtual bool Update(void)
static CRef< CWGSResolver > CreateResolver(const CVDBMgr &mgr)
virtual void SetWGSPrefix(TGi gi, const TWGSPrefixes &prefixes, const string &prefix)
CRef< CID2S_Chunk > GetChunkForVersion(TChunkId chunk_id, TSplitVersion split_version) const
void SelectAccVersion(int version)
container_type::iterator iterator
const_iterator end() const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
static const char * str(char *buf, int n)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
SStrictId_Tax::TId TTaxId
Taxon id type.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define LOG_POST_X(err_subcode, message)
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
#define NCBI_RETHROW_FMT(prev_exception, exception_class, err_code, message)
The same as NCBI_RETHROW but with message processed as output to ostream.
void Warning(CExceptionArgs_Base &args)
#define NCBI_THROW2(exception_class, err_code, message, extra)
Throw exception with extra parameter.
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
void Info(CExceptionArgs_Base &args)
#define MSerial_AsnText
I/O stream manipulators –.
static EAccessionInfo IdentifyAccession(const CTempString &accession, TParseFlags flags=fParse_AnyRaw)
Deduces information from a bare accession a la WHICH_db_accession; may report false negatives on prop...
CConstRef< CSeq_id > GetSeqId(void) const
EAccessionInfo
For IdentifyAccession (below)
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
string AsString(void) const
CSeq_id::E_Choice Which(void) const
const CTextseq_id * GetTextseq_Id(void) const
Return embedded CTextseq_id, if any.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
vector< CSeq_id_Handle > TIds
CDataLoader * FindDataLoader(const string &loader_name) const
Try to find a registered data loader by name.
virtual void GetIds(const CSeq_id_Handle &idh, TIds &ids)
Request for a list of all Seq-ids of a sequence.
EChoice
main blob is blob with sequence all other blobs are external and contain external annotations
TTSE_LockSet GetRecordsNoBlobState(const CSeq_id_Handle &idh, EChoice choice)
The same as GetRecords() but always returns empty TSE lock set instead of throwing CBlobStateExceptio...
@ eExtFeatures
external features
@ eExtAnnot
all external annotations
@ eExtAlign
external aligns
@ eOrphanAnnot
all external annotations if no Bioseq exists
@ eBioseqCore
main blob with bioseq core (no seqdata and annots)
@ eExtGraph
external graph annotations
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Swap(TThisType &ref)
Swaps the pointer with another reference.
#define NCBI_PARAM_TYPE(section, name)
Generate typename for a parameter from its {section, name} attributes.
@ eParam_NoThread
Do not use per-thread values.
unsigned char Uchar
Alias for unsigned char.
uint32_t Uint4
4-byte (32-bit) unsigned integer
#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.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
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 & ToUpper(string &str)
Convert string to upper case – string& version.
@ fConvErr_NoThrow
Do not throw an exception on error.
@ eNocase
Case insensitive compare.
bool Run(TRunMode flags=fRunDefault)
Run the thread.
CMutexGuard TWriteLockGuard
Define Write Lock Guard.
void Join(void **exit_data=0)
Wait for the thread termination.
bool IsStr(void) const
Check if variant Str is selected.
const TTag & GetTag(void) const
Get the Tag member data.
const TDb & GetDb(void) const
Get the Db member data.
const TStr & GetStr(void) const
Get the variant data.
TId GetId(void) const
Get the variant data.
bool IsSetAccession(void) const
Check if a value has been assigned to Accession data member.
TVersion GetVersion(void) const
Get the Version member data.
const TGeneral & GetGeneral(void) const
Get the variant data.
bool IsSetVersion(void) const
Check if a value has been assigned to Version data member.
const TAccession & GetAccession(void) const
Get the Accession member data.
@ e_Gibbmt
Geninfo backbone moltype.
@ e_Giim
Geninfo import id.
@ e_Gibbsq
Geninfo backbone seqid.
@ e_General
for other databases
@ e_Gi
GenInfo Integrated Database.
@ e_not_set
No variant selected.
const Tdata & Get(void) const
Get the member data.
list< CRef< CSeq_id > > TId
User-defined methods of the data storage class.
Definition of all error codes used in SRA C++ support libraries.
const string version
version string
const struct ncbi::grid::netcache::search::fields::SIZE size
string s_Value(TValue value)
const GenericPointer< typename T::ValueType > T2 value
void SleepMilliSec(unsigned long ml_sec, EInterruptOnSignal onsignal=eRestartOnSignal)
void split(std::vector< std::string > *strVec, const std::string &str_, const std::string &split_)
Helper classes and templates to implement plugins.
#define row(bind, expected)
Better replacement of GetAccVer(), this method should be defined in data loaders, GetAccVer() is left...
Better replacement of GetGi(), this method should be defined in data loaders, GetGi() is left for com...
Better replacement of GetSequenceHash(), this method should be defined in data loaders,...
Better replacement of GetSequenceType(), this method should be defined in data loaders,...
vector< string > m_WGSFiles
CWGSProteinIterator GetProteinIterator(void) const
CWGSSeqIterator GetContigIterator(void) const
bool ValidateAcc(const CTextseq_id &text_id)
bool IsMigrated(const CWGSProteinIterator &iter) const
SAccFileInfo GetRootFileInfo(void) const
CRef< CWGSFileInfo > file
CWGSScaffoldIterator GetScaffoldIterator(void) const
void sx_Update(CWGSResolver &resolver)
static bool s_ValidateAcc(const CConstRef< CSeq_id > &real_seq_id, const CTextseq_id &asked_text_id)
static bool GetSplitFeaturesParam(void)
static bool GetSplitQualityGraphParam(void)
static string GetWGSVolPath(void)
static unsigned GetRetryCountParam(void)
static bool GetResolveGIsParam(void)
static bool GetKeepMigratedParam(void)
static CBioseq_Handle::TBioseqStateFlags s_GBStateToOM(NCBI_gb_state gb_state)
static bool GetKeepReplacedParam(void)
static int GetDebugLevel(void)
static unsigned GetFileRecheckTimeParam(void)
static const size_t kMaxWGSPrefixLetters
static bool GetResolveProtAccsParam(void)
static bool GetMasterDescrParam(void)
static unsigned GetIndexUpdateTimeParam(void)
NCBI_PARAM_DEF_EX(int, WGS_LOADER, DEBUG, 0, eParam_NoThread, WGS_LOADER_DEBUG)
static const size_t kMinWGSPrefixLetters
static unsigned GetFileReopenTimeParam(void)
static const size_t kWGSPrefixDigits
static size_t GetGCSizeParam(void)
NCBI_DEFINE_ERR_SUBCODE_X(23)
NCBI_PARAM_DECL(int, WGS_LOADER, DEBUG)
NCBI_PARAM_DEF(bool, WGS_LOADER, MASTER_DESCR, true)
static bool GetSplitSequenceParam(void)
static const size_t kMaxWGSProteinAccLen
@ NCBI_gb_state_eWGSGenBankReplaced
@ NCBI_gb_state_eWGSGenBankSuppressed
@ NCBI_gb_state_eWGSGenBankMigrated
@ NCBI_gb_state_eWGSGenBankWithdrawn
@ NCBI_WGS_seqtype_scaffold
@ NCBI_WGS_seqtype_contig