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