* chunk_sz_str = getenv(
"CHUNK_SIZE");
62 _TRACE(
"Using query chunk size from environment "<< retval);
102 "Split query chunk size must be divisible by 3");
111: m_QueryFactory (qf),
112m_Opts (const_cast<
CBlastOptions*>(&opts_handle->GetOptions())),
121: m_QueryFactory (qf),
122m_Opts (const_cast<
CBlastOptions*>(&opts_handle->GetOptions())),
126m_LocalDbAdapter (db.GetNonNullPointer())
133: m_QueryFactory (qf),
134m_Opts (const_cast<
CBlastOptions*>(&opts_handle->GetOptions())),
139m_SeqInfoSrc (seqInfoSrc)
154db_name.assign(seqsrc_name);
156 if(db_name.empty()) {
158 "BlastSeqSrc does not provide a name, probably it is not a" 183vector< CConstRef<objects::CSeq_id> > seqid_vec;
184vector< CRef<CBlastAncillaryData> > ancill_vec;
188 unsigned intnum_subjects = 0;
192 if(subject_infosrc !=
NULL) {
193num_subjects =
static_cast<unsigned int>(subject_infosrc->
Size());
197 for(index=0; index<local_query_data->
GetNumQueries(); index++)
202msg_vec.push_back(q_msg);
203seqid_vec.push_back(query_id);
205sa_vec.push_back(tmp_align);
206pair<double, double> tmp_pair(-1.0, -1.0);
208ancill_vec.push_back(tmp_ancillary_data);
210 for(
unsigned int i=1;
i< num_subjects;
i++)
213msg_vec.push_back(
msg);
214seqid_vec.push_back(query_id);
216sa_vec.push_back(tmp_align);
218ancill_vec.push_back(tmp_ancillary_data);
253 catch(std::exception & e) {
User-defined methods of the data storage class.
Auxiliary functions for BLAST.
Declarations for indexed blast databases.
#define CODON_LENGTH
Codons are always of length 3.
BlastDiagnostics * Blast_DiagnosticsCopy(const BlastDiagnostics *diagnostics)
Free the BlastDiagnostics structure and all substructures.
#define BLASTERR_DB_MEMORY_MAP
Database file error.
#define BLASTERR_DB_TOO_MANY_OPEN_FILES
Boolean Blast_QueryIsTranslated(EBlastProgramType p)
Returns true if the query is translated.
EBlastProgramType
Defines the engine's notion of the different applications of the BLAST algorithm.
Boolean Blast_SubjectIsPssm(EBlastProgramType p)
Returns true if the subject is PSSM.
Defines interface for retrieving sequence identifiers.
Boolean BlastSeqSrcGetIsProt(const BlastSeqSrc *seq_src)
Find if the Blast Sequence Source contains protein or nucleotide sequences.
const char * BlastSeqSrcGetName(const BlastSeqSrc *seq_src)
Get the Blast Sequence source name (e.g.
vector< CRef< objects::CSeq_align_set > > TSeqAlignVector
Vector of Seq-align-sets.
EResultType
Specifies the style of Seq-aligns that should be built from the internal BLAST data structures.
@ eDatabaseSearch
Seq-aligns in the style of a database search.
@ eSequenceComparison
Seq-aligns in the BLAST 2 Sequence style (one alignment per query-subject pair)
EProgram
This enumeration is to evolve into a task/program specific list that specifies sets of default parame...
@ eVecScreen
Vector screening.
@ eTblastx
Translated nucl-Translated nucl.
@ eBlastn
Nucl-Nucl (traditional blastn)
@ eBlastp
Protein-Protein.
@ eMapper
Jumper alignment for mapping.
@ eTblastn
Protein-Translated nucl.
@ eMegablast
Nucl-Nucl (traditional megablast)
@ eDiscMegablast
Nucl-Nucl using discontiguous megablast.
@ eBlastx
Translated nucl-Protein.
Class used to return ancillary data from a blast search, i.e.
Defines BLAST error codes (user errors included)
Encapsulates ALL the BLAST algorithm's options.
Search class to perform the preliminary stage of the BLAST search.
Index wrapper exceptions.
Search Results for All Queries.
@ eTooManyOpenFiles
Too many open files.
Implementation of the IBlastSeqInfoSrc interface to encapsulate retrieval of sequence identifiers and...
Abstract base class to encapsulate retrieval of sequence identifiers.
Class for the messages for an individual query sequence.
typedef for the messages for an entire BLAST search, which could be comprised of multiple query seque...
virtual CConstRef< objects::CSeq_loc > GetSeq_loc(size_t index)=0
Get the Seq_loc for the sequence indicated by index.
int CheckInternalData()
Checks that internal data is valid.
size_t GetNumberOfThreads(void) const
Accessor for the number of threads to use.
CRef< IBlastSeqInfoSrc > m_SeqInfoSrc
User-specified IBlastSeqInfoSrc implementation (may be used for non-standard databases,...
virtual void SetNumberOfThreads(size_t nthreads)
Mutator for the number of threads.
CRef< SInternalData > m_InternalData
Internal core data structures which are used in the preliminary and traceback stages of the search.
CRef< CBlastPrelimSearch > m_PrelimSearch
Object which runs the preliminary stage of the search.
string BlastErrorCode2String(Int2 error_code)
Returns a string containing a human-readable interpretation of the error_code passed as this function...
CLocalBlast(CRef< IQueryFactory > query_factory, CRef< CBlastOptionsHandle > opts_handle, const CSearchDatabase &dbinfo)
Constructor with database description.
CRef< SInternalData > Run()
Borrow the internal data and results results.
CRef< TBlastSeqSrc > m_SeqSrc
The source of subject sequence data.
TSearchMessages GetSearchMessages() const
Retrieve any error/warning messages that occurred during the search.
CRef< CSearchResultSet > Run()
Executes the search.
CRef< CSearchResultSet > Run()
Run the traceback search.
CRef< CBlastOptions > m_Opts
Options to use.
CRef< ILocalQueryData > MakeLocalQueryData(const CBlastOptions *opts)
Creates and caches an ILocalQueryData.
TSearchMessages m_Messages
Warnings and error messages.
bool IsBlastDb() const
Returns true if this object represents a BLAST database.
BlastDiagnostics * GetDiagnostics()
Get the diagnostics structure (deep copy, needs to be deleted by caller)
void SetResultType(EResultType type)
Specifies how the Seq-align-set returned as part of the results is formatted.
virtual void SetNumberOfThreads(size_t nthreads)
@inheritDoc
EBlastProgramType EProgramToEBlastProgramType(EProgram p)
Convert EProgram to EBlastProgramType.
static IBlastSeqInfoSrc * s_InitSeqInfoSrc(const BlastSeqSrc *seqsrc)
FIXME: this should be removed as soon as we safely can We will be able to do this once we are guarant...
size_t SplitQuery_GetChunkSize(EProgram program)
Returns the optimal chunk size for a given task.
void Combine(const TSearchMessages &other_msgs)
Combine another set of search messages with this one.
void SetFilteredQueryRegions(const TSeqLocInfoVector &masks)
Sets the filtered query regions.
CRef< CBlastTracebackSearch > m_TbackSearch
Object which runs the traceback stage of the search.
IBlastSeqInfoSrc * MakeSeqInfoSrc()
Retrieves or constructs the IBlastSeqInfoSrc.
string EProgramToTaskName(EProgram p)
Convert a EProgram enumeration value to a task name (as those used in the BLAST command line binaries...
std::string m_batch_num_str
virtual size_t GetNumQueries()=0
Get the number of queries.
TSeqLocInfoVector GetFilteredQueryRegions() const
Retrieve the filtered/masked query regions.
virtual size_t Size() const =0
Returns the size of the underlying container of sequences.
void GetQueryMessages(size_t index, TQueryMessages &qmsgs)
Retrieve error/warning messages for a specific query.
CRef< TBlastDiagnostics > m_Diagnostics
Diagnostic output from preliminary and traceback stages.
TSearchMessages GetSearchMessages() const
Retrieve any error/warning messages that occurred during the search.
Int4 GetNumExtensions()
Retrieve the number of extensions performed during the search.
CRef< CLocalDbAdapter > m_LocalDbAdapter
Local DB adaptor (if one was) passed to constructor.
CRef< IQueryFactory > m_QueryFactory
Query factory from which to obtain the query sequence data.
bool IsDbScanMode() const
Returns true if this is not a database but is database scanning mode.
@ eCoreBlastError
FIXME: need to interpret CORE errors.
TErrCode GetErrCode(void) const
Get error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
void Reset(void)
Reset reference object.
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty â pointing to an object and has a non-null value.
int32_t Int4
4-byte (32-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define USING_SCOPE(ns)
Use the specified namespace.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
Main class to perform a BLAST search on the local machine.
#define BLAST_PROF_MARK2(marker_val)
Defines a concrete strategy for the IBlastSeqInfoSrc interface for sequence identifiers retrieval fro...
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Return statistics from the BLAST search.
BlastUngappedStats * ungapped_stat
Ungapped extension counts.
Complete type definition of Blast Sequence Source ADT.
Int4 good_init_extends
Number of successful initial extensions, i.e.
Uniform BLAST Search Interface.
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