(actual_num_threads < array->num_elems);
70 for(
i= actual_num_threads;
i<
array->num_elems;
i++) {
73 array->num_elems = actual_num_threads;
89 if( !retval->
tld[
i] ) {
101 for(
i= 0;
i<
array->num_elems;
i++) {
116 if(!
data|| !num_queries)
118*num_queries =
data->tld[0]->results->num_queries;
120 if( !(retval = (
Uint4*)
calloc(*num_queries,
sizeof(*retval))) ) {
124 for(
i= 0;
i<
data->num_elems;
i++) {
128 for(query_idx = 0; query_idx < *num_queries; query_idx++) {
142 Int4num_queries = 0, query_idx = 0, hitlist_size = 0;
151 sfree(num_hsplists_per_query);
154hitlist_size =
array->tld[0]->hit_params->options->hitlist_size;
156 for(query_idx = 0; query_idx < num_queries; query_idx++) {
173 for(tid = 0; tid <
array->num_elems; tid++) {
178 if( !thread_hitlist ) {
198 sfree(num_hsplists_per_query);
218 for(
i= 0;
i<
array->num_elems;
i++) {
221ext_options, hit_options, query_info, sbp,
222&
array->tld[
i]->score_params,
223&
array->tld[
i]->ext_params,
224&
array->tld[
i]->hit_params,
225&
array->tld[
i]->eff_len_params,
226&
array->tld[
i]->gap_align);
#define sfree(x)
Safe free a pointer: belongs to a higher level header.
BlastGapAlignStruct * BLAST_GapAlignStructFree(BlastGapAlignStruct *gap_align)
Deallocates memory in the BlastGapAlignStruct structure.
BlastHSPResults * Blast_HSPResultsFree(BlastHSPResults *results)
Deallocate memory for BLAST results.
Boolean Blast_HSPList_IsEmpty(const BlastHSPList *hsp_list)
Returns true if the BlastHSPList contains no HSPs.
BlastHitList * Blast_HitListNew(Int4 hitlist_size)
Allocate memory for a hit list of a given size.
BlastHSPResults * Blast_HSPResultsNew(Int4 num_queries)
Initialize the results structure.
Private interfaces to support the multi-threaded traceback in conjunction with the BlastHSPStream.
#define BLASTERR_MEMORY
System error: out of memory condition.
#define BLASTERR_INVALIDPARAM
Invalid parameter: possible programmer error or pre-condition not met.
BlastHitSavingParameters * BlastHitSavingParametersFree(BlastHitSavingParameters *parameters)
Deallocate memory for BlastHitSavingOptions*.
BlastEffectiveLengthsParameters * BlastEffectiveLengthsParametersFree(BlastEffectiveLengthsParameters *parameters)
Deallocate memory for BlastEffectiveLengthsParameters*.
BlastExtensionParameters * BlastExtensionParametersFree(BlastExtensionParameters *parameters)
Deallocate memory for BlastExtensionParameters.
BlastScoringParameters * BlastScoringParametersFree(BlastScoringParameters *parameters)
Deallocate memory for BlastScoringParameters.
EBlastProgramType
Defines the engine's notion of the different applications of the BLAST algorithm.
BlastQueryInfo * BlastQueryInfoDup(const BlastQueryInfo *query_info)
Duplicates the query information structure.
BlastQueryInfo * BlastQueryInfoFree(BlastQueryInfo *query_info)
Deallocate memory for query information structure.
BlastSeqSrc * BlastSeqSrcCopy(const BlastSeqSrc *seq_src)
Copy function: needed to guarantee thread safety.
BlastSeqSrc * BlastSeqSrcFree(BlastSeqSrc *seq_src)
Frees the BlastSeqSrc structure by invoking the destructor function set by the user-defined construct...
Utilities initialize/setup BLAST.
Int2 BLAST_GapAlignSetUp(EBlastProgramType program_number, const BlastSeqSrc *seq_src, const BlastScoringOptions *scoring_options, const BlastEffectiveLengthsOptions *eff_len_options, const BlastExtensionOptions *ext_options, const BlastHitSavingOptions *hit_options, BlastQueryInfo *query_info, BlastScoreBlk *sbp, BlastScoringParameters **score_params, BlastExtensionParameters **ext_params, BlastHitSavingParameters **hit_params, BlastEffectiveLengthsParameters **eff_len_params, BlastGapAlignStruct **gap_align)
Set up the auxiliary structures for gapped alignment / traceback only.
static Uint4 * s_CountHspListsPerQuery(const SThreadLocalDataArray *data, Int4 *num_queries)
SThreadLocalData * SThreadLocalDataFree(SThreadLocalData *tld)
Deallocate the SThreadLocalData structure passed in.
void SThreadLocalDataArrayTrim(SThreadLocalDataArray *array, Uint4 actual_num_threads)
Reduce the size of the array structure passed in to match the value of the actual_num_threads paramet...
Int2 SThreadLocalDataArraySetup(SThreadLocalDataArray *array, EBlastProgramType program, const BlastScoringOptions *score_options, const BlastEffectiveLengthsOptions *eff_len_options, const BlastExtensionOptions *ext_options, const BlastHitSavingOptions *hit_options, BlastQueryInfo *query_info, BlastScoreBlk *sbp, const BlastSeqSrc *seqsrc)
Set up a newly allocated SThreadLocalDataArray object so it can be used by multiple threads.
SThreadLocalDataArray * SThreadLocalDataArrayFree(SThreadLocalDataArray *array)
Deallocate the SThreadLocalDataArray structure passed in.
SThreadLocalData * SThreadLocalDataNew()
Allocate a new SThreadLocalData structure.
SThreadLocalDataArray * SThreadLocalDataArrayNew(Uint4 num_threads)
Allocate a new SThreadLocalDataArray structure.
BlastHSPResults * SThreadLocalDataArrayConsolidateResults(SThreadLocalDataArray *array)
Extracts a single, consolidated BlastHSPResults structure from its input for single threaded processi...
Private interface to support the multi-threaded traceback.
int16_t Int2
2-byte (16-bit) signed integer
int32_t Int4
4-byte (32-bit) signed integer
uint32_t Uint4
4-byte (32-bit) unsigned integer
#define MIN(a, b)
returns smaller of a and b.
#define ASSERT
macro for assert.
#define MAX(a, b)
returns larger of a and b.
Options for setting up effective lengths and search spaces.
Options used for gapped extension These include: a.
BlastScoreBlk * sbp
Pointer to the scoring information block.
The structure to hold all HSPs for a given sequence after the gapped alignment.
The structure to contain all BLAST results, for multiple queries.
BlastHitList ** hitlist_array
Array of results for individual query sequences.
Int4 num_queries
Number of query sequences.
The structure to contain all BLAST results for one query sequence.
double worst_evalue
Highest of the best e-values among the HSP lists.
BlastHSPList ** hsplist_array
Array of HSP lists for individual database hits.
Int4 hsplist_count
Filled size of the HSP lists array.
Int4 low_score
The lowest of the best scores among the HSP lists.
Options used when evaluating and saving hits These include: a.
The query related information.
int num_queries
Number of query sequences.
Structure used for scoring calculations.
Scoring options block Used to produce the BlastScoreBlk structure This structure may be needed for lo...
Complete type definition of Blast Sequence Source ADT.
Data structure to support MT traceback: this encapsulates the data that each thread modifies.
BlastGapAlignStruct * gap_align
BlastHitSavingParameters * hit_params
Hit saving parameters.
BlastScoringParameters * score_params
Scoring parameters, allocated anew in BLAST_GapAlignSetUp.
BlastSeqSrc * seqsrc
BlastSeqSrc so that each thread can set its own partial fetching.
BlastExtensionParameters * ext_params
Gapped extension parameters, allocated anew in BLAST_GapAlignSetUp.
BlastHSPResults * results
Structure to store results from this thread.
BlastEffectiveLengthsParameters * eff_len_params
Parameters for effective lengths calculations.
BlastQueryInfo * query_info
The effective search space is modified.
voidp calloc(uInt items, uInt size)
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