A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/hgvs__parser2_8hpp_source.html below:

NCBI C++ ToolKit: include/misc/hgvs/hgvs_parser2.hpp Source File

34 #ifndef HGVSPARSER_HPP_ 35 #define HGVSPARSER_HPP_ 40 #include <boost/version.hpp> 41 #if BOOST_VERSION >= 103800 42 #include <boost/spirit/include/classic.hpp> 43 #include <boost/spirit/include/classic_core.hpp> 44 #include <boost/spirit/include/classic_ast.hpp> 45 #include <boost/spirit/include/classic_parse_tree.hpp> 46 #include <boost/spirit/include/classic_tree_to_xml.hpp> 48 using namespace

BOOST_SPIRIT_CLASSIC_NS;

51 #include <boost/spirit.hpp> 52 #include <boost/spirit/core.hpp> 53 #include <boost/spirit/tree/ast.hpp> 54 #include <boost/spirit/tree/parse_tree.hpp> 55 #include <boost/spirit/tree/tree_to_xml.hpp> 56 using namespace

boost::spirit;

83 #define HGVS_THROW(err_code, message) NCBI_THROW(CHgvsParser::CHgvsParserException, err_code, message) 125  return

m_seq_id_resolvers;

144  switch

(GetErrCode()) {

145  case

eLogic:

return "eLogic"

;

146  case

eGrammatic:

return "eGrammatic"

;

147  case

eSemantic:

return "eSemantic"

;

148  case

eContext:

return "eContext"

;

149  case

eAlignment:

return "eAlignment"

;

150  case

ePrecondition:

return "ePrecondition"

;

151  case eOther

:

return "eOther"

;

177

fuzz->Assign(*other.

fuzz

);

239

pnt->Assign(*other.

pnt

);

259

, m_seq_id_resolvers(id_resolvers)

292

m_placement->SetLoc().SetNull();

305  return

!m_placement.IsNull();

419  static const char

* s_rule_names[SGrammar::eNodeIds_SIZE];

420  static const string

s_GetRuleName(parser_id

id

);

422  template

<

typename

ScannerT>

425

rule<ScannerT, parser_context<>, parser_tag<eID_root> >

root

;

426

rule<ScannerT, parser_context<>, parser_tag<eID_list_delimiter> >

list_delimiter

;

427

rule<ScannerT, parser_context<>, parser_tag<eID_list1a> >

list1a

;

428

rule<ScannerT, parser_context<>, parser_tag<eID_list2a> >

list2a

;

429

rule<ScannerT, parser_context<>, parser_tag<eID_list3a> >

list3a

;

430

rule<ScannerT, parser_context<>, parser_tag<eID_list1b> >

list1b

;

431

rule<ScannerT, parser_context<>, parser_tag<eID_list2b> >

list2b

;

432

rule<ScannerT, parser_context<>, parser_tag<eID_list3b> >

list3b

;

433

rule<ScannerT, parser_context<>, parser_tag<eID_expr1> >

expr1

;

434

rule<ScannerT, parser_context<>, parser_tag<eID_expr2> >

expr2

;

435

rule<ScannerT, parser_context<>, parser_tag<eID_expr3> >

expr3

;

436

rule<ScannerT, parser_context<>, parser_tag<eID_translocation> >

translocation

;

437

rule<ScannerT, parser_context<>, parser_tag<eID_header> >

header

;

438

rule<ScannerT, parser_context<>, parser_tag<eID_seq_id> >

seq_id

;

439

rule<ScannerT, parser_context<>, parser_tag<eID_mol> >

mol

;

440

rule<ScannerT, parser_context<>, parser_tag<eID_mut_list > >

mut_list

;

441

rule<ScannerT, parser_context<>, parser_tag<eID_mut_ref> >

mut_ref

;

442

rule<ScannerT, parser_context<>, parser_tag<eID_mut_inst> >

mut_inst

;

443

rule<ScannerT, parser_context<>, parser_tag<eID_int_fuzz> >

int_fuzz

;

444

rule<ScannerT, parser_context<>, parser_tag<eID_abs_pos> >

abs_pos

;

445

rule<ScannerT, parser_context<>, parser_tag<eID_general_pos> >

general_pos

;

446

rule<ScannerT, parser_context<>, parser_tag<eID_fuzzy_pos> >

fuzzy_pos

;

447

rule<ScannerT, parser_context<>, parser_tag<eID_pos_spec> >

pos_spec

;

448

rule<ScannerT, parser_context<>, parser_tag<eID_location> >

location

;

449

rule<ScannerT, parser_context<>, parser_tag<eID_nuc_range> >

nuc_range

;

450

rule<ScannerT, parser_context<>, parser_tag<eID_prot_range> >

prot_range

;

451

rule<ScannerT, parser_context<>, parser_tag<eID_raw_seq> >

raw_seq

;

452

rule<ScannerT, parser_context<>, parser_tag<eID_raw_seq_or_len> >

raw_seq_or_len

;

453

rule<ScannerT, parser_context<>, parser_tag<eID_aminoacid1> >

aminoacid1

;

454

rule<ScannerT, parser_context<>, parser_tag<eID_aminoacid2> >

aminoacid2

;

455

rule<ScannerT, parser_context<>, parser_tag<eID_aminoacid3> >

aminoacid3

;

456

rule<ScannerT, parser_context<>, parser_tag<eID_nuc_subst> >

nuc_subst

;

457

rule<ScannerT, parser_context<>, parser_tag<eID_deletion> >

deletion

;

458

rule<ScannerT, parser_context<>, parser_tag<eID_insertion> >

insertion

;

459

rule<ScannerT, parser_context<>, parser_tag<eID_delins> >

delins

;

460

rule<ScannerT, parser_context<>, parser_tag<eID_duplication> >

duplication

;

461

rule<ScannerT, parser_context<>, parser_tag<eID_nuc_inv> >

nuc_inv

;

462

rule<ScannerT, parser_context<>, parser_tag<eID_ssr> >

ssr

;

463

rule<ScannerT, parser_context<>, parser_tag<eID_conversion> >

conversion

;

464

rule<ScannerT, parser_context<>, parser_tag<eID_seq_loc> >

seq_loc

;

465

rule<ScannerT, parser_context<>, parser_tag<eID_seq_ref> >

seq_ref

;

466

rule<ScannerT, parser_context<>, parser_tag<eID_prot_pos> >

prot_pos

;

467

rule<ScannerT, parser_context<>, parser_tag<eID_prot_missense> >

prot_missense

;

468

rule<ScannerT, parser_context<>, parser_tag<eID_prot_ext> >

prot_ext

;

469

rule<ScannerT, parser_context<>, parser_tag<eID_prot_fs> >

prot_fs

;

470

rule<ScannerT, parser_context<>, parser_tag<eID_no_change> >

no_change

;

484

aminoacid1 = str_p(

"Ala"

)

513

aminoacid2 = str_p(

"ALA"

)

542

aminoacid3 = chset<>(

"ABCDEFGHIKLMNPQRSTVWXYZU*O"

);

545

raw_seq = leaf_node_d[

549

| +chset<>(

"TGKCYSBAWRDMHVN"

)

550

| +chset<>(

"tugkcysbawrdmhvn"

)];

567

int_fuzz = ch_p(

'('

) >> (ch_p(

'?'

)|int_p)

569

>> (ch_p(

'?'

)|int_p)

571

| ch_p(

'('

) >> int_p >> ch_p(

')'

)

572

| (ch_p(

'?'

)|int_p);

574

abs_pos = !ch_p(

'*'

) >> int_fuzz;

578

general_pos = (str_p(

"IVS"

) >> int_p | abs_pos) >> sign_p >> int_fuzz

584

fuzzy_pos = discard_node_d[ch_p(

'('

)]

586

>> discard_node_d[ch_p(

'_'

)]

588

>> discard_node_d[ch_p(

')'

)];

590

pos_spec = general_pos

592

| !ch_p(

'o'

) >> header >> pos_spec;

595

prot_pos = raw_seq >> pos_spec;

597

prot_range = prot_pos >> discard_node_d[ch_p(

'_'

)] >> prot_pos;

599

nuc_range = pos_spec >> discard_node_d[ch_p(

'_'

)] >> pos_spec;

601  location

= nuc_range | pos_spec | prot_range | prot_pos;

607

seq_id = leaf_node_d[alnum_p >> *(alnum_p | chset<>(

"._-|"

))];

609

mol = str_p(

"mt"

) | chset<>(

"gcnrpm"

);

613

>> !(discard_node_d[ch_p(

'{'

)]

615

>> discard_node_d[ch_p(

'}'

)])

616

>> discard_node_d[ch_p(

':'

)]

618

>> discard_node_d[ch_p(

'.'

)];

627

seq_loc = !ch_p(

'o'

) >> header >>

location

;

629

raw_seq_or_len = raw_seq | int_fuzz;

632

| (nuc_range|prot_range)

639

no_change = !raw_seq >> ch_p(

'='

);

641

nuc_subst = (!raw_seq) >> ch_p(

'>'

) >> raw_seq;

646

deletion = str_p(

"del"

) >> !raw_seq_or_len;

648

duplication = str_p(

"dup"

) >> !seq_ref;

650

insertion = str_p(

"ins"

) >> seq_ref;

652

conversion = str_p(

"con"

) >> seq_loc;

654

delins = deletion >> insertion;

656

nuc_inv = str_p(

"inv"

) >> !seq_ref;

659

(int_fuzz - (ch_p(

'?'

)|int_p))

660

| list_p(discard_node_d[ch_p(

'['

)]

662

>> discard_node_d[ch_p(

']'

)],

663

discard_node_d[ch_p(

'+'

)]));

