approx_table_entries,
Int4query_length,
109 #define NA_HITS_PER_CELL 3 289 Int4approx_table_entries,
310 return((lo & 0x00000003) ) |
311((lo & 0x000000f0) >> 2) |
312((lo & 0x00003c00) >> 4) |
313((lo & 0x000f0000) >> 6) |
314((lo & 0x03c00000) >> 8) |
315((lo & 0xf0000000) >> 10);
328 return((lo & 0x0000003f) ) |
329((lo & 0x00000f00) >> 2) |
330((lo & 0x0003c000) >> 4) |
331((lo & 0x00300000) >> 6) |
332((lo & 0xfc000000) >> 10);
346 return((lo & 0x00000003) ) |
347((lo & 0x000000f0) >> 2) |
348((lo & 0x00003c00) >> 4) |
349((lo & 0x00030000) >> 6) |
350((lo & 0x03c00000) >> 10) |
351((lo & 0xf0000000) >> 12) |
352((hi & 0x0000000c) << 18);
366 return((lo & 0x0000003f) ) |
367((lo & 0x00000300) >> 2) |
368((lo & 0x0003c000) >> 6) |
369((lo & 0x00300000) >> 8) |
370((lo & 0x0c000000) >> 12) |
371((lo & 0xc0000000) >> 14) |
372((hi & 0x0000000f) << 18);
386 return((lo & 0x00000003) ) |
387((lo & 0x000000f0) >> 2) |
388((lo & 0x00000c00) >> 4) |
389((lo & 0x000f0000) >> 8) |
390((lo & 0x00c00000) >> 10) |
391((lo & 0xf0000000) >> 14) |
392((hi & 0x0000000c) << 16) |
393((hi & 0x00000300) << 12);
407 return((lo & 0x0000003f) ) |
408((lo & 0x00000300) >> 2) |
409((lo & 0x0000c000) >> 6) |
410((lo & 0x00c00000) >> 12) |
411((lo & 0x0c000000) >> 14) |
412((hi & 0x00000003) << 14) |
413((hi & 0x000003f0) << 12);
426 return((lo & 0x00000003) ) |
427((lo & 0x000000f0) >> 2) |
428((lo & 0x00003c00) >> 4) |
429((lo & 0x000f0000) >> 6) |
430((lo & 0xffc00000) >> 8);
443 return((lo & 0x0000003f) ) |
444((lo & 0x00000f00) >> 2) |
445((lo & 0x0003c000) >> 4) |
446((lo & 0x00f00000) >> 6) |
447((lo & 0xfc000000) >> 8);
461 return((lo & 0x00000003) ) |
462((lo & 0x000000f0) >> 2) |
463((lo & 0x00003c00) >> 4) |
464((lo & 0x000f0000) >> 6) |
465((lo & 0x03c00000) >> 8) |
466((lo & 0xf0000000) >> 10) |
467((hi & 0x0000000c) << 20);
481 return((lo & 0x0000003f) ) |
482((lo & 0x00000f00) >> 2) |
483((lo & 0x0000c000) >> 4) |
484((lo & 0x00f00000) >> 8) |
485((lo & 0x0c000000) >> 10) |
486((lo & 0xc0000000) >> 12) |
487((hi & 0x0000000f) << 20);
501 return((lo & 0x00000003) ) |
502((lo & 0x000000f0) >> 2) |
503((lo & 0x00000c00) >> 4) |
504((lo & 0x000f0000) >> 8) |
505((lo & 0x03c00000) >> 10) |
506((lo & 0xf0000000) >> 12) |
507((hi & 0x0000000c) << 18) |
508((hi & 0x00000300) << 14);
522 return((lo & 0x0000003f) ) |
523((lo & 0x00000300) >> 2) |
524((lo & 0x0000c000) >> 6) |
525((lo & 0x00f00000) >> 10) |
526((lo & 0x0c000000) >> 12) |
527((hi & 0x00000003) << 16) |
528((hi & 0x000003f0) << 14);
545 switch(template_type) {
601 Int4* pv_counts,
Int4words_per_bit);
668 #define NA_WORDS_PER_HASH 3 669 #define NA_OFFSETS_PER_HASH 9Definitions used throughout BLAST.
#define NCBI_XBLAST_EXPORT
NULL operations for other cases.
Common definitions for protein and nucleotide lookup tables.
#define PV_ARRAY_TYPE
The pv_array 'native' type.
static NCBI_INLINE Int4 DiscontigIndex_11_21_Optimal(Uint8 accum)
Forms a lookup table index for the 11-of-21 optimal template in discontiguous megablast.
BlastSmallNaLookupTable * BlastSmallNaLookupTableDestruct(BlastSmallNaLookupTable *lookup)
Free a small nucleotide lookup table.
static NCBI_INLINE Int4 DiscontigIndex_11_18_Coding(Uint8 accum)
Forms a lookup table index for the 11-of-18 coding template in discontiguous megablast.
Int8 FindSparseIndex(Int8 index, PV_ARRAY_TYPE *pv_array, Int4 pv_array_bts, Int4 *pv_counts, Int4 words_per_bit)
Find an index into a sparse array using pv_array as a bit field.
Int2 FindSparseIndices(Int8 *in_array, Int8 *out_array, Int4 length, PV_ARRAY_TYPE *pv_array, Int4 pv_array_bts, Int4 *counts, Int4 elems_per_bit)
Find an index into a sparse array using pv_array as a bit field, for a batch of indices.
Int4 BlastNaLookupTableNew(BLAST_SequenceBlk *query, BlastSeqLoc *locations, BlastNaLookupTable **lut, const LookupTableOptions *opt, const QuerySetUpOptions *query_options, Int4 lut_width)
Create a new nucleotide lookup table.
ELookupTableType BlastChooseNaLookupTable(const LookupTableOptions *lookup_options, Int4 approx_table_entries, Int4 query_length, Int4 *lut_width)
choose the type of nucleotide lookup table to be used for a blast search
EDiscWordType
General types of discontiguous word templates.
BlastMBLookupTable * BlastMBLookupTableDestruct(BlastMBLookupTable *mb_lt)
Deallocate memory used by the Mega BLAST lookup table.
BlastNaHashLookupTable * BlastNaHashLookupTableDestruct(BlastNaHashLookupTable *lookup)
Free a nucleotide lookup table.
static NCBI_INLINE Int4 DiscontigIndex_11_16_Coding(Uint8 accum)
Forms a lookup table index for the 11-of-16 coding template in discontiguous megablast.
static NCBI_INLINE Int4 ComputeDiscontiguousIndex(Uint8 accum, EDiscTemplateType template_type)
Given an accumulator containing packed bases, compute the discontiguous word index specified by templ...
static NCBI_INLINE Int4 DiscontigIndex_11_18_Optimal(Uint8 accum)
Forms a lookup table index for the 11-of-18 optimal template in discontiguous megablast.
struct BlastNaLookupTable BlastNaLookupTable
The basic lookup table structure for blastn searches.
Int2 BlastMBLookupTableNew(BLAST_SequenceBlk *query, BlastSeqLoc *location, BlastMBLookupTable **mb_lt_ptr, const LookupTableOptions *lookup_options, const QuerySetUpOptions *query_options, Int4 approx_table_entries, Int4 lut_width, BlastSeqSrc *seqsrc)
Create the lookup table for Mega BLAST.
static NCBI_INLINE Int4 DiscontigIndex_12_16_Coding(Uint8 accum)
Forms a lookup table index for the 12-of-16 coding template in discontiguous megablast.
static NCBI_INLINE Int4 DiscontigIndex_12_18_Coding(Uint8 accum)
Forms a lookup table index for the 12-of-18 coding template in discontiguous megablast.
static NCBI_INLINE Int4 DiscontigIndex_12_21_Optimal(Uint8 accum)
Forms a lookup table index for the 12-of-21 optimal template in discontiguous megablast.
EDiscTemplateType
Enumeration of all discontiguous word templates; the enumerated values encode the weight,...
@ eDiscTemplate_12_18_Optimal
@ eDiscTemplate_11_18_Optimal
@ eDiscTemplateContiguous
@ eDiscTemplate_12_16_Optimal
@ eDiscTemplate_12_16_Coding
@ eDiscTemplate_11_21_Coding
@ eDiscTemplate_11_18_Coding
@ eDiscTemplate_12_21_Coding
@ eDiscTemplate_11_16_Optimal
@ eDiscTemplate_11_21_Optimal
@ eDiscTemplate_12_21_Optimal
@ eDiscTemplate_12_18_Coding
@ eDiscTemplate_11_16_Coding
static NCBI_INLINE Int4 DiscontigIndex_11_21_Coding(Uint8 accum)
Forms a lookup table index for the 11-of-21 coding template in discontiguous megablast.
Int4 BlastNaHashLookupTableNew(BLAST_SequenceBlk *query, BlastSeqLoc *locations, BlastNaHashLookupTable **lut, const LookupTableOptions *opt, const QuerySetUpOptions *query_options, BlastSeqSrc *seqsrc, Uint4 num_threads)
static NCBI_INLINE Int4 DiscontigIndex_11_16_Optimal(Uint8 accum)
Forms a lookup table index for the 11-of-16 optimal template in discontiguous megablast.
struct NaLookupBackboneCell NaLookupBackboneCell
structure defining one cell of the compacted lookup table
struct NaHashLookupBackboneCell NaHashLookupBackboneCell
Structure defining one cell of the compacted lookup table.
struct BlastNaHashLookupTable BlastNaHashLookupTable
static NCBI_INLINE Int4 DiscontigIndex_12_16_Optimal(Uint8 accum)
Forms a lookup table index for the 12-of-16 optimal template in discontiguous megablast.
#define NA_HITS_PER_CELL
maximum number of hits in one lookup table cell
Int4 BlastSmallNaLookupTableNew(BLAST_SequenceBlk *query, BlastSeqLoc *locations, BlastSmallNaLookupTable **lut, const LookupTableOptions *opt, const QuerySetUpOptions *query_options, Int4 lut_width)
Create a new small nucleotide lookup table.
static NCBI_INLINE Int4 DiscontigIndex_12_21_Coding(Uint8 accum)
Forms a lookup table index for the 12-of-21 coding template in discontiguous megablast.
static NCBI_INLINE Int4 DiscontigIndex_12_18_Optimal(Uint8 accum)
Forms a lookup table index for the 12-of-18 optimal template in discontiguous megablast.
BlastNaLookupTable * BlastNaLookupTableDestruct(BlastNaLookupTable *lookup)
Free a nucleotide lookup table.
struct BlastMBLookupTable BlastMBLookupTable
The lookup table structure used for Mega BLAST.
struct BlastSmallNaLookupTable BlastSmallNaLookupTable
Lookup table structure for blastn searches with small queries.
The structures and functions in blast_options.
ELookupTableType
Types of the lookup table.
Declaration of ADT to retrieve sequences for the BLAST engine.
static int lookup(const char *name, const struct lookup_int *table)
static const char location[]
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
int64_t Int8
8-byte (64-bit) signed integer
uint64_t Uint8
8-byte (64-bit) unsigned integer
int8_t Int1
1-byte (8-bit) signed integer
Type and macro definitions from C toolkit that are not defined in C++ toolkit.
#define NCBI_INLINE
"inline" seems to work on our remaining in-house compilers (WorkShop, Compaq, ICC,...
Uint1 Boolean
bool replacment for C
Structure to hold a sequence.
The lookup table structure used for Mega BLAST.
Int4 num_words_added
Number of words added to the l.t.
Int4 lut_word_length
number of letters in a lookup table word
Int4 pv_array_bts
The exponent of 2 by which pv_array is smaller than the backbone.
BlastSeqLoc * masked_locations
masked locations, only non-NULL for soft-masking.
Int4 * next_pos2
Extra positions for the second template.
Int4 * hashtable2
Array of positions for second template.
void * scansub_callback
function for scanning subject sequences
Int4 * hashtable
Array of positions.
Int4 num_unique_pos_added
Number of positions added to the l.t.
PV_ARRAY_TYPE * pv_array
Presence vector, used for quick presence check.
Boolean stride
is lookup table created with a stride
Int8 hashsize
= 4^(lut_word_length)
EDiscTemplateType template_type
Type of the discontiguous word template.
Int4 scan_step
Step size for scanning the database.
Int4 longest_chain
Largest number of query positions for a given word.
Int4 word_length
number of exact letter matches that will trigger an ungapped extension
Boolean discontiguous
Are discontiguous words used?
Int4 * next_pos
Extra positions stored here.
void * extend_callback
function for extending hits
Boolean two_templates
Use two templates simultaneously.
EDiscTemplateType second_template_type
Type of the second discontiguous word template.
Int4 template_length
Length of the discontiguous word template.
Int4 mask
part of index to mask off, that is, top (wordsize*charsize) bits should be discarded.
Int4 * overflow
the overflow array for the compacted lookup table
Int4 longest_chain
length of the longest chain on the backbone
Int4 word_length
Length in bases of the full word match required to trigger extension.
Int4 lut_word_length
Length in bases of a word indexed by the lookup table.
Int4 offsets_size
Number of elements in the overflow array.
Int4 scan_step
number of bases between successive words
Int4 pv_array_bts
power of 2 by which to divide a word to access PV_ARRAY_TYPE element in pv array
void * hash_callback
hash function to be used for hash table
BlastSeqLoc * masked_locations
masked locations, only non-NULL for soft-masking.
NaHashLookupBackboneCell * thick_backbone
the "thick" backbone.
void * scansub_callback
function for scanning subject sequences
PV_ARRAY_TYPE * pv
Presence vector bitfield; bit positions that are set indicate that the corresponding thick backbone c...
Int4 backbone_size
number of cells in the backbone
The basic lookup table structure for blastn searches.
Int4 scan_step
number of bases between successive words
Int4 longest_chain
length of the longest chain on the backbone
Int4 * overflow
the overflow array for the compacted lookup table
Int4 mask
part of index to mask off, that is, top (wordsize*charsize) bits should be discarded.
BlastSeqLoc * masked_locations
masked locations, only non-NULL for soft-masking.
PV_ARRAY_TYPE * pv
Presence vector bitfield; bit positions that are set indicate that the corresponding thick backbone c...
Int4 lut_word_length
Length in bases of a word indexed by the lookup table.
void * scansub_callback
function for scanning subject sequences
NaLookupBackboneCell * thick_backbone
the "thick" backbone.
Int4 word_length
Length in bases of the full word match required to trigger extension.
void * extend_callback
function for extending hits
Int4 overflow_size
Number of elements in the overflow array.
Int4 backbone_size
number of cells in the backbone
Used to hold a set of positions, mostly used for filtering.
Complete type definition of Blast Sequence Source ADT.
Lookup table structure for blastn searches with small queries.
Int4 backbone_size
number of cells in the backbone
Int4 scan_step
number of bases between successive words
Int4 word_length
Length in bases of the full word match required to trigger extension.
Int4 mask
part of index to mask off, that is, top (wordsize*charsize) bits should be discarded.
Int2 * overflow
the overflow array for the compacted lookup table
void * extend_callback
function for extending hits
void * scansub_callback
function for scanning subject sequences
Int4 longest_chain
length of the longest chain on the backbone
BlastSeqLoc * masked_locations
masked locations, only non-NULL for soft-masking.
Int2 * final_backbone
backbone structure used when scanning for hits
Int4 lut_word_length
Length in bases of a word indexed by the lookup table.
Int4 overflow_size
Number of elements in the overflow array.
Options needed to construct a lookup table Also needed: query sequence and query length.
Structure defining one cell of the compacted lookup table.
Int1 num_offsets[3]
number of offsets for each word if there are fewer than 3
Uint4 words[3]
words stored under this hash value
Int4 offsets[9]
offset locations for each word
Int1 num_words
number of words stored under the same hash value
structure defining one cell of the compacted lookup table
union NaLookupBackboneCell::@8 payload
UNION that specifies either entries stored right on the backbone if fewer than NA_HITS_PER_CELL are p...
Int4 entries[3]
if the number of hits for this cell is NA_HITS_PER_CELL or less, the hits are all stored directly in ...
Int4 num_used
number of hits stored for this cell
Int4 overflow_cursor
integer offset into the overflow array where the list of hits for this cell begins
Options required for setting up the query sequence.
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