70 switch (cbr.GetAa().Which()) {
72 str = cbr.GetAa().GetNcbi8aa();
77 str = cbr.GetAa().GetNcbi8aa();
82 seqData.push_back(cbr.GetAa().GetNcbieaa());
122 except_len = (dna_len - 1) % 3;
125 except_len = (dna_len - 2) % 3;
128 except_len = dna_len % 3;
132 except_len = dna_len % 3;
141 if (except_len == 0) {
149 codon_loc->
SetInt().SetId(*new_id);
151 codon_loc->
SetInt().SetFrom(stop);
152 codon_loc->
SetInt().SetTo(stop + except_len - 1);
155 codon_loc->
SetInt().SetFrom(stop - except_len + 1);
156 codon_loc->
SetInt().SetTo(stop);
170 cbr->
SetAa().SetNcbieaa(
'*');
171 cbr->
SetLoc().Assign(*codon_loc);
172 cds.
SetData().SetCdregion().SetCode_break().push_back(cbr);
180 bool alt_start =
false;
207 add->
SetInt().SetTo(stop - 1);
211 add->
SetInt().SetFrom(stop + 1);
234 overhang->
SetInt().SetFrom(0);
235 overhang->
SetInt().SetTo(stop - 1);
244 overhang->
SetInt().SetFrom(stop + 1);
254 if (
len > 1 && vec[1] ==
'A') {
256 if (
len > 2 && vec[2] ==
'A') {
264 if (except_len > 0) {
283 }
else if (
len > 1 && vec[1] !=
'A') {
287 if (vec[0] !=
'T' && vec[0] !=
'N') {
324 bool extended =
false;
327 if (except_len > 0) {
332 if (except_len == 0) {
336 bool added_code_break =
false;
344 if (
NStr::Find(orig_comment, comment) == string::npos) {
351 added_code_break =
true;
355 return extended || added_code_break;
377 if (partial5 && partial3) {
379 }
else if (partial5) {
381 }
else if (partial3) {
400 bool any_change =
false;
405 if ((partial5 && !prot_5) || (!partial5 && prot_5)
406 || (partial3 && !prot_3) || (!partial3 && prot_3)) {
436 bool any_change =
false;
445 new_feat->
Assign(*(
f->GetSeq_feat()));
456 if ((*it)->IsMolinfo()) {
464 beh.
SetDescr().Set().push_back(new_molinfo_desc);
475 if (
prot.IsSetName() &&
prot.GetName().size() > 0) {
476 prot_nm =
prot.GetName().front();
495 if ((*it)->IsSetData() && (*it)->GetData().IsProt()) {
547 if (best_len == 0 ||
len < best_len) {
549 mrna = &(mrna_find->GetOriginalFeature());
559 new_mrna->
SetData().SetRna().SetExt().SetName(prot_nm);
603 const CSeq_loc *overlap_loc = &cd_loc;
624 if (exon_start >= gene_start && exon_stop <= gene_stop)
626 bool exon_found =
false;
627 if (exon_start < mrna_start )
635 if (exon_stop > mrna_stop)
673 bool has_xref =
false;
681 if ((*it)->IsSetId() && (*it)->GetId().IsLocal() && (*it)->GetId().GetLocal().IsId()) {
717 if (bioseqGenCode > 0) {
719 code->SetId(bioseqGenCode);
732 size_t this_len = it.GetRange().GetLength();
734 if (
len + this_len <= new_len) {
736 new_loc->
Add(*this_loc);
739 new_loc->
Assign(*this_loc);
744 size_t len_wanted = new_len -
len;
746 if (len_wanted == 1) {
748 partial_loc->
SetPnt().SetPoint(start);
752 partial_loc->
SetInt().SetFrom(start - len_wanted + 1);
753 partial_loc->
SetInt().SetTo(start);
755 partial_loc->
SetInt().SetFrom(start);
756 partial_loc->
SetInt().SetTo(start + len_wanted - 1);
764 new_loc->
Add(*partial_loc);
767 new_loc->
Assign(*partial_loc);
795 if (pos != string::npos) {
797 size_t len_wanted = 3 * (pos + 1);
806 if (len_wanted > 0) {
856 size_t len = orig_len;
867 vector_loc->
SetInt().SetId().Assign(*(loc.
GetId()));
870 vector_loc->
SetInt().SetFrom(0);
871 vector_loc->
SetInt().SetTo(stop +
mod - 1);
874 vector_loc->
SetInt().SetFrom(stop -
mod + 1);
880 const size_t usable_size = seq.
size();
893 size_t length = usable_size / 3;
897 for (
i = 0;
i < length; ++
i) {
899 for (k = 0; k < 3; ++k, ++start) {
910 new_loc->
Add(*this_loc);
913 new_loc->
Assign(*this_loc);
922 size_t extension = ((
i + 1) * 3) -
mod;
923 last_interval->
SetInt().SetId().Assign(*(this_loc->
GetId()));
926 last_interval->
SetInt().SetFrom(this_start - extension);
927 last_interval->
SetInt().SetTo(this_stop);
929 last_interval->
SetInt().SetFrom(this_start);
930 last_interval->
SetInt().SetTo(this_stop + extension);
934 new_loc->
Add(*last_interval);
937 new_loc->
Assign(*last_interval);
946 if (usable_size < 3 && !new_loc) {
1002 for (; annot_ci; ++annot_ci) {
1003 if ((*annot_ci).IsFtable()) {
1011 new_annot->
SetData().SetFtable();
1018 orig_feat = new_annot.
TakeFeat(feh);
1020 if (feat_list.empty())
1039 switch (frame_type) {
1059 bool modified =
false;
1060 if (orig_frame != new_frame) {
1061 cds.
SetData().SetCdregion().SetFrame(new_frame);
1084 string orig_prot_seq;
1094 tmp_cds->
SetData().SetCdregion().SetFrame(fr);
1096 string new_prot_seq;
1099 new_prot_seq.erase(new_prot_seq.end() - 1);
1135 string new_str = base;
1148 string id_base_hash =
GetIdHash(id_base);
1150 string new_str = id_base;
1155 string new_hash = id_base_hash;
1162 while (b_found || b_found_hash)
1177 string id_base_hash =
GetIdHash(id_base);
1180 string new_str = id_base;
1186 string new_hash = id_base_hash;
1193 while (b_found || b_found_hash)
1236 else if (fall_through)
1247 vector<CRef<CSeq_id> > ids;
1248 for(
auto it : bsh.
GetId())
1250 if (it.GetSeqIdOrNull())
1255 ids.push_back(new_id);
1259 if (ids.empty() && !bsh.
GetId().empty())
1262 ids.push_back(new_id);
1277 for (
auto it : bsh.
GetId())
1279 if (it.GetSeqId()->IsGeneral() && it.GetSeqId()->GetGeneral().IsSetDb() &&
1280 !it.GetSeqId()->GetGeneral().IsSkippable())
1285 if (gen_id && general_only)
1303 for (
auto it : b_iter->GetId())
1305 if (it.GetSeqId()->IsGeneral() && it.GetSeqId()->GetGeneral().IsSetDb() &&
1306 !it.GetSeqId()->GetGeneral().IsSkippable())
User-defined methods of the data storage class.
User-defined methods of the data storage class.
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
bool AddTerminalCodeBreak(CSeq_feat &cds, CScope &scope)
bool ExtendCDSToStopCodon(CSeq_feat &cds, CScope &scope)
ExtendCDSToStopCodon A function to extend a CDS location to the first in-frame stop codon in the prot...
string s_GetmRNAName(const CSeq_feat &mrna)
CRef< CSeq_loc > GetLastCodonLoc(const CSeq_feat &cds, CScope &scope)
bool SetTranslExcept(CSeq_feat &cds, const string &comment, bool strict, bool extend, CScope &scope)
SetTranslExcept A function to set a code break at the 3' end of a coding region to indicate that the ...
void ExtendStop(CSeq_loc &loc, TSeqPos len, CScope &scope)
vector< CRef< CSeq_id > > GetNewProtIdFromExistingProt(CBioseq_Handle bsh, int &offset, string &id_label)
static CRef< CSeq_id > GetNewGeneralProtId(const string &id_base, const string &db, CScope &scope, int &offset)
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
bool DoesCodingRegionHaveTerminalCodeBreak(const CCdregion &cdr)
bool IsGeneralIdProtPresent(CSeq_entry_Handle tse)
CRef< CSeq_feat > MakemRNAforCDS(const CSeq_feat &cds, CScope &scope)
MakemRNAforCDS A function to create a CSeq_feat that represents the appropriate mRNA for a given CDS.
string s_GetProductName(const CProt_ref &prot)
CRef< CSeq_id > GetNewLocalProtId(const string &id_base, CScope &scope, int &offset)
void AdjustCDSFrameForStartChange(CCdregion &cds, int change)
static string GetIdHash(const string &str)
bool TruncateCDSAtStop(CSeq_feat &cds, CScope &scope)
TruncateCDSAtStop A function to truncate a CDS location after the first stop codon in the protein tra...
const unsigned int MAX_ID_LENGTH
TSeqPos GetLastPartialCodonLength(const CSeq_feat &cds, CScope &scope)
static CRef< CSeq_loc > TruncateSeqLoc(const CSeq_loc &orig_loc, size_t new_len)
CRef< CSeq_id > GetNewProtId(CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
unsigned char GetCodeBreakCharacter(const CCode_break &cbr)
TSeqPos ExtendLocationForTranslExcept(CSeq_loc &loc, CScope &scope)
static CRef< CSeq_id > GetGeneralOrLocal(CSeq_id_Handle hid, CScope &scope, int &offset, bool fall_through)
CRef< CGenetic_code > GetGeneticCodeForBioseq(CBioseq_Handle bh)
GetGeneticCodeForBioseq A function to construct the appropriate CGenetic_code object to use when cons...
bool DoesCodingRegionEndWithStopCodon(const CSeq_feat &cds, CScope &scope)
bool DemoteCDSToNucSeq(CSeq_feat_Handle &orig_feat)
string GetIdHashOrValue(const string &base, int offset)
bool IsOverhangOkForTerminalCodeBreak(const CSeq_feat &cds, CScope &scope, bool strict)
Checksum and hash calculation classes.
static ECdsFrame s_GetFrameFromName(const string &name)
static bool s_SetCDSFrame(CSeq_feat &cds, ECdsFrame frame_type, CScope &scope)
static CCdregion::TFrame s_FindMatchingFrame(const CSeq_feat &cds, CScope &scope)
int GetGenCode(int def=1) const
static const CTrans_table & GetTransTable(int id)
static SIZE_TYPE Convert(const CTempString &src, TCoding src_coding, TSeqPos pos, TSeqPos length, string &dst, TCoding dst_coding)
ESubtype GetSubtype(void) const
namespace ncbi::objects::
Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.
CSeq_feat_Handle GetFeatureWithId(CSeqFeatData::E_Choice type, TFeatureIdInt id) const
char GetCodonResidue(int state) const
static int NextCodonState(int state, unsigned char ch)
Include a standard set of the NCBI C++ Toolkit most basic headers.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
int TSignedSeqPos
Type for signed sequence position.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
static Uint8 CityHash64(const CTempString str)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
CConstRef< CSeq_id > GetSeqId(void) const
@ eContent
Untagged human-readable accession or the like.
@ eBoth
Type and content, delimited by a vertical bar.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
ENa_strand GetStrand(void) const
Get the location's strand.
bool IsReverseStrand(void) const
Return true if all ranges have reverse strand.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
void SetId(CSeq_id &id)
set the 'id' field in all parts of this location
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
CConstRef< CSeq_loc > GetRangeAsSeq_loc(void) const
Get seq-loc for the current iterator position.
void Add(const CSeq_loc &other)
Simple adding of seq-locs.
bool IsSetStrand(EIsSetStrand flag=eIsSetStrand_Any) const
Check if strand is set for any/all part(s) of the seq-loc depending on the flag.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
void SetPartialStart(bool val, ESeqLocExtremes ext)
set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)
void SetStrand(ENa_strand strand)
Set the strand for all of the location's ranges.
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
CMappedFeat GetBestGeneForCds(const CMappedFeat &cds_feat, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0, CFeatTree::EBestGeneType lookup_type=CFeatTree::eBestGene_TreeOnly)
bool AdjustFeaturePartialFlagForLocation(CSeq_feat &new_feat)
AdjustFeaturePartialFlagForLocation A function to ensure that Seq-feat.partial is set if either end o...
CMappedFeat GetBestOverlappingFeat(const CMappedFeat &feat, CSeqFeatData::ESubtype need_subtype, sequence::EOverlapType overlap_type, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
bool AdjustForCDSPartials(const CSeq_feat &cds, CSeq_entry_Handle seh)
AdjustForCDSPartials A function to make all of the necessary related changes to a Seq-entry after the...
bool AdjustProteinMolInfoToMatchCDS(CMolInfo &molinfo, const CSeq_feat &cds)
AdjustProteinMolInfoToMatchCDS A function to change an existing MolInfo to match a coding region.
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,...
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
Int8 TestForOverlap64(const CSeq_loc &loc1, const CSeq_loc &loc2, EOverlapType type, TSeqPos circular_len=kInvalidSeqPos, CScope *scope=0)
64-bit version of TestForOverlap() Check if the two locations have ovarlap of a given type.
CRef< CSeq_loc > Seq_loc_Add(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags, CScope *scope)
Add two seq-locs.
bool IsSameBioseq(const CSeq_id &id1, const CSeq_id &id2, CScope *scope, CScope::EGetBioseqFlag get_flag=CScope::eGetBioseq_All)
Determines if two CSeq_ids represent the same CBioseq.
@ eOverlap_CheckIntervals
2nd is a subset of 1st with matching boundaries
@ eOverlap_CheckIntRev
1st is a subset of 2nd with matching boundaries
CConstRef< CSeq_feat > GetOverlappingmRNA(const CSeq_loc &loc, CScope &scope)
CBioseq_Handle GetBioseqFromSeqLoc(const CSeq_loc &loc, CScope &scope, CScope::EGetBioseqFlag flag=CScope::eGetBioseq_Loaded)
Retrieve the Bioseq Handle from a location.
static CRef< CBioseq > TranslateToProtein(const CSeq_feat &cds, CScope &scope)
static CCdregion::EFrame FindBestFrame(const CSeq_feat &cds, CScope &scope)
Find "best" frame for a coding region.
CConstRef< CSeq_feat > GetmRNAforCDS(const CSeq_feat &cds, CScope &scope)
GetmRNAforCDS A function to find a CSeq_feat representing the appropriate mRNA for a given CDS.
static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)
Translate a string using a specified genetic code.
@ eGetId_Best
return the "best" gi (uses FindBestScore(), with CSeq_id::CalculateScore() as the score function
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
const CTSE_Handle & GetTSE_Handle(void) const
Get CTSE_Handle of containing TSE.
TClass GetClass(void) const
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
void SetDescr(TDescr &v) const
void Remove(void) const
Remove current annot.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
CSeq_annot_EditHandle AttachAnnot(CSeq_annot &annot) const
Attach an annotation.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
bool IsProtein(void) const
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CBioseq_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
TInst_Length GetInst_Length(void) const
bool IsSetClass(void) const
CSeq_annot_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CScope & GetScope(void) const
Get scope this handle belongs to.
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_feat_EditHandle TakeFeat(const CSeq_feat_EditHandle &handle) const
CSeq_annot_EditHandle GetAnnot(void) const
void Replace(const CSeq_feat &new_feat) const
Replace the feature with new Seq-feat object.
const TId & GetId(void) const
CConstRef< CSeq_annot > GetSeq_annotCore(void) const
CSeq_entry_EditHandle GetParentEntry(void) const
Navigate object tree.
CSeqVector GetSeqVector(EVectorCoding coding, ENa_strand strand=eNa_strand_plus) const
Get sequence: Iupacna or Iupacaa if use_iupac_coding is true.
@ eCoding_Ncbi
Set coding to binary coding (Ncbi4na or Ncbistdaa)
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer) const
Fill the buffer string with the sequence data for the interval [start, stop).
void SetCoding(TCoding coding)
const_iterator begin(void) const
void Reset(void)
Reset reference object.
#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 bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
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 bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
const TOrg & GetOrg(void) const
Get the Org member data.
bool IsSetDb(void) const
name of database or system Check if a value has been assigned to Db data member.
const TTag & GetTag(void) const
Get the Tag member data.
void SetTag(TTag &value)
Assign a value to Tag data member.
bool IsId(void) const
Check if variant Id is selected.
bool IsSetTag(void) const
appropriate tag Check if a value has been assigned to Tag data member.
const TDb & GetDb(void) const
Get the Db member data.
const TStr & GetStr(void) const
Get the variant data.
TStr & SetStr(void)
Select the variant.
void SetDb(const TDb &value)
Assign a value to Db data member.
TId GetId(void) const
Get the variant data.
bool IsSetOrgname(void) const
Check if a value has been assigned to Orgname data member.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
const TName & GetName(void) const
Get the variant data.
const TExt & GetExt(void) const
Get the Ext member data.
bool IsName(void) const
Check if variant Name is selected.
void SetAa(TAa &value)
Assign a value to Aa data member.
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
void ResetPartial(void)
Reset Partial data member.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
bool IsSetCode(void) const
genetic code used Check if a value has been assigned to Code data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
const TLocation & GetLocation(void) const
Get the Location member data.
list< CRef< CCode_break > > TCode_break
TFrame GetFrame(void) const
Get the Frame member data.
const TData & GetData(void) const
Get the Data member data.
const TCode & GetCode(void) const
Get the Code member data.
void SetData(TData &value)
Assign a value to Data data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
const TProduct & GetProduct(void) const
Get the Product member data.
const TComment & GetComment(void) const
Get the Comment member data.
const TProt & GetProt(void) const
Get the variant data.
const TXref & GetXref(void) const
Get the Xref member data.
vector< CRef< CSeqFeatXref > > TXref
const TRna & GetRna(void) const
Get the variant data.
const TCode_break & GetCode_break(void) const
Get the Code_break member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsRna(void) const
Check if variant Rna is selected.
void SetFrame(TFrame value)
Assign a value to Frame data member.
bool IsSetCode_break(void) const
individual exceptions Check if a value has been assigned to Code_break data member.
bool IsSetFrame(void) const
Check if a value has been assigned to Frame data member.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
@ eFrame_not_set
not set, code uses one
@ eFrame_three
reading frame
@ e_Ncbieaa
ASCII value of NCBIeaa code.
TGeneral & SetGeneral(void)
Select the variant.
bool IsGeneral(void) const
Check if variant General is selected.
TLocal & SetLocal(void)
Select the variant.
const TLocal & GetLocal(void) const
Get the variant data.
bool IsLocal(void) const
Check if variant Local is selected.
const TGeneral & GetGeneral(void) const
Get the variant data.
@ eClass_nuc_prot
nuc acid and coded proteins
void SetCompleteness(TCompleteness value)
Assign a value to Completeness data member.
void SetData(TData &value)
Assign a value to Data data member.
bool IsSetCompleteness(void) const
Check if a value has been assigned to Completeness data member.
list< CRef< CSeqdesc > > Tdata
const TSource & GetSource(void) const
Get the variant data.
bool IsSetBiomol(void) const
Check if a value has been assigned to Biomol data member.
TBiomol GetBiomol(void) const
Get the Biomol member data.
void SetBiomol(TBiomol value)
Assign a value to Biomol data member.
const TFtable & GetFtable(void) const
Get the variant data.
TCompleteness GetCompleteness(void) const
Get the Completeness member data.
const TData & GetData(void) const
Get the Data member data.
TMolinfo & SetMolinfo(void)
Select the variant.
@ eCompleteness_complete
complete biological entity
@ eCompleteness_no_left
missing 5' or NH3 end
@ eCompleteness_no_right
missing 3' or COOH end
@ eCompleteness_no_ends
missing both ends
@ e_Ncbieaa
extended ASCII 1 letter aa codes
@ e_Source
source of materials, includes Org-ref
@ eMol_na
just a nucleic acid
CRef< CSeq_loc > SeqLocExtend(const CSeq_loc &loc, size_t pos, CScope *scope)
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
double f(double x_, const double &y_)
Utility macros and typedefs for exploring NCBI objects from seqfeat.asn.
#define FOR_EACH_SEQFEATXREF_ON_SEQFEAT(Itr, Var)
FOR_EACH_SEQFEATXREF_ON_SEQFEAT EDIT_EACH_SEQFEATXREF_ON_SEQFEAT.
static const char * str(char *buf, int n)