~ubuntu-branches/ubuntu/precise/ncbi-tools6/precise

« back to all changes in this revision

Viewing changes to api/asn2gnbi.h

  • Committer: Bazaar Package Importer
  • Author(s): Aaron M. Ucko
  • Date: 2005-03-27 12:00:15 UTC
  • mfrom: (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050327120015-embhesp32nj73p9r
Tags: 6.1.20041020-3
* Fix FTBFS under GCC 4.0 caused by inconsistent use of "static" on
  functions.  (Closes: #295110.)
* Add a watch file, now that we can.  (Upstream's layout needs version=3.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*   asn2gnbi.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:  asn2gnbi.h
 
27
*
 
28
* Author:  Karl Sirotkin, Tom Madden, Tatiana Tatusov, Jonathan Kans
 
29
*
 
30
* Version Creation Date:   12/30/03
 
31
*
 
32
* $Revision: 1.16 $
 
33
*
 
34
* File Description:  New GenBank flatfile generator, internal header
 
35
*
 
36
* Modifications:  
 
37
* --------------------------------------------------------------------------
 
38
* ==========================================================================
 
39
*/
 
40
 
 
41
#ifndef _ASN2NGNBI_
 
42
#define _ASN2NGNBI_
 
43
 
 
44
#include <asn2gnbp.h>
 
45
#include <explore.h>
 
46
 
 
47
#undef NLM_EXTERN
 
48
#ifdef NLM_IMPORT
 
49
#define NLM_EXTERN NLM_IMPORT
 
50
#else
 
51
#define NLM_EXTERN extern
 
52
#endif
 
53
 
 
54
#ifdef __cplusplus
 
55
extern "C" {
 
56
#endif
 
57
 
 
58
 
 
59
 
 
60
#define ASN2FF_EMBL_MAX 78
 
61
#define ASN2FF_GB_MAX   79
 
62
#define SEQID_MAX_LEN   41
 
63
 
 
64
#define TILDE_IGNORE     0
 
65
#define TILDE_TO_SPACES  1
 
66
#define TILDE_EXPAND     2
 
67
#define TILDE_OLD_EXPAND 3
 
68
 
 
69
 
 
70
/* flags set by mode to customize behavior */
 
71
 
 
72
typedef struct asn2gbflags {
 
73
  Boolean             suppressLocalID;
 
74
  Boolean             validateFeats;
 
75
  Boolean             ignorePatPubs;
 
76
  Boolean             dropShortAA;
 
77
  Boolean             avoidLocusColl;
 
78
  Boolean             iupacaaOnly;
 
79
  Boolean             dropBadCitGens;
 
80
  Boolean             noAffilOnUnpub;
 
81
  Boolean             dropIllegalQuals;
 
82
  Boolean             checkQualSyntax;
 
83
  Boolean             needRequiredQuals;
 
84
  Boolean             needOrganismQual;
 
85
  Boolean             needAtLeastOneRef;
 
86
  Boolean             citArtIsoJta;
 
87
  Boolean             dropBadDbxref;
 
88
  Boolean             useEmblMolType;
 
89
  Boolean             hideBankItComment;
 
90
  Boolean             checkCDSproductID;
 
91
  Boolean             suppressSegLoc;
 
92
  Boolean             srcQualsToNote;
 
93
  Boolean             hideEmptySource;
 
94
  Boolean             goQualsToNote;
 
95
  Boolean             geneSynsToNote;
 
96
  Boolean             selenocysteineToNote;
 
97
  Boolean             extraProductsToNote;
 
98
  Boolean             forGbRelease;
 
99
} Asn2gbFlags, PNTR Asn2gbFlagsPtr;
 
100
 
 
101
/* internal Asn2gbSect structure has fields on top of Asn2gbSect fields */
 
102
 
 
103
typedef struct int_Asn2gbSect {
 
104
  Asn2gbSect  asp;
 
105
} IntAsn2gbSect, PNTR IntAsn2gbSectPtr;
 
106
 
 
107
/* string structure */
 
108
 
 
109
#define STRING_BUF_LEN  1024
 
110
 
 
111
typedef struct stringitem {
 
112
  struct stringitem  *curr;
 
113
  struct stringitem  *next;
 
114
  Pointer            iajp;
 
115
  Char               buf [STRING_BUF_LEN];
 
116
  Int4               pos;
 
117
} StringItem, PNTR StringItemPtr;
 
118
 
 
119
/* internal asn2gbjob structure has fields on top of Asn2gbJob fields */
 
120
 
 
121
typedef struct int_asn2gb_job {
 
122
  Asn2gbJob      ajp;
 
123
  FmtType        format;
 
124
  ModType        mode;
 
125
  Asn2gbFlags    flags;
 
126
  Boolean        showFarTransl;
 
127
  Boolean        transIfNoProd;
 
128
  Boolean        alwaysTranslCds;
 
129
  Boolean        showTranscript;
 
130
  Boolean        showPeptide;
 
131
  Boolean        masterStyle;
 
132
  Boolean        newSourceOrg;
 
133
  Boolean        produceInsdSeq;
 
134
  ValNodePtr     lockedBspList;
 
135
  Boolean        relModeError;
 
136
  Boolean        skipProts;
 
137
  Boolean        skipMrnas;
 
138
  IndxPtr        index;
 
139
  GBSeqPtr       gbseq;
 
140
  AsnIoPtr       aip;
 
141
  AsnTypePtr     atp;
 
142
  StringItemPtr  pool;
 
143
  Boolean        www;
 
144
} IntAsn2gbJob, PNTR IntAsn2gbJobPtr;
 
145
 
 
146
/* array for assigning biosource and feature data fields to qualifiers */
 
147
/* should be allocated to MAX (ASN2GNBK_TOTAL_SOURCE, ASN2GNBK_TOTAL_FEATUR) */
 
148
 
 
149
typedef union qualval {
 
150
  CharPtr        str;
 
151
  Boolean        ble;
 
152
  Int4           num;
 
153
  ValNodePtr     vnp;
 
154
  GBQualPtr      gbq;
 
155
  OrgModPtr      omp;
 
156
  SubSourcePtr   ssp;
 
157
  CodeBreakPtr   cbp;
 
158
  SeqLocPtr      slp;
 
159
  SeqIdPtr       sip;
 
160
  tRNAPtr        trp;
 
161
  UserObjectPtr  uop;
 
162
  UserFieldPtr   ufp;
 
163
} QualVal, PNTR QualValPtr;
 
164
 
 
165
/* structure passed to individual paragraph format functions */
 
166
 
 
167
typedef struct asn2gbformat {
 
168
  IntAsn2gbJobPtr  ajp;
 
169
  Asn2gbSectPtr    asp;
 
170
  QualValPtr       qvp;
 
171
  FmtType          format;
 
172
  Asn2gbWriteFunc  ffwrite;
 
173
  Pointer          userdata;
 
174
  Asn2gbLockFunc   remotelock;
 
175
  Asn2gbFreeFunc   remotefree;
 
176
  Pointer          remotedata;
 
177
  FILE             *fp;
 
178
  AsnIoPtr         aip;
 
179
  AsnTypePtr       atp;
 
180
} Asn2gbFormat, PNTR Asn2gbFormatPtr;
 
181
 
 
182
/* structure for storing working parameters while building asn2gb_job structure */
 
183
 
 
184
typedef struct asn2gbwork {
 
185
  IntAsn2gbJobPtr  ajp;
 
186
  Uint2            entityID;
 
187
 
 
188
  FmtType          format;
 
189
  ModType          mode;
 
190
  StlType          style;
 
191
 
 
192
  ValNodePtr       pubhead;    /* for collecting publications */
 
193
  ValNodePtr       srchead;    /* for collecting biosources */
 
194
 
 
195
  /* linked lists of paragraphs, sections, blocks */
 
196
 
 
197
  ValNodePtr       sectionList;
 
198
  ValNodePtr       blockList;    /* reset for each new section */
 
199
 
 
200
  /* most recent node of linked lists, for quickly adding next node */
 
201
 
 
202
  ValNodePtr       lastsection;
 
203
  ValNodePtr       lastblock;    /* reset for each new section */
 
204
 
 
205
  Int4             currsection;
 
206
 
 
207
  /* set if doing immediate write at time of creation for web speed */
 
208
 
 
209
  Asn2gbFormatPtr  afp;
 
210
 
 
211
  /* section fields needed for populating blocks */
 
212
 
 
213
  Asn2gbSectPtr    asp;
 
214
 
 
215
  BioseqPtr        target;
 
216
  BioseqPtr        parent;
 
217
  BioseqPtr        bsp;
 
218
  BioseqPtr        refs;
 
219
  SeqLocPtr        slp;
 
220
  Uint2            seg;
 
221
  Int4             numsegs;
 
222
  Int4             partcount;
 
223
  Int4             from;
 
224
  Int4             to;
 
225
  Boolean          showAllFeats;
 
226
 
 
227
  Boolean          contig;
 
228
  Boolean          showconfeats;
 
229
  Boolean          showconsource;
 
230
  Boolean          smartconfeats;
 
231
 
 
232
  Boolean          onlyNearFeats;
 
233
  Boolean          farFeatsSuppress;
 
234
  Boolean          nearFeatsSuppress;
 
235
 
 
236
  Boolean          citSubsFirst;
 
237
  Boolean          hideGeneFeats;
 
238
  Boolean          newLocusLine;
 
239
  Boolean          showBaseCount;
 
240
 
 
241
  Boolean          hideImpFeats;
 
242
  Boolean          hideRemImpFeats;
 
243
  Boolean          hideSnpFeats;
 
244
  Boolean          hideExonFeats;
 
245
  Boolean          hideIntronFeats;
 
246
  Boolean          hideMiscFeats;
 
247
  Boolean          hideCddFeats;
 
248
  Boolean          hideCdsProdFeats;
 
249
 
 
250
  Boolean          hideGeneRIFs;
 
251
  Boolean          onlyGeneRIFs;
 
252
  Boolean          latestGeneRIFs;
 
253
 
 
254
  Boolean          showRefs;
 
255
 
 
256
  Boolean          isGPS;
 
257
  Boolean          copyGpsCdsUp;
 
258
  Boolean          copyGpsGeneDown;
 
259
 
 
260
  Boolean          showContigAndSeq;
 
261
 
 
262
  Char             basename [SEQID_MAX_LEN];
 
263
 
 
264
  SeqFeatPtr       lastsfp;
 
265
  SeqAnnotPtr      lastsap;
 
266
  Int4             lastleft;
 
267
  Int4             lastright;
 
268
 
 
269
  Boolean          firstfeat;
 
270
  Boolean          featseen;
 
271
 
 
272
  SeqSubmitPtr     ssp;
 
273
  Boolean          hup;
 
274
 
 
275
  Boolean          failed;
 
276
} Asn2gbWork, PNTR Asn2gbWorkPtr;
 
277
 
 
278
 
 
279
/* Seq-hist replacedBy is preformatted into string field, */
 
280
/* then comment descriptors, Map location:, and Region:, */
 
281
/* then comment features, finally HTGS */
 
282
 
 
283
typedef struct comment_block {
 
284
  ASN2GB_BASE_BLOCK
 
285
  Boolean           first;
 
286
} CommentBlock, PNTR CommentBlockPtr;
 
287
 
 
288
/* internal reference block has fields on top of RefBlock fields */
 
289
 
 
290
typedef struct int_ref_block {
 
291
  RefBlock   rb;
 
292
  DatePtr    date;     /* internal sorting use only */
 
293
  SeqLocPtr  loc;      /* final location on target bioseq */
 
294
  CharPtr    authstr;  /* author string */
 
295
  Uint2      index;    /* index if feature on target bioseq */
 
296
  Boolean    justuids; /* gibb pub with uids and Figure, etc. */
 
297
  CharPtr    fig;      /* figure string from equivalent gibb pub */
 
298
  CharPtr    maploc;   /* maploc string from equivalent gibb pub */
 
299
  Boolean    poly_a;   /* poly_a field from equivalent gibb pub */
 
300
} IntRefBlock, PNTR IntRefBlockPtr;
 
301
 
 
302
/* internal source block has fields on top of BaseBlock fields */
 
303
 
 
304
typedef struct int_src_block {
 
305
  BaseBlock         bb;
 
306
  Boolean           is_descriptor;
 
307
  Boolean           is_focus;
 
308
  Boolean           is_synthetic;
 
309
  BioSourcePtr      biop;
 
310
  Uint4             orghash;
 
311
  Uint4             modhash;
 
312
  Uint4             subhash;
 
313
  Uint4             xrfhash;
 
314
  SeqLocPtr         loc;     /* final location on target bioseq */
 
315
  CharPtr           taxname;
 
316
  CharPtr           comment;
 
317
  OrgModPtr         omp;
 
318
  SubSourcePtr      ssp;
 
319
  ValNodePtr        vnp;
 
320
  Int4              left;
 
321
  Int4              right;
 
322
} IntSrcBlock, PNTR IntSrcBlockPtr;
 
323
 
 
324
/* internal feature block has fields on top of FeatBlock fields */
 
325
 
 
326
typedef struct int_feat_block {
 
327
  FeatBlock  fb;
 
328
  Boolean     mapToNuc;
 
329
  Boolean     mapToProt;
 
330
  Boolean     mapToGen;
 
331
  Boolean     mapToMrna;
 
332
  Boolean     mapToPep;
 
333
  Boolean     isCDS;     /* set if using IntCdsBlock */
 
334
  Boolean     firstfeat;
 
335
} IntFeatBlock, PNTR IntFeatBlockPtr;
 
336
 
 
337
/* internal cds block has fields on top of IntFeatBlock fields */
 
338
 
 
339
typedef struct int_cds_block {
 
340
  IntFeatBlock  ifb;
 
341
  CharPtr       fig;    /* figure string from pub */
 
342
  CharPtr       maploc; /* maploc string from pub */
 
343
} IntCdsBlock, PNTR IntCdsBlockPtr;
 
344
 
 
345
 
 
346
/* enumerated qualifier category definitions */
 
347
 
 
348
typedef enum {
 
349
  Qual_class_ignore = 0,
 
350
  Qual_class_string,
 
351
  Qual_class_tilde,
 
352
  Qual_class_sgml,
 
353
  Qual_class_boolean,
 
354
  Qual_class_int,
 
355
  Qual_class_evidence,
 
356
  Qual_class_valnode,
 
357
  Qual_class_EC_valnode,
 
358
  Qual_class_xtraprds,
 
359
  Qual_class_quote,
 
360
  Qual_class_EC_quote,
 
361
  Qual_class_noquote,
 
362
  Qual_class_label,
 
363
  Qual_class_number,
 
364
  Qual_class_paren,
 
365
  Qual_class_usedin,
 
366
  Qual_class_region,
 
367
  Qual_class_replace,
 
368
  Qual_class_consplice,
 
369
  Qual_class_bond,
 
370
  Qual_class_site,
 
371
  Qual_class_L_R_B,
 
372
  Qual_class_rpt,
 
373
  Qual_class_organelle,
 
374
  Qual_class_orgmod,
 
375
  Qual_class_subsource,
 
376
  Qual_class_code_break,
 
377
  Qual_class_anti_codon,
 
378
  Qual_class_codon,
 
379
  Qual_class_method,
 
380
  Qual_class_pubset,
 
381
  Qual_class_db_xref,
 
382
  Qual_class_seq_id,
 
383
  Qual_class_seq_loc,
 
384
  Qual_class_its,
 
385
  Qual_class_sec_str,
 
386
  Qual_class_trna_codons,
 
387
  Qual_class_translation,
 
388
  Qual_class_transcription,
 
389
  Qual_class_peptide,
 
390
  Qual_class_protnames,
 
391
  Qual_class_encodes,
 
392
  Qual_class_illegal,
 
393
  Qual_class_note,
 
394
  Qual_class_rpt_unit,
 
395
  Qual_class_product,
 
396
  Qual_class_model_ev,
 
397
  Qual_class_gene_syn,
 
398
  Qual_class_locus_tag,
 
399
  Qual_class_go
 
400
}  QualType;
 
401
 
 
402
/* source 'feature' */
 
403
 
 
404
/* some qualifiers will require additional content verification not
 
405
   explicitly indicated by the class type */
 
406
 
 
407
typedef enum {
 
408
  SCQUAL_acronym = 1,
 
409
  SCQUAL_anamorph,
 
410
  SCQUAL_authority,
 
411
  SCQUAL_biotype,
 
412
  SCQUAL_biovar,
 
413
  SCQUAL_breed,
 
414
  SCQUAL_cell_line,
 
415
  SCQUAL_cell_type,
 
416
  SCQUAL_chemovar,
 
417
  SCQUAL_chromosome,
 
418
  SCQUAL_citation,
 
419
  SCQUAL_clone,
 
420
  SCQUAL_clone_lib,
 
421
  SCQUAL_common,
 
422
  SCQUAL_common_name,
 
423
  SCQUAL_country,
 
424
  SCQUAL_cultivar,
 
425
  SCQUAL_db_xref,
 
426
  SCQUAL_org_xref,
 
427
  SCQUAL_dev_stage,
 
428
  SCQUAL_dosage,
 
429
  SCQUAL_ecotype,
 
430
  SCQUAL_endogenous_virus_name,
 
431
  SCQUAL_environmental_sample,
 
432
  SCQUAL_extrachrom,
 
433
  SCQUAL_focus,
 
434
  SCQUAL_forma,
 
435
  SCQUAL_forma_specialis,
 
436
  SCQUAL_frequency,
 
437
  SCQUAL_gb_acronym,
 
438
  SCQUAL_gb_anamorph,
 
439
  SCQUAL_gb_synonym,
 
440
  SCQUAL_genotype,
 
441
  SCQUAL_germline,
 
442
  SCQUAL_group,
 
443
  SCQUAL_haplotype,
 
444
  SCQUAL_ins_seq_name,
 
445
  SCQUAL_isolate,
 
446
  SCQUAL_isolation_source,
 
447
  SCQUAL_lab_host,
 
448
  SCQUAL_label,
 
449
  SCQUAL_macronuclear,
 
450
  SCQUAL_map,
 
451
  SCQUAL_mol_type,
 
452
  SCQUAL_note,
 
453
  SCQUAL_old_lineage,
 
454
  SCQUAL_old_name,
 
455
  SCQUAL_organism,
 
456
  SCQUAL_organelle,
 
457
  SCQUAL_orgmod_note,
 
458
  SCQUAL_pathovar,
 
459
  SCQUAL_plasmid_name,
 
460
  SCQUAL_plastid_name,
 
461
  SCQUAL_pop_variant,
 
462
  SCQUAL_rearranged,
 
463
  SCQUAL_segment,
 
464
  SCQUAL_seqfeat_note,
 
465
  SCQUAL_sequenced_mol,
 
466
  SCQUAL_serogroup,
 
467
  SCQUAL_serotype,
 
468
  SCQUAL_serovar,
 
469
  SCQUAL_sex,
 
470
  SCQUAL_spec_or_nat_host,
 
471
  SCQUAL_specimen_voucher,
 
472
  SCQUAL_strain,
 
473
  SCQUAL_sub_clone,
 
474
  SCQUAL_sub_group,
 
475
  SCQUAL_sub_species,
 
476
  SCQUAL_sub_strain,
 
477
  SCQUAL_sub_type,
 
478
  SCQUAL_subsource_note,
 
479
  SCQUAL_synonym,
 
480
  SCQUAL_teleomorph,
 
481
  SCQUAL_tissue_lib,
 
482
  SCQUAL_tissue_type,
 
483
  SCQUAL_transgenic,
 
484
  SCQUAL_transposon_name,
 
485
  SCQUAL_type,
 
486
  SCQUAL_unstructured,
 
487
  SCQUAL_usedin,
 
488
  SCQUAL_variety,
 
489
  SCQUAL_zero_orgmod,
 
490
  SCQUAL_one_orgmod,
 
491
  SCQUAL_zero_subsrc,
 
492
  ASN2GNBK_TOTAL_SOURCE
 
493
}  SourceType;
 
494
 
 
495
NLM_EXTERN SourceType orgModToSourceIdx [38];
 
496
 
 
497
typedef enum {
 
498
  FTQUAL_allele = 1,
 
499
  FTQUAL_anticodon,
 
500
  FTQUAL_bond,
 
501
  FTQUAL_bond_type,
 
502
  FTQUAL_bound_moiety,
 
503
  FTQUAL_cds_product,
 
504
  FTQUAL_citation,
 
505
  FTQUAL_clone,
 
506
  FTQUAL_coded_by,
 
507
  FTQUAL_compare,
 
508
  FTQUAL_codon,
 
509
  FTQUAL_codon_start,
 
510
  FTQUAL_cons_splice,
 
511
  FTQUAL_db_xref,
 
512
  FTQUAL_derived_from,
 
513
  FTQUAL_direction,
 
514
  FTQUAL_EC_number,
 
515
  FTQUAL_encodes,
 
516
  FTQUAL_evidence,
 
517
  FTQUAL_exception,
 
518
  FTQUAL_exception_note,
 
519
  FTQUAL_extra_products,
 
520
  FTQUAL_figure,
 
521
  FTQUAL_frequency,
 
522
  FTQUAL_function,
 
523
  FTQUAL_gene,
 
524
  FTQUAL_gene_desc,
 
525
  FTQUAL_gene_allele,
 
526
  FTQUAL_gene_map,
 
527
  FTQUAL_gene_syn,
 
528
  FTQUAL_gene_syn_refseq,
 
529
  FTQUAL_gene_note,
 
530
  FTQUAL_gene_xref,
 
531
  FTQUAL_go_component,
 
532
  FTQUAL_go_function,
 
533
  FTQUAL_go_process,
 
534
  FTQUAL_heterogen,
 
535
  FTQUAL_illegal_qual,
 
536
  FTQUAL_insertion_seq,
 
537
  FTQUAL_label,
 
538
  FTQUAL_locus_tag,
 
539
  FTQUAL_map,
 
540
  FTQUAL_maploc,
 
541
  FTQUAL_mod_base,
 
542
  FTQUAL_modelev,
 
543
  FTQUAL_note,
 
544
  FTQUAL_number,
 
545
  FTQUAL_old_locus_tag,
 
546
  FTQUAL_operon,
 
547
  FTQUAL_organism,
 
548
  FTQUAL_partial,
 
549
  FTQUAL_PCR_conditions,
 
550
  FTQUAL_peptide,
 
551
  FTQUAL_phenotype,
 
552
  FTQUAL_product,
 
553
  FTQUAL_product_quals,
 
554
  FTQUAL_prot_activity,
 
555
  FTQUAL_prot_comment,
 
556
  FTQUAL_prot_EC_number,
 
557
  FTQUAL_prot_note,
 
558
  FTQUAL_prot_method,
 
559
  FTQUAL_prot_conflict,
 
560
  FTQUAL_prot_desc,
 
561
  FTQUAL_prot_missing,
 
562
  FTQUAL_prot_name,
 
563
  FTQUAL_prot_names,
 
564
  FTQUAL_protein_id,
 
565
  FTQUAL_pseudo,
 
566
  FTQUAL_region,
 
567
  FTQUAL_region_name,
 
568
  FTQUAL_replace,
 
569
  FTQUAL_rpt_family,
 
570
  FTQUAL_rpt_type,
 
571
  FTQUAL_rpt_unit,
 
572
  FTQUAL_rrna_its,
 
573
  FTQUAL_sec_str_type,
 
574
  FTQUAL_selenocysteine,
 
575
  FTQUAL_selenocysteine_note,
 
576
  FTQUAL_seqfeat_note,
 
577
  FTQUAL_site,
 
578
  FTQUAL_site_type,
 
579
  FTQUAL_standard_name,
 
580
  FTQUAL_transcription,
 
581
  FTQUAL_transcript_id,
 
582
  FTQUAL_transcript_id_note, /* !!! remove October 15, 2003 !!! */
 
583
  FTQUAL_transl_except,
 
584
  FTQUAL_transl_table,
 
585
  FTQUAL_translation,
 
586
  FTQUAL_transposon,
 
587
  FTQUAL_trna_aa,
 
588
  FTQUAL_trna_codons,
 
589
  FTQUAL_usedin,
 
590
  FTQUAL_xtra_prod_quals,
 
591
  ASN2GNBK_TOTAL_FEATUR
 
592
}  FtQualType;
 
593
 
 
594
#define MAX_WWWBUF 328
 
595
 
 
596
NLM_EXTERN Char link_feat [MAX_WWWBUF];
 
597
NLM_EXTERN Char link_seq [MAX_WWWBUF];
 
598
NLM_EXTERN Char link_wgs [MAX_WWWBUF];
 
599
NLM_EXTERN Char link_omim [MAX_WWWBUF];
 
600
NLM_EXTERN Char ref_link [MAX_WWWBUF];
 
601
NLM_EXTERN Char nt_link [MAX_WWWBUF];
 
602
NLM_EXTERN Char doc_link [MAX_WWWBUF];
 
603
NLM_EXTERN Char ev_link [MAX_WWWBUF];
 
604
NLM_EXTERN Char ec_link [MAX_WWWBUF];
 
605
NLM_EXTERN Char link_tax [MAX_WWWBUF];
 
606
NLM_EXTERN Char link_muid [MAX_WWWBUF];
 
607
NLM_EXTERN Char link_code [MAX_WWWBUF];
 
608
NLM_EXTERN Char link_encode [MAX_WWWBUF];
 
609
NLM_EXTERN Char link_go [MAX_WWWBUF];
 
610
 
 
611
NLM_EXTERN void FF_www_db_xref(
 
612
  IntAsn2gbJobPtr ajp,
 
613
  StringItemPtr ffstring,
 
614
  CharPtr db, CharPtr identifier
 
615
);
 
616
 
 
617
NLM_EXTERN Boolean StringIsJustQuotes (
 
618
  CharPtr str
 
619
);
 
620
 
 
621
 
 
622
typedef struct sourcequal {
 
623
  CharPtr   name;
 
624
  QualType  qualclass;
 
625
} SourceQual, PNTR SourceQualPtr;
 
626
 
 
627
NLM_EXTERN SourceQual asn2gnbk_source_quals [ASN2GNBK_TOTAL_SOURCE];
 
628
 
 
629
NLM_EXTERN SourceType subSourceToSourceIdx [30];
 
630
 
 
631
NLM_EXTERN void DoOneSection (
 
632
  BioseqPtr target,
 
633
  BioseqPtr parent,
 
634
  BioseqPtr bsp,
 
635
  BioseqPtr refs,
 
636
  SeqLocPtr slp,
 
637
  Uint2 seg,
 
638
  Int4 from,
 
639
  Int4 to,
 
640
  Boolean contig,
 
641
  Boolean onePartOfSeg,
 
642
  Asn2gbWorkPtr awp
 
643
);
 
644
 
 
645
NLM_EXTERN void DoOneBioseq (
 
646
  BioseqPtr bsp,
 
647
  Pointer userdata
 
648
);
 
649
 
 
650
NLM_EXTERN BaseBlockPtr Asn2gbAddBlock (
 
651
  Asn2gbWorkPtr awp,
 
652
  BlockType blocktype,
 
653
  size_t size
 
654
);
 
655
 
 
656
NLM_EXTERN void InitWWW (IntAsn2gbJobPtr ajp);
 
657
NLM_EXTERN void FiniWWW (IntAsn2gbJobPtr ajp);
 
658
NLM_EXTERN Boolean GetWWW (IntAsn2gbJobPtr ajp);
 
659
 
 
660
NLM_EXTERN StringItemPtr FFGetString (IntAsn2gbJobPtr ajp);
 
661
NLM_EXTERN void FFRecycleString (IntAsn2gbJobPtr ajp, StringItemPtr ffstring);
 
662
NLM_EXTERN void FFAddOneChar (
 
663
  StringItemPtr sip, 
 
664
  Char ch,
 
665
  Boolean convertQuotes
 
666
);
 
667
NLM_EXTERN void FFAddNewLine(StringItemPtr ffstring);
 
668
NLM_EXTERN void FFAddNChar (
 
669
  StringItemPtr sip, 
 
670
  Char ch,
 
671
  Int4 n,
 
672
  Boolean convertQuotes
 
673
);
 
674
NLM_EXTERN void FFExpandTildes (StringItemPtr sip, CharPtr PNTR cpp);
 
675
NLM_EXTERN void FFReplaceTildesWithSpaces (StringItemPtr ffstring, CharPtr PNTR cpp);
 
676
NLM_EXTERN void FFOldExpand (StringItemPtr sip, CharPtr PNTR cpp);
 
677
NLM_EXTERN void AddCommentStringWithTildes (StringItemPtr ffstring, CharPtr string);
 
678
NLM_EXTERN void AddCommentWithURLlinks (
 
679
  IntAsn2gbJobPtr ajp,
 
680
  StringItemPtr ffstring,
 
681
  CharPtr prefix,
 
682
  CharPtr str,
 
683
  CharPtr suffix
 
684
);
 
685
NLM_EXTERN void AddStringWithTildes (StringItemPtr ffstring, CharPtr string);
 
686
NLM_EXTERN void FFProcessTildes (StringItemPtr sip, CharPtr PNTR cpp, Int2 tildeAction);
 
687
NLM_EXTERN void FFAddPeriod (StringItemPtr sip);
 
688
NLM_EXTERN void FFAddOneString (
 
689
  StringItemPtr sip, 
 
690
  CharPtr string,
 
691
  Boolean addPeriod, 
 
692
  Boolean convertQuotes,
 
693
  Int2 tildeAction
 
694
);
 
695
NLM_EXTERN void FFCatenateSubString (
 
696
  StringItemPtr dest,
 
697
  StringItemPtr start_sip, Int4 start_pos,
 
698
  StringItemPtr end_sip, Int4 end_pos
 
699
);
 
700
NLM_EXTERN CharPtr FFToCharPtr (StringItemPtr sip);
 
701
NLM_EXTERN void FFSkipLink (StringItemPtr PNTR iterp, Int4Ptr ip);
 
702
NLM_EXTERN Boolean FFIsStartOfLink (StringItemPtr iter, Int4 pos);
 
703
NLM_EXTERN void FFSavePosition(StringItemPtr ffstring, StringItemPtr PNTR bufptr, Int4 PNTR posptr);
 
704
NLM_EXTERN void FFTrim (
 
705
    StringItemPtr ffstring,
 
706
    StringItemPtr line_start,
 
707
    Int4 line_pos,
 
708
    Int4 line_prefix_len
 
709
);NLM_EXTERN void FFCalculateLineBreak (
 
710
  StringItemPtr PNTR break_sip, Int4 PNTR break_pos,
 
711
  Int4 init_indent, Int4 visible
 
712
);
 
713
NLM_EXTERN void FFLineWrap (
 
714
  StringItemPtr dest, 
 
715
  StringItemPtr src, 
 
716
  Int4 init_indent,
 
717
  Int4 cont_indent, 
 
718
  Int4 line_max,
 
719
  CharPtr eb_line_prefix
 
720
);
 
721
NLM_EXTERN void FFStartPrint (
 
722
  StringItemPtr sip,
 
723
  FmtType format,
 
724
  Int4 gb_init_indent,
 
725
  Int4 gb_cont_indent,
 
726
  CharPtr gb_label,
 
727
  Int4 gb_tab_to,
 
728
  Int4 eb_init_indent,
 
729
  Int4 eb_cont_indent,
 
730
  CharPtr eb_line_prefix,
 
731
  Boolean eb_print_xx 
 
732
);
 
733
NLM_EXTERN void FFAddTextToString (
 
734
  StringItemPtr ffstring, 
 
735
  CharPtr prefix,
 
736
  CharPtr string,
 
737
  CharPtr suffix,
 
738
  Boolean addPeriod,
 
739
  Boolean convertQuotes,
 
740
  Int2 tildeAction
 
741
);
 
742
NLM_EXTERN CharPtr FFEndPrint (
 
743
  IntAsn2gbJobPtr ajp,
 
744
  StringItemPtr ffstring,
 
745
  FmtType format,
 
746
  Int2 gb_init_indent,
 
747
  Int2 gb_cont_indent,
 
748
  Int2 eb_init_indent,
 
749
  Int2 eb_cont_indent,
 
750
  CharPtr eb_line_prefix
 
751
);
 
752
NLM_EXTERN Uint4 FFLength(StringItemPtr ffstring);
 
753
NLM_EXTERN Char FFCharAt(StringItemPtr ffstring, Uint4 pos);
 
754
NLM_EXTERN Char FFFindChar (
 
755
  StringItemPtr ffstring,
 
756
  StringItemPtr start_buf,
 
757
  Uint4 start_pos,
 
758
  Uint4 old_pos,
 
759
  Uint4 new_pos
 
760
);
 
761
NLM_EXTERN Boolean FFEmpty(StringItemPtr ffstring);
 
762
NLM_EXTERN Int4 FFStringSearch (
 
763
  StringItemPtr text,
 
764
  const CharPtr pattern,
 
765
  Uint4 position
 
766
);
 
767
NLM_EXTERN Boolean IsWholeWordSubstr (
 
768
  StringItemPtr searchStr,
 
769
  Uint4 foundPos,
 
770
  CharPtr subStr
 
771
);
 
772
 
 
773
NLM_EXTERN ValNodePtr ValNodeCopyStrToHead (ValNodePtr PNTR head, Int2 choice, CharPtr str);
 
774
NLM_EXTERN CharPtr MergeFFValNodeStrs (
 
775
  ValNodePtr list
 
776
);
 
777
NLM_EXTERN void AddValNodeString (
 
778
  ValNodePtr PNTR head,
 
779
  CharPtr prefix,
 
780
  CharPtr string,
 
781
  CharPtr suffix
 
782
);
 
783
NLM_EXTERN void FFAddString_NoRedund (
 
784
  StringItemPtr unique,
 
785
  CharPtr prefix,
 
786
  CharPtr string,
 
787
  CharPtr suffix
 
788
);
 
789
NLM_EXTERN void s_AddPeriodToEnd (CharPtr someString);
 
790
NLM_EXTERN Boolean s_RemovePeriodFromEnd (CharPtr someString);
 
791
NLM_EXTERN Boolean IsEllipsis (
 
792
  CharPtr str
 
793
);
 
794
NLM_EXTERN void A2GBSeqLocReplaceID (
 
795
  SeqLocPtr newloc,
 
796
  SeqLocPtr ajpslp
 
797
);
 
798
NLM_EXTERN CharPtr asn2gb_PrintDate (
 
799
  DatePtr dp
 
800
);
 
801
NLM_EXTERN CharPtr DateToFF (
 
802
  CharPtr buf,
 
803
  DatePtr dp,
 
804
  Boolean citSub
 
805
);
 
806
 
 
807
NLM_EXTERN CharPtr FFFlatLoc (
 
808
  IntAsn2gbJobPtr ajp,
 
809
  BioseqPtr bsp,
 
810
  SeqLocPtr location,
 
811
  Boolean masterStyle
 
812
);
 
813
 
 
814
NLM_EXTERN void FF_www_featloc(StringItemPtr ffstring, CharPtr loc);
 
815
 
 
816
NLM_EXTERN CharPtr GetMolTypeQual (
 
817
  BioseqPtr bsp
 
818
);
 
819
 
 
820
NLM_EXTERN void AddFeatureToGbseq (
 
821
  GBSeqPtr gbseq,
 
822
  GBFeaturePtr gbfeat,
 
823
  CharPtr str,
 
824
  SeqFeatPtr sfp
 
825
);
 
826
 
 
827
NLM_EXTERN SeqIdPtr SeqLocIdForProduct (
 
828
  SeqLocPtr product
 
829
);
 
830
 
 
831
NLM_EXTERN CharPtr GetAuthorsString (
 
832
  FmtType format,
 
833
  AuthListPtr alp,
 
834
  CharPtr PNTR consortP,
 
835
  IndxPtr index,
 
836
  GBReferencePtr gbref
 
837
);
 
838
 
 
839
NLM_EXTERN AuthListPtr GetAuthListPtr (
 
840
  PubdescPtr pdp,
 
841
  CitSubPtr csp
 
842
);
 
843
 
 
844
NLM_EXTERN Int2 MatchRef (
 
845
  ValNodePtr ppr,
 
846
  RefBlockPtr PNTR rbpp,
 
847
  Int2 numReferences
 
848
);
 
849
 
 
850
NLM_EXTERN SeqLocPtr SeqLocReMapEx (
 
851
  SeqIdPtr newid,
 
852
  SeqLocPtr seq_loc,
 
853
  SeqLocPtr location,
 
854
  Int4 offset,
 
855
  Boolean rev,
 
856
  Boolean masterStyle
 
857
);
 
858
 
 
859
NLM_EXTERN CharPtr Get3LetterSymbol (
 
860
  IntAsn2gbJobPtr  ajp,
 
861
  Uint1 seq_code,
 
862
  SeqCodeTablePtr table,
 
863
  Uint1 residue
 
864
);
 
865
 
 
866
NLM_EXTERN CharPtr CleanQualValue (
 
867
  CharPtr str
 
868
);
 
869
NLM_EXTERN CharPtr Asn2gnbkCompressSpaces (CharPtr str);
 
870
NLM_EXTERN CharPtr StripAllSpaces (
 
871
  CharPtr str
 
872
);
 
873
 
 
874
NLM_EXTERN Boolean GetAccnVerFromServer (Int4 gi, CharPtr buf);
 
875
 
 
876
NLM_EXTERN CharPtr bondList [];
 
877
NLM_EXTERN CharPtr siteList [];
 
878
NLM_EXTERN CharPtr secStrText [];
 
879
 
 
880
NLM_EXTERN CharPtr goQualType [];
 
881
NLM_EXTERN CharPtr goFieldType [];
 
882
 
 
883
NLM_EXTERN CharPtr legalDbXrefs [];
 
884
NLM_EXTERN CharPtr legalRefSeqDbXrefs [];
 
885
 
 
886
 
 
887
NLM_EXTERN void AddFeatureBlock (
 
888
  Asn2gbWorkPtr awp
 
889
);
 
890
NLM_EXTERN Boolean AddReferenceBlock (
 
891
  Asn2gbWorkPtr awp,
 
892
  Boolean isRefSeq
 
893
);
 
894
NLM_EXTERN void AddSourceFeatBlock (
 
895
  Asn2gbWorkPtr awp
 
896
);
 
897
NLM_EXTERN void AddFeatureBlock (
 
898
  Asn2gbWorkPtr awp
 
899
);
 
900
NLM_EXTERN void AddLocusBlock (
 
901
  Asn2gbWorkPtr awp
 
902
);
 
903
NLM_EXTERN void AddAccessionBlock (
 
904
  Asn2gbWorkPtr awp
 
905
);
 
906
NLM_EXTERN void AddVersionBlock (
 
907
  Asn2gbWorkPtr awp
 
908
);
 
909
NLM_EXTERN void AddDbsourceBlock (
 
910
  Asn2gbWorkPtr awp
 
911
);
 
912
NLM_EXTERN void AddDateBlock (
 
913
  Asn2gbWorkPtr awp
 
914
);
 
915
NLM_EXTERN void AddDeflineBlock (
 
916
  Asn2gbWorkPtr awp
 
917
);
 
918
NLM_EXTERN void AddKeywordsBlock (
 
919
  Asn2gbWorkPtr awp
 
920
);
 
921
NLM_EXTERN void AddSegmentBlock (
 
922
  Asn2gbWorkPtr awp,
 
923
  Boolean onePartOfSeg
 
924
);
 
925
NLM_EXTERN void AddSourceBlock (
 
926
  Asn2gbWorkPtr awp
 
927
);
 
928
NLM_EXTERN void AddOrganismBlock (
 
929
  Asn2gbWorkPtr awp
 
930
);
 
931
NLM_EXTERN void AddCommentBlock (
 
932
  Asn2gbWorkPtr awp
 
933
);
 
934
NLM_EXTERN void AddPrimaryBlock (
 
935
  Asn2gbWorkPtr awp
 
936
);
 
937
NLM_EXTERN void AddFeatHeaderBlock (
 
938
  Asn2gbWorkPtr awp
 
939
);
 
940
NLM_EXTERN void AddSourceFeatBlock (
 
941
  Asn2gbWorkPtr awp
 
942
);
 
943
NLM_EXTERN void AddWGSBlock (
 
944
  Asn2gbWorkPtr awp
 
945
);
 
946
NLM_EXTERN void AddGenomeBlock (
 
947
  Asn2gbWorkPtr awp
 
948
);
 
949
NLM_EXTERN void AddContigBlock (
 
950
  Asn2gbWorkPtr awp
 
951
);
 
952
NLM_EXTERN void AddBasecountBlock (
 
953
  Asn2gbWorkPtr awp
 
954
);
 
955
NLM_EXTERN void AddOriginBlock (
 
956
  Asn2gbWorkPtr awp
 
957
);
 
958
NLM_EXTERN void AddSequenceBlock (
 
959
  Asn2gbWorkPtr awp
 
960
);
 
961
NLM_EXTERN void AddSlashBlock (
 
962
  Asn2gbWorkPtr awp
 
963
);
 
964
 
 
965
NLM_EXTERN CharPtr DefaultFormatBlock (
 
966
  Asn2gbFormatPtr afp,
 
967
  BaseBlockPtr bbp
 
968
);
 
969
NLM_EXTERN CharPtr FormatSourceBlock (
 
970
  Asn2gbFormatPtr afp,
 
971
  BaseBlockPtr bbp
 
972
);
 
973
NLM_EXTERN CharPtr FormatOrganismBlock (
 
974
  Asn2gbFormatPtr afp,
 
975
  BaseBlockPtr bbp
 
976
);
 
977
NLM_EXTERN CharPtr FormatReferenceBlock (
 
978
  Asn2gbFormatPtr afp,
 
979
  BaseBlockPtr bbp
 
980
);
 
981
NLM_EXTERN CharPtr FormatCommentBlock (
 
982
  Asn2gbFormatPtr afp,
 
983
  BaseBlockPtr bbp
 
984
);
 
985
NLM_EXTERN CharPtr FormatFeatHeaderBlock (
 
986
  Asn2gbFormatPtr afp,
 
987
  BaseBlockPtr bbp
 
988
);
 
989
NLM_EXTERN CharPtr FormatSourceFeatBlock (
 
990
  Asn2gbFormatPtr afp,
 
991
  BaseBlockPtr bbp
 
992
);
 
993
NLM_EXTERN CharPtr FormatFeatureBlock (
 
994
  Asn2gbFormatPtr afp,
 
995
  BaseBlockPtr bbp
 
996
);
 
997
NLM_EXTERN CharPtr FormatBasecountBlock (
 
998
  Asn2gbFormatPtr afp,
 
999
  BaseBlockPtr bbp
 
1000
);
 
1001
NLM_EXTERN CharPtr FormatSequenceBlock (
 
1002
  Asn2gbFormatPtr afp,
 
1003
  BaseBlockPtr bbp
 
1004
);
 
1005
NLM_EXTERN CharPtr FormatContigBlock (
 
1006
  Asn2gbFormatPtr afp,
 
1007
  BaseBlockPtr bbp
 
1008
);
 
1009
NLM_EXTERN CharPtr FormatSlashBlock (
 
1010
  Asn2gbFormatPtr afp,
 
1011
  BaseBlockPtr bbp
 
1012
);
 
1013
 
 
1014
NLM_EXTERN void PrintFtableIntervals (
 
1015
  ValNodePtr PNTR head,
 
1016
  BioseqPtr target,
 
1017
  SeqLocPtr location,
 
1018
  CharPtr label
 
1019
);
 
1020
NLM_EXTERN void PrintFtableLocAndQuals (
 
1021
  IntAsn2gbJobPtr ajp,
 
1022
  ValNodePtr PNTR head,
 
1023
  BioseqPtr target,
 
1024
  SeqFeatPtr sfp,
 
1025
  SeqMgrFeatContextPtr context
 
1026
);
 
1027
NLM_EXTERN CharPtr FormatFtableSourceFeatBlock (
 
1028
  BaseBlockPtr bbp,
 
1029
  BioseqPtr target
 
1030
);
 
1031
 
 
1032
NLM_EXTERN void DoImmediateRemoteFeatureFormat (
 
1033
  Asn2gbFormatPtr afp,
 
1034
  BaseBlockPtr bbp,
 
1035
  SeqFeatPtr sfp
 
1036
);
 
1037
 
 
1038
NLM_EXTERN void DoImmediateFormat (
 
1039
  Asn2gbFormatPtr afp,
 
1040
  BaseBlockPtr bbp
 
1041
);
 
1042
 
 
1043
 
 
1044
#ifdef __cplusplus
 
1045
}
 
1046
#endif
 
1047
 
 
1048
#undef NLM_EXTERN
 
1049
#ifdef NLM_EXPORT
 
1050
#define NLM_EXTERN NLM_EXPORT
 
1051
#else
 
1052
#define NLM_EXTERN
 
1053
#endif
 
1054
 
 
1055
#endif /* ndef _ASN2NGNBI_ */
 
1056