104 bool have_asserted_seq =
false;
114 if(
literal.GetSeq_data().IsIupacna()) {
115 asserted_seq =
literal.GetSeq_data().GetIupacna();
116 have_asserted_seq =
true;
117 }
else if(
literal.GetSeq_data().IsNcbieaa()) {
118 asserted_seq =
literal.GetSeq_data().GetNcbieaa();
119 have_asserted_seq =
true;
130 v.GetSeqData(v.begin(), v.end(), actual_seq);
137 *asserted_out = asserted_seq;
140 *actual_out = actual_seq;
181 bool is_intronic =
false;
286 v.
SetData().SetInstance().SetDelta().pop_front();
300 v.
SetData().SetInstance().SetDelta().pop_front();
315 v.
SetData().SetInstance().SetDelta().pop_back();
333 NCBI_THROW(
CArgException, eInvalidArg,
"Expected genomic_id in the variation to be the same as in spliced-seg");
339 long closest_start = 0;
340 long closest_stop = 0;
346 closest_start = start;
369 if(start != closest_start || stop != closest_stop) {
371 loc->
SetInt().SetFrom(closest_start);
372 loc->
SetInt().SetTo(closest_stop);
377 if(start != closest_start) {
378 int offset = start - closest_start;
385 delta->SetMultiplier(-1);
394 if(stop != closest_stop && start != stop) {
395 int offset = stop - closest_stop;
401 delta->SetMultiplier(-1);
434 s_Remap(**it, mapper, variation_loc);
445 di.
SetSeq().SetLoc().Assign(*merged_mapped_loc);
461 feat->
Assign(variation_feat);
485 for(
int i = 0;
i < 2;
i++) {
490 if(target_row == -1) {
498 TExtLoc ext_loc(
new TExtLoc::TObjectType);
499 ext_loc->SetId().SetStr(
"mapped-from");
521 feat->
SetData().SetVariation().ResetLocation();
552 first.SetInt().SetTo(start - 1);
555 if(stop == max_pos) {
558 second.
SetInt().SetFrom(stop + 1);
573 if(prot_str.size() != 1) {
577 static const char* alphabet =
"ACGT";
578 string codon =
"AAA";
580 for(
size_t i0 = 0; i0 < 4; i0++) {
581 codon[0] = alphabet[i0];
582 for(
size_t i1 = 0; i1 < 4; i1++) {
583 codon[1] = alphabet[i1];
584 for(
size_t i2 = 0; i2 < 4; i2++) {
585 codon[2] = alphabet[i2];
591 if(
prot == prot_str) {
602 for(
size_t i = 0;
i <
min(
a.size(),
b.size());
i++ ) {
611 const string& codon_from,
612 const string& prot_to,
613 vector<string>& codons_to)
615 vector<string> candidates1;
616 size_t max_matches(0);
620 ITERATE(vector<string>, it1, candidates1) {
630 if(matches >= max_matches) {
631 if(matches > max_matches) {
634 codons_to.push_back(*it1);
635 max_matches = matches;
642 string collapsed_seq;
646 typedef const vector<string> TConstStrs;
647 ITERATE(TConstStrs, it, seqs) {
648 const string& seq = *it;
649 if(seq.size() > bits.size()) {
650 bits.resize(seq.size());
653 for(
size_t i= 0;
i < seq.size();
i++) {
655 int m = (nt ==
'T' ? 1
658 : nt ==
'A' ? 8 : 0);
667 static const char* iupac_bases =
"NTGKCYSBAWRDMHVN";
668 collapsed_seq.resize(bits.size());
669 for(
size_t i = 0;
i < collapsed_seq.size();
i++) {
670 collapsed_seq[
i] = iupac_bases[bits[
i]];
672 return collapsed_seq;
693 if(!
delta.IsSetSeq() || !
delta.GetSeq().IsLiteral() ||
delta.GetSeq().GetLiteral().GetLength() != 1) {
712 if(!prot2precursor_mapper) {
723 string original_allele_codon;
726 vector<string> variant_codons;
732 while(variant_codon.length() > 1 && variant_codon.at(0) == original_allele_codon.at(0)) {
733 variant_codon = variant_codon.substr(1);
734 original_allele_codon = variant_codon.substr(1);
736 nuc_loc->
SetInt().SetTo()--;
738 nuc_loc->
SetInt().SetFrom()++;
741 while(variant_codon.length() > 1 &&
742 variant_codon.at(variant_codon.length() - 1) == original_allele_codon.at(original_allele_codon.length() - 1))
744 variant_codon.resize(variant_codon.length() - 1);
745 original_allele_codon.resize(variant_codon.length() - 1);
749 nuc_loc->
SetInt().SetFrom()++;
751 nuc_loc->
SetInt().SetTo()--;
756 delta2->SetSeq().SetLiteral().SetLength(variant_codon.length());
757 delta2->SetSeq().SetLiteral().SetSeq_data().SetIupacna().Set(variant_codon);
802 literal->SetLength(seq.length());
804 literal->SetSeq_data().SetNcbieaa().Set(seq);
806 literal->SetSeq_data().SetIupacna().Set(seq);
815 if(
b.GetLength() == 0) {
817 }
else if(
a.GetLength() == 0) {
821 a.GetSeq_data(), 0,
a.GetLength(),
822 b.GetSeq_data(), 0,
b.GetLength());
826 if(
a.IsSetFuzz() ||
b.IsSetFuzz()) {
852 di->SetSeq().SetLiteral().SetLength(0);
853 di->SetSeq().SetLiteral().SetSeq_data().SetIupacna().Set(
"");
855 }
else if(inst.
GetDelta().size() > 1) {
864 di.
SetSeq().SetLiteral().SetLength(0);
865 di.
SetSeq().SetLiteral().SetSeq_data().SetIupacna().Set(
"");
883 string str_kernel =
literal.GetSeq_data().GetIupacna().Get();
884 literal.SetSeq_data().SetIupacna().Set(
"");
886 literal.SetSeq_data().SetIupacna().Set() += str_kernel;
907 di.
SetSeq().SetLiteral(*cat_literal);
948 if(!
delta.IsSetSeq() || !
delta.GetSeq().IsLiteral()) {
961 swap(prefix_loc, suffix_loc);
969 delta.SetSeq().SetLiteral(*tmp_literal2);
1034 if(!prot2nuc_mapper) {
1040 if(!v->IsSetLocation()) {
1041 v->SetLocation().Assign(nuc_variation_feat.
GetLocation());
1042 if(!v->GetLocation().GetId()) {
1060 codons_loc->
SetId(*v->GetLocation().GetId());
1078 CSeq_literal&
literal = v->SetData().SetInstance().SetDelta().front()->SetSeq().SetLiteral();
1079 int prot_literal_len =
literal.GetLength() / 3;
1080 literal.SetLength(prot_literal_len * 3);
1081 literal.SetSeq_data().SetIupacna().Set().resize(
literal.GetLength());
1086 string prot_delta_str(
"");
1089 delta.GetSeq().GetLiteral().GetSeq_data().GetIupacna(),
1092 prot_delta_str.resize(
delta.GetSeq().GetLiteral().GetLength() / 3);
1095 literal.SetLength(prot_delta_str.size());
1096 literal.SetSeq_data().SetNcbieaa().Set(prot_delta_str);
1099 string prot_ref_str(
"");
1109 v->SetVariant_prop().SetEffect(0);
1111 if(
literal.GetLength() == 0) {
1113 v->SetData().SetInstance().SetDelta().clear();
1114 }
else if(prot_delta_str.size() != prot_ref_str.size()) {
1118 if(prot_ref_str == prot_delta_str) {
1126 for(
size_t i = 0;
i < prot_ref_str.size() &&
i < prot_delta_str.size();
i++) {
1127 if(prot_ref_str[
i] == prot_delta_str[
i]) {
1129 }
else if(prot_ref_str[
i] ==
'X') {
1131 }
else if(prot_delta_str[
i] ==
'X') {
1141 prot_variation_feat->
SetData().SetVariation(*v);
1144 if(have_frameshift) {
1150 uo->
AddField(
"reference_sequence", prot_ref_str);
1154 if(!v->IsSetVariant_prop() || !v->GetVariant_prop().IsSetVersion()) {
1158 if(v->IsSetVariant_prop() && v->GetVariant_prop().GetEffect() == 0) {
1159 v->SetVariant_prop().ResetEffect();
1166 return prot_variation_feat;
1181 bool have_offsets =
false;
1199 observation_vr.
Reset(&vr2);
1205 if(!observation_vr) {
1207 v.
SetData().SetSet().SetVariations().push_back(observation_vr);
1215 di->SetSeq().SetLiteral(*
literal);
1216 observation_vr->SetData().SetInstance().SetDelta().clear();
1217 observation_vr->SetData().SetInstance().SetDelta().push_back(di);
1289 return "2KB_upstream_variant";
1291 return "500B_downstream_variant";
1293 return "splice_donor_variant";
1295 return "splice_acceptor_varian";
1297 return "intron_variant";
1299 return "5_prime_UTR_variant";
1301 return "3_prime_UTR_variant";
1303 return "coding_sequence_variant";
1305 return "nc_transcript_variant";
1307 return "synonymous_codon";
1309 return "non_synonymous_codon";
1311 return "stop_gained";
1315 return "frameshift_variant";
1317 return "other_variant";
1352 bool overlaps_gene_range =
false;
1353 bool overlaps_rna_range =
false;
1354 bool overlaps_cds_range =
false;
1360 if(ci->GetData().IsGene()) {
1361 overlaps_gene_range =
true;
1362 }
if(ci->GetData().IsRna()) {
1363 overlaps_rna_range =
true;
1364 }
else if(ci->GetData().IsCdregion()) {
1365 overlaps_cds_range =
true;
1370 if((ci->GetData().IsRna() || ci->GetData().IsCdregion()) && !have_overlap)
1394 if(ci->GetData().IsCdregion()) {
1420 bool found_any_cds =
false;
1421 for(
CFeat_CI ci(bsh, sel); ci; ++ci) {
1422 if(ci->GetData().IsCdregion()) {
1423 found_any_cds =
true;
1427 if(!found_any_cds) {
1433 && !overlaps_rna_range
1434 && !overlaps_cds_range
1435 && overlaps_gene_range)
1446 cds.
Reset(&ci->GetMappedFeature());
1447 }
else if(ci->GetData().IsRna()) {
1471 if(!overlaps_rna_range
1472 && !overlaps_cds_range
1473 && !overlaps_gene_range
1484 bool found_in_neighborhood =
false;
1486 const CSeq_loc& gene_loc = ci->GetLocation();
1491 found_in_neighborhood =
true;
1496 found_in_neighborhood =
true;
1502 if(!found_in_neighborhood) {
1542 if(offset < 0 && offset >= -2) {
1587 }
else if(vi.
GetDelta().size() <= 1) {
1590 nuc_vf->
SetData().SetVariation().SetData().SetInstance().Assign(vi);
1606 bool found_inst =
false;
User-defined methods of the data storage class.
User-defined methods of the data storage class.
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.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
const CSeq_id & GetSeq_id(TDim row) const
Get seq-id (the first one if segments have different ids).
namespace ncbi::objects::
static TSeqPos Convert(const CSeq_data &in_seq, CSeq_data *out_seq, CSeq_data::E_Choice to_code, TSeqPos uBeginIdx=0, TSeqPos uLength=0, bool bAmbig=false, Uint4 seed=17734276)
static TSeqPos Append(CSeq_data *out_seq, const CSeq_data &in_seq1, TSeqPos uBeginIdx1, TSeqPos uLength1, const CSeq_data &in_seq2, TSeqPos uBeginIdx2, TSeqPos uLength2)
Template class for iteration on objects of class C.
CUser_object & AddField(const string &label, const string &value, EParseField parse=eParse_String)
add a data field to the user object that holds a given value
const TLocation & GetLocation(void) const
void SetLocation(TLocation &value)
bool IsSetLocation(void) const
NOTE: THESE ARE GOING AWAY SOON!!
TExt_locs & SetExt_locs(void)
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
void ChangeToDelins(CVariation_ref &v)
static const int m_variant_properties_schema_version
static void s_AddIntronicOffsets(CVariation_ref &v, const CSpliced_seg &ss, const CSeq_loc &parent_variation_loc)
void AdjustDelinsToInterval(CVariation_ref &delins_variation, const CSeq_loc &int_loc)
CRef< CSeq_literal > x_GetLiteralAtLoc(const CSeq_loc &loc)
void s_CalcPrecursorVariationCodon(const string &codon_from, const string &prot_to, vector< string > &codons_to)
vector< ESOTerm > TSOTerms
static void s_FactorOutLocsInPlace(CVariation_ref &v)
CRef< CSeq_feat > ProtToPrecursor(const CSeq_feat &prot_variation_feat)
Convert protein-variation (single-AA missense/nonsense) to nuc-variation on the parent.
CRef< CSeq_feat > PrecursorToProt(const CSeq_feat &prot_variation_feat)
Convert to nuc-variation on the parent to protein-variation (single-AA missense/nonsense) Only a subs...
static void s_PropagateLocsInPlace(CVariation_ref &v)
Propagate parent variation location to the members of set, unles they have their own location set.
CRef< CSeq_feat > Remap(const CSeq_feat &variation_feat, const CSeq_align &aln)
static void s_UntranslateProt(const string &prot_str, vector< string > &codons)
static void s_Remap(CVariation_ref &vr, CSeq_loc_Mapper &mapper, const CSeq_loc &parent_variation_loc)
static string s_CollapseAmbiguities(const vector< string > &seqs)
static CRef< CSeq_literal > s_CatLiterals(const CSeq_literal &a, const CSeq_literal &b)
void x_SetVariantPropertiesForIntronic(CVariantProperties &p, int offset, const CSeq_loc &loc, CBioseq_Handle &bsh)
ETestStatus CheckExonBoundary(const CSeq_feat &variation_feat, const CSeq_align &aln)
bool SetReferenceSequence(CVariation_ref &vr, const CSeq_loc &location)
void AsSOTerms(const CVariantProperties &p, TSOTerms &terms)
ESOTerm
Supported SO-terms.
@ eSO_5_prime_UTR_variant
@ eSO_coding_sequence_variant
@ eSO_splice_acceptor_variant
@ eSO_nc_transcript_variant
@ eSO_splice_donor_variant
@ eSO_2KB_upstream_variant
@ eSO_3_prime_UTR_variant
@ eSO_non_synonymous_codon
@ eSO_500B_downstream_variant
void SetVariantProperties(CVariantProperties &prop, const CSeq_loc &orig_loc)
Set location-specific variant-properties.
static string AsString(ESOTerm term)
static void s_ResolveIntronicOffsets(CVariation_ref &v, const CSeq_loc &parent_variation_loc)
SFlankLocs CreateFlankLocs(const CSeq_loc &loc, TSeqPos len)
void x_ProtToPrecursor(CVariation_ref &v)
static size_t s_CountMatches(const string &a, const string &b)
void x_SetVariantProperties(CVariantProperties &p, const CVariation_inst &vi, const CSeq_loc &loc)
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
const TResidue codons[4][4]
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.
void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)
#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.
#define MSerial_AsnText
I/O stream manipulators –.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
const string AsFastaString(void) const
ENa_strand GetStrand(void) const
Get the location's 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.
CRef< CSeq_loc > Merge(TOpFlags flags, ISynonymMapper *syn_mapper) const
All functions create and return a new seq-loc object.
void Add(const CSeq_loc &other)
Simple adding of seq-locs.
CRef< CSeq_loc > Subtract(const CSeq_loc &other, TOpFlags flags, ISynonymMapper *syn_mapper, ILengthGetter *len_getter) const
Subtract seq-loc from this, merge/sort resulting ranges depending on flags.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
void SetStrand(ENa_strand strand)
Set the strand for all of the location's ranges.
void SetNull(void)
Override all setters to incorporate cache invalidation.
TSeqPos GetStop(ESeqLocExtremes ext) const
CBeginInfo Begin(C &obj)
Get starting point of object hierarchy.
CMappedFeat GetBestCdsForMrna(const CMappedFeat &mrna_feat, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
TSeqPos GetStop(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the stop of the location.
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.
ENa_strand GetStrand(const CSeq_loc &loc, CScope *scope=0)
Returns eNa_strand_unknown if multiple Bioseqs in loc Returns eNa_strand_other if multiple strands in...
TSeqPos GetStart(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the start of the location.
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
CRef< CSeq_loc > Seq_loc_Subtract(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags, CScope *scope)
Subtract the second seq-loc from the first one.
CRef< CSeq_loc > Seq_loc_Merge(const CSeq_loc &loc, CSeq_loc::TOpFlags flags, CScope *scope)
Merge ranges in the seq-loc.
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.
@ eNoOverlap
CSeq_locs do not overlap or abut.
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.
@ fIs5PrimePartial
= 0x4 Translate first codon even if not start codon (because sequence is 5' partial)
CRef< CSeq_loc > Map(const CSeq_loc &src_loc)
Map seq-loc.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
@ eProductToLocation
Map from the feature's product to location.
@ eLocationToProduct
Map from the feature's location to product.
TInst_Length GetInst_Length(void) const
TMol GetBioseqMolType(void) const
Get some values from core:
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
SAnnotSelector & SetOverlapTotalRange(void)
Check overlapping only of total ranges.
SAnnotSelector & IncludeFeatType(TFeatType type)
Include feature type in the search.
SAnnotSelector & SetIgnoreStrand(bool value=true)
Ignore strand when testing for range overlap.
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer) const
Fill the buffer string with the sequence data for the interval [start, stop).
bool IsProtein(void) const
const_iterator begin(void) const
bool IsNucleotide(void) const
const_iterator end(void) const
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
CTempString literal(const char(&str)[Size])
Templatized initialization from a string literal.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
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 string & Replace(const string &src, const string &search, const string &replace, string &dst, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool SplitInTwo(const CTempString str, const CTempString delim, string &str1, string &str2, TSplitFlags flags=0)
Split a string into two pieces using the specified delimiters.
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
size_type size(void) const
Return the length of the represented array.
void SetType(TType &value)
Assign a value to Type data member.
const TProtpos & GetProtpos(void) const
Get the variant data.
const TGenomic_id & GetGenomic_id(void) const
Get the Genomic_id member data.
TGenomic_start GetGenomic_start(void) const
Get the Genomic_start member data.
TAmin GetAmin(void) const
Get the Amin 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.
const TSpliced & GetSpliced(void) const
Get the variant data.
list< CRef< CSpliced_exon > > TExons
const TExons & GetExons(void) const
Get the Exons member data.
TGenomic_end GetGenomic_end(void) const
Get the Genomic_end member data.
bool IsSpliced(void) const
Check if variant Spliced is selected.
bool IsNucpos(void) const
Check if variant Nucpos is selected.
TNucpos GetNucpos(void) const
Get the variant data.
const TSegs & GetSegs(void) const
Get the Segs member data.
void SetLocation(TLocation &value)
Assign a value to Location data member.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
bool IsVariation(void) const
Check if variant Variation is selected.
const TVariation & GetVariation(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
bool IsInt(void) const
Check if variant Int is selected.
bool IsPnt(void) const
Check if variant Pnt is selected.
@ eNa_strand_both
in forward orientation
const TIupacaa & GetIupacaa(void) const
Get the variant data.
void SetLength(TLength value)
Assign a value to Length data member.
void SetSeq_data(TSeq_data &value)
Assign a value to Seq_data data member.
TLength GetLength(void) const
Get the Length member data.
void SetFuzz(TFuzz &value)
Assign a value to Fuzz data member.
@ e_Iupacaa
IUPAC 1 letter amino acid code.
const TInstance & GetInstance(void) const
Get the variant data.
const TVariant_prop & GetVariant_prop(void) const
Get the Variant_prop member data.
TAction GetAction(void) const
Get the Action member data.
void ResetGene_location(void)
Reset Gene_location data member.
list< CRef< CVariation_ref > > TVariations
TObservation GetObservation(void) const
Get the Observation member data.
const TSet & GetSet(void) const
Get the variant data.
TType GetType(void) const
Get the Type member data.
bool IsSetSeq(void) const
Check if a value has been assigned to Seq data member.
bool IsSetAction(void) const
Check if a value has been assigned to Action data member.
const TLoc & GetLoc(void) const
Get the variant data.
TEffect GetEffect(void) const
Get the Effect member data.
void SetObservation(TObservation value)
Assign a value to Observation data member.
bool IsSetVersion(void) const
Check if a value has been assigned to Version data member.
const TDelta & GetDelta(void) const
Get the Delta member data.
void SetVersion(TVersion value)
Assign a value to Version data member.
void SetMultiplier_fuzz(TMultiplier_fuzz &value)
Assign a value to Multiplier_fuzz data member.
void SetData(TData &value)
Assign a value to Data data member.
const TData & GetData(void) const
Get the Data member data.
const TSeq & GetSeq(void) const
Get the Seq member data.
bool IsInstance(void) const
Check if variant Instance is selected.
const TLiteral & GetLiteral(void) const
Get the variant data.
void SetVariant_prop(TVariant_prop &value)
Assign a value to Variant_prop data member.
void ResetAction(void)
Reset Action data member.
bool IsSet(void) const
Check if variant Set is selected.
void SetType(TType value)
Assign a value to Type data member.
void SetSeq(TSeq &value)
Assign a value to Seq data member.
TMultiplier GetMultiplier(void) const
Get the Multiplier member data.
bool IsSetMultiplier_fuzz(void) const
Check if a value has been assigned to Multiplier_fuzz data member.
list< CRef< CDelta_item > > TDelta
bool IsLiteral(void) const
Check if variant Literal is selected.
void SetGene_location(TGene_location value)
Assign a value to Gene_location data member.
bool IsSetMultiplier(void) const
Multiplier allows representing a tandem, e.g.
void ResetMultiplier(void)
Reset Multiplier data member.
bool IsSetObservation(void) const
Check if a value has been assigned to Observation data member.
bool IsSetEffect(void) const
Check if a value has been assigned to Effect data member.
TDelta & SetDelta(void)
Assign a value to Delta data member.
void SetEffect(TEffect value)
Assign a value to Effect data member.
bool IsThis(void) const
Check if variant This is selected.
TGene_location GetGene_location(void) const
Get the Gene_location member data.
bool IsSetGene_location(void) const
Check if a value has been assigned to Gene_location data member.
bool IsLoc(void) const
Check if variant Loc is selected.
@ eType_snv
delta=[morph of length 1] NOTE: this is snV not snP; the latter requires frequency-based validation t...
@ eType_mnp
delta=[morph of length >1]
@ eType_delins
delta=[del, ins]
@ eType_prot_nonsense
delta=[del]; variation-location is the tail of the protein being truncated
@ eType_prot_other
delta=any
@ eType_prot_silent
delta=[morph of length 1, same AA as at variation-location]
@ eType_prot_missense
delta=[morph of length 1]
@ eEffect_stop_gain
reference codon is not stop codon, but the snp variant allele changes the codon to a terminating codo...
@ eEffect_missense
one allele in the set changes protein peptide (0x4)
@ eEffect_nonsense
one allele in the set changes to STOP codon (TER). (0x2)
@ eEffect_stop_loss
reverse of STOP-GAIN: reference codon is a stop codon, but a snp variant allele changes the codon to ...
@ eEffect_synonymous
one allele in the set does not change the encoded amino acid (0x1)
@ eEffect_frameshift
one allele in the set changes all downstream amino acids (0x8)
@ eGene_location_in_start_codon
the variant is observed in a start codon (0x100)
@ eGene_location_acceptor
In acceptor splice-site (0x20)
@ eGene_location_near_gene_5
Within 2kb of the 5' end of a gene feature.
@ eGene_location_near_gene_3
Within 0.5kb of the 3' end of a gene feature.
@ eGene_location_utr_3
In 3' UTR (0x80)
@ eGene_location_in_gene
Sequence intervals covered by a gene ID but not having an aligned transcript (0x01)
@ eGene_location_utr_5
In 5' UTR (0x40)
@ eGene_location_intron
In Intron (0x08)
@ eGene_location_intergenic
variant located between genes (0x400)
@ eGene_location_donor
In donor splice-site (0x10)
@ eGene_location_in_stop_codon
the variant is observed in a stop codon (0x200)
@ eGene_location_conserved_noncoding
variant is located in a conserved non-coding region (0x800)
@ eAction_offset
go downstream by distance specified by multiplier (upstream if < 0), in genomic context.
@ eAction_morph
replace len(seq) positions starting with location.start with seq
@ eAction_del_at
excise sequence at location if multiplier is specified, delete len(location)*multiplier positions dow...
@ eAction_ins_before
insert seq before the location.start
@ eData_set_type_package
set represents a package of observations at a given location, generally containing asserted + referen...
@ eObservation_variant
inst represent the observed variant at a given position
@ eObservation_asserted
inst represents the asserted base at a position
@ eObservation_reference
inst represents the reference base at the position
double value_type
The numeric datatype used by the parser.
bool IsFirstSubsetOfSecond(const CSeq_loc &aa, const CSeq_loc &bb)
Defines command line argument related classes.
Int4 delta(size_t dimension_, const Int4 *score_)
static const char * suffix[]
static const char * prefix[]
Calculate upstream (first) and downstream(second) flanks for loc.
CRef< CSeq_loc > downstream
CRef< CSeq_loc > upstream