NCBI C++ ToolKit
split_parser.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: split_parser.cpp 75695 2016-12-07 16:40:59Z vasilche $
2  * ===========================================================================
3  * PUBLIC DOMAIN NOTICE
4  * National Center for Biotechnology Information
5  *
6  * This software/database is a "United States Government Work" under the
7  * terms of the United States Copyright Act. It was written as part of
8  * the author's official duties as a United States Government employee and
9  * thus cannot be copyrighted. This software/database is freely available
10  * to the public for use. The National Library of Medicine and the U.S.
11  * Government have not placed any restriction on its use or reproduction.
12  *
13  * Although all reasonable efforts have been taken to ensure the accuracy
14  * and reliability of the software and data, the NLM and the U.S.
15  * Government do not and cannot warrant the performance or results that
16  * may be obtained by using this software or data. The NLM and the U.S.
17  * Government disclaim all warranties, express or implied, including
18  * warranties of performance, merchantability or fitness for any particular
19  * purpose.
20  *
21  * Please cite the author in any work or product based on this material.
22  *
23  * ===========================================================================
24  *
25  * Author: Eugene Vasilchenko
26  *
27  * File Description: Methods to create object manager structures from ID2 spec
28  *
29  */
30 
31 #include <ncbi_pch.hpp>
33 #include <objmgr/impl/tse_info.hpp>
39 #include <objmgr/error_codes.hpp>
41 
42 #define NCBI_USE_ERRCODE_X ObjMgr_Rd_Split
43 
45 
47 
49 
51 {
52  if ( split.IsSetSkeleton() && tse.HasNoSeq_entry() ) {
53  tse.SetSeq_entry(const_cast<CSeq_entry&>(split.GetSkeleton()));
54  }
55  CTSE_Split_Info& sinfo = tse.GetSplitInfo();
56  ITERATE ( CID2S_Split_Info::TChunks, it, split.GetChunks() ) {
57  CRef<CTSE_Chunk_Info> chunk = Parse(**it);
58  sinfo.AddChunk(*chunk);
59  }
60 }
61 
62 
64 {
65  CRef<CTSE_Chunk_Info> ret(new CTSE_Chunk_Info(info.GetId()));
66  ITERATE ( CID2S_Chunk_Info::TContent, it, info.GetContent() ) {
67  const CID2S_Chunk_Content& content = **it;
68  switch ( content.Which() ) {
70  break;
72  x_Attach(*ret, content.GetSeq_descr());
73  break;
75  x_Attach(*ret, content.GetSeq_annot());
76  break;
78  x_Attach(*ret, content.GetSeq_annot_place());
79  break;
81  x_Attach(*ret, content.GetSeq_data());
82  break;
85  content.GetBioseq_place() ) {
86  x_Attach(*ret, **it2);
87  }
88  break;
90  x_Attach(*ret, content.GetSeq_assembly());
91  break;
94  content.GetFeat_ids() ) {
95  x_Attach(*ret, **it2);
96  }
97  break;
98  default:
99  ERR_POST_X_ONCE(1, "ID2 Split parser: Unexpected split data: "<<content.Which());
100  }
101  }
102  return ret;
103 }
104 
105 
107  const CID2S_Seq_data_Info& data)
108 {
109  TLocationSet loc;
110  x_ParseLocation(loc, data);
111  chunk.x_AddSeq_data(loc);
112 }
113 
114 
115 namespace {
116  template<class Func>
117  void ForEach(const CID2S_Bioseq_Ids& ids, Func func)
118  {
119  ITERATE ( CID2S_Bioseq_Ids::Tdata, it, ids.Get() ) {
120  const CID2S_Bioseq_Ids::C_E& e = **it;
121  switch ( e.Which() ) {
124  break;
127  break;
129  {
130  const CID2S_Gi_Range& r = e.GetGi_range();
131  int n = r.GetCount();
132  for( TGi id = r.GetStart(); n--; ++id ) {
133  func(CSeq_id_Handle::GetGiHandle(id));
134  }
135  break;
136  }
137  default:
138  NCBI_THROW(CLoaderException, eOtherError,
139  "unknown bioseq id type");
140  }
141  }
142  }
143 
144 
145  template<class Func>
146  void ForEach(const CID2S_Bioseq_set_Ids& ids, Func func)
147  {
148  ITERATE ( CID2S_Bioseq_set_Ids::Tdata, it, ids.Get() ) {
149  func(*it);
150  }
151  }
152 
153  struct FAddDescInfo
154  {
155  FAddDescInfo(CTSE_Chunk_Info& chunk, unsigned type_mask)
156  : m_Chunk(chunk), m_TypeMask(type_mask)
157  {
158  }
159  void operator()(const CSeq_id_Handle& id) const
160  {
161  m_Chunk.x_AddDescInfo(m_TypeMask, id);
162  }
163  void operator()(int id) const
164  {
165  m_Chunk.x_AddDescInfo(m_TypeMask, id);
166  }
167  CTSE_Chunk_Info& m_Chunk;
168  unsigned m_TypeMask;
169  };
170  struct FAddAnnotPlace
171  {
172  FAddAnnotPlace(CTSE_Chunk_Info& chunk)
173  : m_Chunk(chunk)
174  {
175  }
176  void operator()(const CSeq_id_Handle& id) const
177  {
178  m_Chunk.x_AddAnnotPlace(id);
179  }
180  void operator()(int id) const
181  {
182  m_Chunk.x_AddAnnotPlace(id);
183  }
184  CTSE_Chunk_Info& m_Chunk;
185  };
186  struct FAddBioseqId
187  {
188  FAddBioseqId(CTSE_Chunk_Info& chunk)
189  : m_Chunk(chunk)
190  {
191  }
192  void operator()(const CSeq_id_Handle& id) const
193  {
194  m_Chunk.x_AddBioseqId(id);
195  }
196  CTSE_Chunk_Info& m_Chunk;
197  };
198  struct FAddAssemblyInfo
199  {
200  FAddAssemblyInfo(CTSE_Chunk_Info& chunk)
201  : m_Chunk(chunk)
202  {
203  }
204  void operator()(const CSeq_id_Handle& id) const
205  {
206  m_Chunk.x_AddAssemblyInfo(id);
207  }
208  CTSE_Chunk_Info& m_Chunk;
209  };
210 }
211 
212 
214  const CID2S_Seq_descr_Info& place)
215 {
217  if ( place.IsSetBioseqs() ) {
218  ForEach(place.GetBioseqs(), FAddDescInfo(chunk, type_mask));
219  }
220  if ( place.IsSetBioseq_sets() ) {
221  ForEach(place.GetBioseq_sets(), FAddDescInfo(chunk, type_mask));
222  }
223 }
224 
226  const CID2S_Seq_annot_place_Info& place)
227 {
228  if ( place.IsSetBioseqs() ) {
229  ForEach(place.GetBioseqs(), FAddAnnotPlace(chunk));
230  }
231  if ( place.IsSetBioseq_sets() ) {
232  ForEach(place.GetBioseq_sets(), FAddAnnotPlace(chunk));
233  }
234 }
235 
236 
238  const CID2S_Bioseq_place_Info& place)
239 {
240  chunk.x_AddBioseqPlace(place.GetBioseq_set());
241  ForEach(place.GetSeq_ids(), FAddBioseqId(chunk));
242 }
243 
244 
246  const CID2S_Seq_annot_Info& annot)
247 {
248  CAnnotName name;
249  if ( annot.IsSetName() ) {
250  const string& n = annot.GetName();
251  if ( !n.empty() ) {
252  name.SetNamed(annot.GetName());
253  }
254  }
255 
256  TLocationSet loc;
257  x_ParseLocation(loc, annot.GetSeq_loc());
258 
259  if ( annot.IsSetAlign() ) {
261  chunk.x_AddAnnotType(name, sel, loc);
262  }
263  if ( annot.IsSetGraph() ) {
265  chunk.x_AddAnnotType(name, sel, loc);
266  }
267 
268  ITERATE ( CID2S_Seq_annot_Info::TFeat, it, annot.GetFeat() ) {
269  const CID2S_Feat_type_Info& type = **it;
270  if ( type.IsSetSubtypes() ) {
272  type.GetSubtypes() ) {
274  chunk.x_AddAnnotType(name, sel, loc);
275  }
276  }
277  else if ( type.GetType() ) {
279  chunk.x_AddAnnotType(name, sel, loc);
280  }
281  else {
283  chunk.x_AddAnnotType(name, sel, loc);
284  }
285  }
286 }
287 
288 
290  const CID2S_Seq_assembly_Info& place)
291 {
292  ForEach(place.GetBioseqs(), FAddAssemblyInfo(chunk));
293 }
294 
295 inline
297  const TLocationId& id)
298 {
299  vec.push_back(TLocation(id, TLocationRange::GetWhole()));
300 }
301 
302 
303 inline
305  const TLocationId& id,
306  TSeqPos start, TSeqPos length)
307 {
308  vec.push_back(TLocation(id, TLocationRange(start, start+length-1)));
309 }
310 
311 
312 inline
314 {
316 }
317 
318 
319 inline
321  TSeqPos start, TSeqPos length)
322 {
323  x_AddInterval(vec, CSeq_id_Handle::GetGiHandle(gi), start, length);
324 }
325 
326 
328  const CID2S_Seq_feat_Ids_Info& ids)
329 {
330  chunk.x_AddFeat_ids();
332  const CID2S_Feat_type_Info& type = **it;
333  if ( type.IsSetSubtypes() ) {
335  type.GetSubtypes() ) {
337  if ( ids.IsSetLocal_ids() ) {
338  chunk.x_AddFeat_ids(sel, ids.GetLocal_ids());
339  }
340  if ( ids.IsSetLocal_str_ids() ) {
341  chunk.x_AddFeat_ids(sel, ids.GetLocal_str_ids());
342  }
343  }
344  }
345  else {
347  if ( ids.IsSetLocal_ids() ) {
348  chunk.x_AddFeat_ids(sel, ids.GetLocal_ids());
349  }
350  if ( ids.IsSetLocal_str_ids() ) {
351  chunk.x_AddFeat_ids(sel, ids.GetLocal_str_ids());
352  }
353  }
354  }
356  const CID2S_Feat_type_Info& type = **it;
357  if ( type.IsSetSubtypes() ) {
359  type.GetSubtypes() ) {
361  if ( ids.IsSetLocal_ids() ) {
362  chunk.x_AddXref_ids(sel, ids.GetLocal_ids());
363  }
364  if ( ids.IsSetLocal_str_ids() ) {
365  chunk.x_AddXref_ids(sel, ids.GetLocal_str_ids());
366  }
367  }
368  }
369  else {
371  if ( ids.IsSetLocal_ids() ) {
372  chunk.x_AddXref_ids(sel, ids.GetLocal_ids());
373  }
374  if ( ids.IsSetLocal_str_ids() ) {
375  chunk.x_AddXref_ids(sel, ids.GetLocal_str_ids());
376  }
377  }
378  }
379 }
380 
381 
383  const CID2S_Seq_loc& loc)
384 {
385  switch ( loc.Which() ) {
387  {
388  x_AddGiWhole(vec, loc.GetWhole_gi());
389  break;
390  }
391 
393  {
395  break;
396  }
397 
399  {
400  const CID2S_Gi_Range& wr = loc.GetWhole_gi_range();
401  int n = wr.GetCount();
402  for ( TGi gi = wr.GetStart(); n--; ++gi )
403  x_AddGiWhole(vec, gi);
404  break;
405  }
406 
408  {
409  const CID2S_Gi_Interval& interval = loc.GetGi_interval();
410  x_AddGiInterval(vec,
411  interval.GetGi(),
412  interval.GetStart(),
413  interval.GetLength());
414  break;
415  }
416 
418  {
419  const CID2S_Seq_id_Interval& interval = loc.GetSeq_id_interval();
420  x_AddInterval(vec,
422  interval.GetStart(),
423  interval.GetLength());
424  break;
425  }
426 
428  {
429  const CID2S_Gi_Ints& ints = loc.GetGi_ints();
430  TGi gi = ints.GetGi();
431  ITERATE ( CID2S_Gi_Ints::TInts, it, ints.GetInts() ) {
432  const CID2S_Interval& interval = **it;
433  x_AddGiInterval(vec, gi,
434  interval.GetStart(), interval.GetLength());
435  }
436  break;
437  }
438 
440  {
441  const CID2S_Seq_id_Ints& ints = loc.GetSeq_id_ints();
443  ITERATE ( CID2S_Seq_id_Ints::TInts, it, ints.GetInts() ) {
444  const CID2S_Interval& interval = **it;
445  x_AddInterval(vec, id,
446  interval.GetStart(), interval.GetLength());
447  }
448  break;
449  }
450 
452  {
453  const CID2S_Seq_loc::TLoc_set& loc_set = loc.GetLoc_set();
454  ITERATE ( CID2S_Seq_loc::TLoc_set, it, loc_set ) {
455  x_ParseLocation(vec, **it);
456  }
457  break;
458  }
459 
461  break;
462  }
463 }
464 
465 
467  const CID2S_Chunk& id2_chunk)
468 {
469  ITERATE ( CID2S_Chunk::TData, dit, id2_chunk.GetData() ) {
470  const CID2S_Chunk_Data& data = **dit;
471 
473  switch ( data.GetId().Which() ) {
475  place.first = CSeq_id_Handle::GetGiHandle(data.GetId().GetGi());
476  break;
478  place.first = CSeq_id_Handle::GetHandle(data.GetId().GetSeq_id());
479  break;
481  place.second = data.GetId().GetBioseq_set();
482  break;
483  default:
484  NCBI_THROW(CLoaderException, eOtherError,
485  "Unexpected place type");
486  }
487 
488  if ( data.IsSetDescr() ) {
489  chunk.x_LoadDescr(place, data.GetDescr());
490  }
491 
492  ITERATE ( CID2S_Chunk_Data::TAnnots, it, data.GetAnnots() ) {
493  chunk.x_LoadAnnot(place, **it/*Ref(new CSeq_annot_Info(**it))*/);
494  }
495 
496  if ( data.IsSetAssembly() ) {
497  if ( !place.first ) {
498  NCBI_THROW(CLoaderException, eOtherError,
499  "assembly not allowed in bioseq-sets");
500  }
501  chunk.x_LoadAssembly(place.first, data.GetAssembly());
502  }
503 
504  ITERATE ( CID2S_Chunk_Data::TSeq_map, it, data.GetSeq_map() ) {
505  NCBI_THROW(CLoaderException, eOtherError,
506  "split seq-map is not supported");
507  }
508 
509  ITERATE ( CID2S_Chunk_Data::TSeq_data, it, data.GetSeq_data() ) {
510  const CID2S_Sequence_Piece& piece = **it;
511  chunk.x_LoadSequence(place, piece.GetStart(), piece.GetData());
512  }
513 
514  if ( !data.GetBioseqs().empty() ) {
515  chunk.x_LoadBioseqs(place, data.GetBioseqs());
516  }
517  }
518 }
519 
520 
void SetNamed(const string &name)
Definition: annot_name.hpp:73
CID2S_Bioseq_Ids –.
CID2S_Bioseq_place_Info –.
CID2S_Bioseq_set_Ids –.
CID2S_Chunk_Content –.
CID2S_Chunk_Data –.
CID2S_Chunk_Info –.
CID2S_Chunk –.
Definition: ID2S_Chunk.hpp:66
CID2S_Feat_type_Info –.
CID2S_Gi_Interval –.
CID2S_Gi_Ints –.
CID2S_Gi_Range –.
CID2S_Interval –.
CID2S_Seq_annot_Info –.
CID2S_Seq_annot_place_Info –.
CID2S_Seq_assembly_Info –.
CID2S_Seq_data_Info –.
CID2S_Seq_descr_Info –.
CID2S_Seq_feat_Ids_Info –.
CID2S_Seq_id_Interval –.
CID2S_Seq_id_Ints –.
CID2S_Seq_loc –.
CID2S_Sequence_Piece –.
CID2S_Split_Info –.
Data loader exceptions, used by GenBank loader.
Definition: Seq_entry.hpp:56
vector< TLocation > TLocationSet
static void x_ParseLocation(TLocationSet &vec, const CID2S_Seq_loc &loc)
static void Load(CTSE_Chunk_Info &chunk, const CID2S_Chunk &data)
pair< TLocationId, TLocationRange > TLocation
static void x_AddGiInterval(TLocationSet &vec, TGi gi, TSeqPos start, TSeqPos length)
CRange< TSeqPos > TLocationRange
static CRef< CTSE_Chunk_Info > Parse(const CID2S_Chunk_Info &info)
static void x_AddInterval(TLocationSet &vec, const TLocationId &id, TSeqPos start, TSeqPos length)
static void x_AddWhole(TLocationSet &vec, const TLocationId &id)
static void x_Attach(CTSE_Chunk_Info &chunk, const CID2S_Seq_descr_Info &descr)
static void x_AddGiWhole(TLocationSet &vec, TGi gi)
void x_AddXref_ids(const SAnnotTypeSelector &type, const TFeatIdIntList &ids)
pair< TBioseqId, TBioseq_setId > TPlace
void x_LoadAnnot(const TPlace &place, const CSeq_annot &annot)
void x_LoadBioseqs(const TPlace &place, const list< CRef< CBioseq > > &bioseqs)
void x_LoadAssembly(const TBioseqId &seq_id, const TAssembly &assembly)
void x_LoadSequence(const TPlace &place, TSeqPos pos, const TSequence &seq)
void x_AddBioseqPlace(TBioseq_setId id)
void x_LoadDescr(const TPlace &place, const CSeq_descr &descr)
void x_AddAnnotType(const CAnnotName &annot_name, const SAnnotTypeSelector &annot_type, const TLocationId &location_id)
void x_AddFeat_ids(void)
void x_AddSeq_data(const TLocationSet &location)
void AddChunk(CTSE_Chunk_Info &chunk_info)
char data[12]
Definition: iconv.c:80
unsigned int TSeqPos
Type for sequence locations and lengths.
Definition: ncbimisc.hpp:875
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
Definition: ncbimisc.hpp:815
#define ERR_POST_X_ONCE(err_subcode, message)
Error posting only once during program execution with default error code and given error subcode.
Definition: ncbidiag.hpp:621
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
Definition: ncbiexpt.hpp:704
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.
static TThisType GetWhole(void)
Definition: range.hpp:272
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
list< CRef< CID2S_Sequence_Piece > > TSeq_map
TCount GetCount(void) const
Get the Count member data.
const TSeq_id_ints & GetSeq_id_ints(void) const
Get the variant data.
list< CRef< CID2S_Chunk_Info > > TChunks
const TGi_range & GetGi_range(void) const
Get the variant data.
const TData & GetData(void) const
Get the Data member data.
const TWhole_gi_range & GetWhole_gi_range(void) const
Get the variant data.
const Tdata & Get(void) const
Get the member data.
const TSeq_annot_place & GetSeq_annot_place(void) const
Get the variant data.
const TLoc_set & GetLoc_set(void) const
Get the variant data.
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
TStart GetStart(void) const
Get the Start member data.
list< CRef< C_E > > Tdata
const TBioseqs & GetBioseqs(void) const
Get the Bioseqs member data.
const TFeat_ids & GetFeat_ids(void) const
Get the variant data.
TLength GetLength(void) const
Get the Length member data.
bool IsSetBioseq_sets(void) const
Check if a value has been assigned to Bioseq_sets data member.
list< CRef< CID2S_Interval > > TInts
const TInts & GetInts(void) const
Get the Ints member data.
const TSeq_data & GetSeq_data(void) const
Get the variant data.
TWhole_gi GetWhole_gi(void) const
Get the variant data.
const TSeq_loc & GetSeq_loc(void) const
Get the Seq_loc member data.
list< CRef< CID2S_Seq_loc > > TLoc_set
bool IsSetBioseq_sets(void) const
Check if a value has been assigned to Bioseq_sets data member.
const TGi_interval & GetGi_interval(void) const
Get the variant data.
list< CRef< CID2S_Feat_type_Info > > TFeat_types
list< CRef< CID2S_Feat_type_Info > > TXref_types
const TBioseqs & GetBioseqs(void) const
Get the Bioseqs member data.
TStart GetStart(void) const
Get the Start member data.
bool IsSetName(void) const
name is set if this is named annot name may be empty which differ from unnamed annot Check if a value...
const TInts & GetInts(void) const
Get the Ints member data.
const TXref_types & GetXref_types(void) const
Get the Xref_types member data.
TStart GetStart(void) const
Get the Start member data.
const TFeat_types & GetFeat_types(void) const
Get the Feat_types member data.
bool IsSetGraph(void) const
Check if a value has been assigned to Graph data member.
list< CRef< CID2S_Bioseq_place_Info > > TBioseq_place
const TLocal_str_ids & GetLocal_str_ids(void) const
Get the Local_str_ids member data.
list< CRef< CID2S_Feat_type_Info > > TFeat
bool IsSetAlign(void) const
Check if a value has been assigned to Align data member.
const TBioseq_place & GetBioseq_place(void) const
Get the variant data.
list< CRef< CID2S_Chunk_Data > > TData
Definition: ID2S_Chunk_.hpp:90
list< CRef< CID2S_Interval > > TInts
TStart GetStart(void) const
Get the Start member data.
TType_mask GetType_mask(void) const
Get the Type_mask member data.
const Tdata & Get(void) const
Get the member data.
bool IsSetLocal_str_ids(void) const
Check if a value has been assigned to Local_str_ids data member.
const TSeq_descr & GetSeq_descr(void) const
Get the variant data.
const TBioseq_sets & GetBioseq_sets(void) const
Get the Bioseq_sets member data.
const TData & GetData(void) const
Get the Data member data.
bool IsSetLocal_ids(void) const
Check if a value has been assigned to Local_ids data member.
TGi GetGi(void) const
Get the Gi member data.
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
bool IsSetBioseqs(void) const
Check if a value has been assigned to Bioseqs data member.
const TName & GetName(void) const
Get the Name member data.
TGi GetGi(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
const TFeat & GetFeat(void) const
Get the Feat member data.
const TSeq_id_interval & GetSeq_id_interval(void) const
Get the variant data.
const TSeq_assembly & GetSeq_assembly(void) const
Get the variant data.
const TLocal_ids & GetLocal_ids(void) const
Get the Local_ids member data.
E_Choice Which(void) const
Which variant is currently selected.
TBioseq_set GetBioseq_set(void) const
Get the Bioseq_set member data.
const TSeq_ids & GetSeq_ids(void) const
Get the Seq_ids member data.
const TBioseqs & GetBioseqs(void) const
Get the Bioseqs member data.
TLength GetLength(void) const
Get the Length member data.
const TSeq_id & GetSeq_id(void) const
Get the variant data.
const TWhole_seq_id & GetWhole_seq_id(void) const
Get the variant data.
const TSeq_annot & GetSeq_annot(void) const
Get the variant data.
list< CRef< CSeq_annot > > TAnnots
const TBioseq_sets & GetBioseq_sets(void) const
Get the Bioseq_sets member data.
list< CRef< CID2S_Seq_feat_Ids_Info > > TFeat_ids
TGi GetGi(void) const
Get the Gi member data.
list< CRef< CID2S_Sequence_Piece > > TSeq_data
TStart GetStart(void) const
Get the Start member data.
const TGi_ints & GetGi_ints(void) const
Get the variant data.
bool IsSetBioseqs(void) const
Check if a value has been assigned to Bioseqs data member.
list< CRef< CID2S_Chunk_Content > > TContent
E_Choice Which(void) const
Which variant is currently selected.
TLength GetLength(void) const
Get the Length member data.
@ e_Whole_gi
whole sequence by gi
@ e_Loc_set
combination of locations
@ e_Seq_id_ints
set of intervals on the same id
@ e_Whole_seq_id
whole sequence by Seq-id
@ e_Seq_id_interval
interval on sequence by Seq-id
@ e_Gi_ints
set of intervals on the same gi
@ e_Whole_gi_range
set of whole sequences by gis
@ e_Gi_interval
interval on sequence by gi
@ e_not_set
No variant selected.
@ e_Seq_annot_place
place of Seq-annots
@ e_not_set
No variant selected.
@ e_Seq_descr
place of Seq-descrs
@ e_Seq_data
place of sequence data
@ e_Seq_assembly
place of assembly history
@ e_Seq_annot
locations and types of annotations
E_Choice
Choice variants.
Definition of all error codes used in objmgr libraries (xobjmgr.lib, xobjutil.lib and others).
yy_size_t n
static MDB_envinfo info
Definition: mdb_load.c:37
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
void split(std::vector< std::string > *strVec, const std::string &str_, const std::string &split_)
NCBI_DEFINE_ERR_SUBCODE_X(1)
Definition: type.c:6
#define const
Definition: zconf.h:232
Modified on Tue Apr 16 20:10:22 2024 by modify_doxy.py rev. 669887