NCBI C++ ToolKit
blast_program.h
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: blast_program.h 73100 2016-06-20 15:45:40Z boratyng $
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 official 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  * ===========================================================================
25  *
26  * Author: Christiam Camacho / Ilya Dondoshansky
27  *
28  */
29 
30 /** @file blast_program.h
31  * Definitions for various programs supported by core BLAST
32  */
33 
34 #ifndef ALGO_BLAST_CORE___BLAST_PROGRAM__H
35 #define ALGO_BLAST_CORE___BLAST_PROGRAM__H
36 
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 /* Low-level preprocessor definitions: these are not intended to be used
45  * directly, use the EBlastProgramType enumeration below */
46 
47 /** This bit is on if the query is protein */
48 #define PROTEIN_QUERY_MASK (0x1<<0)
49 /** This bit is on if the subject is protein */
50 #define PROTEIN_SUBJECT_MASK (0x1<<1)
51 /** This bit is on if the query is nucleotide */
52 #define NUCLEOTIDE_QUERY_MASK (0x1<<2)
53 /** This bit is on if the subject is nucleotide */
54 #define NUCLEOTIDE_SUBJECT_MASK (0x1<<3)
55 /** This bit is on if the query is translated */
56 #define TRANSLATED_QUERY_MASK (0x1<<4)
57 /** This bit is on if the subject is translated */
58 #define TRANSLATED_SUBJECT_MASK (0x1<<5)
59 /** This bit is on if the query is a PSSM (PSI-BLAST) */
60 #define PSSM_QUERY_MASK (0x1<<6)
61 /** This bit is on if the subject is a PSSM (RPS-BLAST) */
62 #define PSSM_SUBJECT_MASK (0x1<<7)
63 /** This bit is on if the query includes a pattern (PHI-BLAST) */
64 #define PATTERN_QUERY_MASK (0x1<<8)
65 /** This bit is on for fast mapping of short reads */
66 #define MAPPING_MASK (0x1<<9)
67 
68 /******************** Main BLAST program definitions ***********************/
69 
70 /** Defines the engine's notion of the different applications of the BLAST
71  * algorithm */
72 typedef enum {
91 
92 /************* Functions to classify programs by query **********************/
93 
94 /** Returns true if the query is protein
95  * @param p program type [in]
96  */
99 
100 /** Returns true if the query is nucleotide
101  * @param p program type [in]
102  */
105 
106 /** Returns true if the query is PSSM
107  * @param p program type [in]
108  */
111 
112 /************* Functions to classify programs by subject **********************/
113 
114 /** Returns true if the subject is protein
115  * @param p program type [in]
116  */
119 
120 /** Returns true if the subject is nucleotide
121  * @param p program type [in]
122  */
125 
126 /** Returns true if the subject is PSSM
127  * @param p program type [in]
128  */
131 
132 /************* Functions to classify programs by translation *****************/
133 
134 /** Returns true if the query is translated
135  * @param p program type [in]
136  */
139 
140 /** Returns true if the subject is translated
141  * @param p program type [in]
142  */
145 
146 /************* Functions to classify special BLAST programs *****************/
147 
148 /** Returns true if program is PSI-BLAST (i.e.: involves a PSSM as query)
149  * @param p program type [in]
150  */
153 
154 /** Returns true if program is PHI-BLAST (i.e.: involves a pattern)
155  * @param p program type [in]
156  */
159 
160 /** Returns true if program is RPS-BLAST (i.e.: involves a PSSM as subject)
161  * @param p program type [in]
162  */
165 
168 
171 
174 
175 /** Returns true if program is not undefined
176  * @param p program type [in]
177  */
180 
181 
182 #ifdef __cplusplus
183 }
184 #endif
185 
186 #endif /* !ALGO_BLAST_CORE__BLAST_PROGRAM__H */
187 
Defines to provide correct exporting from BLAST DLL in Windows.
#define NCBI_XBLAST_EXPORT
NULL operations for other cases.
Definition: blast_export.h:65
Boolean Blast_ProgramIsMapping(EBlastProgramType p)
Definition: blast_program.c:76
Boolean Blast_QueryIsPssm(EBlastProgramType p)
Returns true if the query is PSSM.
Definition: blast_program.c:46
Boolean Blast_ProgramIsPhiBlast(EBlastProgramType p)
Returns true if program is PHI-BLAST (i.e.
Definition: blast_program.c:70
Boolean Blast_QueryIsTranslated(EBlastProgramType p)
Returns true if the query is translated.
Definition: blast_program.c:60
Boolean Blast_SubjectIsProtein(EBlastProgramType p)
Returns true if the subject is protein.
Definition: blast_program.c:50
#define PROTEIN_QUERY_MASK
This bit is on if the query is protein.
Definition: blast_program.h:48
#define PSSM_QUERY_MASK
This bit is on if the query is a PSSM (PSI-BLAST)
Definition: blast_program.h:60
Boolean Blast_ProgramIsPsiBlast(EBlastProgramType p)
Returns true if program is PSI-BLAST (i.e.
Definition: blast_program.c:67
Boolean Blast_SubjectIsNucleotide(EBlastProgramType p)
Returns true if the subject is nucleotide.
Definition: blast_program.c:53
#define PSSM_SUBJECT_MASK
This bit is on if the subject is a PSSM (RPS-BLAST)
Definition: blast_program.h:62
#define MAPPING_MASK
This bit is on for fast mapping of short reads.
Definition: blast_program.h:66
Boolean Blast_ProgramIsNucleotide(EBlastProgramType p)
Definition: blast_program.c:82
#define NUCLEOTIDE_SUBJECT_MASK
This bit is on if the subject is nucleotide.
Definition: blast_program.h:54
#define NUCLEOTIDE_QUERY_MASK
This bit is on if the query is nucleotide.
Definition: blast_program.h:52
#define PROTEIN_SUBJECT_MASK
This bit is on if the subject is protein.
Definition: blast_program.h:50
Boolean Blast_QueryIsNucleotide(EBlastProgramType p)
Returns true if the query is nucleotide.
Definition: blast_program.c:43
Boolean Blast_QueryIsProtein(EBlastProgramType p)
Returns true if the query is protein.
Definition: blast_program.c:40
Boolean Blast_ProgramIsValid(EBlastProgramType p)
Returns true if program is not undefined.
Definition: blast_program.c:87
#define TRANSLATED_SUBJECT_MASK
This bit is on if the subject is translated.
Definition: blast_program.h:58
Boolean Blast_QueryIsPattern(EBlastProgramType p)
Definition: blast_program.c:79
Boolean Blast_ProgramIsRpsBlast(EBlastProgramType p)
Returns true if program is RPS-BLAST (i.e.
Definition: blast_program.c:73
EBlastProgramType
Defines the engine's notion of the different applications of the BLAST algorithm.
Definition: blast_program.h:72
@ eBlastTypeBlastn
Definition: blast_program.h:74
@ eBlastTypeBlastx
Definition: blast_program.h:75
@ eBlastTypePsiTblastn
Definition: blast_program.h:83
@ eBlastTypeRpsTblastn
Definition: blast_program.h:85
@ eBlastTypePhiBlastn
Definition: blast_program.h:87
@ eBlastTypeMapping
Definition: blast_program.h:88
@ eBlastTypeTblastx
Definition: blast_program.h:79
@ eBlastTypePsiBlast
Definition: blast_program.h:82
@ eBlastTypePhiBlastp
Definition: blast_program.h:86
@ eBlastTypeRpsBlast
Definition: blast_program.h:84
@ eBlastTypeUndefined
Definition: blast_program.h:89
@ eBlastTypeTblastn
Definition: blast_program.h:77
@ eBlastTypeBlastp
Definition: blast_program.h:73
#define TRANSLATED_QUERY_MASK
This bit is on if the query is translated.
Definition: blast_program.h:56
Boolean Blast_SubjectIsTranslated(EBlastProgramType p)
Returns true if the subject is translated.
Definition: blast_program.c:63
#define PATTERN_QUERY_MASK
This bit is on if the query includes a pattern (PHI-BLAST)
Definition: blast_program.h:64
Boolean Blast_SubjectIsPssm(EBlastProgramType p)
Returns true if the subject is PSSM.
Definition: blast_program.c:56
Type and macro definitions from C toolkit that are not defined in C++ toolkit.
Uint1 Boolean
bool replacment for C
Definition: ncbi_std.h:94
Modified on Mon May 13 04:34:41 2024 by modify_doxy.py rev. 669887