(*si)->SetParentEntry(
this);
98(*si)->SetParentEntry(
this);
108 switch(
Which() ) {
122 switch(
Which() ) {
129 "CSeq_entry::GetDescr: unsupported entry type " 136 switch(
Which() ) {
145 "CSeq_entry::SetDescr: unsupported entry type " 152 switch(
Which() ) {
159 "CSeq_entry::SetDescr: unsupported entry type " 167 switch(
Which() ) {
181 switch(
Which() ) {
188 "CSeq_entry::GetAnnot: unsupported entry type " 197 switch(
Which() ) {
204 "CSeq_entry::SetAnnot: unsupported entry type " 221 if( desc.
Which() == choice ) {
222 if(level !=
NULL) {
231 if(level !=
NULL) {
276 switch(
Which() ) {
298 typedefpair<CSeq_id_Handle, CConstRef<CBioseq> >
TIdKey;
322 switch( new_id->
Which() ) {
338 "CSeq_entry::ReassignConflictingIds: " 342 if( obj_id->
IsStr() ) {
343base = obj_id->
GetStr();
350 for(
TGik = suffix_id.
GetGi(); ; ++k ) {
353 if(
sx_AddId(id_map, new_idh).second ) {
377 if( level2 > level1 ) {
381 while( level1 > level2 ) {
386 while( entry1 != entry2 ) {
399 if( level2 > level1 ) {
403 while( level1 > level2 ) {
412 if( parent == parent2 ) {
421 if( *it == entry1 ) {
424 if( *it == entry2 ) {
450it != id_map.
end() && it->first.first ==
id; ++it ) {
451 if( !it->first.second ) {
454 const CBioseq& seq = *it->first.second;
456 size_tseq_level = 0;
459 if( entry == &annot_entry ) {
461 if( seq_level < closest_level ) {
462closest_level = seq_level;
463closest_entry = seq_entry;
466 else if( seq_level == closest_level &&
468closest_entry, closest_level) ) {
470closest_entry = seq_entry;
485 size_tannot_level =
sx_Level(&annot_entry);
486 size_tclosest_seq_level =
kMax_Int;
489it != id_map.
end() && it->first.first ==
id; ++it ) {
490 if( !it->first.second ) {
493 const CBioseq& seq = *it->first.second;
495 size_tseq_level =
sx_Level(seq_entry);
497seq_entry, seq_level);
498 size_tlevel = annot_level - parent_level;
499 if( level < closest_level ) {
500closest_level = level;
501closest_seq_level = seq_level;
502closest_entry = seq_entry;
505 else if( level == closest_level &&
506seq_level < closest_seq_level ) {
507closest_seq_level = seq_level;
508closest_entry = seq_entry;
511 else if( level == closest_level &&
512seq_level == closest_seq_level &&
514closest_entry, closest_seq_level) ) {
515closest_entry = seq_entry;
533 autoid_it = id_map.
find(
TIdKey(idh,
null));
534 if( id_it == id_map.
end() || !id_it->second ) {
539 if( !new_id.
IsGi() ) {
558 boolhas_conflict =
false;
566 "CSeq_entry::ReassignConflictingIds: " 567 "conflicting id is not a Seq-id.local: "<<
568(*idit)->AsFastaString());
575 sx_AddId(id_map,
id, &*it).first->second = gi1;
578has_conflict =
true;
580 if( !ins.first->second ) {
581ins.first->second = gi1;
588 if( !has_conflict ) {
601 if( map_it != id_map.
end() && !map_it->second ) {
611 if( it->IsSetAnnot() ) {
static CBioseq_set::ELabelType s_GetBioseqSetLabelType(CSeq_entry::ELabelType lt)
size_t sx_Level(const CSeq_entry *entry)
TIdInsert sx_AddId(TIdMap &id_map, const CSeq_id_Handle &id, const CBioseq *seq=0)
const CSeq_id_Handle & sx_FindBestId(const TIdMap &id_map, TIdMapCache &cache, const CSeq_entry &annot_entry, const CSeq_id_Handle &id)
map< TIdKey, CSeq_id_Handle > TIdMap
map< CSeq_id_Handle, CSeq_id_Handle > TIdMapCache
bool sx_ComesBefore(const CSeq_entry *entry1, size_t level1, const CSeq_entry *entry2, size_t level2)
static CBioseq::ELabelType s_GetBioseqLabelType(CSeq_entry::ELabelType lt)
CSeq_id_Handle sx_MakeUniqueId(const CSeq_id_Handle &idh, TIdMap &id_map)
size_t sx_GetParentLevel(const CSeq_entry *entry1, size_t level1, const CSeq_entry *entry2, size_t level2)
bool sx_CanReassign(CSeq_id::E_Choice type)
pair< TIdMap::iterator, bool > TIdInsert
pair< CSeq_id_Handle, CConstRef< CBioseq > > TIdKey
void sx_ProcessId(const TIdMap &id_map, TIdMapCache &cache, const CSeq_entry &entry, CSeq_id &id)
void SetParentEntry(CSeq_entry *entry)
void GetLabel(string *label, ELabelType type) const
CSeq_entry * GetParentEntry(void) const
void SetParentEntry(CSeq_entry *entry)
CConstRef< CSeqdesc > GetClosestDescriptor(CSeqdesc::E_Choice choice, int *level=NULL) const
void GetLabel(string *label, ELabelType type, bool worst=false) const
@Seq_descr.hpp User-defined methods of the data storage class.
CSeq_entry * m_ParentEntry
const TAnnot & GetAnnot(void) const
const CSeq_descr & GetDescr(void) const
bool IsSetAnnot(void) const
void ResetParentEntry(void)
CSeq_descr & SetDescr(void)
virtual bool UserOp_Equals(const CSerialUserOp &object) const
Will be called after comparing the datatool-generated members.
void ReassignConflictingIds(void)
void GetLabel(string *label, ELabelType type) const
virtual void UserOp_Assign(const CSerialUserOp &source)
Will be called after copying the datatool-generated members.
void ParentizeOneLevel(void)
bool IsSetDescr(void) const
void SetParentEntry(CSeq_entry *entry)
list< CRef< CSeq_annot > > TAnnot
CSeq_entry * GetParentEntry(void) const
Root class for all serialization exceptions.
Base class for user-defined serializable classes to allow for objects assignment and comparison.
Template class for iteration on objects of class C (non-medifiable version)
container_type::const_iterator const_iterator
container_type::iterator iterator
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
static const char si[8][64]
#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.
#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.
C * SerialClone(const C &src)
Create on heap a clone of the source object.
const string AsFastaString(void) const
CConstRef< CSeq_id > GetSeqId(void) const
static CSeq_id_Handle GetGiHandle(TGi gi)
Faster way to create a handle for a gi.
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
CConstBeginInfo ConstBegin(const C &obj)
Get starting point of non-modifiable object hierarchy.
CConstRef< C > ConstRef(const C *object)
Template function for conversion of const object pointer to CConstRef.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
static const char label[]
bool IsStr(void) const
Check if variant Str is selected.
void SetTag(TTag &value)
Assign a value to Tag data member.
const TStr & GetStr(void) const
Get the variant data.
TStr & SetStr(void)
Select the variant.
TId GetId(void) const
Get the variant data.
TGeneral & SetGeneral(void)
Select the variant.
E_Choice Which(void) const
Which variant is currently selected.
E_Choice
Choice variants.
TLocal & SetLocal(void)
Select the variant.
@ e_Other
for historical reasons, 'other' = 'refseq'
@ e_General
for other databases
const TSeq & GetSeq(void) const
Get the variant data.
TSet & SetSet(void)
Select the variant.
const TSet & GetSet(void) const
Get the variant data.
static string SelectionName(E_Choice index)
Retrieve selection name (for diagnostic purposes).
E_Choice Which(void) const
Which variant is currently selected.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
list< CRef< CSeq_entry > > TSeq_set
TSeq & SetSeq(void)
Select the variant.
@ e_not_set
No variant selected.
list< CRef< CSeqdesc > > Tdata
const Tdata & Get(void) const
Get the member data.
list< CRef< CSeq_id > > TId
E_Choice
Choice variants.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
E_Choice Which(void) const
Which variant is currently selected.
const GenericPointer< typename T::ValueType > T2 value
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