(sequence.size() > 1) {
22sequence = sequence.front() +
".."+ sequence.back();
26 literal->SetSeq_data().SetNcbieaa().Set(sequence);
29 literal->SetSeq_data().SetIupacna().Set(sequence);
32 literal->SetLength(sequence.size());
44 "Delta-item not set");
49 if((*it)->IsSetAction() &&
62normalized_feat->Assign(identity_feat);
64 if(!normalized_feat->IsSetData() ||
65!normalized_feat->GetData().IsVariation() ||
66!normalized_feat->GetData().GetVariation().IsSetData() ||
67!normalized_feat->GetData().GetVariation().GetData().IsInstance() ||
68!normalized_feat->GetData().GetVariation().GetData().GetInstance().IsSetType() ||
70 returnnormalized_feat;
73 auto& var_inst = normalized_feat->SetData().SetVariation().SetData().SetInstance();
75 returnnormalized_feat;
84 if(!identity_inst.
SetType()) {
91 stringmessage =
"CVariation_inst: Invalid type (" 104 ERR_POST(
Warning<<
"Unable to determine sequence at intronic location");
109 auto& delta_item = *identity_inst.
SetDelta().back();
111 if(!delta_item.IsSetSeq()) {
117 if(delta_item.IsSetSeq() &&
118(!delta_item.GetSeq().IsLiteral() ||
119!delta_item.GetSeq().GetLiteral().IsSetSeq_data())) {
121delta_item.SetSeq().SetLiteral(*new_literal);
146 const autoliteral_length =
literal.GetLength();
148 if(literal_length != interval_length) {
150+
") not consistent with interval length ("+
NStr::IntToString(interval_length) +
")";
152eSeqliteralIntervalError,
167 stringmessage =
"CVariation_inst: ";
169message +=
"Type not set. ";
171message +=
"Invalid type (" 175message +=
"Expected eType_identity";
187 "Delta-item not set");
191 auto& delta_item = *identity_inst.
GetDelta().back();
192 if(!delta_item.IsSetSeq()) {
200 if(!delta_item.GetSeq().IsLiteral()) {
204 "Seq-literal expected");
208 const auto&
literal= delta_item.GetSeq().GetLiteral();
222 stringmessage =
"CVariation_inst: ";
223message +=
"Type not set. ";
240 "Delta-item not set");
244 auto& delta_item = *ms_inst.
GetDelta().back();
245 if(!delta_item.IsSetSeq()) {
253 if(delta_item.GetSeq().IsLiteral()) {
270 "Variation feature data not specified");
288 if(!data_set.IsSetType() ||
290!data_set.IsSetVariations()) {
296 if(variation_list.size() < 2) {
297 stringerr_msg =
"2 Variation-refs expected. " 306 auto&& assertion = variation_list.front();
307 auto&& reference = variation_list.back();
309 if(!assertion->IsSetData() ||
310!reference->IsSetData()) {
314 "Variation-ref data field not set");
318 if(!reference->GetData().IsInstance()) {
322 "Variation-ref does not reference Variation-inst object");
325 const auto& reference_inst = reference->GetData().GetInstance();
326 if(!reference_inst.IsSetType()) {
330 "Variation-inst type not specified");
336 if(assertion->GetData().IsUnknown()) {
339 if(!assertion->GetData().IsInstance()) {
343 "Variation-ref does not reference Variation-inst object");
347 const auto& assertion_inst = assertion->GetData().GetInstance();
349 if(!assertion_inst.IsSetType()) {
353 "Variation-inst type not specified");
357 const auto type= assertion_inst.GetType();
User-defined methods of the data storage class.
CRef< CSeq_feat > GetNormalizedIdentity(const CSeq_feat &seaq_feat) const
void NormalizeIdentityInstance(CVariation_inst &identity_inst, const CSeq_loc &location) const
bool HasIntronOffset(const CVariation_inst &var_inst) const
CRef< CSeq_literal > GetLiteralAtLoc(const CSeq_loc &loc, CScope &scope) const
namespace ncbi::objects::
void ValidateIdentityInst(const CVariation_inst &identity_inst, const CSeq_loc &location, bool IsCDS=false)
void ValidateMicrosatelliteInst(const CVariation_inst &identity_inst, const CSeq_loc &location, bool IsCDS=false)
static const char location[]
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
void Warning(CExceptionArgs_Base &args)
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
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
const_iterator end(void) const
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
#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.
CTempString literal(const char(&str)[Size])
Templatized initialization from a string literal.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to 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.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
bool IsVariation(void) const
Check if variant Variation is selected.
const TVariation & GetVariation(void) const
Get the variant data.
TType GetType(void) const
Get the Type member data.
const TInstance & GetInstance(void) const
Get the variant data.
const TSet & GetSet(void) const
Get the variant data.
bool IsSetDelta(void) const
Sequence that replaces the location, in biological order.
void SetObservation(TObservation value)
Assign a value to Observation data member.
const TDelta & GetDelta(void) const
Get the Delta member data.
const TData & GetData(void) const
Get the Data member data.
bool IsInstance(void) const
Check if variant Instance is selected.
bool IsSet(void) const
Check if variant Set is selected.
void SetType(TType value)
Assign a value to Type data member.
list< CRef< CDelta_item > > TDelta
bool IsSetType(void) const
Check if a value has been assigned to Type data member.
TDelta & SetDelta(void)
Assign a value to Delta data member.
const TVariations & GetVariations(void) const
Get the Variations member data.
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
@ eType_inv
delta=[del, ins.seq= RevComp(variation-location)]
@ eType_microsatellite
delta=[del, ins.seq= repeat-unit with fuzzy multiplier] variation-location is the microsat expansion ...
@ eType_delins
delta=[del, ins]
@ eType_identity
delta=[]
@ eAction_offset
go downstream by distance specified by multiplier (upstream if < 0), in genomic context.
@ eData_set_type_package
set represents a package of observations at a given location, generally containing asserted + referen...
@ eObservation_asserted
inst represents the asserted base at a position
Defines NCBI C++ diagnostic APIs, classes, and macros.
void s_ValidateSeqLiteral(const CSeq_literal &literal, const CSeq_loc &location, CScope *scope, bool IsCDS=false)
void g_ValidateVariationSeqfeat(const CSeq_feat &feat, CScope *scope, bool IsCDS)
CRef< CSeq_feat > g_NormalizeVariationSeqfeat(const CSeq_feat &feat, CScope *scope)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4