( !slot->
empty() ) {
113 _ASSERT(objs.m_AnnotSet.empty());
114 _ASSERT(objs.m_SNPSet.empty());
127: m_InternalBioObjNumber(0),
128m_MasterSeqSegmentsLoaded(
false)
138: m_InternalBioObjNumber(0),
139m_MasterSeqSegmentsLoaded(
false)
154: m_InternalBioObjNumber(0),
155m_MasterSeqSegmentsLoaded(
false)
172: m_InternalBioObjNumber(0),
173m_MasterSeqSegmentsLoaded(
false)
188m_InternalBioObjNumber(0),
189m_MasterSeqSegmentsLoaded(
false)
397 "Unknown SNP annots");
415 if( !
info->GetId().empty() ) {
419 if(!
info->GetId().empty())
430 if(
info->m_Bioseq_set_Id > 0)
524ret = iter->second.m_SNP_annot_Info;
597ds.
x_Map(obj,
this);
630 if( !
id.IsGi() ) {
632 if(
id.HaveMatchingHandles() ) {
636 boolnew_id =
false;
643iter->second.m_Orphan = orphan;
648 _VERIFY(iter->second.m_Names.insert(name).second);
660 _VERIFY(iter->second.m_Names.erase(name) == 1);
661 if( iter->second.m_Names.empty() ) {
662 boolorphan = iter->second.m_Orphan;
685 sort(ids.begin(), ids.end());
686ids.erase(unique(ids.begin(), ids.end()), ids.end());
697ids.push_back(it->first);
716ids.push_back(it2->first);
745 else if(
id.HaveMatchingHandles() ) {
749 if( *match_it !=
id) {
782 for(
auto& [
i,
id] : ids ) {
785ret[
i] = it->second;
810 if(
first->IsSeq() ) {
832 ERR_POST(
"Segment set cannot be initialized: "<<exc);
849 else if(
id.HaveMatchingHandles() ) {
853 if( *match_it !=
id) {
890 if( !chunk_ids.empty() ) {
902pair<TBioseqs::iterator, bool> ins =
907 "duplicate Bioseq id "<<
id<<
" present in"<<
908 "\n seq1: "<< ins.first->second->IdString() <<
909 "\n seq2: "<<
info->IdString());
923pair<TBioseqs::iterator, bool> ins =
928 "duplicate Bioseq id "+it->AsString()+
" present in"+
929 "\n seq1: "+ ins.first->second->IdString()+
930 "\n seq2: "+
info->IdString());
950 if( iter ==
m_Bioseqs.
end() || iter->first !=
id) {
970pair<TBioseq_sets::iterator, bool> ins =
1070 object.x_UpdateAnnotIndex(*
this);
1102 returniter->second;
1119 return&iter->second;
1130 return&iter->second;
1134pair<SIdAnnotObjs*, bool>
1140 boolnew_id =
false;
1142 if( it == objs.
end() ) {
1147 _ASSERT(it != objs.
end() && it->first ==
id);
1148 returnmake_pair(&it->second, new_id);
1152pair<SIdAnnotObjs*, bool>
1164 if( it == objs.
end() ) {
1221it && it->first ==
key.m_Range; ++it ) {
1222 if( it->second.m_AnnotObject_Info == &
info) {
1223rangeMap.
erase(it);
1224 returnrangeMap.
empty();
1228 returnrangeMap.
empty();
1241 for(
size_tidx = idx_rg->first; idx < idx_rg->second; ++idx) {
1249 for(
size_tidx = idx_rg.first; idx < idx_rg.second; ++idx) {
1262 for(
size_tidx = idx_rg.first; idx < idx_rg.second; ++idx) {
1281 returnid_objs.second;
1294 returnobjs.
empty();
1305objs.first->m_SNPSet.push_back(
ConstRef(&snp_info));
1315TSNPSet::iterator iter = find(objs.
m_SNPSet.begin(),
1318 if( iter != objs.
m_SNPSet.end() ) {
1340 if( index.
empty() ) {
1355 if( it->HasSingleKey() ) {
1359 for(
size_t i= it->GetKeysBegin(); i < it->GetKeysEnd(); ++
i) {
1365 if( index.
empty() ) {
1377 return*iter->second;
1383 "cannot find Bioseq-set by local id");
1385 return*iter->second;
1396 return*iter->second;
1402 "cannot find Bioseq by Seq-id "+
id.AsString());
1404 return*iter->second;
1463 if( xref_tse ==
this) {
1469iter2 != index2.
end() && iter2->first ==
id; ++iter2 ) {
1471 if(
info.m_Type == id_type ) {
1472 if(
info.m_IsChunk ) {
1477 if( xref_tse && xref_tse != &
info.m_Info->GetSeq_annot_Info().GetXrefTSE() ) {
1536 if( xref_tse ==
this) {
1542iter2 != index2.
end() && iter2->first ==
id; ++iter2 ) {
1544 if(
info.m_Type == id_type ) {
1545 if(
info.m_IsChunk ) {
1550 if( xref_tse && xref_tse != &
info.m_Info->GetSeq_annot_Info().GetXrefTSE() ) {
1630iter != index.
end() && iter->first ==
id; ++iter ) {
1631 if( iter->second.m_Info == &
info&& iter->second.m_Type == id_type ) {
1632index.
erase(iter);
1636 _ASSERT(
"x_UnmapFeatById: not found"&& 0);
1660iter != index.
end() && iter->first ==
id; ++iter ) {
1661 if( iter->second.m_Info == &
info&& iter->second.m_Type == id_type ) {
1662index.
erase(iter);
1666 _ASSERT(
"x_UnmapFeatById: not found"&& 0);
1709it->first.first == locus &&
1710it->first.second ==
tag;
1712 if( it->second == &
info) {
1738 for(
size_tindex = range.first; index < range.second; ++index ) {
1778 for(
size_tindex = range.first; index < range.second; ++index ) {
1854 for(
size_tindex = range.first; index < range.second; ++index ) {
1906 for(
size_tindex = range.first; index < range.second; ++index ) {
1948 for(
size_tindex = range.first; index < range.second; ++index ) {
2001 if( xref_tse ==
this) {
2008it->first.first == locus &&
2009it->first.second ==
tag;
2011 if( xref_tse && xref_tse != &it->second->GetSeq_annot_Info().
GetXrefTSE() ) {
2014 objects.push_back(it->second);
2028 TRangerange(loc_pos, loc_pos);
2034 if( index < objs->x_GetRangeMapCount() &&
2039*it->second.m_AnnotObject_Info;
2044 if( found_feat == &feat ) {
2068 if( seen.
insert(it->second).second ) {
2121 "CTSE_Handle::GetTopLevelSeq_submit: " 2122 "Top level object is not Seq-submit");
2127 "CTSE_Handle::GetTopLevelSeq_submit: " 2128 "Top level object is not Seq-submit");
2140 if(
set.IsSetSeq_set() && !
set.GetSeq_set().
empty() ) {
2141submit.
SetData().SetEntrys() =
set.GetBioseq_setCore()->GetSeq_set();
2143 else if(
set.IsSetAnnot() && !
set.GetAnnot().
empty() ) {
2144submit.
SetData().SetAnnots() =
set.GetBioseq_setCore()->GetAnnot();
2149submit.
SetData().SetEntrys().clear();
2152submit.
SetData().SetAnnots().clear();
User-defined methods of the data storage class.
const string & GetName(void) const
void GetLocsTypes(TTypeIndexSet &idx_set) const
const CSeq_annot_Info & GetSeq_annot_Info(void) const
bool IsRegular(void) const
vector< TIndexRange > TTypeIndexSet
const CSeq_feat * GetFeatFast(void) const
TIndex GetAnnotIndex(void) const
static CSeqFeatData::ESubtype GetSubtypeForIndex(size_t index)
pair< size_t, size_t > TIndexRange
static TIndexRange GetFeatTypeRange(CSeqFeatData::E_Choice type)
static TIndexRange GetTypeIndex(const CAnnotObject_Info &info)
static size_t GetSubtypeIndex(CSeqFeatData::ESubtype subtype)
const CSeq_id_Handle & GetSeqId() const
virtual void Update(CBioseq_Info &seq)=0
vector< CSeq_id_Handle > TId
TClass GetClass(void) const
CConstRef< CSeq_entry_Info > GetFirstEntry(void) const
void Guard(CDataSource &ds)
void x_ResetDirtyAnnotIndex(CTSE_Info &tse)
void x_IndexAnnotTSEs(CTSE_Info *tse_info)
void x_UnindexAnnotTSEs(CTSE_Info *tse_info)
CDataLoader * GetDataLoader(void) const
void x_SetDirtyAnnotIndex(CTSE_Info &tse)
void x_UnindexSeqTSE(const CSeq_id_Handle &ids, CTSE_Info *tse_info)
void x_UnindexAnnotTSE(const CSeq_id_Handle &idh, CTSE_Info *tse_info, bool orphan)
void x_Unmap(const CObject *obj, const CTSE_Info_Object *info)
void x_Map(const CObject *obj, const CTSE_Info_Object *info)
void x_IndexAnnotTSE(const CSeq_id_Handle &idh, CTSE_Info *tse_info, bool orphan)
void x_IndexSeqTSE(const CSeq_id_Handle &idh, CTSE_Info *tse_info)
Base class for all object manager exceptions.
ESubtype GetSubtype(void) const
const CSeq_entry_Info & GetXrefTSE(void) const
void x_DoUpdate(TNeedUpdateFlags flags)
void x_Update(TNeedUpdateFlags flags) const
CConstRef< TObject > GetSeq_entryCore(void) const
vector< CSeq_id_Handle > TSeqIds
void x_SetObject(TObject &obj)
virtual void x_DSDetachContents(CDataSource &ds)
void x_DSMapObject(CConstRef< TObject > obj, CDataSource &ds)
virtual void x_DSAttachContents(CDataSource &ds)
CRef< CBioseq_Base_Info > m_Contents
void x_DetachContents(void)
void x_UpdateAnnotIndexContents(CTSE_Info &tse)
const TSet & GetSet(void) const
void x_DSUnmapObject(CConstRef< TObject > obj, CDataSource &ds)
const CSeq_entry_Info & GetXrefTSE() const
CConstRef< TObject > GetCompleteSeq_entry(void) const
namespace ncbi::objects::
Base class for all serializable objects.
ETopLevelObjectType
Type of top level object added to scope.
@ fNeedUpdate_children_bioseq
@ fNeedUpdate_children_core
@ fNeedUpdate_children_seq_data
void x_TSEAttach(CTSE_Info &tse)
bool x_DirtyAnnotIndex(void) const
vector< TChunkId > TChunkIds
TBioseq_sets m_Bioseq_sets
TBlobVersion GetBlobVersion(void) const
void UpdateAnnotIndex(void) const
TNamedAnnotObjs m_NamedAnnotObjs
CRef< CSeq_annot_SNP_Info > x_GetSNP_Info(const CConstRef< CSeq_annot > &annot)
void x_MapChunkByFeatType(CSeqFeatData::ESubtype subtype, TChunkId chunk_id)
void SetTopLevelObject(ETopLevelObjectType type, CSerialObject *ptr)
CRef< CTSE_Split_Info > m_Split
void x_MapFeatByLocus(const string &locus, bool tag, CAnnotObject_Info &info)
CAtomicCounter_WithAutoInit m_LockCounter
virtual void x_ResetDirtyAnnotIndexNoParent(void)
CSeq_id_Handle m_RequestedId
bool HasNamedAnnot(const string &name) const
CConstRef< CSeq_entry > GetTSECore(void) const
CConstRef< CBioseq_Info > FindBioseq(const CSeq_id_Handle &id) const
virtual void x_SetDirtyAnnotIndexNoParent(void)
SFeatIdIndex::TIndexInt & x_GetFeatIdIndexInt(CSeqFeatData::ESubtype type)
CDataSource & GetDataSource(void) const
void x_MapFeatById(TFeatIdInt id, CAnnotObject_Info &info, EFeatIdType type)
const TAnnotObjs * x_GetAnnotObjs(const CAnnotName &name) const
TBioseqs m_Removed_Bioseqs
bool IsTopLevelSeq_submit() const
void x_LoadChunk(TChunkId chunk_id) const
void x_DSUnmapObject(CConstRef< TObject > obj, CDataSource &ds)
CConstRef< CMasterSeqSegments > GetMasterSeqSegments(void) const
TBlobVersion m_BlobVersion
void x_UnmapSNP_Table(const CAnnotName &name, const CSeq_id_Handle &key, const CSeq_annot_SNP_Info &snp_info)
bool HasUnnamedAnnot(void) const
void AddUsedMemory(size_t size)
CConstRef< CBioseq_Info > FindMatchingBioseq(const CSeq_id_Handle &id) const
void SetTopLevelObjectType(ETopLevelObjectType type)
TAnnotObjects x_GetFeaturesById(CSeqFeatData::E_Choice type, TFeatIdInt id, EFeatIdType id_type, const CSeq_annot_Info *src_annot=0) const
vector< CAnnotObject_Info * > TAnnotObjects
CRef< CSerialObject > m_TopLevelObjectPtr
SSeqMatch_TSE GetSeqMatch(const CSeq_id_Handle &id) const
void x_RemoveAnnotObjs(const CAnnotName &name)
CSeq_id_Handle ContainsMatchingBioseq(const CSeq_id_Handle &id) const
void x_LoadDelayedMainChunk(void) const
void UpdateFeatIdIndex(CSeqFeatData::E_Choice type, EFeatIdType id_type) const
bool x_HasFeaturesWithId(CSeqFeatData::ESubtype subtype) const
CSubmit_block & SetTopLevelSubmit_block() const
void x_DSMapObject(CConstRef< TObject > obj, CDataSource &ds)
void x_UnmapFeatByLocus(const string &locus, bool tag, CAnnotObject_Info &info)
virtual void GetAnnotIds(TSeqIds &ids) const
unique_ptr< SBaseTSE > m_BaseTSE
CSeq_submit & x_GetTopLevelSeq_submit() const
void SetName(const CAnnotName &name)
virtual string GetDescription(void) const
void x_MapChunkByFeatId(TFeatIdInt id, CSeqFeatData::ESubtype subtype, TChunkId chunk_id, EFeatIdType type)
void x_GetRecords(const CSeq_id_Handle &id, bool bioseq) const
CBioseq_Handle::TBioseqStateFlags TBlobState
CRef< CBioseqUpdater > m_BioseqUpdater
void SetUsedMemory(size_t size)
void x_UnmapFeatById(TFeatIdInt id, CAnnotObject_Info &info, EFeatIdType type)
CRef< CTSE_SetObjectInfo > m_SetObjectInfo
void x_UpdateAnnotIndexContents(CTSE_Info &tse)
CBioseq_set_Info & x_GetBioseq_set(int id)
const TBlobId & GetBlobId(void) const
bool m_MasterSeqSegmentsLoaded
CBioObjectId x_RegisterBioObject(CTSE_Info_Object &info)
ETopLevelObjectType m_TopLevelObjectType
void x_UnmapAnnotObjects(const SAnnotObjectsIndex &infos)
TSeq_feat_Lock x_FindSeq_feat(const CSeq_id_Handle &loc_id, TSeqPos loc_pos, const CSeq_feat &feat) const
friend class CTSE_Split_Info
void SetBioseqUpdater(CRef< CBioseqUpdater > updater)
virtual void GetBioseqsIds(TSeqIds &ids) const
void x_DoUpdate(TNeedUpdateFlags flags)
void x_AddAllFeaturesById(TAnnotObjects &objects, TFeatIdInt id, EFeatIdType id_type, const CSeq_annot_Info *src_annot=0) const
bool ContainsBioseq(const CSeq_id_Handle &id) const
TAnnotLock & GetAnnotLock(void) const
void x_DSDetachContents(CDataSource &ds)
bool x_HasIdObjects(const CSeq_id_Handle &id) const
void x_IndexSeqTSE(const CSeq_id_Handle &id)
SFeatIdIndex::TIndexStr & x_GetFeatIdIndexStr(CSeqFeatData::ESubtype type)
const CSerialObject * GetTopLevelObjectPtr() const
void x_UnindexSeqTSE(const CSeq_id_Handle &id)
atomic< ELoadState > m_LoadState
bool HasDataSource(void) const
TBioseq_sets m_Removed_Bioseq_sets
CBioObjectId x_IndexBioseq(CBioseq_Info *)
ETopLevelObjectType GetTopLevelObjectType() const
const SIdAnnotObjs * x_GetIdObjects(const TAnnotObjs &objs, const CSeq_id_Handle &idh) const
TFeatIdIndex m_FeatIdIndex
int m_InternalBioObjNumber
vector< CSeq_id_Handle > TSeqIds
const CAnnotName & GetName(void) const
void x_DSAttachContents(CDataSource &ds)
TIdAnnotInfoMap m_IdAnnotInfoMap
const TAnnotObjs * x_GetUnnamedAnnotObjs(void) const
void x_ResetBioseqId(const CSeq_id_Handle &id, CBioseq_Info *info)
const SIdAnnotObjs * x_GetUnnamedIdObjects(const CSeq_id_Handle &id) const
CFastMutex m_BioseqsMutex
void x_SetBioseq_setId(int key, CBioseq_set_Info *info)
CRef< IEditSaver > m_EditSaver
CConstRef< CSeq_entry > GetCompleteTSE(void) const
void x_AddFeaturesById(TAnnotObjects &objects, const SFeatIdIndex &index, TFeatIdInt id, EFeatIdType id_type, const CSeq_annot_Info *src_annot=0) const
CDataSource * m_DataSource
bool HasAnnot(const CAnnotName &name) const
bool x_MapSNP_Table(const CAnnotName &name, const CSeq_id_Handle &key, const CSeq_annot_SNP_Info &snp_info)
void x_UnregisterBioObject(CTSE_Info_Object &info)
CTSE_Split_Info & GetSplitInfo(void)
const CSubmit_block & GetTopLevelSubmit_block() const
pair< string, bool > TLocusKey
void x_SetBioseqIds(CBioseq_Info *info)
TAnnotIdsFlags m_AnnotIdsFlags
bool x_NeedsDelayedMainChunk(void) const
pair< TSeq_annot_Lock, int > TSeq_feat_Lock
const CTSE_Info & GetTSE_Info(void) const
void x_UnindexAnnotTSE(const CAnnotName &name, const CSeq_id_Handle &id)
CConstRef< CMasterSeqSegments > m_MasterSeqSegments
pair< SIdAnnotObjs *, bool > x_SetIdObjects(TAnnotObjs &objs, const CAnnotName &name, const CSeq_id_Handle &id)
void x_LoadChunks(const TChunkIds &chunk_ids) const
void x_ResetBioseq_setId(int key, CBioseq_set_Info *info)
bool x_IndexAnnotTSE(const CAnnotName &name, const CSeq_id_Handle &id)
CBioseq_Info & x_GetBioseq(const CSeq_id_Handle &id)
void SetSeq_entry(CSeq_entry &entry, CTSE_SetObjectInfo *set_info=0)
bool HasSplitInfo(void) const
void x_MapAnnotObject(TRangeMap &rangeMap, const SAnnotObject_Key &key, const SAnnotObject_Index &index)
CTSE_Info & Assign(const CTSE_Lock &tse)
CConstRef< CBioseq_Info > GetSegSetMaster(void) const
TAnnotObjects x_GetFeaturesByLocus(const string &locus, bool tag, const CSeq_annot_Info *src_annot=0) const
bool x_UnmapAnnotObject(TRangeMap &rangeMap, const CAnnotObject_Info &info, const SAnnotObject_Key &key)
CBioObjectId x_IndexBioseq_set(CBioseq_set_Info *)
map< size_t, CConstRef< CBioseq_Info > > FindBioseqBulk(const map< size_t, CSeq_id_Handle > &ids) const
void SetBlobVersion(TBlobVersion version)
const CSeq_submit & GetTopLevelSeq_submit() const
TAnnotObjs & x_SetAnnotObjs(const CAnnotName &name)
CTSE_Info_Object * x_FindBioObject(const CBioObjectId &uniq_id) const
map< CSeq_id_Handle, SIdAnnotObjs > TAnnotObjs
void x_SetBioseqId(const CSeq_id_Handle &id, CBioseq_Info *info)
~CTSE_SetObjectInfo(void)
TSeq_annot_InfoMap m_Seq_annot_InfoMap
void x_LoadChunks(const TChunkIds &chunk_ids) const
void x_TSEAttach(CTSE_Info &tse_info, CRef< ITSE_Assigner > &assigner)
bool ContainsBioseq(const CSeq_id_Handle &id) const
void x_DSDetach(CDataSource &ds)
void x_TSEDetach(CTSE_Info &tse_info)
void x_LoadDelayedMainChunk(void) const
void GetBioseqsIds(TSeqIds &ids) const
void x_UpdateAnnotIndex(void)
void x_LoadChunk(TChunkId chunk_id) const
void x_UpdateFeatIdIndex(CSeqFeatData::E_Choice type, EFeatIdType id_type)
void x_DSAttach(CDataSource &ds)
void x_GetRecords(const CSeq_id_Handle &id, bool bioseq) const
CRef< ITSE_Assigner > GetAssigner(const CTSE_Info &tse)
bool x_NeedsDelayedMainChunk(void) const
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
const_iterator lower_bound(const key_type &key) const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
container_type::const_iterator const_iterator
const_iterator find(const key_type &key) const
const_iterator lower_bound(const key_type &key) const
const_iterator end() const
iterator insert(const value_type &val)
container_type::iterator iterator
container_type::value_type value_type
iterator_bool insert(const value_type &val)
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
TValue Get(void) const THROWS_NONE
Get atomic counter value.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
void Reset(void)
Reset the handle (remove seq-id reference)
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
string ToString(void) const
virtual TEditSaver GetEditSaver() const
TObjectType * GetNCPointerOrNull(void) const THROWS_NONE
Get pointer value.
CConstRef< C > ConstRef(const C *object)
Template function for conversion of const object pointer to CConstRef.
void Reset(void)
Reset reference object.
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
TObjectType & GetNCObject(void) const
Get object.
TParent::value_type value_type
iterator insert(const value_type &value)
const_iterator begin(void) const
void erase(iterator iter)
const_iterator find(const key_type &key) const
#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 string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static void PtrToString(string &out_str, const void *ptr)
Convert pointer to string.
E_Choice
Choice variants.
const TData & GetData(void) const
Get the Data member data.
@ e_not_set
No variant selected.
@ eClass_segset
segmented sequence + parts
@ e_not_set
No variant selected.
void SetSub(TSub &value)
Assign a value to Sub data member.
E_Choice Which(void) const
Which variant is currently selected.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
const TSub & GetSub(void) const
Get the Sub member data.
Definition of all error codes used in objmgr libraries (xobjmgr.lib, xobjutil.lib and others).
constexpr auto sort(_Init &&init)
const string version
version string
double value_type
The numeric datatype used by the parser.
const struct ncbi::grid::netcache::search::fields::SIZE size
const struct ncbi::grid::netcache::search::fields::KEY key
const GenericPointer< typename T::ValueType > T2 value
AutoPtr< TIndexInt > m_IndexInt
AutoPtr< TIndexStr > m_IndexStr
CAnnotObject_Info * m_AnnotObject_Info
bool IsIndexed(void) const
TObjectInfos & GetInfos(void)
const SAnnotObject_Key & GetKey(size_t i) const
const CAnnotName & GetName(void) const
deque< CAnnotObject_Info > TObjectInfos
const TRangeMap & x_GetRangeMap(size_t index) const
vector< TRangeMap * > TAnnotSet
bool x_RangeMapIsEmpty(size_t index) const
CRangeMultimap< SAnnotObject_Index, TSeqPos > TRangeMap
size_t x_GetRangeMapCount(void) const
bool x_CleanRangeMaps(void)
CConstRef< CBioseq_Info > m_Bioseq
NCBI_DEFINE_ERR_SUBCODE_X(3)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4