2
* ===========================================================================
5
* National Center for Biotechnology Information
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.
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
22
* Please cite the author in any work or product based on this material.
24
* ===========================================================================
26
* File Name: objpubd.h
28
* Author: James Ostell
30
* Version Creation Date: 4/1/91
34
* File Description: Object manager interface for type Pubdesc from
35
* NCBI-Sequence. This is separate to avoid typedef
36
* order problems with NCBI-Sequence and NCBI-Seqfeat
37
* which both reference Pubdesc
38
* Numbering and Heterogen have now also been added
39
* for the same reason. Heterogen is just a string,
40
* so no special typedefs are required.
43
* --------------------------------------------------------------------------
44
* Date Name Description of modification
45
* ------- ---------- -----------------------------------------------------
48
* Revision 6.4 2000/09/28 11:53:13 ostell
49
* added Pubdesc.reftype = 3
51
* Revision 6.3 2000/05/26 19:50:23 ostell
54
* Revision 6.2 1999/02/12 18:45:22 ostell
55
* added MI_TECH_htgs_0
57
* Revision 6.1 1998/06/12 18:02:26 kans
58
* added MI_TECH_fli_cdna 17 define
60
* Revision 6.0 1997/08/25 18:50:32 madden
61
* Revision changed to 6.0
63
* Revision 4.3 1997/08/20 19:17:13 madden
66
* Revision 4.2 1997/06/19 18:41:50 vakatov
67
* [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization
69
* Revision 4.1 1996/06/13 21:09:08 ostell
70
* added defines for MI_TECH
72
* Revision 4.0 1995/07/26 13:48:06 ostell
73
* force revision to 4.0
75
* Revision 3.2 1995/07/11 18:49:20 ostell
78
* Revision 3.1 1995/05/15 21:22:00 ostell
84
* ==========================================================================
87
#ifndef _NCBI_Pubdesc_
88
#define _NCBI_Pubdesc_
96
#define NLM_EXTERN NLM_IMPORT
98
#define NLM_EXTERN extern
105
/*****************************************************************************
109
*****************************************************************************/
111
ValNodePtr pub; /* points to Pub-equiv */
114
ValNodePtr num; /* points to Numbering */
117
Uint1 align_group; /* 0 = not part of a group */
121
Uint1 reftype; /* 0=seq, 1=sites, 2=feats,
122
3=seq with no explicit span, for GenBank ref */
123
} Pubdesc, PNTR PubdescPtr;
125
NLM_EXTERN PubdescPtr LIBCALL PubdescNew PROTO((void));
126
NLM_EXTERN Boolean LIBCALL PubdescAsnWrite PROTO((PubdescPtr pdp, AsnIoPtr aip, AsnTypePtr atp));
127
NLM_EXTERN PubdescPtr LIBCALL PubdescAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
128
NLM_EXTERN PubdescPtr LIBCALL PubdescFree PROTO((PubdescPtr pdp));
130
typedef ValNode Numbering, FAR *NumberingPtr;
132
/*****************************************************************************
134
* Numbering uses an ValNode with choice =
135
1 = cont Num-cont , -- continuous numbering
136
2 = enum Num-enum , -- enumerated names for residues
137
3 = ref Num-ref, type 1 sources -- by reference to another sequence
138
4 = ref Num-ref, type 2 aligns (SeqAlign in data.ptrvalue)
139
5 = real Num-real -- for maps etc
141
*****************************************************************************/
143
#define Numbering_cont 1
144
#define Numbering_enum 2
145
#define Numbering_ref_source 3
146
#define Numbering_ref_align 4
147
#define Numbering_real 5
149
NLM_EXTERN Boolean LIBCALL NumberingAsnWrite PROTO((NumberingPtr anp, AsnIoPtr aip, AsnTypePtr atp));
150
NLM_EXTERN NumberingPtr LIBCALL NumberingAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
151
NLM_EXTERN NumberingPtr LIBCALL NumberingFree PROTO((NumberingPtr anp));
153
/*****************************************************************************
155
* NumCont - continuous numbering system
157
*****************************************************************************/
158
typedef struct numcont {
162
} NumCont, PNTR NumContPtr;
164
NLM_EXTERN NumContPtr LIBCALL NumContNew PROTO((void));
165
NLM_EXTERN Boolean LIBCALL NumContAsnWrite PROTO((NumContPtr ncp, AsnIoPtr aip, AsnTypePtr atp));
166
NLM_EXTERN NumContPtr LIBCALL NumContAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
167
NLM_EXTERN NumContPtr LIBCALL NumContFree PROTO((NumContPtr ncp));
169
/*****************************************************************************
171
* NumEnum - enumerated numbering system
173
*****************************************************************************/
174
typedef struct numenum {
175
Int4 num; /* number of names */
176
CharPtr buf; /* a buffer for the names */
177
CharPtr PNTR names; /* array of pointers to names */
178
} NumEnum, PNTR NumEnumPtr;
180
NLM_EXTERN NumEnumPtr LIBCALL NumEnumNew PROTO((void));
181
NLM_EXTERN Boolean LIBCALL NumEnumAsnWrite PROTO((NumEnumPtr nep, AsnIoPtr aip, AsnTypePtr atp));
182
NLM_EXTERN NumEnumPtr LIBCALL NumEnumAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
183
NLM_EXTERN NumEnumPtr LIBCALL NumEnumFree PROTO((NumEnumPtr nep));
185
/*****************************************************************************
187
* NumReal - float type numbering system
189
*****************************************************************************/
190
typedef struct numreal {
191
FloatHi a, b; /* number in "units" = ax + b */
193
} NumReal, PNTR NumRealPtr;
195
NLM_EXTERN NumRealPtr LIBCALL NumRealNew PROTO((void));
196
NLM_EXTERN Boolean LIBCALL NumRealAsnWrite PROTO((NumRealPtr ncp, AsnIoPtr aip, AsnTypePtr atp));
197
NLM_EXTERN NumRealPtr LIBCALL NumRealAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
198
NLM_EXTERN NumRealPtr LIBCALL NumRealFree PROTO((NumRealPtr ncp));
200
/*****************************************************************************
202
* MolInfo - Info about mols
204
*****************************************************************************/
205
typedef struct molinfo {
210
} MolInfo, PNTR MolInfoPtr;
212
#define MI_TECH_unknown 0
213
#define MI_TECH_standard 1
214
#define MI_TECH_est 2 /* EST division */
215
#define MI_TECH_sts 3 /* STS division */
216
#define MI_TECH_survey 4 /* GSS division */
217
#define MI_TECH_genemap 5 /* Bioseq is a genetic map */
218
#define MI_TECH_physmap 6 /* Bioseq is physical map */
219
#define MI_TECH_derived 7 /* Bioseq is a computed inference */
220
#define MI_TECH_concept_trans 8 /* conceptual translation */
221
#define MI_TECH_seq_pept 9 /* peptide sequencing used */
222
#define MI_TECH_both 10 /* combination of 8 and 9 used */
223
#define MI_TECH_seq_pept_overlap 11 /* peptides ordered by overlap */
224
#define MI_TECH_seq_pept_homol 12 /* peptides ordered by homology */
225
#define MI_TECH_concept_trans_a 13 /* concept trans supplied by author */
226
#define MI_TECH_htgs_1 14 /* unordered High Throughput Sequence Contig */
227
#define MI_TECH_htgs_2 15 /* ordered High Throughput sequence contig */
228
#define MI_TECH_htgs_3 16 /* finished High Throughut sequence */
229
#define MI_TECH_fli_cdna 17 /* full-length insert cDNA sequence */
230
#define MI_TECH_htgs_0 18 /* unordered single pass reads */
231
#define MI_TECH_htc 19 /* High Throughput CDNA.. unfinished */
232
#define MI_TECH_other 255 /* doesnt' fit anything */
234
NLM_EXTERN MolInfoPtr LIBCALL MolInfoNew PROTO((void));
235
NLM_EXTERN Boolean LIBCALL MolInfoAsnWrite PROTO((MolInfoPtr mip, AsnIoPtr aip, AsnTypePtr atp));
236
NLM_EXTERN MolInfoPtr LIBCALL MolInfoAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp));
237
NLM_EXTERN MolInfoPtr LIBCALL MolInfoFree PROTO((MolInfoPtr mip));
246
#define NLM_EXTERN NLM_EXPORT