1 /*   asn2ff.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:  asn2ff.h
27 *
28 * Author:  Karl Sirotkin, Tom Madden, Tatiana Tatusov
29 *
30 * Version Creation Date:   7/15/95
31 *
32 * $Revision: 6.14 $
33 *
34 * File Description:  Header file for asn2gb files.
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * $Log: asn2ff.h,v $
39 * Revision 6.14  2001/04/05 21:52:18  tatiana
40 * format and strand added to SeqEntryToEntrez
41 *
42 * Revision 6.13  2001/03/15 21:42:00  tatiana
43 * SeqEntryToEntrez added
44 *
45 * Revision 6.12  2000/03/24 17:56:11  tatiana
46 * SeqEntryToStrArrayQEx added
47 *
48 * Revision 6.10  1999/04/09 21:22:10  bazhin
49 * Added function "ByteStorePtr AjpToByteStore()".
50 *
51 * Revision 6.9  1999/04/02 16:31:46  tatiana
52 * asn2ff_print_to_mem and SeqEntryToStrArray changed to NLM_EXTERN
53 *
54 * Revision 6.8  1999/03/05 16:41:40  tatiana
55 * GRAPHIK_FMT changed to 14
56 *
57 * Revision 6.7  1999/03/04 23:39:53  tatiana
58 * GRAPHIK_FMT added
59 *
60 * Revision 6.6  1998/11/05 16:12:17  bazhin
61 * Added 4th parameter "Boolean show_gi" to SeqEntryToGBFlatNoSeq()
62 * function. It will say do or does not print GI number into output
63 * flatfile. Same for error messages related to missing GIs.
64 *
65 * Revision 6.5  1998/09/14 16:37:46  tatiana
66 * SeqEntryToFlatAjp added
67 *
68 * Revision 6.4  1998/09/08 20:40:52  tatiana
69 * Asn2ffJobCreate added
70 *
71 * Revision 6.3  1998/08/21 16:58:48  shavirin
72 * Added definition of function SeqEntryToGBFlatNoSeq()
73 *
74 * Revision 6.2  1998/05/11 21:58:50  tatiana
75 * some functions moved from asn2ff1.c to asn2ff6.c
76 *
77 * Revision 6.1  1998/05/08 21:58:36  tatiana
78 * added PARTIAL_MODE and SeqEntryToPartRpt PROTO
79 *
80 * Revision 6.0  1997/08/25 18:04:33  madden
81 * Revision changed to 6.0
82 *
83 * Revision 5.7  1997/07/28 19:03:50  vakatov
84 * [WIN32,MSVC++]  Restored lost "NCBIOBJ.LIB" pro-DLL modifications
85 *
86 * Revision 5.6  1997/07/23 18:36:58  tatiana
87 * SeqEntryToFlatEx() added
88 *
89 * Revision 5.5  1997/06/19 18:36:48  vakatov
90 * [WIN32,MSVC++]  Adopted for the "NCBIOBJ.LIB" DLL'ization
91 *
92  * Revision 5.3  1996/09/09  13:36:02  kans
93  * moved BioseqGetGBDivCode from toasn.[ch] to asn2ff.h/asn2ff6.c
94  *
95  * Revision 5.1  1996/07/12  19:46:09  tatiana
96  * SeqSubmitToFlat PROTO added
97  *
98  * Revision 4.3  1996/03/19  15:58:14  tatiana
99  * SeqGenomeToFlat prototype
100  *
101  * Revision 1.24  1995/07/17  19:33:20  kans
102  * parameters combined into Asn2ffJobPtr structure
103  *
104  * Revision 1.23  1995/06/19  21:40:02  kans
105  * Tatiana's first major reorganization, moving printing, adding HTML
106  *
107 * ==========================================================================
108 */
109 
110 #ifndef _ASN2FF_
111 #define _ASN2FF_
112 
113 #include <ncbi.h>
114 #include <objsset.h>
115 #include <prtutil.h>
116 #include <seqport.h>
117 #include <sequtil.h>
118 #include <stdio.h>
119 #include <asn2ffg.h>
120 
121 #undef NLM_EXTERN
122 #ifdef NLM_IMPORT
123 #define NLM_EXTERN NLM_IMPORT
124 #else
125 #define NLM_EXTERN extern
126 #endif
127 
128 #ifdef __cplusplus
129 extern "C" {
130 #endif
131 
132 #define GENBANK_FMT ( (Uint1)0)
133 #define EMBL_FMT ( (Uint1)1)
134 #define GENPEPT_FMT ( (Uint1)2)
135 #define PSEUDOEMBL_FMT ( (Uint1)3)
136 #define SELECT_FMT ( (Uint1)4)
137 #define EMBLPEPT_FMT ( (Uint1)5)
138 #define RELEASE_MODE ( (Uint1)6)
139 #define DUMP_MODE ( (Uint1)7)
140 #define SEQUIN_MODE ( (Uint1)8)
141 #define CHROMO_MODE ( (Uint1)9)
142 #define DIRSUB_MODE ( (Uint1)10)
143 #define REVISE_MODE ( (Uint1)11)
144 #define DIRSUB_DEBUG_MODE ( (Uint1)12)
145 #define PARTIAL_MODE ( (Uint1)13)
146 #define GRAPHIK_FMT ( (Uint1)14)
147 
148 #define NUM_OF_ESTIMATES 20
149 #define NUM_SEQ_LINES 10
150 
151 
152 NLM_EXTERN Int4 asn2ff_setup PROTO ((Asn2ffJobPtr job, FFPrintArrayPtr PNTR papp));
153 
154 NLM_EXTERN void asn2ff_cleanup PROTO ((Asn2ffJobPtr job));
155 
156 NLM_EXTERN Boolean asn2ff_print PROTO ((Asn2ffJobPtr job));
157 
158 NLM_EXTERN LinkStrPtr asn2ff_print_to_mem PROTO ((Asn2ffJobPtr job, LinkStrPtr lsp));
159 
160 NLM_EXTERN Asn2ffJobPtr Asn2ffJobCreate PROTO ((SeqEntryPtr sep, SeqSubmitPtr ssp, SeqLocPtr slp, FILE *fp, Uint1 format, Uint1 mode, StdPrintOptionsPtr	Spop));
161 
162 NLM_EXTERN Boolean SeqEntryToEntrez PROTO ((SeqEntryPtr sep, FILE *fp, SeqIdPtr seqid, Uint1 format, Uint1 display, Int4 from, Int4 to, Uint1 strand));
163 
164 NLM_EXTERN CharPtr PNTR SeqEntryToStrArray PROTO ((SeqEntryPtr sep, Uint1 format, Uint1 mode));
165 
166 NLM_EXTERN LinkStrPtr SeqEntryToStrArrayQEx PROTO ((SeqEntryPtr sep, Uint1 format, Int4 gi, Boolean is_html));
167 NLM_EXTERN LinkStrPtr SeqEntryToStrArrayEx PROTO ((SeqEntryPtr sep, Uint1 format, Int4 gi, Boolean is_html));
168 NLM_EXTERN Boolean SeqEntryToFlatAjp PROTO ((Asn2ffJobPtr ajp, SeqEntryPtr sep, FILE *fp, Uint1 format, Uint1 mode));
169 NLM_EXTERN Boolean SeqEntryToFlat PROTO ((SeqEntryPtr sep, FILE *fp, Uint1 format, Uint1 mode));
170 NLM_EXTERN Boolean SeqEntryToFlatEx PROTO ((SeqEntryPtr sep, FILE *fp, Uint1 format, Uint1 mode, SeqIdPtr seqid, Uint1 type));
171 NLM_EXTERN Boolean SeqEntryToGBFlatNoSeq PROTO ((SeqEntryPtr sep, FILE *fp, Uint1 mode, Boolean show_gi));
172 NLM_EXTERN Boolean SeqSubmitToFlat  PROTO ((SeqSubmitPtr ssp, FILE *fp, Uint1 mode, Boolean show_gi, Uint1 format, Boolean show_gene));
173 NLM_EXTERN Boolean SeqGenomeToFlat PROTO ((SeqEntryPtr sep, FILE *fp, Uint1 format, Uint1 mode));
174 NLM_EXTERN Boolean SeqEntryToPartRpt PROTO ((SeqEntryPtr sep, FILE *fp));
175 NLM_EXTERN Boolean SeqLocToFlat PROTO ((SeqLocPtr slp, FILE *fp, Uint1 format, Uint1 mode));
176 NLM_EXTERN ByteStorePtr AjpToByteStore PROTO ((Asn2ffJobPtr ajp));
177 
178 NLM_EXTERN Int2 BioseqGetGBDivCode PROTO((BioseqPtr bsp, CharPtr buffer, Int2 buflen, Boolean err_post));
179 /* moved from asn2ff1.c to asn2ff6.c */
180 NLM_EXTERN void AddExtraAccessions PROTO((Asn2ffJobPtr ajp, GBEntryPtr gbp));
181 NLM_EXTERN void GetLocusPartsAwp PROTO((Asn2ffJobPtr ajp));
182 NLM_EXTERN Int4 GetPubsAwp PROTO((Asn2ffJobPtr ajp, GBEntryPtr gbp));
183 NLM_EXTERN Boolean SeqToAwp PROTO((GatherContextPtr gcp));
184 NLM_EXTERN void UseGIforLocus PROTO((Asn2ffJobPtr ajp));
185 
186 #ifdef __cplusplus
187 }
188 #endif
189 
190 #undef NLM_EXTERN
191 #ifdef NLM_EXPORT
192 #define NLM_EXTERN NLM_EXPORT
193 #else
194 #define NLM_EXTERN
195 #endif
196 
197 #endif
198