1 /* a2fstruc.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: a2fstruc.h 27 * 28 * Author: Karl Sirotkin, Tom Madden, Tatiana Tatusov 29 * 30 * Version Creation Date: 7/15/95 31 * 32 * $Revision: 6.0 $ 33 * 34 * File Description: 35 * 36 * Modifications: 37 * -------------------------------------------------------------------------- 38 * Date Name Description of modification 39 * ------- ---------- ----------------------------------------------------- 40 * 41 * 42 * ========================================================================== 43 */ 44 45 /********************************************************************* 46 * 47 * Structures for asn2ff and makerpt 48 * 49 **********************************************************************/ 50 51 /************************************* 52 * 53 * $Log: a2fstruc.h,v $ 54 * Revision 6.0 1997/08/25 18:04:30 madden 55 * Revision changed to 6.0 56 * 57 * Revision 5.0 1996/05/28 13:23:23 ostell 58 * Set to revision 5.0 59 * 60 * Revision 4.0 1995/07/26 13:49:01 ostell 61 * force revision to 4.0 62 * 63 * Revision 1.11 1995/07/17 19:33:20 kans 64 * parameters combined into Asn2ffJobPtr structure 65 * 66 * Revision 1.10 1995/06/19 21:40:02 kans 67 * Tatiana's first major reorganization, moving printing, adding HTML 68 * 69 * Revision 1.9 1995/05/15 21:46:05 ostell 70 * added Log line 71 * 72 * 73 *************************************/ 74 75 #ifndef _A2FSTRUC_ 76 #define _A2FSTRUC_ 77 78 #include <asn.h> 79 #include <objall.h> 80 #include <objpubd.h> 81 #include <objsub.h> 82 #include <prtutil.h> 83 #include <asn2ffg.h> 84 85 #define LINKS 20 86 87 88 /*--------------the structure for information on Genes-----*/ 89 90 typedef struct genestruct { 91 ValNodePtr gene; 92 ValNodePtr product; 93 ValNodePtr standard_name; 94 CharPtr PNTR map; /* only map[0] is used why we need PNTR? */ 95 ValNodePtr ECNum; 96 Int2 map_size, map_index; /* map_size is always 1 */ 97 Int2 matchlist_size; 98 Int2Ptr genes_matched; 99 Boolean pseudo; 100 } GeneStruct, PNTR GeneStructPtr; 101 102 /*--------------the structure for the composition of notes-----*/ 103 104 typedef struct notestruct { 105 CharPtr PNTR note; 106 Uint1 PNTR note_alloc; 107 CharPtr PNTR note_annot; 108 Int2 note_size, note_index; 109 } NoteStruct, PNTR NoteStructPtr; 110 111 /* ---------------The Biotable Structure ------------*/ 112 113 typedef struct biotable { 114 SeqEntryPtr sep; /* the SeqEntryPtr passed to asn2ff_setup */ 115 SeqEntryPtr PNTR sepp; /* An array of SeqEntryPtr's, used by makerpt */ 116 BioseqPtr PNTR bsp; /* This array lists the (valid) entries to be 117 formatted */ 118 BioseqPtr PNTR table; /* This array lists the BioseqPtr's with repr 119 "seg" in a segmented set. If the entry is not 120 segmented, this is NULL */ 121 BioseqContextPtr PNTR bcp; /* The BioseqContextPtr for each 122 BioseqPtr */ 123 BioseqContextPtr PNTR bcp_na; /* BioseqContextPtr of a nucleotide 124 sequence, used for an amino acid sequence; 125 set in EstablishProteinLink */ 126 Uint1 PNTR bcp_na_alloc; /* flag that says whether the bcp is 127 allocated */ 128 SeqFeatPtr PNTR cds; /* Used by genPept to determine which CDS 129 a protein comes from, set in 130 EstablishProteinLink */ 131 Int2 FlatLoc_context; 132 GeneStructPtr PNTR PNTR gspp; /* information on Genes */ 133 NoteStructPtr PNTR PNTR nspp; /* information on Notes. */ 134 NoteStructPtr source_notes; /* Note for source feature */ 135 SeqFeatPtr sfp_out; /* ImpFeat used to hole SeqFeat info while 136 they're being formatted */ 137 /* The next several variables, all starting with "sfp", are set in 138 OrganizeSeqFeat */ 139 Int2Ptr sfpListsize; /* Number of "generic" (i.e., not in any 140 category below) features/entry */ 141 SeqFeatPtr PNTR PNTR sfpList; /* ptr's to "generic" features */ 142 Int2Ptr sfpCommsize; /* Number of comment features */ 143 SeqFeatPtr PNTR PNTR sfpCommlist; /* ptr's to comment features */ 144 Int2Ptr sfpGenesize; /* Number of gene features */ 145 SeqFeatPtr PNTR PNTR sfpGenelist; /* Ptr's to gene features */ 146 Int2Ptr sfpOrgsize; /* Number of Organism features. */ 147 SeqFeatPtr PNTR PNTR sfpOrglist; /* ptr's to Org features. */ 148 Int2Ptr sfpSitesize; /* Number of ImpFeat's with key "Site-ref" */ 149 SeqFeatPtr PNTR PNTR sfpSitelist; /* ptr's to ImpFeat's with key "Site-ref" */ 150 Int2Ptr sfpSourcesize; /* Number of ImpFeat's with key "source" */ 151 SeqFeatPtr PNTR PNTR sfpSourcelist; /* ptr's to ImpFeat's with key "source" */ 152 Int2Ptr sfpXrefsize; /* Number of Seq's that go out as xref's */ 153 SeqFeatPtr PNTR PNTR sfpXreflist;/* ptr's to Seq's that are xref's */ 154 ValNodePtr PNTR Pub; /* Linked list of references */ 155 CharPtr PNTR base_cnt_line; 156 CharPtr PNTR access; 157 CharPtr PNTR locus; 158 CharPtr PNTR division; 159 CharPtr PNTR date; 160 CharPtr PNTR create_date; 161 CharPtr PNTR update_date; 162 CharPtr PNTR embl_rel; 163 Int2Ptr embl_ver; 164 Int4Ptr gi; 165 Int2 count; 166 Int2Ptr seg_num; 167 Int2Ptr seg_total; 168 Int4 pap_index; 169 Uint1 pap_last; 170 Char newline; 171 Boolean pseudo; 172 Uint1 gene_binding; 173 Int2 number_of_cds; 174 SeqPortPtr spp; 175 Int4 count_set; 176 Boolean found_match; 177 struct biotable PNTR btp_other; 178 } Biotable, PNTR BiotablePtr; 179 180 /*----------- Estimates for the number of lines returned for 181 each of the following------------------------------------------*/ 182 183 #define NUM_OF_ESTIMATES 20 184 #define NUM_SEQ_LINES 10 185 186 static Int2 line_estimate[NUM_OF_ESTIMATES] = { 187 1, /* 0; Locus, Segment, Base Count, Origin, Feature Header lines */ 188 1, /* 1; Definition line(s) */ 189 1, /* 2; Accession line(s) */ 190 1, /* 3; Keyword line(s) */ 191 2, /* 4; Source lines */ 192 6, /* 5; Reference (pub) lines */ 193 10, /* 6; GBComAndFH */ 194 11, /* 7; GBComAndXref */ 195 6, /* 8; Features */ 196 NUM_SEQ_LINES, /* 9; Sequence lines */ 197 2, /* 10; EMBL Date lines */ 198 2, /* 11; EMBL Organism lines */ 199 4, /* 12; DBSOURCE field */ 200 }; 201 202 203 204 typedef void (* FFPapFct) PROTO ((Asn2ffJobPtr ajp, BiotablePtr btp, Int2 count)); 205 206 typedef struct ffprintarray { 207 FFPapFct fct; 208 Asn2ffJobPtr ajp; 209 BiotablePtr btp; 210 Int2 count; 211 Int4 index; 212 Uint1 last; 213 Uint1 printxx; 214 Int2 estimate; 215 SeqFeatPtr sfp; 216 ValNodePtr pub; 217 ValNodePtr descr; 218 } FFPrintArray, PNTR FFPrintArrayPtr; 219 220 #endif 221