1 /*   asn2ff6.h
2 * ===========================================================================
3 *
4 *                            PUBLIC DOMAIN NOTICE
5 *            National Center for Biotechnology Information (NCBI)
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 do not place any restriction on its use or reproduction.
13 *  We would, however, appreciate having the NCBI and the author cited in
14 *  any work or product based on this material
15 *
16 *  Although all reasonable efforts have been taken to ensure the accuracy
17 *  and reliability of the software and data, the NLM and the U.S.
18 *  Government do not and cannot warrant the performance or results that
19 *  may be obtained by using this software or data. The NLM and the U.S.
20 *  Government disclaim all warranties, express or implied, including
21 *  warranties of performance, merchantability or fitness for any particular
22 *  purpose.
23 *
24 * ===========================================================================
25 *
26 * File Name:  asn2ff6.h
27 *
28 * Author:  Karl Sirotkin, Tom Madden, Tatiana Tatusov
29 *
30 * Version Creation Date:   7/15/95
31 *
32 * $Revision: 6.6 $
33 *
34 * File Description:
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * Date     Name        Description of modification
39 * -------  ----------  -----------------------------------------------------
40 *
41 *
42 * ==========================================================================
43 */
44 
45 /*****************************************************************************
46 *
47 *	Header file for asn2gb files.
48 *
49 ****************************************************************************/
50 
51 /*************************************
52 *
53 * $Log: asn2ff6.h,v $
54 * Revision 6.6  2006/07/13 17:06:38  bollin
55 * use Uint4 instead of Uint2 for itemID values
56 * removed unused variables
57 * resolved compiler warnings
58 *
59 * Revision 6.5  2001/12/05 18:13:59  cavanaug
60 * Changes for new LOCUS line format
61 *
62 * Revision 6.4  2001/07/24 15:12:37  beloslyu
63 * change the var.name in prototype from new to New to avoid the conflict with c++
64 *
65 * Revision 6.3  2000/06/05 17:51:58  tatiana
66 * increase size of feature arrays to Int4
67 *
68 * Revision 6.2  1998/02/10 17:01:22  tatiana
69 * AddGBQualEx() added
70 *
71 * Revision 6.0  1997/08/25 18:05:10  madden
72 * Revision changed to 6.0
73 *
74 * Revision 5.13  1997/06/19 18:37:20  vakatov
75 * [WIN32,MSVC++]  Adopted for the "NCBIOBJ.LIB" DLL'ization
76 *
77 * Revision 5.12  1997/05/28 16:58:46  tatiana
78 * GENPEPT_MIN set to 0
79 *
80 * Revision 5.11  1997/05/28 16:51:28  tatiana
81 * GENPEPT_MIN set to 1
82 *
83  * Revision 5.10  1997/01/14  20:53:40  vakatov
84  * added LIBCALL to DoSpecialLineBreak
85  *
86  * Revision 5.9  1997/01/13  22:33:31  tatiana
87  * added CompareGeneName()
88  *
89  * Revision 5.7  1996/12/17  22:47:25  tatiana
90  * added StoreFeatFree()
91  *
92  * Revision 5.6  1996/09/09  13:36:02  kans
93  * moved BioseqGetGBDivCode from toasn.[ch] to asn2ff.h/asn2ff6.c
94  *
95  * Revision 5.5  1996/09/03  19:54:20  tatiana
96  * extra_loc added
97  *
98  * Revision 5.4  1996/08/16  20:36:47  tatiana
99  * GetNAFeatKey PROTO changed
100  *
101  * Revision 5.3  1996/07/30  16:35:40  tatiana
102  * Boolean new added to GetNaFeatKey()
103  *
104  * Revision 5.2  1996/06/14  18:05:18  tatiana
105  * GetNAFeatKey change.
106  *
107  * Revision 5.1  1996/06/11  15:27:34  tatiana
108  * GetGINumber has been changed
109  *
110  * Revision 4.5  1996/01/29  22:43:06  tatiana
111  * error posting MODULE removed
112  *
113  * Revision 4.2  1995/08/18  22:19:04  tatiana
114  * *** empty log message ***
115  *
116  * Revision 4.1  1995/08/01  14:54:04  tatiana
117  * change SeqIdPrint to SeqIdWrite
118  *
119  * Revision 1.12  1995/07/17  19:33:20  kans
120  * parameters combined into Asn2ffJobPtr structure
121  *
122  * Revision 1.11  1995/06/19  21:40:02  kans
123  * Tatiana's first major reorganization, moving printing, adding HTML
124  *
125  * Revision 1.10  1995/05/15  21:46:05  ostell
126  * added Log line
127  *
128 *
129 **************************************/
130 
131 #ifndef _ASN2FF6_
132 #define _ASN2FF6_
133 
134 #include <asn.h>
135 #include <objall.h>
136 #include <objpubd.h>
137 #include <objsub.h>
138 #include <utilpars.h>
139 #include <utilpub.h>
140 #include <gbfeat.h>
141 #include <gbftdef.h>
142 #include <asnprt.h>
143 #include <ftusrstr.h>
144 #include <asn2ffg.h>
145 
146 
147 typedef struct {
148 	Int2 		tech;
149 	Int2		entityID;
150 	Int2		techID,
151 				techtype;
152 	CharPtr		gbdiv,
153 				orgdiv;
154 	Int2		gbID,
155 				gbtype;
156 	Int2		orgID,
157 				orgtype;
158 	Boolean		err_post,
159 				was_err;
160 	BioSourcePtr biosrc;
161 } DivStruct, PNTR DivStructPtr;
162 
163 #define REPORT_ON_NA ( (Uint1)0)
164 #define REPORT_ON_EVERYTHING ( (Uint1)1)
165 #define REPORT_ON_AA ( (Uint1)2)
166 
167 #define NOT_LAST ( (Uint1)0)
168 #define LAST ( (Uint1)1)
169 #define NO_PRINTXX ( (Uint1)0)
170 #define PRINTXX ( (Uint1)1)
171 
172 #define ASN2FLAT_NOT_ALLOC ( (Uint1)0)
173 #define ASN2FLAT_ALLOC ( (Uint1)1)
174 #define ALL ( (Uint1)0)
175 #define RELEASE ( (Uint1)0)
176 #define DUMP ( (Uint1)1)
177 #define FLATLOC_CONTEXT_LOC 1
178 #define FLATLOC_CONTEXT_NOTE 2
179 #define GENPEPT_MIN 0
180 #define MAX_BTP_BUF 80
181 /* THere is a *bad* effect if MAX_TO_RT_SIDE is 60 or more.  For a /translation
182 the first character is a space and CheckBufferState returns a buffer with
183 79 characters.  This results in an ABR. */
184 #define MAX_TO_RT_SIDE 59
185 #define ASN2FF_EMBL_MAX 78
186 #define ASN2FF_GB_MAX 79
187 #define NEWLINE '\n'
188 #define ASN2FF_STD_BUF 35
189 #define MAX_LOCUS_NAME_LEN 16
190 #define MAX_ACCESSION_LEN 25
191 #define REP_NUM_OF_SEQ_DESC 22
192 
193 #define SEQ_BLK_SIZE (60*NUM_SEQ_LINES)
194 
195 #define LOCUS_COLLISION_DB_NAME "GenBank FlatFile LOCUS"
196 
197 #define GeneStringCmp(s, q)     StringCmp(s, q)
198 
199 
200 #undef NLM_EXTERN
201 #ifdef NLM_IMPORT
202 #define NLM_EXTERN NLM_IMPORT
203 #else
204 #define NLM_EXTERN extern
205 #endif
206 
207 NLM_EXTERN SeqFeatPtr MakeSyntheticSeqFeat PROTO ((void));
208 NLM_EXTERN GeneStructPtr GeneStructNew PROTO ((void));
209 NLM_EXTERN void GeneStructFree PROTO ((GeneStructPtr gsp));
210 NLM_EXTERN void GeneStructReset PROTO ((GBEntryPtr gbp, Int2 index));
211 NLM_EXTERN NoteStructPtr NoteStructNew PROTO ((NoteStructPtr gsp));
212 NLM_EXTERN void NoteStructFree PROTO ((NoteStructPtr gsp));
213 NLM_EXTERN void NoteStructReset PROTO ((NoteStructPtr nsp));
214 NLM_EXTERN int LIBCALL CompareSfpForHeap PROTO ((VoidPtr vp1, VoidPtr vp2));
215 NLM_EXTERN int LIBCALL CompareGeneName PROTO ((VoidPtr vp1, VoidPtr vp2));
216 NLM_EXTERN ValNodePtr FlatRefBest PROTO ((ValNodePtr equiv, Boolean error_msgs, Boolean accept_muid));
217 NLM_EXTERN SeqFeatPtr PNTR CopyList PROTO((SortStructPtr List, Int4 currentsize));
218 NLM_EXTERN Int4 StoreFeatFree PROTO((SortStruct PNTR List, SeqFeatPtr sfp, Int4 currentsize, BioseqPtr bsp, BioseqPtr seg, Uint2 entityID, Uint4 itemID, Uint2 thistype, SeqLocPtr slp, SeqLocPtr PNTR extr_loc, Int2 extr_loc_cnt, Boolean feat_free));
219 NLM_EXTERN Int4 StoreFeatTemp PROTO((SortStruct PNTR List, SeqFeatPtr sfp, Int4 currentsize, BioseqPtr bsp, BioseqPtr seg, Uint2 entityID, Uint4 itemID, Uint2 thistype, SeqLocPtr slp, SeqLocPtr PNTR extr_loc, Int2 extr_loc_cnt, Boolean temp));
220 NLM_EXTERN Int4 StoreFeat PROTO((SortStruct PNTR List, SeqFeatPtr sfp, Int4 currentsize, BioseqPtr bsp, BioseqPtr seg, Uint2 entityID, Uint4 itemID, Uint2 thistype, SeqLocPtr slp, SeqLocPtr PNTR extr_loc, Int2 extr_loc_cnt));
221 NLM_EXTERN void ListFree PROTO ((SeqFeatPtr PNTR PNTR List, Int4 range));
222 NLM_EXTERN CharPtr Cat2Strings PROTO ((CharPtr string1, CharPtr string2, CharPtr separator, Int2 num));
223 NLM_EXTERN void EnlargeCharPtrStack PROTO ((NoteStructPtr nsp, Int2 enlarge));
224 NLM_EXTERN SortStructPtr EnlargeSortList PROTO((SortStructPtr List, Int4 size));
225 NLM_EXTERN void NoteToCharPtrStack PROTO ((NoteStructPtr nsp, CharPtr annot, CharPtr string, Uint1 alloc));
226 NLM_EXTERN void CpNoteToCharPtrStack PROTO ((NoteStructPtr nsp, CharPtr annot, CharPtr string));
227 NLM_EXTERN void SaveNoteToCharPtrStack PROTO ((NoteStructPtr nsp, CharPtr annot, CharPtr string));
228 NLM_EXTERN GBQualPtr AddGBQualEx  PROTO ((CharPtr PNTR key, GBQualPtr gbqual, CharPtr qual, CharPtr val));
229 NLM_EXTERN GBQualPtr AddGBQual PROTO ((GBQualPtr gbqual, CharPtr qual, CharPtr val));
230 NLM_EXTERN Int2 CheckForQual PROTO ((GBQualPtr gbqual, CharPtr qual, CharPtr val));
231 NLM_EXTERN Int4 check_range PROTO ((Pointer data, SeqIdPtr seq_id));
232 NLM_EXTERN void do_loc_errors PROTO ((CharPtr front, CharPtr details));
233 NLM_EXTERN void do_no_loc_errors PROTO ((CharPtr front, CharPtr details));
234 NLM_EXTERN Boolean GBQualPresent PROTO ((CharPtr ptr, GBQualPtr gbqual));
235 NLM_EXTERN CharPtr MakeAnAccession PROTO ((CharPtr new_buf, SeqIdPtr sip, Int2 buflen));
236 NLM_EXTERN Boolean GetNAFeatKey PROTO ((Boolean New, CharPtr PNTR buffer, SeqFeatPtr sfp, SeqFeatPtr out));
237 NLM_EXTERN CharPtr GetGBSourceLine PROTO ((GBBlockPtr gb));
238 NLM_EXTERN CharPtr FlatOrganelle PROTO ((Asn2ffJobPtr ajp, GBEntryPtr gbp));
239 NLM_EXTERN Int4 GetNumOfSeqBlks PROTO ((Asn2ffJobPtr ajp, GBEntryPtr gbp));
240 
241 NLM_EXTERN SeqIdPtr GetProductSeqId PROTO ((ValNodePtr product));
242 NLM_EXTERN Int4 GetGINumFromSip PROTO ((SeqIdPtr sip));
243 NLM_EXTERN SeqIdPtr CheckXrefFeat PROTO ((BioseqPtr bsp, SeqFeatPtr sfp));
244 NLM_EXTERN Boolean LIBCALL DoSpecialLineBreak PROTO ((CharPtr string, Int2 indent));
245 
246 NLM_EXTERN void GetNAPubFeat PROTO ((GBEntryPtr gbp, ValNodePtr PNTR vnpp, SortStructPtr PNTR List, Int2Ptr currentsites));
247 
248 NLM_EXTERN void CountTheSeqEntrys PROTO ((SeqEntryPtr sep, Pointer data, Int4 index, Int2 indent));
249 NLM_EXTERN void GetGIs PROTO ((Asn2ffJobPtr ajp));
250 NLM_EXTERN void GetGINumber PROTO ((GBEntryPtr gbp));
251 
252 
253 #undef NLM_EXTERN
254 #ifdef NLM_EXPORT
255 #define NLM_EXTERN NLM_EXPORT
256 #else
257 #define NLM_EXTERN
258 #endif
259 
260 #endif
261