📄 blast_options.h
字号:
* b. Restrictions on the quality and positions of hits to be saved; * c. Parameters used to evaluate the quality of hits. */typedef struct BlastHitSavingOptions { double expect_value; /**< The expect value cut-off threshold for an HSP, or a combined hit if sum statistics is used */ Int4 cutoff_score; /**< The (raw) score cut-off threshold */ double percent_identity; /**< The percent identity cut-off threshold */ Int4 hitlist_size;/**< Maximal number of database sequences to return results for */ Int4 prelim_hitlist_size; /**< Maximal number of database sequences to save hits after preliminary alignment */ Int4 hsp_num_max; /**< Maximal number of HSPs to save for one database sequence */ Int4 total_hsp_limit; /**< Maximal total number of HSPs to keep */ Int4 hsp_range_max; /**< Maximal number of HSPs to save in a region: used for culling only */ Boolean perform_culling;/**< Perform culling of hit lists by keeping at most a certain number of HSPs in a range (not implemented) */ /* PSI-BLAST Hit saving options */ Int4 required_start; /**< Start of the region required to be part of the alignment */ Int4 required_end; /**< End of the region required to be part of the alignment */ double original_expect_value; /**< Needed for PSI-BLAST??? */ /********************************************************************/ /* Merge all these in a structure for clarity? */ /* applicable to all, except blastn */ Boolean do_sum_stats; /**< Force sum statistics to be used to combine HSPs */ /* tblastn w/ sum statistics */ Int4 longest_intron; /**< The longest distance between HSPs allowed for combining via sum statistics with uneven gaps */ /********************************************************************/ Int4 min_hit_length; /**< optional minimum alignment length; alignments not at least this long are discarded */ Boolean is_neighboring; /**< @todo FIXME: neighboring is specified by a percent identity and a minimum hit length */ Boolean phi_align; /**< Is this a PHI BLAST search? */} BlastHitSavingOptions;/** Parameter block that contains a pointer to BlastHitSavingOptions * and parsed values for those options that require it * (in this case expect value). */typedef struct BlastHitSavingParameters { BlastHitSavingOptions* options; /**< The original (unparsed) options. */ Int4 cutoff_score; /**< Raw cutoff score corresponding to the e-value provided by the user */ Boolean do_sum_stats; /**< Is sum statistics used to combine HSPs? */ double gap_prob; /**< Probability of decay for linking HSPs */ double gap_decay_rate; /**< Decay rate for linking HSPs */ Int4 gap_size; /**< Small gap size for linking HSPs */ Int4 cutoff_small_gap; /**< Cutoff sum score for linked HSPs with small gaps */ Int4 cutoff_big_gap; /**< Cutoff sum score for linked HSPs with big gaps */ Boolean ignore_small_gaps; /**< Should small gaps be ignored? */} BlastHitSavingParameters; /** Scoring options block * Used to produce the BlastScoreBlk structure * This structure may be needed for lookup table construction (proteins only), * and for evaluating alignments. */typedef struct BlastScoringOptions { char* matrix; /**< Name of the matrix containing all scores: needed for finding neighboring words */ char* matrix_path; /**< Directory path to where matrices are stored. */ Int2 reward; /**< Reward for a match */ Int2 penalty; /**< Penalty for a mismatch */ Boolean gapped_calculation; /**< identical to the one in hit saving opts */ Int4 gap_open; /**< Extra penalty for starting a gap */ Int4 gap_extend; /**< Penalty for each gap residue */ Int4 decline_align; /**< Cost for declining alignment (PSI-BLAST) */ /* only blastx and tblastn (When query & subj are diff) */ Boolean is_ooframe; /**< Should out-of-frame gapping be used in a translated search? */ Int4 shift_pen; /**< Penalty for shifting a frame in out-of-frame gapping */} BlastScoringOptions;/** Scoring parameters block * Contains scoring-related information that is actually used * for the blast search */typedef struct BlastScoringParameters { BlastScoringOptions *options; /**< User-provided values for these params */ Int2 reward; /**< Reward for a match */ Int2 penalty; /**< Penalty for a mismatch */ Int4 gap_open; /**< Extra penalty for starting a gap (scaled version) */ Int4 gap_extend; /**< Penalty for each gap residue (scaled version) */ Int4 decline_align; /**< Cost for declining alignment (scaled version) */ Int4 shift_pen; /**< Penalty for shifting a frame in out-of-frame gapping (scaled version) */ double scale_factor; /**< multiplier for all cutoff scores */} BlastScoringParameters;/** Options for setting up effective lengths and search spaces. * The values are those the user has specified to override the real sizes. */typedef struct BlastEffectiveLengthsOptions { Int8 db_length; /**< Database length to be used for statistical calculations */ Int4 dbseq_num; /**< Number of database sequences to be used for statistical calculations */ Int8 searchsp_eff; /**< Search space to be used for statistical calculations */ Boolean use_real_db_size; /**< Use real database size instead of virtual database size for statistical calculations */} BlastEffectiveLengthsOptions;/** Parameters for setting up effective lengths and search spaces. * The real database size values to be used for statistical calculations, if * there are no overriding values in options. */typedef struct BlastEffectiveLengthsParameters { BlastEffectiveLengthsOptions* options; /**< User provided values for these parameters */ Int8 real_db_length; /**< Total database length to use in search space calculations. */ Int4 real_num_seqs; /**< Number of subject sequences to use for search space calculations */} BlastEffectiveLengthsParameters;/** Options used in protein BLAST only (PSI, PHI, RPS and translated BLAST) * Some of these possibly should be transfered elsewhere */typedef struct PSIBlastOptions { /** Minimum evalue for inclusion in PSSM calculation. Needed for the first * stage of the PSSM calculation algorithm */ double inclusion_ethresh; /** Pseudocount constant. Needed for the computing the PSSM residue * frequencies */ Int4 pseudo_count;} PSIBlastOptions;/** Options used to create the ReadDBFILE structure * Include database name and various information for restricting the database * to a subset. */typedef struct BlastDatabaseOptions { Int4 genetic_code; /**< Genetic code to use for translation, tblast[nx] only */ Uint1* gen_code_string; /**< Genetic code string in ncbistdaa encoding, tblast[nx] only */} BlastDatabaseOptions;/******************************************************************************** Functions to create options blocks with default values and free them after use.*********************************************************************************//** Deallocate memory for QuerySetUpOptions. * @param options Structure to free [in] */QuerySetUpOptions* BlastQuerySetUpOptionsFree(QuerySetUpOptions* options);/** Allocate memory for QuerySetUpOptions and fill with default values. * @param options The options that have are being returned [out] */Int2 BlastQuerySetUpOptionsNew(QuerySetUpOptions* *options);/** Fill non-default contents of the QuerySetUpOptions. * @param options The options structure [in] [out] * @param program Program number (blastn, blastp, etc.) [in] * @param filter_string Parsable string of filtering options [in] * @param strand_option which strand to search [in]*/Int2 BLAST_FillQuerySetUpOptions(QuerySetUpOptions* options, Uint1 program, const char *filter_string, Uint1 strand_option);/** Deallocate memory for BlastInitialWordOptions. * @param options Structure to free [in] */BlastInitialWordOptions*BlastInitialWordOptionsFree(BlastInitialWordOptions* options);/** Allocate memory for BlastInitialWordOptions and fill with default values. * @param program Program number (blastn, blastp, etc.) [in] * @param options The options that have are being returned [out] */Int2BlastInitialWordOptionsNew(Uint1 program, BlastInitialWordOptions* *options);/** Fill non-default values in the BlastInitialWordOptions structure. * @param options The options structure [in] [out] * @param program Program number (blastn, blastp, etc.) [in] * @param greedy Settings should assume greedy alignments [in] * @param window_size Size of a largest window between 2 words for the two-hit * version [in] * @param variable_wordsize Will only full bytes of the compressed sequence be * checked in initial word extension (blastn only)? [in] * @param ag_blast Is AG BLAST approach used for scanning the database * (blastn only)? [in] * @param mb_lookup Is Mega BLAST (12-mer based) lookup table used? [in] * @param xdrop_ungapped The value of the X-dropoff for ungapped extensions [in]*/Int2BLAST_FillInitialWordOptions(BlastInitialWordOptions* options, Uint1 program, Boolean greedy, Int4 window_size, Boolean variable_wordsize, Boolean ag_blast, Boolean mb_lookup, double xdrop_ungapped);/** Deallocate memory for BlastInitialWordParameters. * @param parameters Structure to free [in] */BlastInitialWordParameters*BlastInitialWordParametersFree(BlastInitialWordParameters* parameters);/** Allocate memory for BlastInitialWordParameters and set x_dropoff. * Calling BlastInitialWordParametersNew calculates the * raw x_dropoff from the bit x_dropoff and puts it into * the x_dropoff field of BlastInitialWordParameters*. * * @param program_number Type of BLAST program [in] * @param word_options The initial word options [in] * @param hit_params The hit saving options (needed to calculate cutoff score * for ungapped extensions) [in] * @param ext_params Extension parameters (containing gap trigger value) [in] * @param sbp Statistical (Karlin-Altschul) information [in] * @param query_info Query information [in] * @param subject_length Average subject sequence length [in] * @param parameters Resulting parameters [out]*/Int2BlastInitialWordParametersNew(Uint1 program_number, const BlastInitialWordOptions* word_options, const BlastHitSavingParameters* hit_params, const BlastExtensionParameters* ext_params, BlastScoreBlk* sbp, BlastQueryInfo* query_info, Uint4 subject_length, BlastInitialWordParameters* *parameters);/** Update cutoff scores in BlastInitialWordParameters structure. * @param program_number Type of BLAST program [in] * @param hit_params The hit saving options (needed to calculate cutoff score * for ungapped extensions) [in] * @param ext_params Extension parameters (containing gap trigger value) [in] * @param sbp Statistical (Karlin-Altschul) information [in] * @param query_info Query information [in] * @param subject_length Average subject sequence length [in] * @param parameters Preallocated parameters [in] [out]*/Int2BlastInitialWordParametersUpdate(Uint1 program_number, const BlastHitSavingParameters* hit_params, const BlastExtensionParameters* ext_params, BlastScoreBlk* sbp, BlastQueryInfo* query_info, Uint4 subject_length, BlastInitialWordParameters* parameters);/** Deallocate memory for BlastExtensionOptions. * @param options Structure to free [in] */BlastExtensionOptions*BlastExtensionOptionsFree(BlastExtensionOptions* options);/** Allocate memory for BlastExtensionOptions and fill with default values. * @param program Program number (blastn, blastp, etc.) [in] * @param options The options that are being returned [out]*/Int2BlastExtensionOptionsNew(Uint1 program, BlastExtensionOptions* *options);/** Fill non-default values in the BlastExtensionOptions structure. * @param options The options structure [in] [out] * @param program Program number (blastn, blastp, etc.) [in] * @param greedy Settings should assume greedy alignments [in] * @param x_dropoff X-dropoff parameter value for preliminary gapped * extensions [in] * @param x_dropoff_final X-dropoff parameter value for final gapped * extensions with traceback [in]*/Int2BLAST_FillExtensionOptions(BlastExtensionOptions* options, Uint1 program, Boolean greedy, double x_dropoff, double x_dropoff_final);/** Validate contents of BlastExtensionOptions. * @param program_number Type of BLAST program [in] * @param options Options to be validated [in] * @param blast_msg Describes any validation problems found [out]*/Int2 BlastExtensionOptionsValidate(Uint1 program_number, const BlastExtensionOptions* options, Blast_Message* *blast_msg);/** Calculate the raw values for the X-dropoff parameters * @param blast_program Program number [in] * @param options Already allocated extension options [in] * @param sbp Structure containing statistical information [in] * @param query_info Query information, needed only for determining the first * context [in] * @param parameters Extension parameters [out]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -