:
format(GuessFormat(s, fmt))
52 for(
SIZE_TYPEpos = 0; pos < s.size(); ++pos) {
53 if(
isalpha((
unsigned char) s[pos])) {
59 if(
format== eLengthFirst) {
62}
else if(
isdigit((
unsigned char) s[pos])) {
63 SIZE_TYPEpos2 = s.find_first_not_of(
"0123456789", pos + 1);
85 static const char*
constkAlnum
86=
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
88 SIZE_TYPEfirst_alnum = s.find_first_of(kAlnum);
89 SIZE_TYPElast_alnum = s.find_last_of(kAlnum);
92 if(first_alnum == last_alnum) {
93 if(first_alnum !=
NPOS&&
isdigit((
unsigned char) s[first_alnum])) {
95 "SCigarAlignment: no operations found", first_alnum);
102 _ASSERT(first_alnum < last_alnum);
103 if(
isdigit((
unsigned char) s[first_alnum])) {
106 "SCigarAlignment: expected operation-first syntax",
108}
else if(
isdigit((
unsigned char) s[last_alnum])) {
111 "SCigarAlignment: must start or end with an operation",
116}
else if(
isdigit((
unsigned char) s[last_alnum])) {
119 "SCigarAlignment: expected length-first syntax",
124}
else if(s.find_first_of(
"0123456789") ==
NPOS) {
130 "SCigarAlignment: ambiguous syntax", first_alnum);
150loc->
SetInt().SetId().Assign(
id);
152loc->
SetInt().SetFrom(pos);
157loc->
SetInt().SetTo(pos);
167 intrefsign = 1, refscale = 1, tgtsign = 1, tgtscale = 1;
177 boolshifty =
false;
219refid->Assign(ref.
GetId());
226it->len * refscale * refsign);
228it->len * tgtscale * tgtsign);
235refpos += it->len * refscale * refsign;
236tgtpos += it->len * tgtscale * tgtsign;
240tgtpos += it->len * tgtscale * tgtsign;
243refpos += it->len * refscale * refsign;
256seg->SetLoc().push_back(refseg);
257seg->SetLoc().push_back(tgtseg);
258align->
SetSegs().SetStd().push_back(seg);
261 if(refscale == tgtscale) {
bool IsReverse(ENa_strand s)
Code to handle Concise Idiosyncratic Gapped Alignment Report notation.
CRef< CSeq_align > CreateDensegFromStdseg(SSeqIdChooser *SeqIdChooser=0) const
---------------------------------------------------------------------------- PRE : the Seq-align has ...
TSeqPos GetLength(void) const
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 NCBI_THROW2(exception_class, err_code, message, extra)
Throw exception with extra parameter.
CRef< CSeq_loc > x_NextChunk(const CSeq_id &id, TSeqPos pos, TSignedSeqPos len) const
static EFormat GuessFormat(const string &s, EFormat fmt)
SCigarAlignment::EOperation op
EFormat
Length-first (ENSEMBL) and operation-first (original) variants both exist; allowing for the possibili...
CRef< CSeq_align > operator()(const CSeq_interval &ref, const CSeq_interval &tgt) const
vector< SSegment > TSegments
@ eLengthFirstIfAmbiguous
@ eForwardShift
only documented by GFF3 (same for R)
@ eIntron
not documented by GFF3
@ eNotSet
for internal use only
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
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.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
void SetSegs(TSegs &value)
Assign a value to Segs data member.
void SetDim(TDim value)
Assign a value to Dim data member.
void SetType(TType value)
Assign a value to Type data member.
@ eType_partial
mapping pieces together
const TId & GetId(void) const
Get the Id member data.
TFrom GetFrom(void) const
Get the From member data.
bool IsSetStrand(void) const
Check if a value has been assigned to Strand data member.
TStrand GetStrand(void) const
Get the Strand member data.
TTo GetTo(void) const
Get the To member data.
The blob sat and sat key Both must be positive integers</td > n< td > Non empty string The interpretation of the blob id depends on a processor Cassandra n processor expects the following format
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