;
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 110lookup_segments =
NULL;
111lookup_wrap_ptr =
NULL;
112offset_pairs =
NULL;
114word_options =
NULL;
115hitsaving_options =
NULL;
124sprintf(
buf,
"gi|%d", query_gi);
142BOOST_REQUIRE_EQUAL(0, status);
145BOOST_REQUIRE_EQUAL(0, status);
147BOOST_REQUIRE(query_blk !=
NULL);
149BOOST_REQUIRE(query_blk->
length> 0);
151BOOST_REQUIRE(query_blk !=
NULL);
167 const intkStrandLength = (query_blk->
length- 1)/2;
194sprintf(
buf,
"gi|%d", subject_gi);
215BOOST_REQUIRE_EQUAL(0, status);
216BOOST_REQUIRE(subject_blk !=
NULL);
221BOOST_REQUIRE_EQUAL(0, status);
223BOOST_REQUIRE(subject_blk->
length> 0);
241BOOST_REQUIRE_EQUAL(0, status);
247BOOST_REQUIRE_EQUAL(0, status);
252BOOST_REQUIRE_EQUAL(0, status);
262BOOST_REQUIRE_EQUAL(0, status);
266BOOST_REQUIRE(query_blk !=
NULL);
267 const doublekScalingFactor = 1.0;
270program_number, &sbp, kScalingFactor,
271&blast_message,
NULL);
272BOOST_REQUIRE_EQUAL(0, status);
274BOOST_REQUIRE(blast_message ==
NULL);
294BOOST_REQUIRE_EQUAL(0, status);
297BOOST_REQUIRE(query_options ==
NULL);
304BOOST_REQUIRE(offset_pairs !=
NULL);
307BOOST_REQUIRE(lookup_options ==
NULL);
309BOOST_REQUIRE(score_options ==
NULL);
320SetUpLookupTable(mb_lookup, disco_type, disco_size, word_size);
342 sfree(offset_pairs);
347 if(hitsaving_options)
357TearDownLookupTable();
370lookup_wrap_ptr->
lut;
375lookup_wrap_ptr->
lut;
378BOOST_REQUIRE(callback !=
NULL);
379 returncallback(lookup_wrap_ptr, subject_blk,
380offset_pairs, max_hits, scan_range);
386 Int4query_bases, subject_bases;
388 Int4bases_per_lut_word;
390 Uint4last_s_off = 0;
397BOOST_REQUIRE(query_blk !=
NULL);
398BOOST_REQUIRE(subject_blk !=
NULL);
399BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
400BOOST_REQUIRE(offset_pairs !=
NULL);
401BOOST_REQUIRE(lookup_segments !=
NULL);
403subject_bases = subject_blk->
length;
404query_bases = query_blk->
length;
416scan_range[1] = subject_bases - bases_per_lut_word;
422scan_range[1] = subject_bases - bases_per_lut_word;
425 while(scan_range[0] <= scan_range[1])
427hits = RunScanSubject(scan_range,
442BOOST_REQUIRE(offset_pairs[0].qs_offsets.
s_off> last_s_off);
455 for(
int i= 1;
i< hits;
i++)
457BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off<=
458(
Uint4)(query_bases - bases_per_lut_word) &&
460BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
s_off<
461(
Uint4)subject_bases);
463 if(offset_pairs[
i].qs_offsets.
s_off==
468BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off<
473BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
q_off>
479BOOST_REQUIRE(offset_pairs[
i].qs_offsets.
s_off>
492 Int4hits, found_hits, expected_hits;
500found_hits = expected_hits = 0;
502BOOST_REQUIRE(query_blk !=
NULL);
503BOOST_REQUIRE(subject_blk !=
NULL);
504BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
505BOOST_REQUIRE(offset_pairs !=
NULL);
506BOOST_REQUIRE(lookup_segments !=
NULL);
508subject_bases = subject_blk->
length;
527 while(scan_range[0] <= scan_range[1])
529hits = RunScanSubject(scan_range,
532expected_hits += hits;
546 while(scan_range[0] <= scan_range[1])
548hits = RunScanSubject(scan_range,
550BOOST_REQUIRE(hits <= new_max_size);
554BOOST_REQUIRE_EQUAL(found_hits, expected_hits);
561 Int4hits, found_hits, expected_hits;
563 Int4bases_per_lut_word;
569found_hits = expected_hits = 0;
571BOOST_REQUIRE(query_blk !=
NULL);
572BOOST_REQUIRE(subject_blk !=
NULL);
573BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
574BOOST_REQUIRE(offset_pairs !=
NULL);
575BOOST_REQUIRE(lookup_segments !=
NULL);
577subject_bases = subject_blk->
length;
589scan_range[1] = subject_bases - bases_per_lut_word;
595scan_range[1] = subject_bases - bases_per_lut_word;
598 while(scan_range[0] <= scan_range[1])
600hits = RunScanSubject(scan_range,
605 for(
int i= 0;
i< hits;
i++)
607 Uint4query_word = 0;
608 Uint4query_word2 = 0;
609 Uint4subject_word = 0;
610 Uint4subject_word2 = 0;
611 Int4s_index, s_byte;
619 Int4template_size = 0;
681 for(j = 0; j < template_size; j++, s_index++) {
682 if(disco_template[j] == 1) {
683query_word = (query_word << 2) | q[j];
684s_byte = subject_blk->
sequence[ s_index /
686subject_word = (subject_word << 2) |
694 for(j = 0; j < template_size; j++, s_index++) {
695 if(disco_template2[j] == 1) {
696query_word2 = (query_word2 << 2) | q[j];
697s_byte = subject_blk->
sequence[ s_index /
699subject_word2 = (subject_word2 << 2) |
709 for(j = 0; j < bases_per_lut_word; j++, s_index++) {
710query_word = (query_word << 2) | q[j];
711s_byte = subject_blk->
sequence[ s_index /
713subject_word = (subject_word << 2) |
719BOOST_REQUIRE(query_word == subject_word ||
720query_word2 == subject_word2);
722BOOST_REQUIRE_EQUAL(query_word, subject_word);
731 const Int4subject_bases = subject_blk->
length;
733BOOST_REQUIRE(query_blk !=
NULL);
734BOOST_REQUIRE(subject_blk !=
NULL);
735BOOST_REQUIRE(lookup_wrap_ptr !=
NULL);
736BOOST_REQUIRE(offset_pairs !=
NULL);
737BOOST_REQUIRE(lookup_segments !=
NULL);
739 SSeqRangeranges2scan[] = { {0, 501}, {700, 1001} , {subject_bases, subject_bases}};
740 const size_tkNumRanges = (
sizeof(ranges2scan)/
sizeof(*ranges2scan));
745sbp, query_info, subject_bases,
747BOOST_REQUIRE_EQUAL(0, retval);
751hit_params, lookup_wrap_ptr,
752sbp, query_info, subject_bases,
754BOOST_REQUIRE_EQUAL(0, retval);
758BOOST_REQUIRE_EQUAL(0, retval);
764word_params, ewp, offset_pairs,
766init_hitlist, &ungapped_stats);
767BOOST_REQUIRE_EQUAL(0, retval);
770 for(
int i= 0;
i< init_hitlist->
total;
i++) {
773 boolhit_found =
FALSE;
774 for(
size_tj = 0; j < kNumRanges; j++) {
775 if( s_off >= (
Uint4)ranges2scan[j].left &&
776s_off < (
Uint4)ranges2scan[j].right ) {
781BOOST_REQUIRE( hit_found );
785BOOST_REQUIRE(hit_params ==
NULL);
787BOOST_REQUIRE(word_params ==
NULL);
789BOOST_REQUIRE(ewp ==
NULL);
791BOOST_REQUIRE(init_hitlist ==
NULL);
805 const Int4kTemplateSize = 21;
814SetUpSubject(313959);
816subject_bases = subject_blk->length;
819 while(scan_range[0] <= scan_range[1])
821hits = RunScanSubject(scan_range,
826SetUpSubject(271065);
828subject_bases = subject_blk->length;
831 while(scan_range[0] <= scan_range[1])
833hits = RunScanSubject(scan_range,
839 for(
i= 0;
i< hits;
i++) {
840BOOST_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.
BOOST_AUTO_TEST_SUITE_END() static int s_GetSegmentFlags(const CBioseq &bioseq)
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 q_off
Query offset.
Uint4 s_off
Subject offset.
struct BlastOffsetPair::@6 qs_offsets
Query/subject offset pair.
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