|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/algo/blast/api/blast_prelim.h |
source navigation diff markup identifier search freetext search file search |
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 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |