/* $Id: blast_sw.h,v 1.5 2009/01/05 16:54:38 kazimird Exp $ * =========================================================================== * * PUBLIC DOMAIN NOTICE * National Center for Biotechnology Information * * This software/database is a "United States Government Work" under the * terms of the United States Copyright Act. It was written as part of * the author's official duties as a United States Government employee and * thus cannot be copyrighted. This software/database is freely available * to the public for use. The National Library of Medicine and the U.S. * Government have not placed any restriction on its use or reproduction. * * Although all reasonable efforts have been taken to ensure the accuracy * and reliability of the software and data, the NLM and the U.S. * Government do not and cannot warrant the performance or results that * may be obtained by using this software or data. The NLM and the U.S. * Government disclaim all warranties, express or implied, including * warranties of performance, merchantability or fitness for any particular * purpose. * * Please cite the author in any work or product based on this material. * * =========================================================================== * * Author: Jason Papadopoulos * */ /** @file blast_sw.h * Smith-Waterman alignment for use within the infrastructure of BLAST */ #ifndef ALGO_BLAST_CORE___BLAST_SW__H #define ALGO_BLAST_CORE___BLAST_SW__H #include #include #include #include #include #include #include #include /** @addtogroup AlgoBlast * * @{ */ #ifdef __cplusplus extern "C" { #endif /** Find all local alignments between two (unpacked) sequences, using * the Smith-Waterman algorithm, then save the list of alignments found. * The algorithm to recover all high-scoring local alignments, and not * just the best one, is described in *
 * Geoffrey J. Barton, "An Efficient Algorithm to Locate All
 * Locally Optimal Alignments Between Two Sequences Allowing for Gaps".
 * Computer Applications in the Biosciences, (1993), 9, pp. 729-734
 * 
* @param program_number Blast program requesting traceback [in] * @param A The first sequence [in] * @param a_size Length of the first sequence [in] * @param B The second sequence [in] * @param b_size Length of the second sequence [in] * @param template_hsp Placeholder alignment, used only to * determine contexts and frames [in] * @param hsp_list Collection of alignments found so far [in][out] * @param score_params Structure containing gap penalties [in] * @param hit_params Structure used for percent identity calculation [in] * @param gap_align Auxiliary data for gapped alignment * (used for score matrix info) [in] * @param start_shift Bias to be applied to subject offsets [in] * @param cutoff Alignments are saved if their score exceeds this value [in] */ void SmithWatermanScoreWithTraceback(EBlastProgramType program_number, const Uint1 *A, Int4 a_size, const Uint1 *B, Int4 b_size, BlastHSP *template_hsp, BlastHSPList *hsp_list, const BlastScoringParameters *score_params, const BlastHitSavingParameters *hit_params, BlastGapAlignStruct *gap_align, Int4 start_shift, Int4 cutoff); /** Performs score-only Smith-Waterman gapped alignment of the subject * sequence with all contexts in the query. * @param program_number Type of BLAST program [in] * @param query The query sequence block [in] * @param query_info Query information structure, containing offsets into * the concatenated sequence [in] * @param subject The subject sequence block [in] * @param gap_align The auxiliary structure for gapped alignment [in] * @param score_params Options and parameters related to scoring [in] * @param ext_params Options and parameters related to extensions [in] * @param hit_params Options related to saving hits [in] * @param init_hitlist List of initial HSPs (ignored) * @param hsp_list_ptr Structure containing all saved HSPs. Note that * there will be at most one HSP for each context that * contains a gapped alignment that exceeds a cutoff * score. [out] * @param gapped_stats Return statistics (not filled if NULL) [out] * @param fence_hit Partial range support (not used for S/W). [in] */ Int2 BLAST_SmithWatermanGetGappedScore (EBlastProgramType program_number, BLAST_SequenceBlk* query, BlastQueryInfo* query_info, BLAST_SequenceBlk* subject, BlastGapAlignStruct* gap_align, const BlastScoringParameters* score_params, const BlastExtensionParameters* ext_params, const BlastHitSavingParameters* hit_params, BlastInitHitList* init_hitlist, BlastHSPList** hsp_list_ptr, BlastGappedStats* gapped_stats, Boolean * fence_hit); #ifdef __cplusplus } #endif /* @} */ #endif /* ALGO_BLAST_CORE___BLAST_SW__H */