68 #if ((!defined(NCBI_COMPILER_WORKSHOP) || (NCBI_COMPILER_VERSION > 550)) && \
69 (!defined(NCBI_COMPILER_MIPSPRO)) )
70 static Uint1 template_11_16[] = {1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1};
71 static Uint1 template_11_18[] = {1,0,1,1,0,1,1,0,0,1,0,1,1,0,1,1,0,1};
72 static Uint1 template_11_21[] = {1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1};
73 static Uint1 template_11_16_opt[] = {1,1,1,0,0,1,0,1,1,0,1,1,0,1,1,1};
74 static Uint1 template_11_18_opt[] = {1,1,1,0,1,0,0,1,0,1,1,0,0,1,0,1,1,1};
75 static Uint1 template_11_21_opt[] = {1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,1,1};
77 static Uint1 template_12_16[] = {1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,1};
78 static Uint1 template_12_18[] = {1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1};
79 static Uint1 template_12_21[] = {1,0,0,1,0,1,1,0,1,1,0,1,1,0,0,1,0,1,1,0,1};
80 static Uint1 template_12_16_opt[] = {1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1};
81 static Uint1 template_12_18_opt[] = {1,1,1,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1};
82 static Uint1 template_12_21_opt[] = {1,1,1,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0,1,1,1};
84 #define TINY_GI 80982444
86 #define MED_GI 19572546
87 #define LG_GI 39919153
88 #define SUBJECT_GI 39103910
90 #define NULL_NUCL_SENTINEL 0xf
110 lookup_segments =
NULL;
111 lookup_wrap_ptr =
NULL;
115 hitsaving_options =
NULL;
124 sprintf(
buf,
"gi|%d", query_gi);
142 BOOST_REQUIRE_EQUAL(0, status);
145 BOOST_REQUIRE_EQUAL(0, status);
147 BOOST_REQUIRE(query_blk !=
NULL);
149 BOOST_REQUIRE(query_blk->
length > 0);
151 BOOST_REQUIRE(query_blk !=
NULL);
167 const int kStrandLength = (query_blk->
length - 1)/2;
194 sprintf(
buf,
"gi|%d", subject_gi);
215 BOOST_REQUIRE_EQUAL(0, status);
216 BOOST_REQUIRE(subject_blk !=
NULL);
221 BOOST_REQUIRE_EQUAL(0, status);
223 BOOST_REQUIRE(subject_blk->
length > 0);
241 BOOST_REQUIRE_EQUAL(0, status);
247 BOOST_REQUIRE_EQUAL(0, status);
252 BOOST_REQUIRE_EQUAL(0, status);
262 BOOST_REQUIRE_EQUAL(0, status);
266 BOOST_REQUIRE(query_blk !=
NULL);
267 const double kScalingFactor = 1.0;
270 program_number, &sbp, kScalingFactor,
271 &blast_message,
NULL);
272 BOOST_REQUIRE_EQUAL(0, status);
274 BOOST_REQUIRE(blast_message ==
NULL);
294 BOOST_REQUIRE_EQUAL(0, status);
297 BOOST_REQUIRE(query_options ==
NULL);
304 BOOST_REQUIRE(offset_pairs !=
NULL);
307 BOOST_REQUIRE(lookup_options ==
NULL);
309 BOOST_REQUIRE(score_options ==
NULL);
320 SetUpLookupTable(mb_lookup, disco_type, disco_size, word_size);
347 if (hitsaving_options)
357 TearDownLookupTable();
370 lookup_wrap_ptr->
lut;
375 lookup_wrap_ptr->
lut;
378 BOOST_REQUIRE(callback !=
NULL);
379 return callback(lookup_wrap_ptr, subject_blk,
380 offset_pairs, max_hits, scan_range);
386 Int4 query_bases, subject_bases;
388 Int4 bases_per_lut_word;
390 Uint4 last_s_off = 0;
397 BOOST_REQUIRE(query_blk !=
NULL);
398 BOOST_REQUIRE(subject_blk !=
NULL);
399 BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
400 BOOST_REQUIRE(offset_pairs !=
NULL);
401 BOOST_REQUIRE(lookup_segments !=
NULL);
403 subject_bases = subject_blk->
length;
404 query_bases = query_blk->
length;
416 scan_range[1] = subject_bases - bases_per_lut_word;
422 scan_range[1] = subject_bases - bases_per_lut_word;
425 while (scan_range[0] <= scan_range[1])
427 hits = RunScanSubject(scan_range,
442 BOOST_REQUIRE(offset_pairs[0].qs_offsets.
s_off > last_s_off);
455 for (
int i = 1;
i < hits;
i++)
457 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off <=
458 (
Uint4)(query_bases - bases_per_lut_word) &&
460 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
s_off <
461 (
Uint4)subject_bases);
463 if (offset_pairs[
i].qs_offsets.
s_off ==
468 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off <
473 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off >
479 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
s_off >
492 Int4 hits, found_hits, expected_hits;
500 found_hits = expected_hits = 0;
502 BOOST_REQUIRE(query_blk !=
NULL);
503 BOOST_REQUIRE(subject_blk !=
NULL);
504 BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
505 BOOST_REQUIRE(offset_pairs !=
NULL);
506 BOOST_REQUIRE(lookup_segments !=
NULL);
508 subject_bases = subject_blk->
length;
527 while (scan_range[0] <= scan_range[1])
529 hits = RunScanSubject(scan_range,
532 expected_hits += hits;
546 while (scan_range[0] <= scan_range[1])
548 hits = RunScanSubject(scan_range,
550 BOOST_REQUIRE(hits <= new_max_size);
554 BOOST_REQUIRE_EQUAL(found_hits, expected_hits);
561 Int4 hits, found_hits, expected_hits;
563 Int4 bases_per_lut_word;
569 found_hits = expected_hits = 0;
571 BOOST_REQUIRE(query_blk !=
NULL);
572 BOOST_REQUIRE(subject_blk !=
NULL);
573 BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
574 BOOST_REQUIRE(offset_pairs !=
NULL);
575 BOOST_REQUIRE(lookup_segments !=
NULL);
577 subject_bases = subject_blk->
length;
589 scan_range[1] = subject_bases - bases_per_lut_word;
595 scan_range[1] = subject_bases - bases_per_lut_word;
598 while (scan_range[0] <= scan_range[1])
600 hits = RunScanSubject(scan_range,
605 for (
int i = 0;
i < hits;
i++)
607 Uint4 query_word = 0;
608 Uint4 query_word2 = 0;
609 Uint4 subject_word = 0;
610 Uint4 subject_word2 = 0;
611 Int4 s_index, s_byte;
619 Int4 template_size = 0;
681 for (j = 0; j < template_size; j++, s_index++) {
682 if (disco_template[j] == 1) {
683 query_word = (query_word << 2) | q[j];
684 s_byte = subject_blk->
sequence[ s_index /
686 subject_word = (subject_word << 2) |
694 for (j = 0; j < template_size; j++, s_index++) {
695 if (disco_template2[j] == 1) {
696 query_word2 = (query_word2 << 2) | q[j];
697 s_byte = subject_blk->
sequence[ s_index /
699 subject_word2 = (subject_word2 << 2) |
709 for (j = 0; j < bases_per_lut_word; j++, s_index++) {
710 query_word = (query_word << 2) | q[j];
711 s_byte = subject_blk->
sequence[ s_index /
713 subject_word = (subject_word << 2) |
719 BOOST_REQUIRE(query_word == subject_word ||
720 query_word2 == subject_word2);
722 BOOST_REQUIRE_EQUAL(query_word, subject_word);
731 const Int4 subject_bases = subject_blk->
length;
733 BOOST_REQUIRE(query_blk !=
NULL);
734 BOOST_REQUIRE(subject_blk !=
NULL);
735 BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
736 BOOST_REQUIRE(offset_pairs !=
NULL);
737 BOOST_REQUIRE(lookup_segments !=
NULL);
739 SSeqRange ranges2scan[] = { {0, 501}, {700, 1001} , {subject_bases, subject_bases}};
740 const size_t kNumRanges = (
sizeof(ranges2scan)/
sizeof(*ranges2scan));
745 sbp, query_info, subject_bases,
747 BOOST_REQUIRE_EQUAL(0, retval);
751 hit_params, lookup_wrap_ptr,
752 sbp, query_info, subject_bases,
754 BOOST_REQUIRE_EQUAL(0, retval);
758 BOOST_REQUIRE_EQUAL(0, retval);
764 word_params, ewp, offset_pairs,
766 init_hitlist, &ungapped_stats);
767 BOOST_REQUIRE_EQUAL(0, retval);
770 for (
int i = 0;
i < init_hitlist->
total;
i++) {
773 bool hit_found =
FALSE;
774 for (
size_t j = 0; j < kNumRanges; j++) {
775 if ( s_off >= (
Uint4)ranges2scan[j].left &&
776 s_off < (
Uint4)ranges2scan[j].right ) {
781 BOOST_REQUIRE( hit_found );
785 BOOST_REQUIRE(hit_params ==
NULL);
787 BOOST_REQUIRE(word_params ==
NULL);
789 BOOST_REQUIRE(ewp ==
NULL);
791 BOOST_REQUIRE(init_hitlist ==
NULL);
805 const Int4 kTemplateSize = 21;
814 SetUpSubject(313959);
816 subject_bases = subject_blk->length;
819 while (scan_range[0] <= scan_range[1])
821 hits = RunScanSubject(scan_range,
826 SetUpSubject(271065);
828 subject_bases = subject_blk->length;
831 while (scan_range[0] <= scan_range[1])
833 hits = RunScanSubject(scan_range,
839 for (
i = 0;
i < hits;
i++) {
840 BOOST_REQUIRE(offset_pairs[
i].qs_offsets.s_off <
841 (
Uint4)subject_bases);
846 #define DECLARE_TEST(name, gi, d_size, d_type, wordsize) \
847 BOOST_AUTO_TEST_CASE( name##ScanOffsetSize##wordsize ) { \
848 SetUpQuerySubjectAndLUT(TRUE, gi, (EDiscWordType)d_type, d_size, wordsize);\
849 ScanOffsetTestCore((EDiscWordType)d_type); \
850 ScanCheckHitsCore((EDiscWordType)d_type); \
851 ScanMaxHitsTestCore(); \
852 SkipMaskedRangesCore(); \
Declares the CBl2Seq (BLAST 2 Sequences) class.
union BlastOffsetPair BlastOffsetPair
This symbol enables the verbose option in makeblastdb and other BLAST+ search command line applicatio...
#define COMPRESSION_RATIO
Compression ratio of nucleotide bases (4 bases in 1 byte)
#define sfree(x)
Safe free a pointer: belongs to a higher level header.
Declarations of static arrays used to define some NCBI encodings to be used in a toolkit independent ...
BlastInitHitList * BLAST_InitHitListNew(void)
Allocate memory for the BlastInitHitList structure.
Blast_ExtendWord * BlastExtendWordFree(Blast_ExtendWord *ewp)
Deallocate memory for the word extension structure.
BlastInitHitList * BLAST_InitHitListFree(BlastInitHitList *init_hitlist)
Free memory for the BlastInitList structure.
Int2 BlastExtendWordNew(Uint4 query_length, const BlastInitialWordParameters *word_params, Blast_ExtendWord **ewp_ptr)
Initializes the word extension structure.
BlastSeqLoc * BlastSeqLocFree(BlastSeqLoc *loc)
Deallocate all BlastSeqLoc objects in a chain.
BlastSeqLoc * BlastSeqLocNew(BlastSeqLoc **head, Int4 from, Int4 to)
Create and initialize a new sequence interval.
Blast_Message * Blast_MessageFree(Blast_Message *blast_msg)
Deallocates message memory.
Routines for creating nucleotide BLAST lookup tables.
EDiscWordType
General types of discontiguous word templates.
@ eDiscTemplate_12_18_Optimal
@ eDiscTemplate_11_18_Optimal
@ 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
Routines for scanning nucleotide BLAST lookup tables.
Int4(* TNaScanSubjectFunction)(const LookupTableWrap *lookup_wrap, const BLAST_SequenceBlk *subject, BlastOffsetPair *offset_pairs, Int4 max_hits, Int4 *scan_range)
Generic prototype for nucleotide subject scanning routines.
void BlastChooseNucleotideScanSubject(LookupTableWrap *lookup_wrap)
Choose the most appropriate function to scan through nucleotide subject sequences.
Definitions which are dependant on the NCBI C++ Object Manager.
BlastHitSavingOptions * BlastHitSavingOptionsFree(BlastHitSavingOptions *options)
Deallocate memory for BlastHitSavingOptions.
Int2 BlastQuerySetUpOptionsNew(QuerySetUpOptions **options)
Allocate memory for QuerySetUpOptions and fill with default values.
#define BLAST_GAP_OPEN_NUCL
default gap open penalty (blastn)
Int2 BLAST_FillScoringOptions(BlastScoringOptions *options, EBlastProgramType program, Boolean greedy_extension, Int4 penalty, Int4 reward, const char *matrix, Int4 gap_open, Int4 gap_extend)
Fill non-default values in the BlastScoringOptions structure.
BlastInitialWordOptions * BlastInitialWordOptionsFree(BlastInitialWordOptions *options)
Deallocate memory for BlastInitialWordOptions.
Int2 BlastScoringOptionsNew(EBlastProgramType program, BlastScoringOptions **options)
Allocate memory for BlastScoringOptions and fill with default values.
Int2 BLAST_FillLookupTableOptions(LookupTableOptions *options, EBlastProgramType program, Boolean is_megablast, double threshold, Int4 word_size)
Allocate memory for lookup table options and fill with default values.
Int2 LookupTableOptionsNew(EBlastProgramType program, LookupTableOptions **options)
Allocate memory for lookup table options and fill with default values.
BlastExtensionOptions * BlastExtensionOptionsFree(BlastExtensionOptions *options)
Deallocate memory for BlastExtensionOptions.
Int2 BlastHitSavingOptionsNew(EBlastProgramType program, BlastHitSavingOptions **options, Boolean gapped_calculation)
Allocate memory for BlastHitSavingOptions.
#define BLAST_GAP_EXTN_NUCL
default gap open penalty (blastn)
Int2 BlastInitialWordOptionsNew(EBlastProgramType program, BlastInitialWordOptions **options)
Allocate memory for BlastInitialWordOptions and fill with default values.
@ eSmallNaLookupTable
lookup table for blastn with small query
@ eMBLookupTable
megablast lookup table (includes both contiguous and discontiguous megablast)
BlastScoringOptions * BlastScoringOptionsFree(BlastScoringOptions *options)
Deallocate memory for BlastScoringOptions.
LookupTableOptions * LookupTableOptionsFree(LookupTableOptions *options)
Deallocates memory for LookupTableOptions*.
QuerySetUpOptions * BlastQuerySetUpOptionsFree(QuerySetUpOptions *options)
Deallocate memory for QuerySetUpOptions.
Int2 BlastExtensionOptionsNew(EBlastProgramType program, BlastExtensionOptions **options, Boolean gapped)
Allocate memory for BlastExtensionOptions and fill with default values.
BlastHitSavingParameters * BlastHitSavingParametersFree(BlastHitSavingParameters *parameters)
Deallocate memory for BlastHitSavingOptions*.
BlastInitialWordParameters * BlastInitialWordParametersFree(BlastInitialWordParameters *parameters)
Deallocate memory for BlastInitialWordParameters.
Int2 BlastInitialWordParametersNew(EBlastProgramType program_number, const BlastInitialWordOptions *word_options, const BlastHitSavingParameters *hit_params, const LookupTableWrap *lookup_wrap, const BlastScoreBlk *sbp, BlastQueryInfo *query_info, Uint4 subject_length, BlastInitialWordParameters **parameters)
Allocate memory for BlastInitialWordParameters and set x_dropoff.
Int2 BlastHitSavingParametersNew(EBlastProgramType program_number, const BlastHitSavingOptions *options, const BlastScoreBlk *sbp, const BlastQueryInfo *query_info, Int4 avg_subject_length, Int4 compositionBasedStats, BlastHitSavingParameters **parameters)
Allocate memory and initialize the BlastHitSavingParameters structure.
EBlastProgramType
Defines the engine's notion of the different applications of the BLAST algorithm.
BlastQueryInfo * BlastQueryInfoFree(BlastQueryInfo *query_info)
Deallocate memory for query information structure.
BlastQueryInfo * BlastQueryInfoNew(EBlastProgramType program, int num_queries)
Allocate memory for query information structure.
Utilities initialize/setup BLAST.
Int2 BlastSetup_ScoreBlkInit(BLAST_SequenceBlk *query_blk, const BlastQueryInfo *query_info, const BlastScoringOptions *scoring_options, EBlastProgramType program_number, BlastScoreBlk **sbpp, double scale_factor, Blast_Message **blast_message, GET_MATRIX_PATH get_path)
Initializes the score block structure.
Definitions and prototypes used by blast_stat.c to calculate BLAST statistics.
BlastScoreBlk * BlastScoreBlkFree(BlastScoreBlk *sbp)
Deallocates BlastScoreBlk as well as all associated structures.
BLAST_SequenceBlk * BlastSequenceBlkFree(BLAST_SequenceBlk *seq_blk)
Deallocate memory for a sequence block.
Int2 BlastSeqBlkSetSeqRanges(BLAST_SequenceBlk *seq_blk, SSeqRange *seq_ranges, Uint4 num_seq_ranges, Boolean copy_seq_ranges, ESubjectMaskingType mask_type)
Sets the seq_range and related fields appropriately in the BLAST_SequenceBlk structure.
Int2 BlastSeqBlkSetSequence(BLAST_SequenceBlk *seq_blk, const Uint1 *sequence, Int4 seqlen)
Stores the sequence in the sequence block structure.
Int2 BlastSeqBlkSetCompressedSequence(BLAST_SequenceBlk *seq_blk, const Uint1 *sequence)
Stores the compressed nucleotide sequence in the sequence block structure for the subject sequence wh...
Int2 BlastSeqBlkNew(BLAST_SequenceBlk **retval)
Allocates a new sequence block structure.
static CTestObjMgr & Instance()
TSeqPos length
Length of the buffer above (not necessarily sequence length!)
TAutoUint1Ptr data
Sequence data.
SBlastSequence GetSequence(const objects::CSeq_loc &sl, EBlastEncoding encoding, objects::CScope *scope, objects::ENa_strand strand=objects::eNa_strand_plus, ESentinelType sentinel=eSentinels, std::string *warnings=NULL)
Retrieves a sequence using the object manager.
@ eBlastEncodingNucleotide
Special encoding for preliminary stage of BLAST: permutation of NCBI4na.
@ eBlastEncodingNcbi2na
NCBI2na.
@ eNoSentinels
Do not use sentinel bytes.
@ eSentinels
Use sentinel bytes.
element_type * release(void)
Release will release ownership of pointer to caller.
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
uint8_t Uint1
1-byte (8-bit) unsigned integer
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
ENa_strand
strand of nucleic acid
@ eNa_strand_both
in forward orientation
if(yy_accept[yy_current_state])
Utility functions for lookup table generation.
Int4 GetOffsetArraySize(LookupTableWrap *lookup)
Determine the size of the offsets arrays to be filled by the ScanSubject function.
LookupTableWrap * LookupTableWrapFree(LookupTableWrap *lookup)
Deallocate memory for the lookup table.
Int2 LookupTableWrapInit(BLAST_SequenceBlk *query, const LookupTableOptions *lookup_options, const QuerySetUpOptions *query_options, BlastSeqLoc *lookup_segments, BlastScoreBlk *sbp, LookupTableWrap **lookup_wrap_ptr, const BlastRPSInfo *rps_info, Blast_Message **error_msg, BlastSeqSrc *seqsrc)
Create the lookup table for all query words.
Nucleotide ungapped extension code.
void BlastChooseNaExtend(LookupTableWrap *lookup_wrap)
Choose the best routine to use for creating ungapped alignments.
Int2 BlastNaWordFinder(BLAST_SequenceBlk *subject, BLAST_SequenceBlk *query, BlastQueryInfo *query_info, LookupTableWrap *lookup_wrap, Int4 **matrix, const BlastInitialWordParameters *word_params, Blast_ExtendWord *ewp, BlastOffsetPair *offset_pairs, Int4 max_hits, BlastInitHitList *init_hitlist, BlastUngappedStats *ungapped_stats)
Find all words for a given subject sequence and perform ungapped extensions, assuming ordinary blastn...
Magic spell ;-) needed for some weird compilers... very empiric.
Uint1 Boolean
bool replacment for C
#define TRUE
bool replacment for C indicating true.
#define FALSE
bool replacment for C indicating false.
#define MAX(a, b)
returns larger of a and b.
Defines: CTimeFormat - storage class for time format.
static const char * kWordSize
static Uint1 template_12_16[]
static Uint1 template_12_16_opt[]
static Uint1 template_11_21_opt[]
#define NULL_NUCL_SENTINEL
static Uint1 template_11_18_opt[]
static Uint1 template_11_18[]
static Uint1 template_11_16[]
#define DECLARE_TEST(name, gi, d_size, d_type, wordsize)
static Uint1 template_12_18[]
static Uint1 template_11_21[]
static Uint1 template_12_21[]
static Uint1 template_12_21_opt[]
BOOST_AUTO_TEST_CASE(DiscontigTwoSubjects)
static Uint1 template_12_18_opt[]
static Uint1 template_11_16_opt[]
Structure to hold a sequence.
Uint1 * sequence_start
Start of sequence, usually one byte before sequence as that byte is a NULL sentinel byte.
Uint4 num_seq_ranges
Number of elements in seq_ranges.
Int4 length
Length of sequence.
Uint1 * sequence
Sequence used for search (could be translation).
Int4 query_length
Length of this query, strand or frame.
Boolean is_valid
Determine if this context is valid or not.
Int4 query_offset
Offset of this query, strand or frame in the concatenated super-query.
Options used for gapped extension These include: a.
Options used when evaluating and saving hits These include: a.
Parameter block that contains a pointer to BlastHitSavingOptions and the values derived from it.
Structure to hold the initial HSP information.
BlastOffsetPair offsets
Offsets in query and subject, or, in PHI BLAST, start and end of pattern in subject.
Structure to hold all initial HSPs for a given subject sequence.
Int4 total
Total number of hits currently saved.
BlastInitHSP * init_hsp_array
Array of offset pairs, possibly with scores.
Options needed for initial word finding and processing.
Parameter block that contains a pointer to BlastInitialWordOptions and the values derived from it.
The lookup table structure used for Mega BLAST.
Int4 lut_word_length
number of letters in a lookup table word
void * scansub_callback
function for scanning subject sequences
EDiscTemplateType template_type
Type of the discontiguous word template.
Int4 longest_chain
Largest number of query positions for a given word.
Boolean discontiguous
Are discontiguous words used?
Int4 template_length
Length of the discontiguous word template.
The query related information.
BlastContextInfo * contexts
Information per context.
Structure used for scoring calculations.
SBlastScoreMatrix * matrix
scoring matrix data
Scoring options block Used to produce the BlastScoreBlk structure This structure may be needed for lo...
Used to hold a set of positions, mostly used for filtering.
Lookup table structure for blastn searches with small queries.
void * scansub_callback
function for scanning subject sequences
Int4 longest_chain
length of the longest chain on the backbone
Int4 lut_word_length
Length in bases of a word indexed by the lookup table.
Structure containing hit counts from the ungapped stage of a BLAST search.
Structure for keeping initial word extension information.
Structure to hold the a message from the core of the BLAST engine.
Options needed to construct a lookup table Also needed: query sequence and query length.
Int4 mb_template_type
Type of a discontiguous word template.
Int4 mb_template_length
Length of the discontiguous words.
Wrapper structure for different types of BLAST lookup tables.
void * lut
Pointer to the actual lookup table structure.
ELookupTableType lut_type
What kind of a lookup table it is?
Options required for setting up the query sequence.
int ** data
actual scoring matrix data, stored in row-major form
Structure to store sequence data and its length for use in the CORE of BLAST (it's a malloc'ed array ...
A structure containing two integers, used e.g.
void SkipMaskedRangesCore(void)
BlastQueryInfo * query_info
BlastHitSavingOptions * hitsaving_options
BlastInitialWordOptions * word_options
BlastSeqLoc * lookup_segments
void ScanOffsetTestCore(EDiscWordType disco_type)
LookupTableWrap * lookup_wrap_ptr
BLAST_SequenceBlk * query_blk
void SetUpLookupTable(Boolean mb_lookup, EDiscWordType disco_type, Int4 disco_size, Int4 word_size)
void SetUpQuerySubjectAndLUT(Boolean mb_lookup, Int4 gi, EDiscWordType disco_type, Int4 disco_size, Int4 word_size)
void SetUpSubject(Uint4 subject_gi)
void ScanMaxHitsTestCore(void)
BlastOffsetPair * offset_pairs
void ScanCheckHitsCore(EDiscWordType disco_type)
BLAST_SequenceBlk * subject_blk
void SetUpQuery(Uint4 query_gi, ENa_strand strand)
Int4 RunScanSubject(Int4 *scan_range, Int4 max_hits)
void TearDownLookupTable()
EBlastProgramType program_number
BlastExtensionOptions * ext_options
Utility stuff for more convenient using of Boost.Test library.
This symbol enables the verbose option in makeblastdb and other BLAST+ search command line applicatio...
Uint4 s_off
Subject offset.
struct BlastOffsetPair::@6 qs_offsets
Query/subject offset pair.