681

prot_fs = str_p(

"fs"

) >> !((str_p(

"Ter"

) | chset<>(

"*X"

)) >> !int_p);

685

prot_ext = ( str_p(

"extMet"

)

688

| str_p(

"extTer"

)) >> int_p;

690

prot_missense = raw_seq;

693

translocation = leaf_node_d[ch_p(

't'

) >>

696

>> *(print_p - ch_p(

'('

) - ch_p(

')'

))

701

mut_inst = ch_p(

'?'

)

714

| leaf_node_d[ch_p(

':'

) >> +(alnum_p)]

722

root = list_p(expr1, chset<>(

"+;"

));

728

list_delimiter = leaf_node_d[

742

expr1 = ch_p(

'('

) >> expr1 >> ch_p(

')'

)

746

list1a = list_p(discard_node_d[ch_p(

'['

)] >> list1b >> discard_node_d[ch_p(

']'

)], chset<>(

";+"

));

747

list1b = list_p(expr1, list_delimiter);

750

expr2 = ch_p(

'('

) >> expr2 >> ch_p(

')'

)

758

list2a = list_p(discard_node_d[ch_p(

'['

)] >> list2b >> discard_node_d[ch_p(

']'

)], chset<>(

";+"

));

759

list2b = list_p(expr2, list_delimiter);

762

expr3 = ch_p(

'('

) >> expr3 >> ch_p(

')'

)

772

list3a = list_p(discard_node_d[ch_p(

'['

)] >> list3b >> discard_node_d[ch_p(

']'

)], chset<>(

";+"

));

773

list3b = list_p(expr3, list_delimiter);

778

rule<ScannerT, parser_context<>, parser_tag<eID_root> >

const

&

start

()

const 786  return id

== SGrammar::eID_list1a

787

||

id

== SGrammar::eID_list2a

788

||

id

== SGrammar::eID_list3a

789

||

id

== SGrammar::eID_root;

794  return id

== SGrammar::eID_list1b

795

||

id

== SGrammar::eID_list2b

796

||

id

== SGrammar::eID_list3b;

801  return

s_is_list_a(

id

) || s_is_list_b(

id

);

808  typedef

TParseTreeMatch::const_tree_iterator

TIterator

;

857  static bool

s_hgvsaa2ncbieaa(

const string

& hgvsaa,

string

&

out

);

858  static bool

s_hgvs_iupacaa2ncbieaa(

const string

& hgvsaa,

string

&

out

);

859  static bool

s_hgvsaa2ncbieaa(

const string

& hgvsaa,

bool

uplow,

string

&

out

);

878  static string

s_IntWithFuzzToStr(

long

pos,

const TSeqPos

* ref_pos,

bool

with_sign,

const CInt_fuzz

* fuzz);

881  static string

s_OffsetPointToString(

886  const long

* offset_pos,

907  string

x_AsHgvsInstExpression(

915  string

x_AsHgvsExpression(

921  string

x_LocToSeqStr(

const

CSeq_loc& loc);

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.

namespace ncbi::objects::

Resolve CCDS-id to an NM.

Resolve LRG seq-ids, e.g. LRG_123, LRG_123t1, LRG_123p1.

A helper class to convert a string to a seq-id.

list< CRef< CSeq_id_Resolver > > TResolvers

static CSeq_id_Handle s_Get(TResolvers &resolvers, const string &s)

Iterate through resolvers and resolve using the first one that can do it Return empty handle otherwis...

Set of related Variations.

CContext(CRef< CScope > scope, CSeq_id_Resolver::TResolvers &id_resolvers, const string &hgvs)

CSeq_id_Handle ResolevSeqId(const string &s) const

bool IsSetPlacement() const

CVariantPlacement & SetPlacement()

const CVariantPlacement & GetPlacement() const

CSeq_id_Resolver::TResolvers m_seq_id_resolvers

CRef< CVariantPlacement > m_placement

CScope & GetScope() const

const string & GetHgvs() const

const CBioseq_Handle & GetBioseqHandle() const

NCBI_EXCEPTION_DEFAULT(CHgvsParserException, CException)

virtual const char * GetErrCodeString(void) const override

Get error code interpreted as text.

@ eLogic

Problem with the code.

@ eSemantic

Expression is invalid in some way.

@ eContext

Some problem with context.

@ eAlignment

Some problem with getting alignment.

@ ePrecondition

Precondition is not met.

@ eGrammatic

Expression is not a valid language.

TParseTreeMatch::const_tree_iterator TIterator

CSeq_id_Resolver::TResolvers m_seq_id_resolvers

CVariation_inst::TDelta::value_type TDelta

static CSafeStatic< SGrammar > s_grammar

CVariation::TData::TSet TVariationSet

CSeq_id_Resolver::TResolvers & SetSeq_id_Resolvers()

In order of decreasing priority.

CHgvsParser(CScope &scope, int tax_id=9606)

tree_match< char const * > TParseTreeMatch

static string s_hgvsUCaa2hgvsUL(const string &hgvsaa)

Convert non-HGVS compliant all-uppercase AAs to UpLow, e.g. ILECYS ->IleCys.

Include a standard set of the NCBI C++ Toolkit most basic headers.

std::ofstream out("events_result.xml")

main entry point for tests

static const char location[]

unsigned int TSeqPos

Type for sequence locations and lengths.

int TSignedSeqPos

Type for signed sequence position.

EErrCode

Error types that an application can generate.

virtual const char * GetErrCodeString(void) const

Get error code interpreted as text.

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,...

#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.

@ eLim_other

something else

virtual void Reset(void)

Reset the whole object.

double value_type

The numeric datatype used by the parser.

const GenericPointer< typename T::ValueType > T2 value

Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.

void Assign(const SFuzzyInt &other)

rule< ScannerT, parser_context<>, parser_tag< eID_list2a > > list2a

rule< ScannerT, parser_context<>, parser_tag< eID_aminoacid3 > > aminoacid3

rule< ScannerT, parser_context<>, parser_tag< eID_fuzzy_pos > > fuzzy_pos

rule< ScannerT, parser_context<>, parser_tag< eID_mol > > mol

rule< ScannerT, parser_context<>, parser_tag< eID_list_delimiter > > list_delimiter

rule< ScannerT, parser_context<>, parser_tag< eID_list3a > > list3a

rule< ScannerT, parser_context<>, parser_tag< eID_location > > location

rule< ScannerT, parser_context<>, parser_tag< eID_nuc_subst > > nuc_subst

rule< ScannerT, parser_context<>, parser_tag< eID_mut_inst > > mut_inst

rule< ScannerT, parser_context<>, parser_tag< eID_list1b > > list1b

rule< ScannerT, parser_context<>, parser_tag< eID_int_fuzz > > int_fuzz

rule< ScannerT, parser_context<>, parser_tag< eID_nuc_inv > > nuc_inv

rule< ScannerT, parser_context<>, parser_tag< eID_insertion > > insertion

rule< ScannerT, parser_context<>, parser_tag< eID_conversion > > conversion

rule< ScannerT, parser_context<>, parser_tag< eID_duplication > > duplication

rule< ScannerT, parser_context<>, parser_tag< eID_aminoacid2 > > aminoacid2

rule< ScannerT, parser_context<>, parser_tag< eID_prot_ext > > prot_ext

rule< ScannerT, parser_context<>, parser_tag< eID_list1a > > list1a

rule< ScannerT, parser_context<>, parser_tag< eID_nuc_range > > nuc_range

rule< ScannerT, parser_context<>, parser_tag< eID_delins > > delins

rule< ScannerT, parser_context<>, parser_tag< eID_prot_pos > > prot_pos

rule< ScannerT, parser_context<>, parser_tag< eID_deletion > > deletion

rule< ScannerT, parser_context<>, parser_tag< eID_abs_pos > > abs_pos

rule< ScannerT, parser_context<>, parser_tag< eID_mut_ref > > mut_ref

rule< ScannerT, parser_context<>, parser_tag< eID_translocation > > translocation

rule< ScannerT, parser_context<>, parser_tag< eID_ssr > > ssr

rule< ScannerT, parser_context<>, parser_tag< eID_prot_fs > > prot_fs

rule< ScannerT, parser_context<>, parser_tag< eID_expr1 > > expr1

rule< ScannerT, parser_context<>, parser_tag< eID_general_pos > > general_pos

rule< ScannerT, parser_context<>, parser_tag< eID_raw_seq_or_len > > raw_seq_or_len

rule< ScannerT, parser_context<>, parser_tag< eID_seq_loc > > seq_loc

rule< ScannerT, parser_context<>, parser_tag< eID_mut_list > > mut_list

rule< ScannerT, parser_context<>, parser_tag< eID_expr3 > > expr3

rule< ScannerT, parser_context<>, parser_tag< eID_list3b > > list3b

rule< ScannerT, parser_context<>, parser_tag< eID_prot_range > > prot_range

rule< ScannerT, parser_context<>, parser_tag< eID_no_change > > no_change

rule< ScannerT, parser_context<>, parser_tag< eID_expr2 > > expr2

rule< ScannerT, parser_context<>, parser_tag< eID_header > > header

rule< ScannerT, parser_context<>, parser_tag< eID_seq_id > > seq_id

rule< ScannerT, parser_context<>, parser_tag< eID_prot_missense > > prot_missense

rule< ScannerT, parser_context<>, parser_tag< eID_pos_spec > > pos_spec

rule< ScannerT, parser_context<>, parser_tag< eID_aminoacid1 > > aminoacid1

rule< ScannerT, parser_context<>, parser_tag< eID_raw_seq > > raw_seq

rule< ScannerT, parser_context<>, parser_tag< eID_root > > const & start() const

rule< ScannerT, parser_context<>, parser_tag< eID_seq_ref > > seq_ref

rule< ScannerT, parser_context<>, parser_tag< eID_root > > root

definition(SGrammar const &)

rule< ScannerT, parser_context<>, parser_tag< eID_list2b > > list2b

static bool s_is_list(parser_id id)

static bool s_is_list_a(parser_id id)

static bool s_is_list_b(parser_id id)

void Assign(const SOffsetPoint &other)

static CS_CONTEXT * context


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