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

Go to the SVN repository for this file.

1 /* $Id$
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  */
27 
28 /// @file Spliced_exon_.hpp
29 /// Data storage class.
30 ///
31 /// This file was generated by application DATATOOL
32 /// using the following specifications:
33 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/seqalign/seqalign.asn">seqalign.asn</a>
34 /// and additional tune-up parameters:
35 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/seqalign/seqalign.def">seqalign.def</a>
36 ///
37 /// ATTENTION:
38 /// Don't edit or commit this file into CVS as this file will
39 /// be overridden (by DATATOOL) without warning!
40 
41 #ifndef OBJECTS_SEQALIGN_SPLICED_EXON_BASE_HPP
42 #define OBJECTS_SEQALIGN_SPLICED_EXON_BASE_HPP
43 
44 // standard includes
45 #include <serial/serialbase.hpp>
46 
47 // generated includes
48 #include <list>
50 
52 
53 #ifndef BEGIN_objects_SCOPE
54 # define BEGIN_objects_SCOPE BEGIN_SCOPE(objects)
55 # define END_objects_SCOPE END_SCOPE(objects)
56 #endif
57 BEGIN_objects_SCOPE // namespace ncbi::objects::
58 
59 
60 // forward declarations
61 class CProduct_pos;
62 class CScore_set;
63 class CSeq_id;
64 class CSplice_site;
66 class CUser_object;
67 
68 
69 // generated classes
70 
71 
72 /** @addtogroup dataspec_NCBI_Seqalign
73  *
74  * @{
75  */
76 
77 /////////////////////////////////////////////////////////////////////////////
78 /// complete or partial exon
79 /// two consecutive Spliced-exons may belong to one exon
80 ///
81 /// CSpliced_exon_Base --
82 ///
83 
85 {
87 public:
88  // constructor
89  CSpliced_exon_Base(void);
90  // destructor
91  virtual ~CSpliced_exon_Base(void);
92 
93  // type info
95 
96  // types
105  typedef list< CRef< CSpliced_exon_chunk > > TParts;
109  typedef bool TPartial;
110  typedef list< CRef< CUser_object > > TExt;
111 
112  // member index
113  enum class E_memberIndex {
114  e__allMandatory = 0,
115  e_product_start,
116  e_product_end,
117  e_genomic_start,
118  e_genomic_end,
119  e_product_id,
120  e_genomic_id,
121  e_product_strand,
122  e_genomic_strand,
123  e_parts,
124  e_scores,
125  e_acceptor_before_exon,
126  e_donor_after_exon,
127  e_partial,
128  e_ext
129  };
131 
132  // getters
133  // setters
134 
135  /// product-end >= product-start
136  /// Check if a value has been assigned to Product_start data member.
137  ///
138  /// Data member Product_start is mandatory;
139  /// its type is defined as 'typedef CProduct_pos TProduct_start'
140  /// @return
141  /// - true, if a value has been assigned.
142  /// - false, otherwise.
143  bool IsSetProduct_start(void) const;
144 
145  /// Check if it is safe to call GetProduct_start method.
146  ///
147  /// @return
148  /// - true, if the data member is getatable.
149  /// - false, otherwise.
150  bool CanGetProduct_start(void) const;
151 
152  /// Reset Product_start data member.
153  void ResetProduct_start(void);
154 
155  /// Get the Product_start member data.
156  ///
157  /// @return
158  /// Reference to the member data.
159  const TProduct_start& GetProduct_start(void) const;
160 
161  /// Assign a value to Product_start data member.
162  ///
163  /// @param value
164  /// Reference to value.
165  void SetProduct_start(TProduct_start& value);
166 
167  /// Assign a value to Product_start data member.
168  ///
169  /// @return
170  /// Reference to the data value.
171  TProduct_start& SetProduct_start(void);
172 
173  /// Check if a value has been assigned to Product_end data member.
174  ///
175  /// Data member Product_end is mandatory;
176  /// its type is defined as 'typedef CProduct_pos TProduct_end'
177  /// @return
178  /// - true, if a value has been assigned.
179  /// - false, otherwise.
180  bool IsSetProduct_end(void) const;
181 
182  /// Check if it is safe to call GetProduct_end method.
183  ///
184  /// @return
185  /// - true, if the data member is getatable.
186  /// - false, otherwise.
187  bool CanGetProduct_end(void) const;
188 
189  /// Reset Product_end data member.
190  void ResetProduct_end(void);
191 
192  /// Get the Product_end member data.
193  ///
194  /// @return
195  /// Reference to the member data.
196  const TProduct_end& GetProduct_end(void) const;
197 
198  /// Assign a value to Product_end data member.
199  ///
200  /// @param value
201  /// Reference to value.
202  void SetProduct_end(TProduct_end& value);
203 
204  /// Assign a value to Product_end data member.
205  ///
206  /// @return
207  /// Reference to the data value.
208  TProduct_end& SetProduct_end(void);
209 
210  /// genomic-end >= genomic-start
211  /// Check if a value has been assigned to Genomic_start data member.
212  ///
213  /// Data member Genomic_start is mandatory;
214  /// its type is defined as 'typedef TSeqPos TGenomic_start'
215  /// @return
216  /// - true, if a value has been assigned.
217  /// - false, otherwise.
218  bool IsSetGenomic_start(void) const;
219 
220  /// Check if it is safe to call GetGenomic_start method.
221  ///
222  /// @return
223  /// - true, if the data member is getatable.
224  /// - false, otherwise.
225  bool CanGetGenomic_start(void) const;
226 
227  /// Reset Genomic_start data member.
228  void ResetGenomic_start(void);
229 
230  /// Get the Genomic_start member data.
231  ///
232  /// @return
233  /// Copy of the member data.
234  TGenomic_start GetGenomic_start(void) const;
235 
236  /// Assign a value to Genomic_start data member.
237  ///
238  /// @param value
239  /// Value to assign
240  void SetGenomic_start(TGenomic_start value);
241 
242  /// Assign a value to Genomic_start data member.
243  ///
244  /// @return
245  /// Reference to the data value.
246  TGenomic_start& SetGenomic_start(void);
247 
248  /// Check if a value has been assigned to Genomic_end data member.
249  ///
250  /// Data member Genomic_end is mandatory;
251  /// its type is defined as 'typedef TSeqPos TGenomic_end'
252  /// @return
253  /// - true, if a value has been assigned.
254  /// - false, otherwise.
255  bool IsSetGenomic_end(void) const;
256 
257  /// Check if it is safe to call GetGenomic_end method.
258  ///
259  /// @return
260  /// - true, if the data member is getatable.
261  /// - false, otherwise.
262  bool CanGetGenomic_end(void) const;
263 
264  /// Reset Genomic_end data member.
265  void ResetGenomic_end(void);
266 
267  /// Get the Genomic_end member data.
268  ///
269  /// @return
270  /// Copy of the member data.
271  TGenomic_end GetGenomic_end(void) const;
272 
273  /// Assign a value to Genomic_end data member.
274  ///
275  /// @param value
276  /// Value to assign
277  void SetGenomic_end(TGenomic_end value);
278 
279  /// Assign a value to Genomic_end data member.
280  ///
281  /// @return
282  /// Reference to the data value.
283  TGenomic_end& SetGenomic_end(void);
284 
285  /// product is either protein or transcript (cDNA)
286  /// Check if a value has been assigned to Product_id data member.
287  ///
288  /// Data member Product_id is optional;
289  /// its type is defined as 'typedef CSeq_id TProduct_id'
290  /// @return
291  /// - true, if a value has been assigned.
292  /// - false, otherwise.
293  bool IsSetProduct_id(void) const;
294 
295  /// Check if it is safe to call GetProduct_id method.
296  ///
297  /// @return
298  /// - true, if the data member is getatable.
299  /// - false, otherwise.
300  bool CanGetProduct_id(void) const;
301 
302  /// Reset Product_id data member.
303  void ResetProduct_id(void);
304 
305  /// Get the Product_id member data.
306  ///
307  /// @return
308  /// Reference to the member data.
309  const TProduct_id& GetProduct_id(void) const;
310 
311  /// Assign a value to Product_id data member.
312  ///
313  /// @param value
314  /// Reference to value.
315  void SetProduct_id(TProduct_id& value);
316 
317  /// Assign a value to Product_id data member.
318  ///
319  /// @return
320  /// Reference to the data value.
321  TProduct_id& SetProduct_id(void);
322 
323  /// Check if a value has been assigned to Genomic_id data member.
324  ///
325  /// Data member Genomic_id is optional;
326  /// its type is defined as 'typedef CSeq_id TGenomic_id'
327  /// @return
328  /// - true, if a value has been assigned.
329  /// - false, otherwise.
330  bool IsSetGenomic_id(void) const;
331 
332  /// Check if it is safe to call GetGenomic_id method.
333  ///
334  /// @return
335  /// - true, if the data member is getatable.
336  /// - false, otherwise.
337  bool CanGetGenomic_id(void) const;
338 
339  /// Reset Genomic_id data member.
340  void ResetGenomic_id(void);
341 
342  /// Get the Genomic_id member data.
343  ///
344  /// @return
345  /// Reference to the member data.
346  const TGenomic_id& GetGenomic_id(void) const;
347 
348  /// Assign a value to Genomic_id data member.
349  ///
350  /// @param value
351  /// Reference to value.
352  void SetGenomic_id(TGenomic_id& value);
353 
354  /// Assign a value to Genomic_id data member.
355  ///
356  /// @return
357  /// Reference to the data value.
358  TGenomic_id& SetGenomic_id(void);
359 
360  /// should be 'plus' or 'minus'
361  /// Check if a value has been assigned to Product_strand data member.
362  ///
363  /// Data member Product_strand is optional;
364  /// its type is defined as 'typedef ENa_strand TProduct_strand'
365  /// @return
366  /// - true, if a value has been assigned.
367  /// - false, otherwise.
368  bool IsSetProduct_strand(void) const;
369 
370  /// Check if it is safe to call GetProduct_strand method.
371  ///
372  /// @return
373  /// - true, if the data member is getatable.
374  /// - false, otherwise.
375  bool CanGetProduct_strand(void) const;
376 
377  /// Reset Product_strand data member.
378  void ResetProduct_strand(void);
379 
380  /// Get the Product_strand member data.
381  ///
382  /// @return
383  /// Copy of the member data.
384  TProduct_strand GetProduct_strand(void) const;
385 
386  /// Assign a value to Product_strand data member.
387  ///
388  /// @param value
389  /// Value to assign
390  void SetProduct_strand(TProduct_strand value);
391 
392  /// Assign a value to Product_strand data member.
393  ///
394  /// @return
395  /// Reference to the data value.
396  TProduct_strand& SetProduct_strand(void);
397 
398  /// genomic-strand represents the strand of translation
399  /// Check if a value has been assigned to Genomic_strand data member.
400  ///
401  /// Data member Genomic_strand is optional;
402  /// its type is defined as 'typedef ENa_strand TGenomic_strand'
403  /// @return
404  /// - true, if a value has been assigned.
405  /// - false, otherwise.
406  bool IsSetGenomic_strand(void) const;
407 
408  /// Check if it is safe to call GetGenomic_strand method.
409  ///
410  /// @return
411  /// - true, if the data member is getatable.
412  /// - false, otherwise.
413  bool CanGetGenomic_strand(void) const;
414 
415  /// Reset Genomic_strand data member.
416  void ResetGenomic_strand(void);
417 
418  /// Get the Genomic_strand member data.
419  ///
420  /// @return
421  /// Copy of the member data.
422  TGenomic_strand GetGenomic_strand(void) const;
423 
424  /// Assign a value to Genomic_strand data member.
425  ///
426  /// @param value
427  /// Value to assign
428  void SetGenomic_strand(TGenomic_strand value);
429 
430  /// Assign a value to Genomic_strand data member.
431  ///
432  /// @return
433  /// Reference to the data value.
434  TGenomic_strand& SetGenomic_strand(void);
435 
436  /// basic seqments always are in biologic order
437  /// Check if a value has been assigned to Parts data member.
438  ///
439  /// Data member Parts is optional;
440  /// its type is defined as 'typedef list< CRef< CSpliced_exon_chunk > > TParts'
441  /// @return
442  /// - true, if a value has been assigned.
443  /// - false, otherwise.
444  bool IsSetParts(void) const;
445 
446  /// Check if it is safe to call GetParts method.
447  ///
448  /// @return
449  /// - true, if the data member is getatable.
450  /// - false, otherwise.
451  bool CanGetParts(void) const;
452 
453  /// Reset Parts data member.
454  void ResetParts(void);
455 
456  /// Get the Parts member data.
457  ///
458  /// @return
459  /// Reference to the member data.
460  const TParts& GetParts(void) const;
461 
462  /// Assign a value to Parts data member.
463  ///
464  /// @return
465  /// Reference to the data value.
466  TParts& SetParts(void);
467 
468  /// scores for this exon
469  /// Check if a value has been assigned to Scores data member.
470  ///
471  /// Data member Scores is optional;
472  /// its type is defined as 'typedef CScore_set TScores'
473  /// @return
474  /// - true, if a value has been assigned.
475  /// - false, otherwise.
476  bool IsSetScores(void) const;
477 
478  /// Check if it is safe to call GetScores method.
479  ///
480  /// @return
481  /// - true, if the data member is getatable.
482  /// - false, otherwise.
483  bool CanGetScores(void) const;
484 
485  /// Reset Scores data member.
486  void ResetScores(void);
487 
488  /// Get the Scores member data.
489  ///
490  /// @return
491  /// Reference to the member data.
492  const TScores& GetScores(void) const;
493 
494  /// Assign a value to Scores data member.
495  ///
496  /// @param value
497  /// Reference to value.
498  void SetScores(TScores& value);
499 
500  /// Assign a value to Scores data member.
501  ///
502  /// @return
503  /// Reference to the data value.
504  TScores& SetScores(void);
505 
506  /// splice sites
507  /// Check if a value has been assigned to Acceptor_before_exon data member.
508  ///
509  /// Data member Acceptor_before_exon is optional;
510  /// its type is defined as 'typedef CSplice_site TAcceptor_before_exon'
511  /// @return
512  /// - true, if a value has been assigned.
513  /// - false, otherwise.
514  bool IsSetAcceptor_before_exon(void) const;
515 
516  /// Check if it is safe to call GetAcceptor_before_exon method.
517  ///
518  /// @return
519  /// - true, if the data member is getatable.
520  /// - false, otherwise.
521  bool CanGetAcceptor_before_exon(void) const;
522 
523  /// Reset Acceptor_before_exon data member.
524  void ResetAcceptor_before_exon(void);
525 
526  /// Get the Acceptor_before_exon member data.
527  ///
528  /// @return
529  /// Reference to the member data.
530  const TAcceptor_before_exon& GetAcceptor_before_exon(void) const;
531 
532  /// Assign a value to Acceptor_before_exon data member.
533  ///
534  /// @param value
535  /// Reference to value.
536  void SetAcceptor_before_exon(TAcceptor_before_exon& value);
537 
538  /// Assign a value to Acceptor_before_exon data member.
539  ///
540  /// @return
541  /// Reference to the data value.
542  TAcceptor_before_exon& SetAcceptor_before_exon(void);
543 
544  /// Check if a value has been assigned to Donor_after_exon data member.
545  ///
546  /// Data member Donor_after_exon is optional;
547  /// its type is defined as 'typedef CSplice_site TDonor_after_exon'
548  /// @return
549  /// - true, if a value has been assigned.
550  /// - false, otherwise.
551  bool IsSetDonor_after_exon(void) const;
552 
553  /// Check if it is safe to call GetDonor_after_exon method.
554  ///
555  /// @return
556  /// - true, if the data member is getatable.
557  /// - false, otherwise.
558  bool CanGetDonor_after_exon(void) const;
559 
560  /// Reset Donor_after_exon data member.
561  void ResetDonor_after_exon(void);
562 
563  /// Get the Donor_after_exon member data.
564  ///
565  /// @return
566  /// Reference to the member data.
567  const TDonor_after_exon& GetDonor_after_exon(void) const;
568 
569  /// Assign a value to Donor_after_exon data member.
570  ///
571  /// @param value
572  /// Reference to value.
573  void SetDonor_after_exon(TDonor_after_exon& value);
574 
575  /// Assign a value to Donor_after_exon data member.
576  ///
577  /// @return
578  /// Reference to the data value.
579  TDonor_after_exon& SetDonor_after_exon(void);
580 
581  /// flag: is this exon complete or partial?
582  /// Check if a value has been assigned to Partial data member.
583  ///
584  /// Data member Partial is optional;
585  /// its type is defined as 'typedef bool TPartial'
586  /// @return
587  /// - true, if a value has been assigned.
588  /// - false, otherwise.
589  bool IsSetPartial(void) const;
590 
591  /// Check if it is safe to call GetPartial method.
592  ///
593  /// @return
594  /// - true, if the data member is getatable.
595  /// - false, otherwise.
596  bool CanGetPartial(void) const;
597 
598  /// Reset Partial data member.
599  void ResetPartial(void);
600 
601  /// Get the Partial member data.
602  ///
603  /// @return
604  /// Copy of the member data.
605  TPartial GetPartial(void) const;
606 
607  /// Assign a value to Partial data member.
608  ///
609  /// @param value
610  /// Value to assign
611  void SetPartial(TPartial value);
612 
613  /// Assign a value to Partial data member.
614  ///
615  /// @return
616  /// Reference to the data value.
617  TPartial& SetPartial(void);
618 
619  ///extra info
620  /// Check if a value has been assigned to Ext data member.
621  ///
622  /// Data member Ext is optional;
623  /// its type is defined as 'typedef list< CRef< CUser_object > > TExt'
624  /// @return
625  /// - true, if a value has been assigned.
626  /// - false, otherwise.
627  bool IsSetExt(void) const;
628 
629  /// Check if it is safe to call GetExt method.
630  ///
631  /// @return
632  /// - true, if the data member is getatable.
633  /// - false, otherwise.
634  bool CanGetExt(void) const;
635 
636  /// Reset Ext data member.
637  void ResetExt(void);
638 
639  /// Get the Ext member data.
640  ///
641  /// @return
642  /// Reference to the member data.
643  const TExt& GetExt(void) const;
644 
645  /// Assign a value to Ext data member.
646  ///
647  /// @return
648  /// Reference to the data value.
649  TExt& SetExt(void);
650 
651  /// Reset the whole object
652  virtual void Reset(void);
653 
654 
655 private:
656  // Prohibit copy constructor and assignment operator
659 
660  // data
661  Uint4 m_set_State[1];
670  list< CRef< CSpliced_exon_chunk > > m_Parts;
674  bool m_Partial;
675  list< CRef< CUser_object > > m_Ext;
676 };
677 
678 /* @} */
679 
680 
681 
682 
683 
684 ///////////////////////////////////////////////////////////
685 ///////////////////// inline methods //////////////////////
686 ///////////////////////////////////////////////////////////
687 inline
689 {
690  return m_Product_start.NotEmpty();
691 }
692 
693 inline
695 {
696  return true;
697 }
698 
699 inline
701 {
702  if ( !m_Product_start ) {
703  const_cast<CSpliced_exon_Base*>(this)->ResetProduct_start();
704  }
705  return (*m_Product_start);
706 }
707 
708 inline
710 {
711  if ( !m_Product_start ) {
713  }
714  return (*m_Product_start);
715 }
716 
717 inline
719 {
720  return m_Product_end.NotEmpty();
721 }
722 
723 inline
725 {
726  return true;
727 }
728 
729 inline
731 {
732  if ( !m_Product_end ) {
733  const_cast<CSpliced_exon_Base*>(this)->ResetProduct_end();
734  }
735  return (*m_Product_end);
736 }
737 
738 inline
740 {
741  if ( !m_Product_end ) {
743  }
744  return (*m_Product_end);
745 }
746 
747 inline
749 {
750  return ((m_set_State[0] & 0x30) != 0);
751 }
752 
753 inline
755 {
756  return IsSetGenomic_start();
757 }
758 
759 inline
761 {
762  m_Genomic_start = 0;
763  m_set_State[0] &= ~0x30;
764 }
765 
766 inline
768 {
769  if (!CanGetGenomic_start()) {
770  ThrowUnassigned(2);
771  }
772  return m_Genomic_start;
773 }
774 
775 inline
777 {
779  m_set_State[0] |= 0x30;
780 }
781 
782 inline
784 {
785 #ifdef _DEBUG
786  if (!IsSetGenomic_start()) {
788  }
789 #endif
790  m_set_State[0] |= 0x10;
791  return m_Genomic_start;
792 }
793 
794 inline
796 {
797  return ((m_set_State[0] & 0xc0) != 0);
798 }
799 
800 inline
802 {
803  return IsSetGenomic_end();
804 }
805 
806 inline
808 {
809  m_Genomic_end = 0;
810  m_set_State[0] &= ~0xc0;
811 }
812 
813 inline
815 {
816  if (!CanGetGenomic_end()) {
817  ThrowUnassigned(3);
818  }
819  return m_Genomic_end;
820 }
821 
822 inline
824 {
826  m_set_State[0] |= 0xc0;
827 }
828 
829 inline
831 {
832 #ifdef _DEBUG
833  if (!IsSetGenomic_end()) {
834  memset(&m_Genomic_end,UnassignedByte(),sizeof(m_Genomic_end));
835  }
836 #endif
837  m_set_State[0] |= 0x40;
838  return m_Genomic_end;
839 }
840 
841 inline
843 {
844  return m_Product_id.NotEmpty();
845 }
846 
847 inline
849 {
850  return IsSetProduct_id();
851 }
852 
853 inline
855 {
856  if (!CanGetProduct_id()) {
857  ThrowUnassigned(4);
858  }
859  return (*m_Product_id);
860 }
861 
862 inline
864 {
865  return m_Genomic_id.NotEmpty();
866 }
867 
868 inline
870 {
871  return IsSetGenomic_id();
872 }
873 
874 inline
876 {
877  if (!CanGetGenomic_id()) {
878  ThrowUnassigned(5);
879  }
880  return (*m_Genomic_id);
881 }
882 
883 inline
885 {
886  return ((m_set_State[0] & 0x3000) != 0);
887 }
888 
889 inline
891 {
892  return IsSetProduct_strand();
893 }
894 
895 inline
897 {
899  m_set_State[0] &= ~0x3000;
900 }
901 
902 inline
904 {
905  if (!CanGetProduct_strand()) {
906  ThrowUnassigned(6);
907  }
908  return m_Product_strand;
909 }
910 
911 inline
913 {
915  m_set_State[0] |= 0x3000;
916 }
917 
918 inline
920 {
921 #ifdef _DEBUG
922  if (!IsSetProduct_strand()) {
924  }
925 #endif
926  m_set_State[0] |= 0x1000;
927  return m_Product_strand;
928 }
929 
930 inline
932 {
933  return ((m_set_State[0] & 0xc000) != 0);
934 }
935 
936 inline
938 {
939  return IsSetGenomic_strand();
940 }
941 
942 inline
944 {
946  m_set_State[0] &= ~0xc000;
947 }
948 
949 inline
951 {
952  if (!CanGetGenomic_strand()) {
953  ThrowUnassigned(7);
954  }
955  return m_Genomic_strand;
956 }
957 
958 inline
960 {
962  m_set_State[0] |= 0xc000;
963 }
964 
965 inline
967 {
968 #ifdef _DEBUG
969  if (!IsSetGenomic_strand()) {
971  }
972 #endif
973  m_set_State[0] |= 0x4000;
974  return m_Genomic_strand;
975 }
976 
977 inline
979 {
980  return ((m_set_State[0] & 0x30000) != 0);
981 }
982 
983 inline
985 {
986  return true;
987 }
988 
989 inline
991 {
992  return m_Parts;
993 }
994 
995 inline
997 {
998  m_set_State[0] |= 0x10000;
999  return m_Parts;
1000 }
1001 
1002 inline
1004 {
1005  return m_Scores.NotEmpty();
1006 }
1007 
1008 inline
1010 {
1011  return IsSetScores();
1012 }
1013 
1014 inline
1016 {
1017  if (!CanGetScores()) {
1018  ThrowUnassigned(9);
1019  }
1020  return (*m_Scores);
1021 }
1022 
1023 inline
1025 {
1026  return m_Acceptor_before_exon.NotEmpty();
1027 }
1028 
1029 inline
1031 {
1032  return IsSetAcceptor_before_exon();
1033 }
1034 
1035 inline
1037 {
1038  if (!CanGetAcceptor_before_exon()) {
1039  ThrowUnassigned(10);
1040  }
1041  return (*m_Acceptor_before_exon);
1042 }
1043 
1044 inline
1046 {
1047  return m_Donor_after_exon.NotEmpty();
1048 }
1049 
1050 inline
1052 {
1053  return IsSetDonor_after_exon();
1054 }
1055 
1056 inline
1058 {
1059  if (!CanGetDonor_after_exon()) {
1060  ThrowUnassigned(11);
1061  }
1062  return (*m_Donor_after_exon);
1063 }
1064 
1065 inline
1067 {
1068  return ((m_set_State[0] & 0x3000000) != 0);
1069 }
1070 
1071 inline
1073 {
1074  return IsSetPartial();
1075 }
1076 
1077 inline
1079 {
1080  m_Partial = 0;
1081  m_set_State[0] &= ~0x3000000;
1082 }
1083 
1084 inline
1086 {
1087  if (!CanGetPartial()) {
1088  ThrowUnassigned(12);
1089  }
1090  return m_Partial;
1091 }
1092 
1093 inline
1095 {
1096  m_Partial = value;
1097  m_set_State[0] |= 0x3000000;
1098 }
1099 
1100 inline
1102 {
1103 #ifdef _DEBUG
1104  if (!IsSetPartial()) {
1105  memset(&m_Partial,UnassignedByte(),sizeof(m_Partial));
1106  }
1107 #endif
1108  m_set_State[0] |= 0x1000000;
1109  return m_Partial;
1110 }
1111 
1112 inline
1114 {
1115  return ((m_set_State[0] & 0xc000000) != 0);
1116 }
1117 
1118 inline
1120 {
1121  return true;
1122 }
1123 
1124 inline
1126 {
1127  return m_Ext;
1128 }
1129 
1130 inline
1132 {
1133  m_set_State[0] |= 0x4000000;
1134  return m_Ext;
1135 }
1136 
1137 ///////////////////////////////////////////////////////////
1138 ////////////////// end of inline methods //////////////////
1139 ///////////////////////////////////////////////////////////
1140 
1141 
1142 
1143 
1144 
1145 END_objects_SCOPE // namespace ncbi::objects::
1146 
1148 
1149 
1150 #endif // OBJECTS_SEQALIGN_SPLICED_EXON_BASE_HPP
void SetScores(objects::CSeq_align &seq_align, objects::CScope &scope, const string &matrix_name="BLOSUM62")
CRef –.
Definition: ncbiobj.hpp:618
CScore_set –.
Definition: Score_set.hpp:66
Base class for all serializable objects.
Definition: serialbase.hpp:150
CSplice_site –.
Definition: Splice_site.hpp:66
complete or partial exon two consecutive Spliced-exons may belong to one exon
CSpliced_exon_chunk –.
static CBioseq_set * GetParts(TEntryList &seq_entries)
Definition: gb_ascii.cpp:2352
unsigned int TSeqPos
Type for sequence locations and lengths.
Definition: ncbimisc.hpp:875
static char UnassignedByte(void)
Definition: serialbase.hpp:181
void ThrowUnassigned(TMemberIndex index) const
uint32_t Uint4
4-byte (32-bit) unsigned integer
Definition: ncbitype.h:103
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_SEQALIGN_EXPORT
Definition: ncbi_export.h:744
bool CanGetParts(void) const
Check if it is safe to call GetParts method.
bool IsSetProduct_strand(void) const
should be 'plus' or 'minus' Check if a value has been assigned to Product_strand data member.
bool CanGetGenomic_end(void) const
Check if it is safe to call GetGenomic_end method.
const TDonor_after_exon & GetDonor_after_exon(void) const
Get the Donor_after_exon member data.
CRef< TDonor_after_exon > m_Donor_after_exon
const TExt & GetExt(void) const
Get the Ext member data.
bool IsSetGenomic_end(void) const
Check if a value has been assigned to Genomic_end data member.
void ResetGenomic_end(void)
Reset Genomic_end data member.
list< CRef< CUser_object > > m_Ext
bool CanGetPartial(void) const
Check if it is safe to call GetPartial method.
CRef< TProduct_id > m_Product_id
bool CanGetAcceptor_before_exon(void) const
Check if it is safe to call GetAcceptor_before_exon method.
ENa_strand TGenomic_strand
bool IsSetParts(void) const
basic seqments always are in biologic order Check if a value has been assigned to Parts data member.
TProduct_end & SetProduct_end(void)
Assign a value to Product_end data member.
void ResetGenomic_start(void)
Reset Genomic_start data member.
bool CanGetProduct_start(void) const
Check if it is safe to call GetProduct_start method.
CSpliced_exon_Base & operator=(const CSpliced_exon_Base &)
void ResetPartial(void)
Reset Partial data member.
list< CRef< CSpliced_exon_chunk > > m_Parts
void ResetProduct_start(void)
Reset Product_start data member.
TGenomic_start GetGenomic_start(void) const
Get the Genomic_start member data.
const TProduct_id & GetProduct_id(void) const
Get the Product_id member data.
bool IsSetPartial(void) const
flag: is this exon complete or partial? Check if a value has been assigned to Partial data member.
const TAcceptor_before_exon & GetAcceptor_before_exon(void) const
Get the Acceptor_before_exon member data.
bool CanGetGenomic_id(void) const
Check if it is safe to call GetGenomic_id method.
bool IsSetProduct_end(void) const
Check if a value has been assigned to Product_end data member.
CSplice_site TDonor_after_exon
bool IsSetAcceptor_before_exon(void) const
splice sites Check if a value has been assigned to Acceptor_before_exon data member.
void ResetProduct_end(void)
Reset Product_end data member.
CRef< TGenomic_id > m_Genomic_id
TGenomic_strand & SetGenomic_strand(void)
Assign a value to Genomic_strand data member.
TExt & SetExt(void)
Assign a value to Ext data member.
void ResetGenomic_strand(void)
Reset Genomic_strand data member.
bool IsSetGenomic_strand(void) const
genomic-strand represents the strand of translation Check if a value has been assigned to Genomic_str...
CProduct_pos TProduct_start
CProduct_pos TProduct_end
bool IsSetProduct_id(void) const
product is either protein or transcript (cDNA) Check if a value has been assigned to Product_id data ...
const TParts & GetParts(void) const
Get the Parts member data.
const TProduct_start & GetProduct_start(void) const
Get the Product_start member data.
const TProduct_end & GetProduct_end(void) const
Get the Product_end member data.
CRef< TAcceptor_before_exon > m_Acceptor_before_exon
bool IsSetGenomic_start(void) const
genomic-end >= genomic-start Check if a value has been assigned to Genomic_start data member.
bool IsSetProduct_start(void) const
product-end >= product-start Check if a value has been assigned to Product_start data member.
CRef< TScores > m_Scores
bool CanGetGenomic_strand(void) const
Check if it is safe to call GetGenomic_strand method.
bool IsSetExt(void) const
extra info Check if a value has been assigned to Ext data member.
const TScores & GetScores(void) const
Get the Scores member data.
TGenomic_start & SetGenomic_start(void)
Assign a value to Genomic_start data member.
ENa_strand TProduct_strand
TProduct_strand & SetProduct_strand(void)
Assign a value to Product_strand data member.
TPartial GetPartial(void) const
Get the Partial member data.
TGenomic_strand GetGenomic_strand(void) const
Get the Genomic_strand member data.
CSerialObject Tparent
bool CanGetExt(void) const
Check if it is safe to call GetExt method.
CSpliced_exon_Base(const CSpliced_exon_Base &)
TProduct_strand GetProduct_strand(void) const
Get the Product_strand member data.
TParts & SetParts(void)
Assign a value to Parts data member.
TPartial & SetPartial(void)
Assign a value to Partial data member.
TProduct_start & SetProduct_start(void)
Assign a value to Product_start data member.
bool CanGetProduct_id(void) const
Check if it is safe to call GetProduct_id method.
ENa_strand m_Genomic_strand
bool CanGetScores(void) const
Check if it is safe to call GetScores method.
list< CRef< CUser_object > > TExt
list< CRef< CSpliced_exon_chunk > > TParts
bool CanGetProduct_strand(void) const
Check if it is safe to call GetProduct_strand method.
bool CanGetDonor_after_exon(void) const
Check if it is safe to call GetDonor_after_exon method.
TGenomic_end GetGenomic_end(void) const
Get the Genomic_end member data.
TGenomic_end & SetGenomic_end(void)
Assign a value to Genomic_end data member.
bool IsSetGenomic_id(void) const
Check if a value has been assigned to Genomic_id data member.
CSplice_site TAcceptor_before_exon
ENa_strand m_Product_strand
CRef< TProduct_end > m_Product_end
Tparent::CMemberIndex< E_memberIndex, 15 > TmemberIndex
bool CanGetGenomic_start(void) const
Check if it is safe to call GetGenomic_start method.
void ResetProduct_strand(void)
Reset Product_strand data member.
CRef< TProduct_start > m_Product_start
const TGenomic_id & GetGenomic_id(void) const
Get the Genomic_id member data.
bool IsSetDonor_after_exon(void) const
Check if a value has been assigned to Donor_after_exon data member.
bool CanGetProduct_end(void) const
Check if it is safe to call GetProduct_end method.
bool IsSetScores(void) const
scores for this exon Check if a value has been assigned to Scores data member.
ENa_strand
strand of nucleic acid
Definition: Na_strand_.hpp:64
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
void SetPartial(CSeq_loc &loc, CRef< CSeq_feat > feat, CSeq_loc::TStrand strand, bool partial_start, bool partial_stop)
Modified on Wed Sep 04 15:02:29 2024 by modify_doxy.py rev. 669887