NCBI C Toolkit Cross Reference

C/object/objfdef.h


  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 

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.