m_IsSecondary(is_secondary),
280 const string& sra_id_part)
302 LOG_POST_X(2,
Info<<
"CCSraDb: eDataError opening VDB "<<csra_path<<
", trying VTable...");
308 LOG_POST_X(2,
Info<<
"CCSraDb: full non-cSRA VDB "<<csra_path);
324 autoname_row_range = ref->m_NAME.GetRowIdRange(ref->m_Cursor);
325 TVDBRowIdend_row = name_row_range.first + name_row_range.second;
329ref->m_Cursor.SetParam(
"QUERY_SEQ_NAME", name);
331 info.m_SeqId = *ref->SEQ_ID(
row);
334CBioseq::TId::iterator best_id =
info.m_Seq_ids.begin();
336 swap(
info.GetMainSeq_id(), *best_id);
337 info.m_Seq_id_Handle =
341 info.m_RowFirst = range.first;
342 info.m_RowLast = range.second;
344 info.m_Circular = *ref->CIRCULAR(
row);
387 const string& dir_path,
388 const string& csra_file)
407 const string& csra_path,
419 const string& csra_path,
420 const string& sra_id_part,
436 const char* name =
names[
i];
438spot_groups.push_back(name);
448 info.m_Seq_ids.clear();
450 if( ref_id_mapper ) {
457 info.m_Seq_ids.push_back(ret);
461 if( !ret->
Equals(*old) ) {
463 info.m_Seq_ids.push_back(ret);
472 if(
info.m_SeqId.find(
'|') !=
NPOS) {
478 info.m_Seq_ids.clear();
481 if(
info.m_Seq_ids.empty() ) {
496 info.m_Seq_ids.push_back(ret);
498 if( ref_id_mapper ) {
524 "SECONDARY_ALIGNMENT":
525 "PRIMARY_ALIGNMENT"));
586 m_Aln[curs->m_IsSecondary].Put(curs);
600 TSeqPoslast_len = *ref->SEQ_LEN(
info.m_RowLast);
609m_Iter(csra_db->GetRefInfoList().begin())
615 const string& seq_id)
619 if( iter != csra_db->m_RefMapBySeq_id.end() ) {
624 ERR_POST_X(1,
"RefSeq \""<<seq_id<<
"\" not found.");
634csra_db->m_RefMapByName.find(name);
635 if( iter != csra_db->m_RefMapByName.end() ) {
646csra_db->m_RefMapBySeq_id.find(seq_id);
647 if( iter != csra_db->m_RefMapBySeq_id.end() ) {
658 "CCSraRefSeqIterator is invalid");
676 return info.m_SeqLength;
692 "pos is beyond reference sequence");
699ret += ref->PRIMARY_ALIGNMENT_IDS(
row).size();
702ret += ref->SECONDARY_ALIGNMENT_IDS(
row).size();
717loc_int.
SetId(
info.GetMainSeq_id().GetNCObject());
726values.resize(
size);
729 for(
size_t i= 0;
i<
size; ++
i) {
736 if(
row==
info.m_RowLast ) {
771annot->
SetDesc().Set().push_back(desc);
784annot->
SetDesc().Set().push_back(desc);
796 const string& csra_path =
m_Db->GetCSraPath();
802 " - reference sequence from ShortRead RUN "+
805seq->
SetDescr().Set().push_back(desc);
817seq->SetLiteral(**it);
818inst.
SetExt().SetDelta().Set().push_back(seq);
839 if(
row==
info.m_RowLast ) {
840segment_len = *ref->SEQ_LEN(
row);
842 literal->SetLength(segment_len);
844 literal->SetSeq_data().SetIupacna().Set() = *ref->READ(
row);
856 if(
info.m_AlnOverStarts.empty() ) {
858 if( ref->m_OVERLAP_REF_POS ) {
860 if(
info.m_AlnOverStarts.empty() ) {
867 for(
size_t i= 0;
i< 2 &&
i< vv.
size(); ++
i) {
869 if( p && p < pos ) {
877 size_tmax_aln_end = 1;
878 for(
intsecondary = 0; secondary < 2; ++secondary ) {
881 if( !ref->m_SECONDARY_ALIGNMENT_IDS ) {
884aln_ids = ref->SECONDARY_ALIGNMENT_IDS(
info.m_RowFirst);
887aln_ids = ref->PRIMARY_ALIGNMENT_IDS(
info.m_RowFirst);
889 if( aln_ids.
empty() ) {
893 for(
autoaln_id : aln_ids ) {
899 size_tend = pos + *aln->REF_LEN(aln_id);
900max_aln_end =
max(max_aln_end, end);
904pp[
min(pp.size()-1, (max_aln_end-1)/segment_len)] = 0;
907 for(
size_t i= pp.size();
i-- > 1; ) {
908pp[
i-1] =
min(pp[
i-1], pp[
i]);
910 swap(
const_cast<vector<TSeqPos>&
>(
info.m_AlnOverStarts), pp);
915 return info.m_AlnOverStarts;
928 while( seg+1 < pp.size() && pp[seg+1] < range.
GetToOpen() ) {
939 TVDBRowIdfirst_align_id = 0, last_align_id = 0;
946first_align_id = *min_element(ids.
data(), ids.
data()+
count);
947 if( first_align_id ) {
952 if( !first_align_id ) {
960last_align_id = *max_element(ids.
data(), ids.
data()+
count);
961 if( last_align_id ) {
967 returnlast_align_id-first_align_id+1;
1003 if(
this!= &iter ) {
1038 const string& ref_id,
1044m_Ref(m_RefIter.GetDb().
Ref()),
1049 Select(ref_pos, window, search_mode, align_type);
1059: m_RefIter(csra_db, ref_id),
1060m_Ref(m_RefIter.GetDb().
Ref()),
1065 Select(ref_pos, window, search_mode, align_type);
1074: m_RefIter(csra_db, ref_id),
1075m_Ref(m_RefIter.GetDb().
Ref()),
1088 switch( align_type ) {
1097 "unspecified alignment type");
1151start_pos =
max(ref_pos, row_size)-row_size;
1154start_pos = pp[ref_pos/row_size];
1158start_pos = ref_pos;
1191 else if(
m_Ref->m_SECONDARY_ALIGNMENT_IDS ) {
1283 if( !
m_Aln->m_READ_FILTER ) {
1284 returnSRA_READ_FILTER_PASS;
1331dbtag.
SetDb(
"SRA");
1356 if(
value.empty() ) {
1361 m_Aln->SEQ_READ_ID(mate_id));
1371 if(
m_Aln->m_REF_OFFSET_TYPE &&
1396ret.reserve(mismatch.
size()+2);
1397 const char* cptr = cigar.
data();
1398 const char* cend = cigar.
end();
1399 const char* mptr = mismatch.
data();
1400 const char* mend = mismatch.
end();
1403 while( cptr != cend ) {
1406 while( cptr != cend ) {
1408 if( c >=
'0'&& c <=
'9') {
1409seglen = seglen*10+(c-
'0');
1418 "Incomplete CIGAR: "<< cigar);
1420 if( seglen == 0 ) {
1422 "Bad CIGAR length: "<<
type<<
1425 if(
type==
'=') {
1429 else if(
type==
'X') {
1431 if( mptr + seglen > mend ) {
1433 "CIGAR mismatch segment beyond MISMATCH: " 1434<<cigar<<
" vs "<<mismatch);
1436ret.append(mptr, seglen);
1440 else if(
type==
'I'||
type==
'S') {
1441 if( seqpos + seglen > has_mismatch.
size() ) {
1443 "CIGAR insert segment beyond HAS_MISMATCH: " 1444<<cigar<<
" vs "<<mismatch);
1446 for(
TSeqPos i= 0;
i< seglen; ++
i, ++seqpos ) {
1448 if( has_mismatch[seqpos] ==
'1') {
1449 if( mptr == mend ) {
1451 "CIGAR insert/mismatch segment beyond MISMATCH: " 1452<<cigar<<
" vs "<<mismatch);
1463 else if(
type==
'D'||
type==
'N'||
type==
'P') {
1468 "Bad CIGAR char: "<<
type<<
" in "<<cigar);
1471 if( mptr != mend ) {
1473 "Extra mismatch chars: "<<cigar<<
" vs "<<mismatch);
1504 const char* ptr = cigar.
data();
1505 const char* end = cigar.
end();
1508 for(
const char* p = ptr; p != end; ++p ) {
1510 if( c < '0' || c >
'9') {
1511 if( c ==
'S'|| c ==
'N') {
1522starts.reserve(2*segcount);
1523lens.reserve(segcount);
1526 TSeqPosrefstart = 0, seqstart = 0;
1527 while( ptr != end ) {
1530 while( ptr != end ) {
1532 if( c >=
'0'&& c <=
'9') {
1533seglen = seglen*10+(c-
'0');
1542 "Incomplete CIGAR: "<< cigar);
1544 if( seglen == 0 ) {
1546 "Bad CIGAR length: "<<
type<<
1556 else if(
type==
'I'||
type==
'S') {
1557insert_size += seglen;
1558 if(
type==
'S') {
1566 else if(
type==
'D'||
type==
'N') {
1570 if(
type==
'N') {
1576 else if(
type!=
'P') {
1578 "Bad CIGAR char: "<<
type<<
" in "<<cigar);
1580starts.push_back(refstart);
1581starts.push_back(seqstart);
1582lens.push_back(seglen);
1586strands.reserve(2*segcount);
1588 for(
size_t i= 0;
i< segcount; ++
i) {
1594starts[
i*2+1] = end - (pos +
len);
1603 if( !mate_id_v.
empty() ) {
1622 "RefId", mate_ref_id,
1627 "RefPos", *
m_Aln->REF_POS(mate_id),
1634 m_Aln->SEQ_SPOT_ID(mate_id),
1635 m_Aln->SEQ_READ_ID(mate_id));
1636obj->
SetData().push_back(field);
1638align->
SetExt().push_back(obj);
1651 if( insert_size == 0 ) {
1663align->
SetExt().push_back(obj);
1668 if( filter > SRA_READ_FILTER_PASS &&
1669filter <= SRA_READ_FILTER_REDACTED ) {
1671 static const char*
const value[4] = {
1673 "Poor sequence quality",
1698graph->
SetTitle(
"Phred Quality");
1711values.resize(
size);
1716 for(
size_t i= 0;
i<
size; ++
i) {
1717TValue q = qual[
i];
1740seq->
SetDescr().Set().push_back(desc);
1748 string& iupac = inst.
SetSeq_data().SetIupacna().Set();
1749iupac.assign(
data.data(), length);
1758obj.
SetType().SetStr(
"Mate read");
1759obj.
AddField(
"Match by local Seq-id",
true);
1846obj.
SetData().push_back(field);
1874 size_tmax_value_length,
1875 size_tmax_cache_size)
const 1877 if(
value.size() > max_value_length || cache.
size() > max_cache_size ) {
1882 if( iter == cache.
end() || iter->first !=
value) {
1889obj.
SetData().push_back(iter->second);
1919 if(
this!= &iter ) {
1941m_IncludeTechnicalReads(
false),
1942m_ClipByQuality(
false),
1951 x_Init(csra_db, clip_type);
1963 x_Init(csra_db, clip_type);
1973 x_Init(csra_db, clip_type);
1974 Select(spot_id, read_id);
1987 switch( clip_type ) {
2076 if( single_spot ) {
2107 for(
size_t i= 0;
i< read_types.
size(); ++
i) {
2108INSDC_read_type
type= read_types[
i];
2109 if( (
type& (SRA_READ_TYPE_TECHNICAL | SRA_READ_TYPE_BIOLOGICAL)) ==
2110SRA_READ_TYPE_TECHNICAL ) {
2153 return(
type& (SRA_READ_TYPE_TECHNICAL | SRA_READ_TYPE_BIOLOGICAL)) ==
2154SRA_READ_TYPE_TECHNICAL;
2160 if( !
m_Seq->m_READ_FILTER ) {
2161 returnSRA_READ_FILTER_PASS;
2183 if(
m_Db->IsCSRA() ) {
2189 if( trim_pos > pos ) {
2195 TSeqPostrim_end = trim_pos + trim_len;
2196 if( trim_end < end ) {
2213 boolclip_by_quality = !
m_Db->IsCSRA() &&
2215 if( clip_by_quality ) {
2217pos =
max(pos, trim_pos);
2219 TSeqPostrim_end = trim_pos + trim_len;
2220end =
min(end, trim_end);
2249seq->
SetDescr().Set().push_back(desc);
2257 string& iupac = inst.
SetSeq_data().SetIupacna().Set();
2258iupac.assign(
data.data(),
data.size());
2270graph->
SetTitle(
"Phred Quality");
2280values.resize(
size);
2286 for(
size_t i= 0;
i<
size; ++
i) {
2287TValue q = qual[start+
i];
2314annot->
SetData().SetAlign();
2318annot->
SetDesc().Set().push_back(desc);
2326 const string* annot_name)
const 2344 if(
m_Seq->m_PRIMARY_ALIGNMENT_ID ) {
2350 if( ref_pos_ptr ) {
2351*ref_pos_ptr = *aln->REF_POS(row_id);
2362 if(
m_Seq->m_PRIMARY_ALIGNMENT_ID ) {
#define NCBI_THROW3(exc_cls, err_code, msg, extra1, extra2)
#define READ(buf, off, bytes, endian)
void Select(TSeqPos ref_pos, TSeqPos window=0, ESearchMode search_mode=eSearchByOverlap, TAlignType align_type=fAnyAlign)
CRef< CSeq_id > GetShortSeq_id(void) const
TVDBRowId GetAlignmentId(void) const
CTempString GetSpotGroup(void) const
CUser_field & x_AddField(CUser_object &obj, const char *name, TObjectIdCache &cache) const
SCreateCache & x_GetCreateCache(void) const
static CRef< CAnnotdesc > MakeMatchAnnotIndicator(void)
bool IsSetName(void) const
CRef< CSeq_annot > x_GetMatchAnnot(const string *annot_name) const
CCSraRefSeqIterator m_RefIter
TSeqPos GetShortPos(void) const
bool GetRefMinusStrand(void) const
CRef< CSeq_id > GetMateShortSeq_id(void) const
CTempString GetMismatchRead(void) const
static CRef< CSeq_annot > MakeSeq_annot(const string &annot_name)
CCSraDb_Impl & GetDb(void) const
CRef< CSeq_id > GetRefSeq_id(void) const
CCSraAlignIterator & operator=(const CCSraAlignIterator &iter)
CTempString GetCIGAR(void) const
CRef< CBioseq > GetShortBioseq(void) const
~CCSraAlignIterator(void)
INSDC_read_filter GetReadFilter(void) const
CRef< CSeq_graph > GetQualityGraph(void) const
CTempString GetMismatchRaw(void) const
int GetMapQuality(void) const
const TVDBRowId * m_AlnRowCur
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
TSeqPos GetRefSeqPos(void) const
CRef< CSeq_entry > x_GetMatchEntry(const string *annot_name) const
CRef< CCSraDb_Impl::SRefTableCursor > m_Ref
CTempString GetName(void) const
CTempString GetRefSeqId(void) const
bool IsSecondary(void) const
CRef< CUser_object > x_GetSecondaryIndicator(void) const
TVDBRowId GetShortId1(void) const
CRef< CSeq_annot > x_GetQualityGraphAnnot(const string *annot_name) const
CRef< CSeq_annot > x_GetEmptyMatchAnnot(const string *annot_name) const
void MakeFullMismatch(string &str, CTempString cigar, CTempString mismatch) const
static CRef< CSeq_annot > MakeEmptyMatchAnnot(const string &annot_name)
AutoPtr< SCreateCache > m_CreateCache
TSeqPos GetShortLen(void) const
CObject_id & x_GetObject_id(const char *name, TObjectIdCache &cache) const
CRef< CCSraDb_Impl::SAlnTableCursor > m_Aln
CRef< CSeq_align > GetMatchAlign(void) const
CTempString GetCIGARLong(void) const
INSDC_coord_one GetShortId2(void) const
const TVDBRowId * m_AlnRowEnd
CVDBObjectCache< SAlnTableCursor > m_Aln[2]
const CVDBTable & SeqTable(void)
void GetSpotGroups(TSpotGroups &spot_groups)
list< SRefInfo > TRefInfoList
CRef< SRefTableCursor > Ref(void)
virtual ~CCSraDb_Impl(void)
void x_MakeRefSeq_ids(SRefInfo &info, IIdMapper *ref_id_mapper, int ref_id_type)
CVDBObjectCache< SSeqTableCursor > m_Seq
CRef< SSeqTableCursor > Seq(void)
const CVDBTable & RefTable(void)
vector< string > TSpotGroups
TRefInfoMapByName m_RefMapByName
CVDBObjectCache< SRefTableCursor > m_Ref
void Put(CRef< SRefTableCursor > &curs)
void x_CalcSeqLength(const SRefInfo &info)
const string & GetCSraPath(void) const
TRefInfoMapBySeq_id m_RefMapBySeq_id
TSeqPos GetRowSize(void) const
void SetShortReadId(string &str, TVDBRowId id1, INSDC_coord_one id2) const
const CVDBTable & AlnTable(bool is_secondary)
CCSraDb_Impl(CVDBMgr &mgr, const string &csra_path, IIdMapper *ref_id_mapper, ERefIdType ref_id_type, const string &sra_id_part)
CRef< CSeq_id > MakeShortReadId(TVDBRowId id1, INSDC_coord_one id2) const
friend struct SSeqTableCursor
CRef< SAlnTableCursor > Aln(bool is_secondary)
void OpenAlnTable(bool is_secondary)
TSeqPos GetRowSize(void) const
static string MakeSraIdPart(EPathInIdType path_in_id_type, const string &dir_path, const string &csra_file)
Uint8 GetEstimatedNumberOfAlignments(void) const
static CRef< CSeq_annot > MakeSeq_annot(const string &annot_name)
CRef< CSeq_annot > GetSeq_annot(void) const
CCSraDb_Impl::TRefInfoList::const_iterator m_Iter
size_t GetAlignCountAtPos(TSeqPos pos, TAlignType type=fAnyAlign) const
size_t GetRowAlignCount(TVDBRowId row) const
const CBioseq::TId & GetRefSeq_ids(void) const
const vector< TSeqPos > & GetAlnOverStarts(void) const
void GetRefLiterals(TLiterals &literals, TRange range, ELoadData load=eLoadData) const
CRef< CSeq_graph > GetCoverageGraph(void) const
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
const CCSraDb_Impl::SRefInfo & GetInfo(void) const
list< CRef< CSeq_literal > > TLiterals
TSeqPos GetAlnOverToOpen(TRange range) const
CRef< CBioseq > GetRefBioseq(ELoadData load=eLoadData) const
CCSraRefSeqIterator(void)
TSeqPos GetSeqLength(void) const
CRef< CSeq_id > GetRefSeq_id(void) const
bool IsCircular(void) const
CCSraDb_Impl & GetDb(void) const
CRef< CSeq_annot > GetCoverageAnnot(void) const
void x_Init(const CCSraDb &csra_db, EClipType clip_type)
bool x_ValidRead(void) const
~CCSraShortReadIterator(void)
TOpenRange GetReadRange(EClipType clip_type=eDefaultClip) const
COpenRange< TSeqPos > TOpenRange
CRef< CBioseq > GetShortBioseq(TBioseqFlags flags=fDefaultBioseqFlags) const
CCSraShortReadIterator(void)
void x_GetMaxReadId(void)
void SetLastSpotId(TVDBRowId spot_id)
bool IsTechnicalRead(void) const
bool Select(TVDBRowId spot_id)
CCSraAlignIterator GetAlignIter() const
CTempString GetSpotGroup(void) const
bool x_Settle(bool single_spot=false)
bool m_IncludeTechnicalReads
CTempString GetName(void) const
CTempString GetReadData(EClipType clip_type=eDefaultClip) const
TVDBRowId GetShortId1(void) const
CRef< CSeq_id > GetShortSeq_id(void) const
TSeqPos GetClipQualityLength(void) const
TSeqPos GetClipQualityLeft(void) const
CCSraShortReadIterator & operator=(const CCSraShortReadIterator &iter)
CRef< CSeq_annot > x_GetQualityGraphAnnot(const string *annot_name) const
bool HasClippingInfo(void) const
bool IsSetName(void) const
CCSraDb_Impl & GetDb(void) const
CRef< CSeq_graph > GetQualityGraph(void) const
CRef< CSeq_graph > x_GetQualityGraph(TOpenRange range) const
CCSraRefSeqIterator GetRefSeqIter(TSeqPos *ref_pos_ptr=NULL) const
INSDC_read_filter GetReadFilter(void) const
CRef< CCSraDb_Impl::SSeqTableCursor > m_Seq
CTempString x_GetReadData(TOpenRange range) const
uint32_t GetShortId2(void) const
uint32_t GetMateCount(void) const
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
@ eDataError
VDB data is incorrect.
@ eNotFoundTable
DB table not found.
const string & GetParam(void) const
virtual TErrCode GetErrCode(void) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
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 TValue * data() const
static bool IsPlainAccession(const string &acc_or_path)
General IdMapper interface.
virtual void MapObject(CSerialObject &)=0
Map all embedded IDs in a given object at once.
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator end() const
const_iterator lower_bound(const key_type &key) const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
The NCBI C++ standard methods for dealing with std::string.
NCBI_PARAM_DEF(bool, CSRA, READ_FILTER_IN_ALIGN_EXT, true)
#define RC_NO_MORE_ALIGNMENTS
NCBI_PARAM_DECL(bool, CSRA, EXPLICIT_MATE_INFO)
static bool s_GetPathInId(void)
static bool s_GetReadFilterInAlignExt(void)
static bool s_GetClipByQuality(void)
NCBI_DEFINE_ERR_SUBCODE_X(2)
static bool s_GetCigarInAlignExt(void)
NCBI_PARAM_DEF_EX(bool, CSRA, EXPLICIT_MATE_INFO, false, eParam_NoThread, CSRA_EXPLICIT_MATE_INFO)
static bool s_GetIncludeTechnicalReads(void)
static bool s_GetExplicitMateInfoParam(void)
uint8_t INSDC_read_filter
bool Empty(const CNcbiOstrstream &src)
static const struct name_t names[]
static const char * str(char *buf, int n)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)
#define LOG_POST_X(err_subcode, message)
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
void Info(CExceptionArgs_Base &args)
static string MakePath(const string &dir=kEmptyStr, const string &base=kEmptyStr, const string &ext=kEmptyStr)
Assemble a path from basic components.
static void SplitPath(const string &path, string *dir=0, string *base=0, string *ext=0)
Split a path string into its basic components.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
const string AsFastaString(void) const
static SIZE_TYPE ParseIDs(CBioseq::TId &ids, const CTempString &s, TParseFlags flags=fParse_Default)
Parse a string representing one or more Seq-ids, appending the results to IDS.
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
TObjectType & GetNCObject(void) const
Get object.
#define NCBI_PARAM_TYPE(section, name)
Generate typename for a parameter from its {section, name} attributes.
@ eParam_NoThread
Do not use per-thread values.
uint8_t Uint1
1-byte (8-bit) unsigned integer
uint64_t Uint8
8-byte (64-bit) unsigned integer
position_type GetLength(void) const
position_type GetToOpen(void) const
position_type GetFrom(void) const
static TThisType GetEmpty(void)
static TThisType GetWhole(void)
const_iterator end() const
Return an iterator to the string's ending position (one past the end of the represented sequence)
CTempString literal(const char(&str)[Size])
Templatized initialization from a string literal.
const char * data(void) const
Return a pointer to the array represented.
bool empty(void) const
Return true if the represented string is empty (i.e., the length is zero)
CTempString substr(size_type pos) const
Obtain a substring from this string, beginning at a given offset.
size_type size(void) const
Return the length of the represented array.
TFrom GetFrom(void) const
Get the From member data.
const TStr & GetStr(void) const
Get the variant data.
void SetTag(TTag &value)
Assign a value to Tag data member.
const TData & GetData(void) const
Get the Data member data.
TData & SetData(void)
Assign a value to Data data member.
void SetLabel(TLabel &value)
Assign a value to Label data member.
TStr & SetStr(void)
Select the variant.
void SetType(TType &value)
Assign a value to Type data member.
void SetData(TData &value)
Assign a value to Data data member.
void SetDb(const TDb &value)
Assign a value to Db data member.
TLens & SetLens(void)
Assign a value to Lens data member.
void SetSegs(TSegs &value)
Assign a value to Segs data member.
vector< ENa_strand > TStrands
vector< TSignedSeqPos > TStarts
void SetType(TType value)
Assign a value to Type data member.
vector< CRef< CSeq_id > > TIds
TExt & SetExt(void)
Assign a value to Ext data member.
TStarts & SetStarts(void)
Assign a value to Starts data member.
TStrands & SetStrands(void)
Assign a value to Strands data member.
void SetNumseg(TNumseg value)
Assign a value to Numseg data member.
TIds & SetIds(void)
Assign a value to Ids data member.
@ eType_diags
unbroken, but not ordered, diagonals
void SetTo(TTo value)
Assign a value to To data member.
TGeneral & SetGeneral(void)
Select the variant.
void SetId(TId &value)
Assign a value to Id data member.
void SetFrom(TFrom value)
Assign a value to From data member.
bool IsLocal(void) const
Check if variant Local is selected.
void SetStrand(TStrand value)
Assign a value to Strand data member.
@ e_General
for other databases
void SetMin(TMin value)
Assign a value to Min data member.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
void SetNumval(TNumval value)
Assign a value to Numval data member.
void SetComp(TComp value)
Assign a value to Comp data member.
TValues & SetValues(void)
Assign a value to Values data member.
void SetGraph(TGraph &value)
Assign a value to Graph data member.
void SetMax(TMax value)
Assign a value to Max data member.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
void SetAxis(TAxis value)
Assign a value to Axis data member.
TSeq & SetSeq(void)
Select the variant.
void SetData(TData &value)
Assign a value to Data data member.
TId & SetId(void)
Assign a value to Id data member.
TTitle & SetTitle(void)
Select the variant.
void SetDesc(TDesc &value)
Assign a value to Desc data member.
void SetExt(TExt &value)
Assign a value to Ext data member.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
TName & SetName(void)
Select the variant.
TUser & SetUser(void)
Select the variant.
list< CRef< CSeq_id > > TId
void SetInst(TInst &value)
Assign a value to Inst data member.
void SetTopology(TTopology value)
Assign a value to Topology data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
void SetRepr(TRepr value)
Assign a value to Repr data member.
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.
void SetMol(TMol value)
Assign a value to Mol data member.
@ eRepr_delta
sequence made by changes (delta) to others
@ eRepr_raw
continuous sequence
@ eMol_na
just a nucleic acid
Definition of all error codes used in SRA C++ support libraries.
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
double value_type
The numeric datatype used by the parser.
const struct ncbi::grid::netcache::search::fields::SIZE size
const struct ncbi::grid::netcache::search::fields::KEY key
string s_Value(TValue value)
const GenericPointer< typename T::ValueType > T2 value
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
#define row(bind, expected)
TObjectIdCache m_ObjectIdMISMATCH
TObjectIdCache m_ObjectIdRefPos
CRef< CUser_object > m_SecondaryIndicator
CRef< CUser_object > m_ReadFilterIndicator[4]
TObjectIdCache m_ObjectIdTracebacks
TUserFieldCache m_UserFieldCacheCigar
TObjectIdCache m_ObjectIdCIGAR
TObjectIdCache m_ObjectIdLcl
TObjectIdCache m_ObjectIdRefId
TUserFieldCache m_UserFieldCacheMismatch
TObjectIdCache m_ObjectIdMateRead
CRef< CAnnotdesc > m_MatchAnnotIndicator
DECLARE_VDB_COLUMN_AS(char, HAS_REF_OFFSET)
DECLARE_VDB_COLUMN_AS(bool, REF_ORIENTATION)
DECLARE_VDB_COLUMN_AS_STRING(RAW_READ)
DECLARE_VDB_COLUMN_AS(char, HAS_MISMATCH)
DECLARE_VDB_COLUMN_AS(Uint1, REF_OFFSET_TYPE)
DECLARE_VDB_COLUMN_AS_STRING(MISMATCH)
DECLARE_VDB_COLUMN_AS(int32_t, REF_OFFSET)
DECLARE_VDB_COLUMN_AS(INSDC_coord_zero, REF_POS)
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, SPOT_LEN)
SAlnTableCursor(const CVDBTable &table, bool is_secondary)
DECLARE_VDB_COLUMN_AS(TVDBRowId, MATE_ALIGN_ID)
DECLARE_VDB_COLUMN_AS_STRING(MISMATCH_READ)
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, REF_LEN)
DECLARE_VDB_COLUMN_AS_STRING(REF_SEQ_ID)
DECLARE_VDB_COLUMN_AS_STRING(CIGAR_SHORT)
DECLARE_VDB_COLUMN_AS_STRING(CIGAR_LONG)
DECLARE_VDB_COLUMN_AS_STRING(NAME)
DECLARE_VDB_COLUMN_AS_STRING(REF_NAME)
DECLARE_VDB_COLUMN_AS(INSDC_read_filter, READ_FILTER)
DECLARE_VDB_COLUMN_AS_STRING(SPOT_GROUP)
DECLARE_VDB_COLUMN_AS(INSDC_coord_one, SEQ_READ_ID)
DECLARE_VDB_COLUMN_AS(INSDC_quality_phred, QUALITY)
DECLARE_VDB_COLUMN_AS(int32_t, MAPQ)
DECLARE_VDB_COLUMN_AS(TVDBRowId, SEQ_SPOT_ID)
DECLARE_VDB_COLUMN_AS_STRING(SEQ_ID)
DECLARE_VDB_COLUMN_AS(Uint1, CGRAPH_HIGH)
DECLARE_VDB_COLUMN_AS(row_range_t, NAME_RANGE)
SRefTableCursor(const CVDBTable &table)
DECLARE_VDB_COLUMN_AS_STRING(READ)
DECLARE_VDB_COLUMN_AS(TVDBRowId, SECONDARY_ALIGNMENT_IDS)
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, SEQ_LEN)
DECLARE_VDB_COLUMN_AS(INSDC_coord_zero, OVERLAP_REF_POS)
DECLARE_VDB_COLUMN_AS(bool, CIRCULAR)
DECLARE_VDB_COLUMN_AS_STRING(NAME)
pair< TVDBRowId, TVDBRowId > row_range_t
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, MAX_SEQ_LEN)
DECLARE_VDB_COLUMN_AS(TVDBRowId, PRIMARY_ALIGNMENT_IDS)
DECLARE_VDB_COLUMN_AS_STRING(READ)
DECLARE_VDB_COLUMN_AS(INSDC_coord_zero, TRIM_START)
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, READ_LEN)
DECLARE_VDB_COLUMN_AS(INSDC_coord_zero, READ_START)
DECLARE_VDB_COLUMN_AS_STRING(NAME)
DECLARE_VDB_COLUMN_AS(TVDBRowId, PRIMARY_ALIGNMENT_ID)
DECLARE_VDB_COLUMN_AS(INSDC_quality_phred, QUALITY)
DECLARE_VDB_COLUMN_AS(INSDC_coord_len, TRIM_LEN)
DECLARE_VDB_COLUMN_AS(INSDC_read_filter, READ_FILTER)
DECLARE_VDB_COLUMN_AS_STRING(SPOT_GROUP)
DECLARE_VDB_COLUMN_AS(INSDC_read_type, READ_TYPE)
SSeqTableCursor(const CVDBTable &table, bool is_CSRA)
#define INIT_VDB_COLUMN(name)
#define INIT_OPTIONAL_VDB_COLUMN_BACKUP(name, backup_name)
#define INIT_VDB_COLUMN_BACKUP(name, backup_name)
pair< TVDBRowId, TVDBRowCount > TVDBRowIdRange
#define INIT_OPTIONAL_VDB_COLUMN(name)
#define INIT_CONDITIONAL_VDB_COLUMN(name, condition)
uint8_t INSDC_quality_phred
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