1 /* objpubd.h 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information 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 have not placed any restriction on its use or reproduction. 13 * 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 20 * purpose. 21 * 22 * Please cite the author in any work or product based on this material. 23 * 24 * =========================================================================== 25 * 26 * File Name: objpubd.h 27 * 28 * Author: James Ostell 29 * 30 * Version Creation Date: 4/1/91 31 * 32 * $Revision: 6.14 $ 33 * 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. 41 * 42 * Modifications: 43 * -------------------------------------------------------------------------- 44 * Date Name Description of modification 45 * ------- ---------- ----------------------------------------------------- 46 * 47 * ========================================================================== 48 */ 49 50 #ifndef _NCBI_Pubdesc_ 51 #define _NCBI_Pubdesc_ 52 53 #ifndef _ASNTOOL_ 54 #include <asn.h> 55 #endif 56 57 #undef NLM_EXTERN 58 #ifdef NLM_IMPORT 59 #define NLM_EXTERN NLM_IMPORT 60 #else 61 #define NLM_EXTERN extern 62 #endif 63 64 #ifdef __cplusplus 65 extern "C" { 66 #endif 67 68 /***************************************************************************** 69 * 70 * Pubdesc 71 * 72 *****************************************************************************/ 73 typedef struct pd { 74 ValNodePtr pub; /* points to Pub-equiv */ 75 CharPtr name, 76 fig; 77 ValNodePtr num; /* points to Numbering */ 78 Boolean numexc, 79 poly_a; 80 Uint1 align_group; /* 0 = not part of a group */ 81 CharPtr maploc, 82 seq_raw, 83 comment; 84 Uint1 reftype; /* 0=seq, 1=sites, 2=feats, 85 3=seq with no explicit span, for GenBank ref */ 86 } Pubdesc, PNTR PubdescPtr; 87 88 NLM_EXTERN PubdescPtr LIBCALL PubdescNew PROTO((void)); 89 NLM_EXTERN Boolean LIBCALL PubdescAsnWrite PROTO((PubdescPtr pdp, AsnIoPtr aip, AsnTypePtr atp)); 90 NLM_EXTERN PubdescPtr LIBCALL PubdescAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 91 NLM_EXTERN PubdescPtr LIBCALL PubdescFree PROTO((PubdescPtr pdp)); 92 93 NLM_EXTERN Boolean LIBCALL PubdescContentMatch (PubdescPtr pdp1, PubdescPtr pdp2); 94 95 typedef ValNode Numbering, FAR *NumberingPtr; 96 97 /***************************************************************************** 98 * 99 * Numbering uses an ValNode with choice = 100 1 = cont Num-cont , -- continuous numbering 101 2 = enum Num-enum , -- enumerated names for residues 102 3 = ref Num-ref, type 1 sources -- by reference to another sequence 103 4 = ref Num-ref, type 2 aligns (SeqAlign in data.ptrvalue) 104 5 = real Num-real -- for maps etc 105 * 106 *****************************************************************************/ 107 108 #define Numbering_cont 1 109 #define Numbering_enum 2 110 #define Numbering_ref_source 3 111 #define Numbering_ref_align 4 112 #define Numbering_real 5 113 114 NLM_EXTERN Boolean LIBCALL NumberingAsnWrite PROTO((NumberingPtr anp, AsnIoPtr aip, AsnTypePtr atp)); 115 NLM_EXTERN NumberingPtr LIBCALL NumberingAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 116 NLM_EXTERN NumberingPtr LIBCALL NumberingFree PROTO((NumberingPtr anp)); 117 118 /***************************************************************************** 119 * 120 * NumCont - continuous numbering system 121 * 122 *****************************************************************************/ 123 typedef struct numcont { 124 Int4 refnum; 125 Boolean has_zero, 126 ascending; 127 } NumCont, PNTR NumContPtr; 128 129 NLM_EXTERN NumContPtr LIBCALL NumContNew PROTO((void)); 130 NLM_EXTERN Boolean LIBCALL NumContAsnWrite PROTO((NumContPtr ncp, AsnIoPtr aip, AsnTypePtr atp)); 131 NLM_EXTERN NumContPtr LIBCALL NumContAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 132 NLM_EXTERN NumContPtr LIBCALL NumContFree PROTO((NumContPtr ncp)); 133 134 /***************************************************************************** 135 * 136 * NumEnum - enumerated numbering system 137 * 138 *****************************************************************************/ 139 typedef struct numenum { 140 Int4 num; /* number of names */ 141 CharPtr buf; /* a buffer for the names */ 142 CharPtr PNTR names; /* array of pointers to names */ 143 } NumEnum, PNTR NumEnumPtr; 144 145 NLM_EXTERN NumEnumPtr LIBCALL NumEnumNew PROTO((void)); 146 NLM_EXTERN Boolean LIBCALL NumEnumAsnWrite PROTO((NumEnumPtr nep, AsnIoPtr aip, AsnTypePtr atp)); 147 NLM_EXTERN NumEnumPtr LIBCALL NumEnumAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 148 NLM_EXTERN NumEnumPtr LIBCALL NumEnumFree PROTO((NumEnumPtr nep)); 149 150 /***************************************************************************** 151 * 152 * NumReal - float type numbering system 153 * 154 *****************************************************************************/ 155 typedef struct numreal { 156 FloatHi a, b; /* number in "units" = ax + b */ 157 CharPtr units; 158 } NumReal, PNTR NumRealPtr; 159 160 NLM_EXTERN NumRealPtr LIBCALL NumRealNew PROTO((void)); 161 NLM_EXTERN Boolean LIBCALL NumRealAsnWrite PROTO((NumRealPtr ncp, AsnIoPtr aip, AsnTypePtr atp)); 162 NLM_EXTERN NumRealPtr LIBCALL NumRealAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 163 NLM_EXTERN NumRealPtr LIBCALL NumRealFree PROTO((NumRealPtr ncp)); 164 165 /***************************************************************************** 166 * 167 * MolInfo - Info about mols 168 * 169 *****************************************************************************/ 170 typedef struct molinfo { 171 Uint1 biomol, 172 tech; 173 CharPtr techexp; 174 Uint1 completeness; 175 CharPtr gbmoltype; 176 } MolInfo, PNTR MolInfoPtr; 177 178 #define MI_TECH_unknown 0 179 #define MI_TECH_standard 1 180 #define MI_TECH_est 2 /* EST division */ 181 #define MI_TECH_sts 3 /* STS division */ 182 #define MI_TECH_survey 4 /* GSS division */ 183 #define MI_TECH_genemap 5 /* Bioseq is a genetic map */ 184 #define MI_TECH_physmap 6 /* Bioseq is physical map */ 185 #define MI_TECH_derived 7 /* Bioseq is a computed inference */ 186 #define MI_TECH_concept_trans 8 /* conceptual translation */ 187 #define MI_TECH_seq_pept 9 /* peptide sequencing used */ 188 #define MI_TECH_both 10 /* combination of 8 and 9 used */ 189 #define MI_TECH_seq_pept_overlap 11 /* peptides ordered by overlap */ 190 #define MI_TECH_seq_pept_homol 12 /* peptides ordered by homology */ 191 #define MI_TECH_concept_trans_a 13 /* concept trans supplied by author */ 192 #define MI_TECH_htgs_1 14 /* unordered High Throughput Sequence Contig */ 193 #define MI_TECH_htgs_2 15 /* ordered High Throughput sequence contig */ 194 #define MI_TECH_htgs_3 16 /* finished High Throughut sequence */ 195 #define MI_TECH_fli_cdna 17 /* full-length insert cDNA sequence */ 196 #define MI_TECH_htgs_0 18 /* unordered single pass reads */ 197 #define MI_TECH_htc 19 /* High Throughput CDNA.. unfinished */ 198 #define MI_TECH_wgs 20 /* Whole Genome Shotgun */ 199 #define MI_TECH_barcode 21 /* Barcode of Life Project */ 200 #define MI_TECH_composite_wgs_htgs 22 /* Assembly/Scaffold composite of techniques */ 201 #define MI_TECH_tsa 23 /* Transcriptome Shotgun Assembly */ 202 #define MI_TECH_targeted 24 /* Targeted Locus Sets/Studies */ 203 #define MI_TECH_other 255 /* doesnt' fit anything */ 204 205 NLM_EXTERN MolInfoPtr LIBCALL MolInfoNew PROTO((void)); 206 NLM_EXTERN Boolean LIBCALL MolInfoAsnWrite PROTO((MolInfoPtr mip, AsnIoPtr aip, AsnTypePtr atp)); 207 NLM_EXTERN MolInfoPtr LIBCALL MolInfoAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 208 NLM_EXTERN MolInfoPtr LIBCALL MolInfoFree PROTO((MolInfoPtr mip)); 209 210 211 #ifdef __cplusplus 212 } 213 #endif 214 215 #undef NLM_EXTERN 216 #ifdef NLM_EXPORT 217 #define NLM_EXTERN NLM_EXPORT 218 #else 219 #define NLM_EXTERN 220 #endif 221 222 #endif 223