1 #ifndef SRA__READER__SRA__CSRAREAD__HPP
2 #define SRA__READER__SRA__CSRAREAD__HPP
93 const string& sra_id_part);
103 return m_Seq_ids.front();
106 return m_Seq_ids.front();
109 return m_Seq_id_Handle;
123 return m_RefMapByName;
126 return m_RefMapBySeq_id;
175 void OpenRefTable(
void);
176 void OpenAlnTable(
bool is_secondary);
177 void OpenSeqTable(
void);
189 OpenAlnTable(is_secondary);
201 void x_MakeRefSeq_ids(SRefInfo&
info,
236 const string& csra_path,
241 const string& csra_path,
242 const string& sra_id_part,
248 const string& dir_path,
249 const string& csra_file);
271 CCSraDb_Impl::TRefInfoList::const_iterator iter)
287 return !m_Db || m_Iter == m_Db->GetRefInfoList().end();
289 operator const void*(void)
const {
290 return !*
this? 0:
this;
307 return m_Iter->m_SeqId;
310 return m_Iter->GetMainSeq_id();
313 return m_Iter->GetMainSeq_id_Handle();
316 return m_Iter->m_Seq_ids;
319 bool IsCircular(
void)
const;
324 size_t GetRowAlignCount(
TVDBRowId row)
const;
326 size_t GetAlignCountAtPos(
TSeqPos pos, TAlignType
type = fAnyAlign)
const;
339 CRef<CBioseq> GetRefBioseq(ELoadData load = eLoadData)
const;
348 const vector<TSeqPos>& GetAlnOverStarts(
void)
const;
354 Uint8 GetEstimatedNumberOfAlignments(
void)
const;
364 return m_Db.GetNCObject();
369 CCSraDb_Impl::TRefInfoList::const_iterator
m_Iter;
385 const string& ref_id,
388 ESearchMode search_mode = eSearchByOverlap,
389 TAlignType align_type = fAnyAlign);
394 ESearchMode search_mode,
395 TAlignType align_type = fAnyAlign);
400 TAlignType align_type = fAnyAlign);
409 ESearchMode search_mode = eSearchByOverlap,
410 TAlignType align_type = fAnyAlign);
412 operator const void*(void)
const {
413 return m_Error? 0:
this;
427 return m_AlnRowIsSecondary;
437 bool GetRefMinusStrand(
void)
const;
439 int GetMapQuality(
void)
const;
443 TSeqPos GetShortPos(
void)
const;
444 TSeqPos GetShortLen(
void)
const;
448 bool IsSetName(
void)
const;
463 void MakeFullMismatch(
string&
str,
468 return m_RefIter->GetMainSeq_id();
494 return m_RefIter.GetDb();
526 size_t max_value_length,
size_t max_cache_size)
const;
578 EClipType clip_type = eDefaultClip);
584 EClipType clip_type = eDefaultClip);
588 EClipType clip_type = eDefaultClip);
599 operator const void*(void)
const {
600 return m_Error? 0:
this;
627 return GetReadId()-1;
631 return GetMaxReadId();
638 bool IsSetName(
void)
const;
643 bool HasClippingInfo(
void)
const;
647 return m_ClipByQuality && HasClippingInfo();
652 return !m_ClipByQuality && HasClippingInfo();
655 CTempString GetReadData(EClipType clip_type = eDefaultClip)
const;
664 bool IsTechnicalRead(
void)
const;
673 return GetReadRange().GetLength();
679 TSeqPos GetClipQualityLeft(
void)
const;
680 TSeqPos GetClipQualityLength(
void)
const;
684 return GetClipQualityLeft() + GetClipQualityLength() - 1;
692 fQualityGraph = 1<<0,
693 fDefaultBioseqFlags = 0
703 return m_Db.GetNCObject();
706 void x_Init(
const CCSraDb& csra_db, EClipType clip_type);
707 bool x_ValidRead(
void)
const;
708 bool x_Settle(
bool single_spot =
false);
715 void x_GetMaxReadId(
void);
721 const string* annot_name)
const;
User-defined methods of the data storage class.
User-defined methods of the data storage class.
Extensions to std::atomic<>
bool operator!(void) const
CRef< CSeq_annot > x_GetMatchAnnot(const string *annot_name) const
CRef< CSeq_annot > GetEmptyMatchAnnot(void) const
CCSraRefSeqIterator m_RefIter
CRef< CObject_id > TObjectIdCache
CRef< CSeq_entry > GetMatchEntry(void) const
static CRef< CSeq_annot > MakeSeq_annot(const string &annot_name)
CCSraDb_Impl & GetDb(void) const
CRef< CSeq_id > GetRefSeq_id(void) const
CRef< CSeq_annot > GetQualityGraphAnnot(void) const
TSeqPos GetRefSeqLen(void) const
map< CTempString, CRef< CUser_field > > TUserFieldCache
const TVDBRowId * m_AlnRowCur
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
CRef< CSeq_annot > GetSeq_annot(void) const
TSeqPos GetRefSeqPos(void) const
CRef< CSeq_entry > x_GetMatchEntry(const string *annot_name) const
CRef< CCSraDb_Impl::SRefTableCursor > m_Ref
CCSraAlignIterator & operator++(void)
CRef< CSeq_annot > GetMatchAnnot(void) const
bool IsSecondary(void) const
CRef< CSeq_annot > x_GetQualityGraphAnnot(const string *annot_name) const
CRef< CSeq_annot > x_GetEmptyMatchAnnot(const string *annot_name) const
AutoPtr< SCreateCache > m_CreateCache
CRef< CCSraDb_Impl::SAlnTableCursor > m_Aln
const TVDBRowId * m_AlnRowEnd
CFastMutex m_OverlapMutex
const CVDBTable & SeqTable(void)
void GetSpotGroups(TSpotGroups &spot_groups)
list< SRefInfo > TRefInfoList
CVDBObjectCache< SSeqTableCursor > m_Seq
const CVDBTable & RefTable(void)
vector< string > TSpotGroups
void SetSraIdPart(const string &s)
const TRefInfoMapBySeq_id & GetRefInfoMapBySeq_id(void) const
TRefInfoMapByName m_RefMapByName
CVDBObjectCache< SRefTableCursor > m_Ref
const string & GetCSraPath(void) const
TRefInfoMapBySeq_id m_RefMapBySeq_id
TSeqPos GetRowSize(void) const
const CVDBTable & AlnTable(bool is_secondary)
const string & GetSraIdPart(void) const
map< string, TRefInfoList::iterator, PNocase > TRefInfoMapByName
const TRefInfoList & GetRefInfoList(void) const
map< CSeq_id_Handle, TRefInfoList::iterator > TRefInfoMapBySeq_id
const TRefInfoMapByName & GetRefInfoMapByName(void) const
CCSraDb_Impl::TSpotGroups TSpotGroups
void GetSpotGroups(TSpotGroups &spot_groups)
TSeqPos GetRowSize(void) const
static string MakeSraIdPart(EPathInIdType path_in_id_type, const string &dir_path, const string &csra_file)
const CCSraDb_Impl::SRefInfo & operator*(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
CCSraRefSeqIterator(const CCSraDb &csra_db, CCSraDb_Impl::TRefInfoList::const_iterator iter)
const CBioseq::TId & GetRefSeq_ids(void) const
bool operator!(void) const
CCSraRefSeqIterator & operator++(void)
const string & GetRefSeqId(void) const
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
list< CRef< CSeq_literal > > TLiterals
const CCSraDb_Impl::SRefInfo * operator->(void) const
CCSraRefSeqIterator(void)
const CSeq_id_Handle & GetRefSeq_id_Handle(void) const
CRef< CSeq_id > GetRefSeq_id(void) const
CCSraDb_Impl & GetDb(void) const
uint32_t GetReadId(void) const
COpenRange< TSeqPos > TOpenRange
TSeqPos GetClipQualityRight(void) const
bool x_Settle(bool single_spot=false)
bool m_IncludeTechnicalReads
CCSraShortReadIterator & operator++(void)
TVDBRowId GetShortId1(void) const
bool IsClippedByQuality(void) const
CRef< CSeq_annot > GetQualityGraphAnnot(void) const
CRef< CSeq_annot > x_GetQualityGraphAnnot(const string *annot_name) const
TVDBRowId GetSpotId(void) const
CCSraDb_Impl & GetDb(void) const
uint32_t GetMaxReadId(void) const
TVDBRowId GetMaxSpotId(void) const
uint32_t GetMateIndex(void) const
CRef< CCSraDb_Impl::SSeqTableCursor > m_Seq
uint32_t GetReadCount(void) const
TSeqPos GetShortLen(void) const
uint32_t GetShortId2(void) const
bool ShouldBeClippedByQuality(void) const
bool operator!(void) const
CRef< CSeq_annot > x_GetSeq_annot(const string *annot_name) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
General IdMapper interface.
Include a standard set of the NCBI C++ Toolkit most basic headers.
uint8_t INSDC_read_filter
int GetSeqLength(const CBioseq &bioseq)
unsigned int TSeqPos
Type for sequence locations and lengths.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
TObjectType & GetObject(void)
Get object.
uint64_t Uint8
8-byte (64-bit) unsigned integer
#define NCBI_SRAREAD_EXPORT
list< CRef< CSeq_id > > TId
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
range(_Ty, _Ty) -> range< _Ty >
Multi-threading – mutexes; rw-locks; semaphore.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
static CObject_id & x_GetObject_id(CRef< CObject_id > &cache, const char *name)
static const char * str(char *buf, int n)
TObjectIdCache m_ObjectIdMISMATCH
TObjectIdCache m_ObjectIdRefPos
CRef< CUser_object > m_SecondaryIndicator
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
const CSeq_id_Handle & GetMainSeq_id_Handle(void) const
CSeq_id_Handle m_Seq_id_Handle
CRef< CSeq_id > & GetMainSeq_id(void)
copyable_relaxed_atomic< TSeqPos > m_SeqLength
const CRef< CSeq_id > & GetMainSeq_id(void) const
vector< TSeqPos > m_AlnOverStarts