NCBI C++ ToolKit
seq_feat_handle.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef SEQ_FEAT_HANDLE__HPP
2 #define SEQ_FEAT_HANDLE__HPP
3 
4 /* $Id: seq_feat_handle.hpp 72299 2016-04-28 19:54:10Z vasilche $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Aleksey Grichenko, Eugene Vasilchenko
30 *
31 * File Description:
32 * Seq-feat handle
33 *
34 */
35 
36 #include <corelib/ncbiobj.hpp>
37 #include <corelib/ncbi_limits.h>
38 #include <util/range.hpp>
44 #include <objmgr/impl/snp_info.hpp>
45 
48 
49 
50 /** @addtogroup ObjectManagerHandles
51  *
52  * @{
53  */
54 
55 
56 class CSeq_annot_Handle;
57 class CMappedFeat;
60 
61 template<typename Handle>
63 template<typename Handle>
65 template<typename Handle>
67 
68 /////////////////////////////////////////////////////////////////////////////
69 ///
70 /// CSeq_feat_Handle --
71 ///
72 /// Proxy to access the seq-feat objects data
73 ///
74 
76 {
77 public:
78  CSeq_feat_Handle(void);
79  ~CSeq_feat_Handle(void);
80 
81  void Reset(void);
82 
83  DECLARE_OPERATOR_BOOL(m_Seq_annot && !IsRemoved());
84 
85  bool operator ==(const CSeq_feat_Handle& feat) const;
86  bool operator !=(const CSeq_feat_Handle& feat) const;
87  bool operator <(const CSeq_feat_Handle& feat) const;
88 
89  /// Get scope this handle belongs to
90  CScope& GetScope(void) const;
91 
92  /// Get handle to seq-annot for this feature
93  const CSeq_annot_Handle& GetAnnot(void) const;
94 
95  /// Get current seq-feat
96  CConstRef<CSeq_feat> GetPlainSeq_feat(void) const;
97  CConstRef<CSeq_feat> GetOriginalSeq_feat(void) const;
98  virtual CConstRef<CSeq_feat> GetSeq_feat(void) const;
99 
100  /// Check if this is plain feature
101  bool IsPlainFeat(void) const;
102 
103  /// Check if this is non-SNP table feature
104  bool IsTableFeat(void) const;
105 
106  /// Check if this is a simple feature from sorted Seq-table
107  bool IsSortedTableFeat(void) const;
108 
109  /// Check if this is SNP table feature
110  bool IsTableSNP(void) const;
111 
113 
114  /// Get range for current seq-feat
115  virtual TRange GetRange(void) const;
116 
117  virtual CSeq_id_Handle GetLocationId(void) const;
119  { return GetRange(); }
120 
121  virtual CSeq_id_Handle GetProductId(void) const;
122  virtual TRange GetProductTotalRange(void) const;
123 
124  // Mappings for CSeq_feat methods
125  bool IsSetId(void) const;
126  const CFeat_id& GetId(void) const;
127  bool IsSetData(void) const;
128  const CSeqFeatData& GetData(void) const;
129  virtual bool IsSetPartial(void) const;
130  virtual bool GetPartial(void) const;
131  bool IsSetExcept(void) const;
132  bool GetExcept(void) const;
133  bool IsSetComment(void) const;
134  const string& GetComment(void) const;
135  bool IsSetProduct(void) const;
136  virtual const CSeq_loc& GetProduct(void) const;
137  virtual const CSeq_loc& GetLocation(void) const;
138  bool IsSetQual(void) const;
139  const CSeq_feat::TQual& GetQual(void) const;
140  bool IsSetTitle(void) const;
141  const string& GetTitle(void) const;
142  bool IsSetExt(void) const;
143  const CUser_object& GetExt(void) const;
144  bool IsSetCit(void) const;
145  const CPub_set& GetCit(void) const;
146  bool IsSetExp_ev(void) const;
147  CSeq_feat::EExp_ev GetExp_ev(void) const;
148  bool IsSetXref(void) const;
149  const CSeq_feat::TXref& GetXref(void) const;
150  bool IsSetDbxref(void) const;
151  const CSeq_feat::TDbxref& GetDbxref(void) const;
152  bool IsSetPseudo(void) const;
153  bool GetPseudo(void) const;
154  bool IsSetExcept_text(void) const;
155  const string& GetExcept_text(void) const;
156  bool IsSetIds(void) const;
157  const CSeq_feat::TIds& GetIds(void) const;
158  bool IsSetExts(void) const;
159  const CSeq_feat::TExts& GetExts(void) const;
160 
161  // Access to some methods of CSeq_feat members
162  CSeqFeatData::E_Choice GetFeatType(void) const;
164 
165  // Table SNP only types and methods
168 
169  TSNPId GetSNPId(void) const;
170  const CSeq_id& GetSNPSeq_id(void) const;
172  CSeq_id::TGi GetSNPGi(void) const;
173  bool IsSNPMinusStrand(void) const;
174  TWeight GetSNPWeight(void) const;
175  size_t GetSNPAllelesCount(void) const;
176  const string& GetSNPAllele(size_t index) const;
177  bool IsSetSNPComment(void) const;
178  const string& GetSNPComment(void) const;
179 
180  bool IsSetSNPQualityCode(void) const;
181  CUser_field::TData::E_Choice GetSNPQualityCodeWhich(void) const;
182  const string& GetSNPQualityCodeStr(void) const;
183  void GetSNPQualityCodeOs(vector<char>& os) const;
184 
185  bool IsSetSNPExtra(void) const;
186  const string& GetSNPExtra(void) const;
187 
188  /// Return true if this feature was removed already
189  bool IsRemoved(void) const;
190 
191  /// Remove the feature from Seq-annot
192  /// @deprecated Use CSeq_feat_EditHandle
193  NCBI_DEPRECATED void Remove(void) const;
194 
195  /// Replace the feature with new Seq-feat object.
196  /// All indexes are updated correspondingly.
197  /// @deprecated Use CSeq_feat_EditHandle
198  NCBI_DEPRECATED void Replace(const CSeq_feat& new_feat) const;
199 
200 
201  // Methods redirected to corresponding Seq-feat object:
202  /// get gene (if present) from Seq-feat.xref list
203  const CGene_ref* GetGeneXref(void) const;
204 
205  /// get protein (if present) from Seq-feat.xref list
206  const CProt_ref* GetProtXref(void) const;
207 
208  /// Return a specified DB xref. This will find the *first* item in the
209  /// given referenced database. If no item is found, an empty CConstRef<>
210  /// is returned.
212 
213  /// Return a named qualifier. This will return the first item matching the
214  /// qualifier name. If no such qualifier is found, an empty string is
215  /// returned.
216  const string& GetNamedQual(const CTempString& qual_name) const;
217 
218 protected:
219  friend class CMappedFeat;
220  friend class CFeat_CI;
221  friend class CCreatedFeat_Ref;
222  friend class CSeq_annot_Info;
223  friend class CSeq_annot_Handle;
224  friend class CSeq_annot_ftable_CI;
225  friend class CSeq_annot_ftable_I;
226  friend class CTSE_Handle;
227  friend class CScope_Impl;
228  typedef Int4 TFeatIndex;
229  enum {
230  kNoAnnotObjectInfo = 0x80000000,
231  kFeatIndexMask = 0x7fffffff
232  };
233 
234  bool x_HasAnnotObjectInfo() const;
235  TFeatIndex x_GetFeatIndex() const;
236 
237  // Seq-annot retrieval
238  const CSeq_annot_Info& x_GetSeq_annot_Info(void) const;
239  const CSeq_annot_SNP_Info& x_GetSNP_annot_Info(void) const;
240 
241  const CAnnotObject_Info& x_GetAnnotObject_InfoAny(void) const;
242  const CAnnotObject_Info& x_GetAnnotObject_Info(void) const;
243  const CSeq_feat& x_GetPlainSeq_feat(void) const;
244 
245  const SSNP_Info& x_GetSNP_InfoAny(void) const;
246  const SSNP_Info& x_GetSNP_Info(void) const;
247 
248  CSeq_feat_Handle(const CSeq_annot_Handle& annot,
249  TFeatIndex feat_index);
250  CSeq_feat_Handle(const CSeq_annot_Handle& annot,
251  const SSNP_Info& snp_info,
252  CCreatedFeat_Ref& created_ref);
254 
255 private:
260 };
261 
262 
263 inline
265  : m_FeatIndex(0)
266 {
267 }
268 
269 
270 inline
272 {
273  return m_Seq_annot;
274 }
275 
276 
277 inline
279 {
280  return GetAnnot().x_GetInfo();
281 }
282 
283 
284 inline
286 {
287  return GetAnnot().GetScope();
288 }
289 
290 
291 inline
293 {
294  return (m_FeatIndex & kNoAnnotObjectInfo) == 0;
295 }
296 
297 
298 inline
300 {
301  return m_FeatIndex & kFeatIndexMask;
302 }
303 
304 
305 inline
307 {
308  return GetAnnot() == feat.GetAnnot() &&
309  x_GetFeatIndex() == feat.x_GetFeatIndex();
310 }
311 
312 
313 inline
315 {
316  return GetAnnot() != feat.GetAnnot() ||
317  x_GetFeatIndex() != feat.x_GetFeatIndex();
318 }
319 
320 
321 inline
323 {
324  if ( GetAnnot() != feat.GetAnnot() ) {
325  return GetAnnot() < feat.GetAnnot();
326  }
327  return x_GetFeatIndex() < feat.x_GetFeatIndex();
328 }
329 
330 
331 inline
333 {
334  return x_GetSNP_Info().MinusStrand();
335 }
336 
337 
338 inline
340 {
342 }
343 
344 
345 inline
347 {
348  return x_GetSNP_Info().m_SNP_Id;
349 }
350 
351 
352 inline
354 {
355  return x_GetSNP_Info().m_Weight;
356 }
357 
358 
359 inline
361 {
362  return (x_GetSNP_Info().m_Flags & SSNP_Info::fQualityCodesMask) != 0;
363 }
364 
365 
366 inline
368 {
370 }
371 
372 
373 inline
375 {
376  // table SNP features do not have id
377  return !IsTableSNP() && GetSeq_feat()->IsSetId();
378 }
379 
380 
381 inline
383 {
384  return GetSeq_feat()->GetId();
385 }
386 
387 
388 inline
390 {
391  return GetSeq_feat()->GetData();
392 }
393 
394 
395 inline
397 {
398  // table SNP features do not have except
399  return !IsTableSNP() && GetSeq_feat()->IsSetExcept();
400 }
401 
402 
403 inline
405 {
406  return GetSeq_feat()->GetExcept();
407 }
408 
409 
410 inline
412 {
413  // table SNP features may have comment
415 }
416 
417 
418 inline
419 const string& CSeq_feat_Handle::GetComment(void) const
420 {
421  // table SNP features may have comment
423 }
424 
425 
426 inline
428 {
429  // table SNP features do not have product
431 }
432 
433 
434 inline
436 {
437  // table SNP features always have qual
438  return IsTableSNP() || GetSeq_feat()->IsSetQual();
439 }
440 
441 
442 inline
444 {
445  return GetSeq_feat()->GetQual();
446 }
447 
448 
449 inline
451 {
452  // table SNP features do not have title
453  return !IsTableSNP() && GetSeq_feat()->IsSetTitle();
454 }
455 
456 
457 inline
458 const string& CSeq_feat_Handle::GetTitle(void) const
459 {
460  return GetSeq_feat()->GetTitle();
461 }
462 
463 
464 inline
466 {
467  // table SNP features always have ext
468  return IsTableSNP() || GetSeq_feat()->IsSetExt();
469 }
470 
471 
472 inline
474 {
475  return GetSeq_feat()->GetExt();
476 }
477 
478 
479 inline
481 {
482  // table SNP features do not have cit
483  return !IsTableSNP() && GetSeq_feat()->IsSetCit();
484 }
485 
486 
487 inline
489 {
490  return GetSeq_feat()->GetCit();
491 }
492 
493 
494 inline
496 {
497  // table SNP features do not have exp-ev
498  return !IsTableSNP() && GetSeq_feat()->IsSetExp_ev();
499 }
500 
501 
502 inline
504 {
505  return GetSeq_feat()->GetExp_ev();
506 }
507 
508 
509 inline
511 {
512  // table SNP features do not have xref
513  return !IsTableSNP() && GetSeq_feat()->IsSetXref();
514 }
515 
516 
517 inline
519 {
520  return GetSeq_feat()->GetXref();
521 }
522 
523 
524 inline
526 {
527  // table SNP features always have dbxref
528  return IsTableSNP() || GetSeq_feat()->IsSetDbxref();
529 }
530 
531 
532 inline
534 {
535  return GetSeq_feat()->GetDbxref();
536 }
537 
538 
539 inline
541 {
542  // table SNP features do not have pseudo
543  return !IsTableSNP() && GetSeq_feat()->IsSetPseudo();
544 }
545 
546 
547 inline
549 {
550  return GetSeq_feat()->GetPseudo();
551 }
552 
553 
554 inline
556 {
557  // table SNP features do not have except-text
558  return !IsTableSNP() && GetSeq_feat()->IsSetExcept_text();
559 }
560 
561 
562 inline
563 const string& CSeq_feat_Handle::GetExcept_text(void) const
564 {
565  return GetSeq_feat()->GetExcept_text();
566 }
567 
568 
569 inline
571 {
572  // table SNP features do not have ids
573  return !IsTableSNP() && GetSeq_feat()->IsSetIds();
574 }
575 
576 
577 inline
579 {
580  return GetSeq_feat()->GetIds();
581 }
582 
583 
584 inline
586 {
587  // table SNP features do not have exts
588  return !IsTableSNP() && GetSeq_feat()->IsSetExts();
589 }
590 
591 
592 inline
594 {
595  return GetSeq_feat()->GetExts();
596 }
597 
598 
599 /////////////////////////////////////////////////////////////////////////////
600 ///
601 /// CSeq_feat_EditHandle --
602 ///
603 /// Proxy to edit the seq-feat objects data
604 ///
605 
607 {
608 public:
609  CSeq_feat_EditHandle(void);
610  explicit CSeq_feat_EditHandle(const CSeq_feat_Handle& h);
611 
612  CSeq_annot_EditHandle GetAnnot(void) const;
613 
614  /// Remove the feature from Seq-annot
615  void Remove(void) const;
616  /// Replace the feature with new Seq-feat object.
617  /// All indexes are updated correspondingly.
618  void Replace(const CSeq_feat& new_feat) const;
619 
620  /// Update index after manual modification of the object
621  void Update(void) const;
622 
623  // Methods redirected to corresponding Seq-feat object:
624  /// get gene (if present) from Seq-feat.xref list
625  void SetGeneXref(CGene_ref& value);
626  CGene_ref& SetGeneXref(void);
627 
628  /// get protein (if present) from Seq-feat.xref list
629  void SetProtXref(CProt_ref& value);
630  CProt_ref& SetProtXref(void);
631 
632  /// Add a qualifier to this feature
633  void AddQualifier(const string& qual_name, const string& qual_val);
634 
635  /// Remove all qualifiers with the given name on this feature.
636  void RemoveQualifier(const string& qual_name);
637 
638  /// add a DB xref to this feature
639  void AddDbxref(const string& db_name, const string& db_key);
640  void AddDbxref(const string& db_name, int db_key);
641 
642  /// Add the given exception_text and set the except flag to true.
643  /// If the exception_text is already there, it just sets the except flag.
644  void AddExceptText(const string & exception_text);
645 
646  /// Remove all instances of the given exception text in this feature,
647  /// and reset the except flag if there are no exception texts left.
648  void RemoveExceptText(const string & exception_text);
649 
650  /// Add feature id
651  void AddFeatId(int id);
652  void AddFeatId(const string& id);
653  void AddFeatId(const CObject_id& id);
654  void AddFeatXref(int id);
655  void AddFeatXref(const string& id);
656  void AddFeatXref(const CObject_id& id);
657 
658  /// Remove feature id
659  void RemoveFeatId(int id);
660  void RemoveFeatId(const string& id);
661  void RemoveFeatId(const CObject_id& id);
662  void RemoveFeatXref(int id);
663  void RemoveFeatXref(const string& id);
664  void RemoveFeatXref(const CObject_id& id);
665 
666  /// Clear feature ids
667  void ClearFeatIds(void);
668  void ClearFeatXrefs(void);
669 
670  /// Set single feature id
671  void SetFeatId(int id);
672  void SetFeatId(const string& id);
673  void SetFeatId(const CObject_id& id);
674 
675 protected:
676  friend class CSeq_annot_EditHandle;
677 
679  TFeatIndex feat_index);
681  const SSNP_Info& snp_info,
682  CCreatedFeat_Ref& created_ref);
683 
687  friend class CSeq_annot_ftable_I;
688 
689  /// Remove the feature from Seq-annot
690  void x_RealRemove(void) const;
691  /// Replace the feature with new Seq-feat object.
692  /// All indexes are updated correspondingly.
693  void x_RealReplace(const CSeq_feat& new_feat) const;
694 
695 };
696 
697 
698 inline
700 {
701 }
702 
703 
704 inline
706 {
708 }
709 
710 
711 /////////////////////////////////////////////////////////////////////////////
712 // CSeq_annot_ftable_CI
713 
715 {
716 public:
717  enum EFlags {
718  fIncludeTable = 1<<0,
719  fOnlyTable = 1<<1
720  };
721  typedef int TFlags;
722 
723  CSeq_annot_ftable_CI(void);
724  explicit CSeq_annot_ftable_CI(const CSeq_annot_Handle& annot,
725  TFlags flags = 0);
726 
727  CScope& GetScope(void) const;
728  const CSeq_annot_Handle& GetAnnot(void) const;
729 
731 
732  const CSeq_feat_Handle& operator*(void) const;
733  const CSeq_feat_Handle* operator->(void) const;
734 
735  CSeq_annot_ftable_CI& operator++(void);
736 
737 protected:
738  bool x_IsExcluded(void) const;
739  void x_Step(void);
740  void x_Reset(void);
741  void x_Settle(void);
742 
743 private:
746 };
747 
748 
749 inline
751 {
752 }
753 
754 
755 inline
757 {
758  return m_Feat.GetAnnot();
759 }
760 
761 
762 inline
764 {
765  return GetAnnot().GetScope();
766 }
767 
768 
769 inline
771 {
772  return m_Feat;
773 }
774 
775 
776 inline
778 {
779  return &m_Feat;
780 }
781 
782 
783 inline
785 {
786  x_Step();
787  return *this;
788 }
789 
790 /////////////////////////////////////////////////////////////////////////////
791 // CSeq_annot_ftable_I
792 
794 {
795 public:
796  enum EFlags {
797  fIncludeTable = 1<<0, // include SNP table into iteration
798  fOnlyTable = 1<<1 // only SNP table features
799  };
800  typedef int TFlags;
801 
802  CSeq_annot_ftable_I(void);
803  explicit CSeq_annot_ftable_I(const CSeq_annot_EditHandle& annot,
804  TFlags flags = 0);
805 
806  CScope& GetScope(void) const;
807  const CSeq_annot_EditHandle& GetAnnot(void) const;
808 
810 
811  const CSeq_feat_EditHandle& operator*(void) const;
812  const CSeq_feat_EditHandle* operator->(void) const;
813 
814  CSeq_annot_ftable_I& operator++(void);
815 
816 protected:
817  bool x_IsExcluded(void) const;
818  void x_Step(void);
819  void x_Reset(void);
820  void x_Settle(void);
821 
822 private:
826 };
827 
828 
829 inline
831  : m_Flags(0)
832 {
833 }
834 
835 
836 inline
838 {
839  return m_Annot;
840 }
841 
842 
843 inline
845 {
846  return GetAnnot().GetScope();
847 }
848 
849 
850 inline
852 {
853  return m_Feat;
854 }
855 
856 
857 inline
859 {
860  return &m_Feat;
861 }
862 
863 
864 inline
866 {
867  x_Step();
868  return *this;
869 }
870 
871 /* @} */
872 
875 
876 #endif // SEQ_FEAT_HANDLE__HPP
bool operator!=(const _Ht_iterator< _Val, _Nonconst_traits< _Val >, _Key, _HF, _ExK, _EqK, _All > &__x, const _Ht_iterator< _Val, _Const_traits< _Val >, _Key, _HF, _ExK, _EqK, _All > &__y)
Definition: _hashtable.h:173
CFeat_CI –.
Definition: feat_ci.hpp:64
CFeat_id –.
Definition: Feat_id.hpp:66
CMappedFeat –.
Definition: mapped_feat.hpp:59
CScope –.
Definition: scope.hpp:92
CSeq_annot_Handle –.
CSeq_feat_EditHandle –.
CSeq_feat_Handle –.
namespace ncbi::objects::
Definition: Seq_feat.hpp:58
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Definition: tempstr.hpp:65
virtual const string & GetNamedQual(const CTempString &qual_name) const =0
Return a named qualifier.
virtual const CProt_ref * GetProtXref(void) const =0
get protein (if present) from Seq-feat.xref list
virtual CConstRef< CDbtag > GetNamedDbxref(const CTempString &db) const =0
Return a specified DB xref.
virtual const CGene_ref * GetGeneXref(void) const =0
get gene (if present) from Seq-feat.xref list
char value[7]
Definition: config.c:431
static uch flags
bool operator<(const CEquivRange &A, const CEquivRange &B)
bool operator==(const CEquivRange &A, const CEquivRange &B)
objects::CSeqFeatData::ESubtype GetFeatSubtype(const string &feat_type)
Definition: macro_util.cpp:350
CVect2< NCBI_PROMOTE(int,U) > operator*(int v1, const CVect2< U > &v2)
Definition: globals.hpp:371
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,...
NCBI_XOBJUTIL_EXPORT string GetTitle(const CBioseq_Handle &hnd, TGetTitleFlags flags=0)
Definition: seqtitle.cpp:106
CRef< CCreatedFeat_Ref > m_CreatedFeat
bool IsSetExcept(void) const
const SSNP_Info & x_GetSNP_Info(void) const
bool GetExcept(void) const
const CFeat_id & GetId(void) const
const CSeq_feat::TXref & GetXref(void) const
bool IsSetId(void) const
const CSeq_feat_EditHandle * operator->(void) const
bool IsSetComment(void) const
TFeatIndex x_GetFeatIndex() const
CSeq_annot_ftable_I & operator++(void)
const CPub_set & GetCit(void) const
friend class CSeq_annot_EditHandle
bool GetPseudo(void) const
const CSeq_annot_EditHandle & GetAnnot(void) const
bool x_HasAnnotObjectInfo() const
bool x_IsExcluded(void) const
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
CScope & GetScope(void) const
const CSeq_feat_Handle * operator->(void) const
const CSeq_feat::TExts & GetExts(void) const
bool IsSetDbxref(void) const
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
bool IsSetExp_ev(void) const
bool operator==(const CSeq_feat_Handle &feat) const
CSeq_feat::EExp_ev GetExp_ev(void) const
const CSeqFeatData & GetData(void) const
CSeq_annot_ftable_CI & operator++(void)
bool IsSetTitle(void) const
TWeight GetSNPWeight(void) const
bool IsSetXref(void) const
CRange< TSeqPos > TRange
bool IsSetSNPExtra(void) const
bool IsSetExcept_text(void) const
bool IsSetProduct(void) const
CSeq_annot_Handle m_Seq_annot
bool operator<(const CSeq_feat_Handle &feat) const
CSeq_feat_Handle m_Feat
CConstRef< CSeq_feat > m_CreatedOriginalFeat
CSeq_feat_EditHandle m_Feat
const string & GetComment(void) const
const CUser_object & GetExt(void) const
bool IsSetIds(void) const
const CSeq_feat_EditHandle & operator*(void) const
TSNPId GetSNPId(void) const
const CSeq_annot_Handle & GetAnnot(void) const
const CSeq_feat::TIds & GetIds(void) const
const string & GetExcept_text(void) const
TRange GetLocationTotalRange(void) const
bool operator!=(const CSeq_feat_Handle &feat) const
bool IsTableSNP(void) const
Check if this is SNP table feature.
CSeq_annot_EditHandle m_Annot
const CSeq_annot_Info & x_GetSeq_annot_Info(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
const CSeq_annot_Info & x_GetInfo(void) const
const string & GetTitle(void) const
bool IsSetSNPComment(void) const
bool IsSetExts(void) const
CSeq_annot_EditHandle GetAnnot(void) const
SSNP_Info::TSNPId TSNPId
CScope & GetScope(void) const
const CSeq_feat::TDbxref & GetDbxref(void) const
bool IsSetQual(void) const
const CSeq_feat_Handle & operator*(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
DECLARE_OPERATOR_BOOL(m_Feat)
bool IsSetPseudo(void) const
const string & GetSNPComment(void) const
SSNP_Info::TWeight TWeight
const CSeq_feat::TQual & GetQual(void) const
bool IsSetSNPQualityCode(void) const
bool IsSetExt(void) const
DECLARE_OPERATOR_BOOL(m_Feat)
bool x_IsExcluded(void) const
DECLARE_OPERATOR_BOOL(m_Seq_annot &&!IsRemoved())
bool IsSetCit(void) const
bool IsSNPMinusStrand(void) const
#define NCBI_DEPRECATED
int32_t Int4
4-byte (32-bit) signed integer
Definition: ncbitype.h:102
#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
#define NCBI_XOBJMGR_EXPORT
Definition: ncbi_export.h:1307
E_Choice
Choice variants.
bool IsSetTitle(void) const
for user defined label Check if a value has been assigned to Title data member.
Definition: Seq_feat_.hpp:1160
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
Definition: Seq_feat_.hpp:1037
vector< CRef< CDbtag > > TDbxref
Definition: Seq_feat_.hpp:123
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
Definition: Seq_feat_.hpp:1135
const TExts & GetExts(void) const
Get the Exts member data.
Definition: Seq_feat_.hpp:1477
bool IsSetExt(void) const
user defined structure extension Check if a value has been assigned to Ext data member.
Definition: Seq_feat_.hpp:1207
const TIds & GetIds(void) const
Get the Ids member data.
Definition: Seq_feat_.hpp:1452
list< CRef< CUser_object > > TExts
Definition: Seq_feat_.hpp:127
const TTitle & GetTitle(void) const
Get the Title member data.
Definition: Seq_feat_.hpp:1172
const TCit & GetCit(void) const
Get the Cit member data.
Definition: Seq_feat_.hpp:1240
const TQual & GetQual(void) const
Get the Qual member data.
Definition: Seq_feat_.hpp:1147
const TId & GetId(void) const
Get the Id member data.
Definition: Seq_feat_.hpp:904
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
Definition: Seq_feat_.hpp:1296
E_Choice
Choice variants.
EExp_ev
evidence for existence of feature
Definition: Seq_feat_.hpp:101
const TData & GetData(void) const
Get the Data member data.
Definition: Seq_feat_.hpp:925
bool IsSetExcept(void) const
something funny about this? Check if a value has been assigned to Except data member.
Definition: Seq_feat_.hpp:990
const TExcept_text & GetExcept_text(void) const
Get the Except_text member data.
Definition: Seq_feat_.hpp:1405
bool IsSetExcept_text(void) const
explain if except=TRUE Check if a value has been assigned to Except_text data member.
Definition: Seq_feat_.hpp:1393
const TDbxref & GetDbxref(void) const
Get the Dbxref member data.
Definition: Seq_feat_.hpp:1333
list< CRef< CFeat_id > > TIds
Definition: Seq_feat_.hpp:126
bool IsSetExp_ev(void) const
Check if a value has been assigned to Exp_ev data member.
Definition: Seq_feat_.hpp:1249
bool IsSetIds(void) const
set of Ids; will replace 'id' field Check if a value has been assigned to Ids data member.
Definition: Seq_feat_.hpp:1440
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
Definition: Seq_feat_.hpp:892
TPseudo GetPseudo(void) const
Get the Pseudo member data.
Definition: Seq_feat_.hpp:1365
bool IsSetPseudo(void) const
annotated on pseudogene? Check if a value has been assigned to Pseudo data member.
Definition: Seq_feat_.hpp:1346
const TComment & GetComment(void) const
Get the Comment member data.
Definition: Seq_feat_.hpp:1049
bool IsSetExts(void) const
set of extensions; will replace 'ext' field Check if a value has been assigned to Exts data member.
Definition: Seq_feat_.hpp:1465
bool IsSetCit(void) const
citations for this feature Check if a value has been assigned to Cit data member.
Definition: Seq_feat_.hpp:1228
TExcept GetExcept(void) const
Get the Except member data.
Definition: Seq_feat_.hpp:1009
const TXref & GetXref(void) const
Get the Xref member data.
Definition: Seq_feat_.hpp:1308
vector< CRef< CSeqFeatXref > > TXref
Definition: Seq_feat_.hpp:122
vector< CRef< CGb_qual > > TQual
Definition: Seq_feat_.hpp:117
bool IsSetDbxref(void) const
support for xref to other databases Check if a value has been assigned to Dbxref data member.
Definition: Seq_feat_.hpp:1321
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
Definition: Seq_feat_.hpp:1084
const TExt & GetExt(void) const
Get the Ext member data.
Definition: Seq_feat_.hpp:1219
TExp_ev GetExp_ev(void) const
Get the Exp_ev member data.
Definition: Seq_feat_.hpp:1268
NCBI_NS_NCBI::TGi TGi
Definition: Seq_id_.hpp:180
static MDB_envinfo info
Definition: mdb_load.c:37
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
static bool GetIds(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
string GetProduct(const CProt_ref &prot_ref)
TExtraIndex m_ExtraIndex
Definition: snp_info.hpp:187
TSNPId m_SNP_Id
Definition: snp_info.hpp:182
int TSNPId
Definition: snp_info.hpp:122
@ kNo_CommentIndex
Definition: snp_info.hpp:129
Uint1 TWeight
Definition: snp_info.hpp:132
TWeight m_Weight
Definition: snp_info.hpp:186
bool MinusStrand(void) const
Definition: snp_info.hpp:218
@ fQualityCodesMask
Definition: snp_info.hpp:167
TCommentIndex m_CommentIndex
Definition: snp_info.hpp:185
@ kNo_ExtraIndex
Definition: snp_info.hpp:141
CScope & GetScope()
Modified on Wed Dec 06 07:16:20 2023 by modify_doxy.py rev. 669887