1
/* $Id: blast_prelim.h,v 1.1 2004/07/06 19:56:08 dondosha Exp $
1
/* $Id: blast_prelim.h,v 1.6 2005/04/06 23:27:53 dondosha Exp $
2
2
* ===========================================================================
4
4
* PUBLIC DOMAIN NOTICE
22
22
* Please cite the author in any work or product based on this material.
24
* Author: Ilya Dondoshansky
24
25
* ===========================================================================*/
26
/*****************************************************************************
28
File name: blast_prelim.h
30
Author: Ilya Dondoshansky
32
Contents: Preliminary stage of a BLAST search performed by one of the threads
33
in a multi-threaded search.
35
******************************************************************************
27
/** @file blast_prelim.h
28
* Preliminary stage of a BLAST search performed by one of the threads
29
* in a multi-threaded search.
38
32
#ifndef __BLAST_PRELIM__
39
33
#define __BLAST_PRELIM__
52
46
#include <algo/blast/core/blast_hspstream.h>
53
47
#include <algo/blast/core/blast_diagnostics.h>
49
/** @addtogroup CToolkitAlgoBlast
55
54
/** Data structure containing all information necessary for performing
56
55
* preliminary stage of a BLAST search.
58
57
typedef struct BlastPrelimSearchThreadData {
59
EBlastProgramType program;
58
EBlastProgramType program; /**< BLAST program type */
60
59
BLAST_SequenceBlk* query; /**< Query sequence */
61
60
BlastQueryInfo* query_info; /**< Query information, including context
62
61
offsets and effective lengths. */
63
62
BlastSeqSrc* seq_src; /**< Source of the subject sequences */
65
BlastScoringOptions* score_options;
66
BlastInitialWordOptions* word_options;
67
BlastExtensionOptions* ext_options;
68
BlastHitSavingOptions* hit_options;
69
BlastEffectiveLengthsOptions* eff_len_options;
70
PSIBlastOptions* psi_options;
71
BlastDatabaseOptions* db_options;
73
BlastDiagnostics* diagnostics;
63
LookupTableWrap* lut; /**< Lookup table for finding initial seeds. */
64
const BlastScoringOptions* score_options; /**< Options for scoring
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
72
const PSIBlastOptions* psi_options; /**< Options specific to PSI BLAST. */
73
const BlastDatabaseOptions* db_options; /**< Database options - genetic
75
BlastScoreBlk* sbp; /**< Scoring block, containing Karlin-Altschul
77
BlastDiagnostics* diagnostics; /**< Search diagnostic data,
74
79
BlastHSPStream* hsp_stream; /**< Source of the BLAST results */
75
80
} BlastPrelimSearchThreadData;
95
100
BlastPrelimSearchThreadData*
96
101
BlastPrelimSearchThreadDataInit(EBlastProgramType program,
97
102
BLAST_SequenceBlk* query, BlastQueryInfo* query_info,
98
BlastSeqSrc* seq_src, LookupTableWrap* lut,
99
BlastScoringOptions* score_options, BlastInitialWordOptions* word_options,
100
BlastExtensionOptions* ext_options, BlastHitSavingOptions* hit_options,
101
BlastEffectiveLengthsOptions* eff_len_options,
102
PSIBlastOptions* psi_options, BlastDatabaseOptions* db_options,
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,
103
111
BlastScoreBlk* sbp, BlastDiagnostics* diagnostics,
104
112
BlastHSPStream* hsp_stream);
109
117
BlastPrelimSearchThreadData*
110
118
BlastPrelimSearchThreadDataFree(BlastPrelimSearchThreadData* data);
112
/** Driver for the thread producing tabular output. */
120
/** Driver for the thread producing tabular output.
121
* @param data Pointer to the BlastPrelimSearchThreadData structure. [in]
113
123
void* Blast_PrelimSearchThreadRun(void* data);
115
127
#ifdef __cplusplus
118
131
#endif /* !__BLAST_PRELIM__ */