NCBI C Toolkit Cross Reference

C/algo/blast/api/blast_prelim.h


  1 /* $Id: blast_prelim.h,v 1.6 2005/04/06 23:27:53 dondosha Exp $
  2 * ===========================================================================
  3 *
  4 *                            PUBLIC DOMAIN NOTICE
  5 *               National Center for Biotechnology Information
  6 *
  7 *  This software/database is a "United States Government Work" under the
  8 *  terms of the United States Copyright Act.  It was written as part of
  9 *  the author's offical duties as a United States Government employee and
 10 *  thus cannot be copyrighted.  This software/database is freely available
 11 *  to the public for use. The National Library of Medicine and the U.S.
 12 *  Government have not placed any restriction on its use or reproduction.
 13 *
 14 *  Although all reasonable efforts have been taken to ensure the accuracy
 15 *  and reliability of the software and data, the NLM and the U.S.
 16 *  Government do not and cannot warrant the performance or results that
 17 *  may be obtained by using this software or data. The NLM and the U.S.
 18 *  Government disclaim all warranties, express or implied, including
 19 *  warranties of performance, merchantability or fitness for any particular
 20 *  purpose.
 21 *
 22 *  Please cite the author in any work or product based on this material.
 23 *
 24 *  Author: Ilya Dondoshansky
 25 * ===========================================================================*/
 26 
 27 /** @file blast_prelim.h
 28  * Preliminary stage of a BLAST search performed by one of the threads
 29  * in a multi-threaded search.
 30  */
 31 
 32 #ifndef __BLAST_PRELIM__
 33 #define __BLAST_PRELIM__
 34 
 35 #ifdef __cplusplus
 36 extern "C" {
 37 #endif
 38 
 39 #ifndef NCBI_C_TOOLKIT
 40 #define NCBI_C_TOOLKIT
 41 #endif
 42 
 43 #include <algo/blast/core/blast_hits.h>
 44 #include <algo/blast/core/lookup_wrap.h>
 45 #include <algo/blast/core/blast_seqsrc.h>
 46 #include <algo/blast/core/blast_hspstream.h>
 47 #include <algo/blast/core/blast_diagnostics.h>
 48 
 49 /** @addtogroup CToolkitAlgoBlast
 50  *
 51  * @{
 52  */
 53 
 54 /** Data structure containing all information necessary for performing 
 55  * preliminary stage of a BLAST search.
 56  */
 57 typedef struct BlastPrelimSearchThreadData {
 58    EBlastProgramType program; /**< BLAST program type */
 59    BLAST_SequenceBlk* query; /**< Query sequence */
 60    BlastQueryInfo* query_info; /**< Query information, including context
 61                                   offsets and effective lengths. */
 62    BlastSeqSrc* seq_src; /**< Source of the subject sequences */
 63    LookupTableWrap* lut; /**< Lookup table for finding initial seeds. */
 64    const BlastScoringOptions* score_options; /**< Options for scoring
 65                                                   alignments. */
 66    const BlastInitialWordOptions* word_options; /**< Options for ungapped 
 67                                                  extension of initial seeds. */
 68    const BlastExtensionOptions* ext_options; /**< Gapped extension options. */
 69    const BlastHitSavingOptions* hit_options; /**< Hit saving options. */
 70    const BlastEffectiveLengthsOptions* eff_len_options; /**< Options specifying 
 71                                                            effective lengths */
 72    const PSIBlastOptions* psi_options; /**< Options specific to PSI BLAST. */
 73    const BlastDatabaseOptions* db_options; /**< Database options - genetic 
 74                                                 code */
 75    BlastScoreBlk* sbp; /**< Scoring block, containing Karlin-Altschul 
 76                             parameters. */
 77    BlastDiagnostics* diagnostics; /**< Search diagnostic data, 
 78                                        e.g. hit counts. */
 79    BlastHSPStream* hsp_stream; /**< Source of the BLAST results */
 80 } BlastPrelimSearchThreadData;
 81 
 82 /** Initialize preliminary search thread data structure.
 83  * @param program BLAST program [in]
 84  * @param query Query sequence(s) structure [in]
 85  * @param query_info Query information [in]
 86  * @param seq_src Subject sequences source [in]
 87  * @param lut Lookup table [in]
 88  * @param score_options Scoring options [in]
 89  * @param word_options Initial word finding and ungapped extension options [in]
 90  * @param ext_options Gapped extension options [in]
 91  * @param hit_options Hit saving options [in]
 92  * @param eff_len_options Effective lengths calculation options [in]
 93  * @param psi_options PSI BLAST options [in]
 94  * @param db_options Database options [in]
 95  * @param sbp Statistical parameters block [in]
 96  * @param diagnostics Diagnostical data returned from search [in]
 97  * @param hsp_stream Stream for saving HSP lists [in]
 98  * @return Initialized structure.
 99  */
100 BlastPrelimSearchThreadData* 
101 BlastPrelimSearchThreadDataInit(EBlastProgramType program,
102    BLAST_SequenceBlk* query, BlastQueryInfo* query_info,
103    const BlastSeqSrc* seq_src, LookupTableWrap* lut, 
104    const BlastScoringOptions* score_options, 
105    const BlastInitialWordOptions* word_options,
106    const BlastExtensionOptions* ext_options, 
107    const BlastHitSavingOptions* hit_options,
108    const BlastEffectiveLengthsOptions* eff_len_options,
109    const PSIBlastOptions* psi_options, 
110    const BlastDatabaseOptions* db_options,
111    BlastScoreBlk* sbp, BlastDiagnostics* diagnostics,
112    BlastHSPStream* hsp_stream);
113 
114 /** Free the preliminary search thread data structure and all its internally 
115  * allocated substructures. 
116  */
117 BlastPrelimSearchThreadData* 
118 BlastPrelimSearchThreadDataFree(BlastPrelimSearchThreadData* data);
119 
120 /** Driver for the thread producing tabular output.
121  * @param data Pointer to the BlastPrelimSearchThreadData structure. [in]
122  */
123 void* Blast_PrelimSearchThreadRun(void* data);
124 
125 /* @} */
126 
127 #ifdef __cplusplus
128 }
129 #endif
130 
131 #endif /* !__BLAST_PRELIM__ */
132 
133 

source navigation ]   [ diff markup ]   [ identifier search ]   [ freetext search ]   [ file search ]  

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.