|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/object/objfdef.h |
source navigation diff markup identifier search freetext search file search |
1 /* objfdef.h
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 * File Name: objfdef.h
27 *
28 * Author: James Ostell
29 *
30 * Version Creation Date: 9/94
31 *
32 * $Revision: 6.7 $
33 *
34 * File Description: Object manager for feature definitions
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * Date Name Description of modification
39 * ------- ---------- -----------------------------------------------------
40 *
41 * ==========================================================================
42 */
43
44 #ifndef _NCBI_FeatDef_
45 #define _NCBI_FeatDef_
46
47 #ifndef _NCBI_SeqFeat_
48 #include <objfeat.h>
49 #endif
50
51 #undef NLM_EXTERN
52 #ifdef NLM_IMPORT
53 #define NLM_EXTERN NLM_IMPORT
54 #else
55 #define NLM_EXTERN extern
56 #endif
57
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61
62 /*****************************************************************************
63 *
64 * loader
65 *
66 *****************************************************************************/
67 NLM_EXTERN Boolean LIBCALL FeatDefAsnLoad PROTO((void));
68
69 /*****************************************************************************
70 *
71 * FeatDef
72 *
73 *****************************************************************************/
74 typedef struct featdef {
75 CharPtr typelabel,
76 menulabel;
77 Uint1 featdef_key,
78 seqfeat_key,
79 entrygroup,
80 displaygroup,
81 molgroup;
82 struct featdef PNTR next;
83 } FeatDef, PNTR FeatDefPtr;
84
85 NLM_EXTERN FeatDefPtr LIBCALL FeatDefNew PROTO((void));
86 NLM_EXTERN Boolean LIBCALL FeatDefAsnWrite PROTO((FeatDefPtr fdp, AsnIoPtr aip, AsnTypePtr atp));
87 NLM_EXTERN FeatDefPtr LIBCALL FeatDefAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
88 NLM_EXTERN FeatDefPtr LIBCALL FeatDefFree PROTO((FeatDefPtr fdp));
89
90 NLM_EXTERN Boolean LIBCALL FeatDefSetAsnWrite PROTO((FeatDefPtr fdp, AsnIoPtr aip, AsnTypePtr atp));
91 NLM_EXTERN FeatDefPtr LIBCALL FeatDefSetAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
92 NLM_EXTERN FeatDefPtr LIBCALL FeatDefSetFree PROTO((FeatDefPtr fdp));
93
94
95 /*****************************************************************************
96 *
97 * FeatDispGroup
98 *
99 *****************************************************************************/
100 typedef struct featdispgroup {
101 Uint1 groupkey;
102 CharPtr groupname;
103 struct featdispgroup PNTR next;
104 } FeatDispGroup, PNTR FeatDispGroupPtr;
105
106 NLM_EXTERN FeatDispGroupPtr LIBCALL FeatDispGroupNew PROTO((void));
107 NLM_EXTERN Boolean LIBCALL FeatDispGroupAsnWrite PROTO((FeatDispGroupPtr fdp, AsnIoPtr aip, AsnTypePtr atp));
108 NLM_EXTERN FeatDispGroupPtr LIBCALL FeatDispGroupAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
109 NLM_EXTERN FeatDispGroupPtr LIBCALL FeatDispGroupFree PROTO((FeatDispGroupPtr fdp));
110
111 NLM_EXTERN Boolean LIBCALL FeatDispGroupSetAsnWrite PROTO((FeatDispGroupPtr fdp, AsnIoPtr aip, AsnTypePtr atp));
112 NLM_EXTERN FeatDispGroupPtr LIBCALL FeatDispGroupSetAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
113 NLM_EXTERN FeatDispGroupPtr LIBCALL FeatDispGroupSetFree PROTO((FeatDispGroupPtr fdp));
114
115
116 /*****************************************************************************
117 *
118 * Data Loader Function
119 * Loads default FeatDefSet and FeatDispGroupSet from "featdef.val"
120 * located in /ncbi/data directory
121 * returns head of linked list
122 *
123 *****************************************************************************/
124
125 NLM_EXTERN FeatDefPtr LIBCALL FeatDefSetLoad PROTO((void));
126
127 /*****************************************************************************
128 *
129 * FindFeatDefType(sfp)
130 * Finds the featdef_type for a SeqFeat
131 * returns FEATDEF_BAD if can't find it
132 *
133 *****************************************************************************/
134 NLM_EXTERN Uint1 LIBCALL FindFeatDefType PROTO((SeqFeatPtr sfp));
135
136 /*****************************************************************************
137 *
138 * FeatDefLabel(sfp, buf, buflen, type)
139 * fills in buf with a content based label
140 * if longer than buflen, makes the last visible char >
141 * guarantees a '\0' at the end of the string
142 *
143 * NOTE: buf MUST be (buflen+1) long
144 *
145 * This function makes nicer labels since it can combine elements
146 * returns length of string or 0 on failure
147 *
148 * type is OM_LABEL_TYPE_ defined in objmgr.h
149 *
150 *****************************************************************************/
151 NLM_EXTERN Int2 LIBCALL FeatDefLabel PROTO((SeqFeatPtr sfp, CharPtr buf, Int2 buflen, Uint1 labeltype));
152
153 /*****************************************************************************
154 *
155 * FeatDefTypeLabel(sfp)
156 * returns a short string with the feature type
157 * returns NULL if can't find one
158 *
159 *****************************************************************************/
160 NLM_EXTERN const char * LIBCALL FeatDefTypeLabel PROTO((SeqFeatPtr sfp));
161
162 /*****************************************************************************
163 *
164 * DispGroupNum()
165 * returns number of display groups
166 * returns 0 on failure
167 * loads featdef.val if not already loaded
168 *
169 *****************************************************************************/
170 NLM_EXTERN Int2 LIBCALL DispGroupNum PROTO((void));
171
172 /*****************************************************************************
173 *
174 * DispGroupFindNext(curr, groupptr, groupname)
175 * returns display groups in order
176 * start with curr=NULL, then return current in curr until function
177 * returns NULL
178 * loads featdef.val if necessary
179 * groupptr is filled in with the key for the group, used
180 * in FeatDefFindNext() below.
181 * groupname points to the string naming the group
182 *
183 *****************************************************************************/
184 NLM_EXTERN FeatDispGroupPtr LIBCALL DispGroupFindNext PROTO((FeatDispGroupPtr curr, Uint1Ptr groupptr, CharPtr PNTR groupname));
185
186 /*****************************************************************************
187 *
188 * FeatDefNum()
189 * returns total number of FeatDef
190 * loads featdef.val if necessary
191 *
192 *****************************************************************************/
193 NLM_EXTERN Int2 LIBCALL FeatDefNum PROTO((void));
194
195
196 /*****************************************************************************
197 *
198 * FeatDefFindNext(curr, keyptr, menulabel, group, for_display)
199 * returns next FeatDef within display group
200 * if group == FEATDEF_ANY returns all
201 * start with curr = NULL and return current in curr until function
202 * returns NULL
203 * keyptr is filled in with featdef-key
204 * menulabel is filled in with menulabel
205 * if for_display == TRUE then group must match display group
206 * else group must match entrygroup
207 * loads featdef.val if necessary
208 *
209 *****************************************************************************/
210 NLM_EXTERN FeatDefPtr LIBCALL FeatDefFindNext PROTO((FeatDefPtr curr, Uint1Ptr keyptr, CharPtr PNTR menulabel, Uint1 group, Boolean for_display));
211
212 /*****************************************************************************
213 *
214 * #defines for FeatDef types
215 *
216 *****************************************************************************/
217
218 #define FEATDEF_BAD 0
219 #define FEATDEF_ANY 255
220
221 #define FEATDEF_GENE 1
222 #define FEATDEF_ORG 2
223 #define FEATDEF_CDS 3
224 #define FEATDEF_PROT 4
225 #define FEATDEF_preRNA 5
226 #define FEATDEF_mRNA 6
227 #define FEATDEF_tRNA 7
228 #define FEATDEF_rRNA 8
229 #define FEATDEF_snRNA 9
230 #define FEATDEF_scRNA 10
231 #define FEATDEF_otherRNA 11
232 #define FEATDEF_PUB 12
233 #define FEATDEF_SEQ 13
234 #define FEATDEF_IMP 14
235 #define FEATDEF_allele 15
236 #define FEATDEF_attenuator 16
237 #define FEATDEF_C_region 17
238 #define FEATDEF_CAAT_signal 18
239 #define FEATDEF_Imp_CDS 19
240 #define FEATDEF_conflict 20
241 #define FEATDEF_D_loop 21
242 #define FEATDEF_D_segment 22
243 #define FEATDEF_enhancer 23
244 #define FEATDEF_exon 24
245 #define FEATDEF_GC_signal 25
246 #define FEATDEF_iDNA 26
247 #define FEATDEF_intron 27
248 #define FEATDEF_J_segment 28
249 #define FEATDEF_LTR 29
250 #define FEATDEF_mat_peptide 30
251 #define FEATDEF_misc_binding 31
252 #define FEATDEF_misc_difference 32
253 #define FEATDEF_misc_feature 33
254 #define FEATDEF_misc_recomb 34
255 #define FEATDEF_misc_RNA 35
256 #define FEATDEF_misc_signal 36
257 #define FEATDEF_misc_structure 37
258 #define FEATDEF_modified_base 38
259 #define FEATDEF_mutation 39
260 #define FEATDEF_N_region 40
261 #define FEATDEF_old_sequence 41
262 #define FEATDEF_polyA_signal 42
263 #define FEATDEF_polyA_site 43
264 #define FEATDEF_precursor_RNA 44
265 #define FEATDEF_prim_transcript 45
266 #define FEATDEF_primer_bind 46
267 #define FEATDEF_promoter 47
268 #define FEATDEF_protein_bind 48
269 #define FEATDEF_RBS 49
270 #define FEATDEF_repeat_region 50
271 #define FEATDEF_repeat_unit 51
272 #define FEATDEF_rep_origin 52
273 #define FEATDEF_S_region 53
274 #define FEATDEF_satellite 54
275 #define FEATDEF_sig_peptide 55
276 #define FEATDEF_source 56
277 #define FEATDEF_stem_loop 57
278 #define FEATDEF_STS 58
279 #define FEATDEF_TATA_signal 59
280 #define FEATDEF_terminator 60
281 #define FEATDEF_transit_peptide 61
282 #define FEATDEF_unsure 62
283 #define FEATDEF_V_region 63
284 #define FEATDEF_V_segment 64
285 #define FEATDEF_variation 65
286 #define FEATDEF_virion 66
287 #define FEATDEF_3clip 67
288 #define FEATDEF_3UTR 68
289 #define FEATDEF_5clip 69
290 #define FEATDEF_5UTR 70
291 #define FEATDEF_10_signal 71
292 #define FEATDEF_35_signal 72
293 #define FEATDEF_site_ref 73
294 #define FEATDEF_REGION 74
295 #define FEATDEF_COMMENT 75
296 #define FEATDEF_BOND 76
297 #define FEATDEF_SITE 77
298 #define FEATDEF_RSITE 78
299 #define FEATDEF_USER 79
300 #define FEATDEF_TXINIT 80
301 #define FEATDEF_NUM 81
302 #define FEATDEF_PSEC_STR 82
303 #define FEATDEF_NON_STD_RESIDUE 83
304 #define FEATDEF_HET 84
305 #define FEATDEF_BIOSRC 85
306 #define FEATDEF_preprotein 86
307 #define FEATDEF_mat_peptide_aa 87
308 #define FEATDEF_sig_peptide_aa 88
309 #define FEATDEF_transit_peptide_aa 89
310 #define FEATDEF_snoRNA 90
311 #define FEATDEF_gap 91
312 #define FEATDEF_operon 92
313 #define FEATDEF_oriT 93
314 #define FEATDEF_ncRNA 94
315 #define FEATDEF_tmRNA 95
316 #define FEATDEF_CLONEREF 96
317
318 #define FEATDEF_MAX 97 /* size of array needed for featdef filter parameters */
319
320
321 #ifdef __cplusplus
322 }
323 #endif
324
325 #undef NLM_EXTERN
326 #ifdef NLM_EXPORT
327 #define NLM_EXTERN NLM_EXPORT
328 #else
329 #define NLM_EXTERN
330 #endif
331
332 #endif
333 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |