NCBI C++ ToolKit
|
Search Toolkit Book for CRemoteBlastDbAdapter
This class allows retrieval of sequence data from BLAST databases at NCBI. More...
#include "remote_blastdb_adapter.hpp"
(Private to src/objtools/data_loaders/blastdb
.)
Public Member Functions | |
CRemoteBlastDbAdapter (const string &db_name, CSeqDB::ESeqType db_type, bool use_fixed_size_slices) | |
Constructor. More... | |
virtual CSeqDB::ESeqType | GetSequenceType () |
@inheritDoc More... | |
virtual int | GetSeqLength (int oid) |
@inheritDoc More... | |
virtual TSeqIdList | GetSeqIDs (int oid) |
@inheritDoc More... | |
virtual CRef< CBioseq > | GetBioseqNoData (int oid, TGi target_gi=ZERO_GI, const CSeq_id *target_id=NULL) |
@inheritDoc More... | |
virtual CRef< CSeq_data > | GetSequence (int oid, int begin=0, int end=0) |
@inheritDoc More... | |
void | GetSequenceBatch (const vector< int > &oids, const vector< TSeqRange > &ranges, vector< CRef< CSeq_data > > &sequence_data) |
Batch-version of GetSequence. More... | |
virtual bool | SeqidToOid (const CSeq_id &id, int &oid) |
@inheritDoc More... | |
bool | SeqidToOidBatch (const vector< CRef< CSeq_id > > &ids, vector< int > &oids) |
Batch-version of SeqidToOid. More... | |
Public Member Functions inherited from IBlastDbAdapter | |
virtual | ~IBlastDbAdapter () |
Virtual destructor. More... | |
virtual TTaxId | GetTaxId (const CSeq_id_Handle &) |
Retrieve the taxonomy ID for the requested sequence identifier. More... | |
Public Member Functions inherited from CObject | |
CObject (void) | |
Constructor. More... | |
CObject (const CObject &src) | |
Copy constructor. More... | |
virtual | ~CObject (void) |
Destructor. More... | |
CObject & | operator= (const CObject &src) THROWS_NONE |
Assignment operator. More... | |
bool | CanBeDeleted (void) const THROWS_NONE |
Check if object can be deleted. More... | |
bool | IsAllocatedInPool (void) const THROWS_NONE |
Check if object is allocated in memory pool (not system heap) More... | |
bool | Referenced (void) const THROWS_NONE |
Check if object is referenced. More... | |
bool | ReferencedOnlyOnce (void) const THROWS_NONE |
Check if object is referenced only once. More... | |
void | AddReference (void) const |
Add reference to object. More... | |
void | RemoveReference (void) const |
Remove reference to object. More... | |
void | ReleaseReference (void) const |
Remove reference without deleting object. More... | |
virtual void | DoNotDeleteThisObject (void) |
Mark this object as not allocated in heap – do not delete this object. More... | |
virtual void | DoDeleteThisObject (void) |
Mark this object as allocated in heap – object can be deleted. More... | |
void * | operator new (size_t size) |
Define new operator for memory allocation. More... | |
void * | operator new[] (size_t size) |
Define new[] operator for 'array' memory allocation. More... | |
void | operator delete (void *ptr) |
Define delete operator for memory deallocation. More... | |
void | operator delete[] (void *ptr) |
Define delete[] operator for memory deallocation. More... | |
void * | operator new (size_t size, void *place) |
Define new operator. More... | |
void | operator delete (void *ptr, void *place) |
Define delete operator. More... | |
void * | operator new (size_t size, CObjectMemoryPool *place) |
Define new operator using memory pool. More... | |
void | operator delete (void *ptr, CObjectMemoryPool *place) |
Define delete operator. More... | |
virtual void | DebugDump (CDebugDumpContext ddc, unsigned int depth) const |
Define method for dumping debug information. More... | |
Public Member Functions inherited from CDebugDumpable | |
CDebugDumpable (void) | |
virtual | ~CDebugDumpable (void) |
void | DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const |
void | DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const |
void | DumpToConsole (void) const |
Private Member Functions | |
void | x_FetchData (int oid, int begin, int end) |
This method actually retrieves the sequence data. More... | |
void | x_FetchDataByBatch (const vector< int > &oids, const vector< TSeqRange > &ranges) |
Private Attributes | |
string | m_DbName |
BLAST database name. More... | |
CSeqDB::ESeqType | m_DbType |
Sequence type of the BLAST database. More... | |
map< int, CCachedSeqDataForRemote > | m_Cache |
Internal cache, maps OIDs to CCachedSeqDataForRemote. More... | |
int | m_NextLocalId |
Our local "OID generator". More... | |
bool | m_UseFixedSizeSlices |
Determines whether sequences should be fetched in fixed size slices or in incrementally larger sizes. More... | |
Additional Inherited Members | |
Public Types inherited from IBlastDbAdapter | |
typedef list< CRef< CSeq_id > > | TSeqIdList |
Convenience typedef for a list of CSeq_id-s. More... | |
Public Types inherited from CObject | |
enum | EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern } |
Control filling of newly allocated memory. More... | |
typedef CObjectCounterLocker | TLockerType |
Default locker type for CRef. More... | |
typedef atomic< Uint8 > | TCounter |
Counter type is CAtomiCounter. More... | |
typedef Uint8 | TCount |
Alias for value type of counter. More... | |
Static Public Member Functions inherited from CObject | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (void) |
Define method to throw null pointer exception. More... | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (const type_info &type) |
static EAllocFillMode | GetAllocFillMode (void) |
static void | SetAllocFillMode (EAllocFillMode mode) |
static void | SetAllocFillMode (const string &value) |
Set mode from configuration parameter value. More... | |
Static Public Member Functions inherited from CDebugDumpable | |
static void | EnableDebugDump (bool on) |
Static Public Attributes inherited from CObject | |
static const TCount | eCounterBitsCanBeDeleted = 1 << 0 |
Define possible object states. More... | |
static const TCount | eCounterBitsInPlainHeap = 1 << 1 |
Heap signature was found. More... | |
static const TCount | eCounterBitsPlaceMask |
Mask for 'in heap' state flags. More... | |
static const int | eCounterStep = 1 << 2 |
Skip over the "in heap" bits. More... | |
static const TCount | eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2) |
Minimal value for valid objects (reference counter is zero) Must be a single bit value. More... | |
static const TCount | eCounterStateMask |
Valid object, and object in heap. More... | |
Protected Member Functions inherited from CObject | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
This class allows retrieval of sequence data from BLAST databases at NCBI.
Definition at line 178 of file remote_blastdb_adapter.hpp.
CRemoteBlastDbAdapter::CRemoteBlastDbAdapter | ( | const string & | db_name, |
CSeqDB::ESeqType | db_type, | ||
bool | use_fixed_size_slices | ||
) |
Constructor.
Definition at line 47 of file remote_blastdb_adapter.cpp.
References CSeqDB::eProtein, CBlastServices::IsValidBlastDb(), NMacroArgs::kIsProtein, NCBI_THROW, and out().
|
virtual |
@inheritDoc
Implements IBlastDbAdapter.
Definition at line 78 of file remote_blastdb_adapter.cpp.
References _ASSERT, CSerialObject::Assign(), GetBioseq(), IsValid(), and m_Cache.
|
virtual |
|
virtual |
@inheritDoc
Implements IBlastDbAdapter.
Definition at line 194 of file remote_blastdb_adapter.cpp.
References _ASSERT, CCachedSeqDataForRemote::GetSeqDataChunk(), CCachedSeqDataForRemote::HasSequenceData(), CCachedSeqDataForRemote::IsValid(), m_Cache, and x_FetchData().
void CRemoteBlastDbAdapter::GetSequenceBatch | ( | const vector< int > & | oids, |
const vector< TSeqRange > & | ranges, | ||
vector< CRef< CSeq_data > > & | sequence_data | ||
) |
Batch-version of GetSequence.
oids | OIDs of the sequences to fetch, must be of same size as ranges [in] |
ranges | sequence ranges for the OIDs above, must be of same size as oids. If any of the ranges is TSeqRange::GetEmpty, the whole sequence will be fetched (assuming no splitting of the sequence occurred), otherwise the ranges are expected to be spanning a give sequence chunk |
sequence_data | output parameter for the sequence data to fetch [out] |
Definition at line 207 of file remote_blastdb_adapter.cpp.
References _ASSERT, COpenRange< TSeqPos >::GetEmpty(), CCachedSeqDataForRemote::GetLength(), CCachedSeqDataForRemote::GetSeqDataChunk(), CCachedSeqDataForRemote::HasSequenceData(), i, CCachedSeqDataForRemote::IsValid(), m_Cache, NULL, and x_FetchDataByBatch().
Referenced by CRemoteBlastDbDataLoader::GetChunks().
|
inlinevirtual |
@inheritDoc
Implements IBlastDbAdapter.
Definition at line 186 of file remote_blastdb_adapter.hpp.
References m_DbType.
Referenced by SeqidToOid(), SeqidToOidBatch(), x_FetchData(), and x_FetchDataByBatch().
@inheritDoc
Implements IBlastDbAdapter.
Definition at line 262 of file remote_blastdb_adapter.cpp.
References _ASSERT, CSeqDB::eProtein, CBlastServices::GetSequencesInfo(), GetSequenceType(), CCachedSeqDataForRemote::IsValid(), m_Cache, m_DbName, m_NextLocalId, m_UseFixedSizeSlices, RemoteBlastDbLoader_ErrorHandler(), CCachedSeqDataForRemote::SetBioseq(), CCachedSeqDataForRemote::SetIdList(), CCachedSeqDataForRemote::SetLength(), and true.
bool CRemoteBlastDbAdapter::SeqidToOidBatch | ( | const vector< CRef< CSeq_id > > & | ids, |
vector< int > & | oids | ||
) |
Batch-version of SeqidToOid.
ids | Seq-IDs to fetch [in] |
oids | the OIDs to which the IDs correspond [out] |
Definition at line 293 of file remote_blastdb_adapter.cpp.
References _ASSERT, CSeqDB::eProtein, GetLength(), CBlastServices::GetSequencesInfo(), GetSequenceType(), i, CCachedSeqDataForRemote::IsValid(), m_Cache, m_DbName, m_NextLocalId, m_UseFixedSizeSlices, RemoteBlastDbLoader_ErrorHandler(), CCachedSeqDataForRemote::SetBioseq(), CCachedSeqDataForRemote::SetIdList(), CCachedSeqDataForRemote::SetLength(), and true.
Referenced by CRemoteBlastDbDataLoader::GetBlobs().
This method actually retrieves the sequence data.
oid | OID for the sequence of interest [in] |
begin | starting offset of the sequence of interest [in] |
end | ending offset of the sequence of interst [in] |
Definition at line 118 of file remote_blastdb_adapter.cpp.
References _ASSERT, CSeqDB::eProtein, CCachedSeqDataForRemote::GetIdList(), CCachedSeqDataForRemote::GetLength(), CCachedSeqDataForRemote::GetSeqDataChunk(), CBlastServices::GetSequenceParts(), GetSequenceType(), CCachedSeqDataForRemote::HasSequenceData(), CCachedSeqDataForRemote::IsValid(), m_Cache, m_DbName, RemoteBlastDbLoader_ErrorHandler(), and true.
Referenced by GetSequence().
|
private |
Definition at line 146 of file remote_blastdb_adapter.cpp.
References _ASSERT, CSeqDB::eProtein, CCachedSeqDataForRemote::GetIdList(), CCachedSeqDataForRemote::GetLength(), CCachedSeqDataForRemote::GetSeqDataChunk(), CBlastServices::GetSequenceParts(), GetSequenceType(), CCachedSeqDataForRemote::HasSequenceData(), i, CCachedSeqDataForRemote::IsValid(), m_Cache, m_DbName, RemoteBlastDbLoader_ErrorHandler(), and true.
Referenced by GetSequenceBatch().
|
private |
Internal cache, maps OIDs to CCachedSeqDataForRemote.
Definition at line 222 of file remote_blastdb_adapter.hpp.
Referenced by GetBioseqNoData(), GetSeqIDs(), GetSeqLength(), GetSequence(), GetSequenceBatch(), SeqidToOid(), SeqidToOidBatch(), x_FetchData(), and x_FetchDataByBatch().
|
private |
BLAST database name.
Definition at line 218 of file remote_blastdb_adapter.hpp.
Referenced by SeqidToOid(), SeqidToOidBatch(), x_FetchData(), and x_FetchDataByBatch().
|
private |
Sequence type of the BLAST database.
Definition at line 220 of file remote_blastdb_adapter.hpp.
Referenced by GetSequenceType().
|
private |
Our local "OID generator".
Definition at line 224 of file remote_blastdb_adapter.hpp.
Referenced by SeqidToOid(), and SeqidToOidBatch().
|
private |
Determines whether sequences should be fetched in fixed size slices or in incrementally larger sizes.
Definition at line 227 of file remote_blastdb_adapter.hpp.
Referenced by SeqidToOid(), and SeqidToOidBatch().