|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/api/asn2gnbi.h |
source navigation diff markup identifier search freetext search file search |
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.116 $
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 #define TILDE_SEMICOLON 4
69
70
71 /* flags set by mode to customize behavior */
72
73 typedef struct asn2gbflags {
74 Boolean suppressLocalID;
75 Boolean validateFeats;
76 Boolean ignorePatPubs;
77 Boolean dropShortAA;
78 Boolean avoidLocusColl;
79 Boolean iupacaaOnly;
80 Boolean dropBadCitGens;
81 Boolean noAffilOnUnpub;
82 Boolean dropIllegalQuals;
83 Boolean checkQualSyntax;
84 Boolean needRequiredQuals;
85 Boolean needOrganismQual;
86 Boolean needAtLeastOneRef;
87 Boolean citArtIsoJta;
88 Boolean dropBadDbxref;
89 Boolean useEmblMolType;
90 Boolean hideBankItComment;
91 Boolean checkCDSproductID;
92 Boolean suppressSegLoc;
93 Boolean srcQualsToNote;
94 Boolean hideEmptySource;
95 Boolean goQualsToNote;
96 Boolean separateGeneSyns;
97 Boolean refSeqQualsToNote;
98 Boolean selenocysteineToNote;
99 Boolean pyrrolysineToNote;
100 Boolean extraProductsToNote;
101 Boolean codonRecognizedToNote;
102 Boolean hideSpecificGeneMaps;
103 Boolean forGbRelease;
104 } Asn2gbFlags, PNTR Asn2gbFlagsPtr;
105
106 /* internal Asn2gbSect structure has fields on top of Asn2gbSect fields */
107
108 typedef struct int_Asn2gbSect {
109 Asn2gbSect asp;
110 } IntAsn2gbSect, PNTR IntAsn2gbSectPtr;
111
112 /* string structure */
113
114 #define STRING_BUF_LEN 1024
115
116 typedef struct stringitem {
117 struct stringitem *curr;
118 struct stringitem *next;
119 Pointer iajp;
120 Char buf [STRING_BUF_LEN];
121 Int4 pos;
122 } StringItem, PNTR StringItemPtr;
123
124 /* internal asn2gbjob structure has fields on top of Asn2gbJob fields */
125
126 typedef struct int_asn2gb_job {
127 Asn2gbJob ajp;
128 FmtType format;
129 ModType mode;
130 Asn2gbFlags flags;
131 Boolean showFarTransl;
132 Boolean transIfNoProd;
133 Boolean alwaysTranslCds;
134 Boolean showTranscript;
135 Boolean showPeptide;
136 Boolean hideTranslation;
137 Boolean hideEvidence;
138 Boolean masterStyle;
139 Boolean newSourceOrg;
140 Boolean produceInsdSeq;
141 Boolean refseqConventions;
142 ValNodePtr lockedBspList;
143 ValNodePtr gapvnp;
144 ValNodePtr remotevnp;
145 Asn2gbLockFunc remotelock;
146 Asn2gbFreeFunc remotefree;
147 Pointer remotedata;
148 Boolean relModeError;
149 Boolean skipProts;
150 Boolean skipMrnas;
151 IndxPtr index;
152 GBSeqPtr gbseq;
153 BlockMask bkmask;
154 AsnIoPtr aip;
155 AsnTypePtr atp;
156 StringItemPtr pool;
157 Boolean www;
158 Boolean specialGapFormat;
159 Boolean hideGoTerms;
160 Boolean multiIntervalGenes;
161 Boolean reindex;
162 Int4 seqGapCurrLen;
163 ValNodePtr gihead;
164 ValNodePtr gitail;
165 TextFsaPtr bad_html_fsa;
166 } IntAsn2gbJob, PNTR IntAsn2gbJobPtr;
167
168 /* array for assigning biosource and feature data fields to qualifiers */
169 /* should be allocated to MAX (ASN2GNBK_TOTAL_SOURCE, ASN2GNBK_TOTAL_FEATUR) */
170
171 typedef union qualval {
172 CharPtr str;
173 Boolean ble;
174 Int4 num;
175 ValNodePtr vnp;
176 GBQualPtr gbq;
177 OrgModPtr omp;
178 SubSourcePtr ssp;
179 CodeBreakPtr cbp;
180 SeqLocPtr slp;
181 SeqIdPtr sip;
182 tRNAPtr trp;
183 UserObjectPtr uop;
184 UserFieldPtr ufp;
185 RNAGenPtr rgp;
186 GeneNomenclaturePtr gnp;
187 PCRReactionSetPtr prp;
188 } QualVal, PNTR QualValPtr;
189
190 /* structure passed to individual paragraph format functions */
191
192 typedef struct asn2gbformat {
193 IntAsn2gbJobPtr ajp;
194 Asn2gbSectPtr asp;
195 QualValPtr qvp;
196 FmtType format;
197 Asn2gbWriteFunc ffwrite;
198 Pointer userdata;
199 FILE *fp;
200 AsnIoPtr aip;
201 AsnTypePtr atp;
202 } Asn2gbFormat, PNTR Asn2gbFormatPtr;
203
204 /* structure for bypassing unannotated WGS components in Web Entrez */
205
206 typedef struct wgsaccn {
207 Char accn [6];
208 Int2 count;
209 Boolean hasfeats;
210 } WgsAccn, PNTR WgsAccnPtr;
211
212 /* structure for storing working parameters while building asn2gb_job structure */
213
214 typedef struct asn2gbwork {
215 IntAsn2gbJobPtr ajp;
216 Uint2 entityID;
217
218 FmtType format;
219 ModType mode;
220 StlType style;
221
222 ValNodePtr pubhead; /* for collecting publications */
223 ValNodePtr srchead; /* for collecting biosources */
224
225 /* linked lists of paragraphs, sections, blocks */
226
227 ValNodePtr sectionList;
228 ValNodePtr blockList; /* reset for each new section */
229
230 /* most recent node of linked lists, for quickly adding next node */
231
232 ValNodePtr lastsection;
233 ValNodePtr lastblock; /* reset for each new section */
234
235 Int4 currsection;
236
237 /* set if doing immediate write at time of creation for web speed */
238
239 Asn2gbFormatPtr afp;
240
241 /* section fields needed for populating blocks */
242
243 Asn2gbSectPtr asp;
244
245 BioseqPtr target;
246 BioseqPtr parent;
247 BioseqPtr bsp;
248 BioseqPtr refs;
249 SeqLocPtr slp;
250 Uint2 seg;
251 Int4 numsegs;
252 Int4 partcount;
253 Int4 from;
254 Int4 to;
255
256 Int2 sectionCount;
257 Int2 sectionMax;
258 Int4 currGi;
259 Int4 prevGi;
260 Int4 nextGi;
261 ValNodePtr gilistpos;
262
263 Boolean showAllFeats;
264
265 Boolean contig;
266 Boolean showconfeats;
267 Boolean showconsource;
268 Boolean smartconfeats;
269
270 Boolean onlyNearFeats;
271 Boolean farFeatsSuppress;
272 Boolean nearFeatsSuppress;
273
274 Boolean citSubsFirst;
275 Boolean hideGeneFeats;
276 Boolean newLocusLine;
277 Boolean showBaseCount;
278 Boolean forcePrimaryBlock;
279
280 Boolean showFeatStats;
281 Boolean showRefStats;
282 Boolean hideFeatures;
283 Boolean hideImpFeats;
284 Boolean hideVariations;
285 Boolean hideRepeatRegions;
286 Boolean hideSitesBondsRegions;
287 Boolean hideCddFeats;
288 Boolean hideCdsProdFeats;
289
290 Boolean hideGeneRIFs;
291 Boolean onlyGeneRIFs;
292 Boolean onlyReviewPubs;
293 Boolean newestPubs;
294 Boolean oldestPubs;
295 Boolean hidePubs;
296
297 Boolean showFtableRefs;
298 Boolean hideGaps;
299 Boolean hideSources;
300 Boolean hideSequence;
301
302 Boolean isGPS;
303 Boolean copyGpsCdsUp;
304 Boolean copyGpsGeneDown;
305
306 Boolean showContigAndSeq;
307
308 Char basename [SEQID_MAX_LEN];
309
310 SeqFeatPtr lastsfp;
311 SeqAnnotPtr lastsap;
312 Int4 lastleft;
313 Int4 lastright;
314
315 Boolean firstfeat;
316 Boolean featseen;
317 Boolean featjustseen;
318 Int4 localFeatCount;
319 ValNodePtr wgsaccnlist;
320
321 Boolean has_mat_peptide;
322 Boolean has_sig_peptide;
323 Int2 sig_pept_trim_len;
324
325 Boolean farFeatTimeLimit;
326 time_t farFeatStartTime;
327
328 Boolean sourcePubFuse;
329
330 SeqSubmitPtr ssp;
331 Boolean hup;
332
333 Boolean failed;
334 } Asn2gbWork, PNTR Asn2gbWorkPtr;
335
336
337 /* Seq-hist replacedBy is preformatted into string field, */
338 /* then comment descriptors, Map location:, and Region:, */
339 /* then comment features, finally HTGS */
340
341 typedef struct comment_block {
342 ASN2GB_BASE_BLOCK
343 Boolean first;
344 } CommentBlock, PNTR CommentBlockPtr;
345
346 /* internal reference block has fields on top of RefBlock fields */
347
348 typedef struct int_ref_block {
349 RefBlock rb;
350 DatePtr date; /* internal sorting use only */
351 SeqLocPtr loc; /* final location on target bioseq */
352 CharPtr authstr; /* author string */
353 Uint2 index; /* index if feature on target bioseq */
354 Boolean justuids; /* gibb pub with uids and Figure, etc. */
355 CharPtr fig; /* figure string from equivalent gibb pub */
356 CharPtr maploc; /* maploc string from equivalent gibb pub */
357 Boolean poly_a; /* poly_a field from equivalent gibb pub */
358 Int4 left;
359 Int4 right;
360 } IntRefBlock, PNTR IntRefBlockPtr;
361
362 /* internal source block has fields on top of BaseBlock fields */
363
364 typedef struct int_src_block {
365 BaseBlock bb;
366 Boolean is_descriptor;
367 Boolean is_focus;
368 Boolean is_synthetic;
369 BioSourcePtr biop;
370 Uint4 orghash;
371 Uint4 modhash;
372 Uint4 subhash;
373 Uint4 xrfhash;
374 SeqLocPtr loc; /* final location on target bioseq */
375 CharPtr taxname;
376 CharPtr comment;
377 OrgModPtr omp;
378 SubSourcePtr ssp;
379 ValNodePtr vnp;
380 Int4 left;
381 Int4 right;
382 } IntSrcBlock, PNTR IntSrcBlockPtr;
383
384 /* internal feature block has fields on top of FeatBlock fields */
385
386 typedef struct int_feat_block {
387 FeatBlock fb;
388 Boolean mapToNuc;
389 Boolean mapToProt;
390 Boolean mapToGen;
391 Boolean mapToMrna;
392 Boolean mapToPep;
393 Boolean isCDS; /* set if using IntCdsBlock */
394 Boolean isPrt; /* set if using IntPrtBlock */
395 Boolean firstfeat;
396 } IntFeatBlock, PNTR IntFeatBlockPtr;
397
398 /* internal cds block has fields on top of IntFeatBlock fields */
399
400 typedef struct int_cds_block {
401 IntFeatBlock ifb;
402 CharPtr fig; /* figure string from pub */
403 CharPtr maploc; /* maploc string from pub */
404 } IntCdsBlock, PNTR IntCdsBlockPtr;
405
406 /* internal protein block has fields on top of IntFeatBlock fields */
407
408 typedef struct int_prt_block {
409 IntFeatBlock ifb;
410 Boolean is_whole_loc;
411 Boolean suppress_mol_wt;
412 Boolean trim_initial_met;
413 Int2 sig_pept_trim_len;
414 } IntPrtBlock, PNTR IntPrtBlockPtr;
415
416
417 /* enumerated qualifier category definitions */
418
419 typedef enum {
420 Qual_class_ignore = 0,
421 Qual_class_string,
422 Qual_class_tilde,
423 Qual_class_sgml,
424 Qual_class_boolean,
425 Qual_class_int,
426 Qual_class_evidence,
427 Qual_class_exception,
428 Qual_class_valnode,
429 Qual_class_EC_valnode,
430 Qual_class_xtraprds,
431 Qual_class_quote,
432 Qual_class_EC_quote,
433 Qual_class_noquote,
434 Qual_class_label,
435 Qual_class_number,
436 Qual_class_paren,
437 Qual_class_usedin,
438 Qual_class_region,
439 Qual_class_replace,
440 Qual_class_consplice,
441 Qual_class_bond,
442 Qual_class_site,
443 Qual_class_L_R_B,
444 Qual_class_rpt,
445 Qual_class_organelle,
446 Qual_class_orgmod,
447 Qual_class_subsource,
448 Qual_class_code_break,
449 Qual_class_anti_codon,
450 Qual_class_codon,
451 Qual_class_compare,
452 Qual_class_method,
453 Qual_class_pubset,
454 Qual_class_db_xref,
455 Qual_class_nuc_id,
456 Qual_class_prt_id,
457 Qual_class_seq_loc,
458 Qual_class_its,
459 Qual_class_sec_str,
460 Qual_class_trna_codons,
461 Qual_class_translation,
462 Qual_class_transcription,
463 Qual_class_peptide,
464 Qual_class_protnames,
465 Qual_class_encodes,
466 Qual_class_illegal,
467 Qual_class_note,
468 Qual_class_rpt_unit,
469 Qual_class_product,
470 Qual_class_model_ev,
471 Qual_class_gene_syn,
472 Qual_class_sep_gene_syn,
473 Qual_class_locus_tag,
474 Qual_class_map,
475 Qual_class_go,
476 Qual_class_nomenclature,
477 Qual_class_gene_nomen,
478 Qual_class_pcr,
479 Qual_class_pcr_react,
480 Qual_class_mol_wt,
481 Qual_class_voucher,
482 Qual_class_lat_lon,
483 Qual_class_mobile_element,
484 Qual_class_tag_peptide
485 } QualType;
486
487 /* source 'feature' */
488
489 /* some qualifiers will require additional content verification not
490 explicitly indicated by the class type */
491
492 typedef enum {
493 SCQUAL_acronym = 1,
494 SCQUAL_anamorph,
495 SCQUAL_authority,
496 SCQUAL_biotype,
497 SCQUAL_biovar,
498 SCQUAL_bio_material,
499 SCQUAL_breed,
500 SCQUAL_cell_line,
501 SCQUAL_cell_type,
502 SCQUAL_chemovar,
503 SCQUAL_chromosome,
504 SCQUAL_citation,
505 SCQUAL_clone,
506 SCQUAL_clone_lib,
507 SCQUAL_collected_by,
508 SCQUAL_collection_date,
509 SCQUAL_common,
510 SCQUAL_common_name,
511 SCQUAL_country,
512 SCQUAL_cultivar,
513 SCQUAL_culture_collection,
514 SCQUAL_db_xref,
515 SCQUAL_org_xref,
516 SCQUAL_dev_stage,
517 SCQUAL_dosage,
518 SCQUAL_ecotype,
519 SCQUAL_endogenous_virus_name,
520 SCQUAL_environmental_sample,
521 SCQUAL_extrachrom,
522 SCQUAL_focus,
523 SCQUAL_forma,
524 SCQUAL_forma_specialis,
525 SCQUAL_frequency,
526 SCQUAL_fwd_primer_name,
527 SCQUAL_fwd_primer_seq,
528 SCQUAL_gb_acronym,
529 SCQUAL_gb_anamorph,
530 SCQUAL_gb_synonym,
531 SCQUAL_genotype,
532 SCQUAL_germline,
533 SCQUAL_group,
534 SCQUAL_haplogroup,
535 SCQUAL_haplotype,
536 SCQUAL_identified_by,
537 SCQUAL_ins_seq_name,
538 SCQUAL_isolate,
539 SCQUAL_isolation_source,
540 SCQUAL_lab_host,
541 SCQUAL_label,
542 SCQUAL_lat_lon,
543 SCQUAL_linkage_group,
544 SCQUAL_macronuclear,
545 SCQUAL_map,
546 SCQUAL_mating_type,
547 SCQUAL_metagenome_note,
548 SCQUAL_metagenome_source,
549 SCQUAL_metagenomic,
550 SCQUAL_mol_type,
551 SCQUAL_note,
552 SCQUAL_old_lineage,
553 SCQUAL_old_name,
554 SCQUAL_organism,
555 SCQUAL_organelle,
556 SCQUAL_orgmod_note,
557 SCQUAL_pathovar,
558 SCQUAL_PCR_primers,
559 SCQUAL_PCR_primer_note,
560 SCQUAL_PCR_reaction,
561 SCQUAL_plasmid_name,
562 SCQUAL_plastid_name,
563 SCQUAL_pop_variant,
564 SCQUAL_rearranged,
565 SCQUAL_rev_primer_name,
566 SCQUAL_rev_primer_seq,
567 SCQUAL_segment,
568 SCQUAL_seqfeat_note,
569 SCQUAL_sequenced_mol,
570 SCQUAL_serogroup,
571 SCQUAL_serotype,
572 SCQUAL_serovar,
573 SCQUAL_sex,
574 SCQUAL_spec_or_nat_host,
575 SCQUAL_specimen_voucher,
576 SCQUAL_strain,
577 SCQUAL_sub_clone,
578 SCQUAL_sub_group,
579 SCQUAL_sub_species,
580 SCQUAL_sub_strain,
581 SCQUAL_sub_type,
582 SCQUAL_subsource_note,
583 SCQUAL_synonym,
584 SCQUAL_teleomorph,
585 SCQUAL_tissue_lib,
586 SCQUAL_tissue_type,
587 SCQUAL_transgenic,
588 SCQUAL_transposon_name,
589 SCQUAL_type,
590 SCQUAL_unstructured,
591 SCQUAL_usedin,
592 SCQUAL_variety,
593 SCQUAL_zero_orgmod,
594 SCQUAL_one_orgmod,
595 SCQUAL_zero_subsrc,
596 ASN2GNBK_TOTAL_SOURCE
597 } SourceType;
598
599 NLM_EXTERN SourceType orgModToSourceIdx [41];
600
601 typedef enum {
602 FTQUAL_allele = 1,
603 FTQUAL_anticodon,
604 FTQUAL_bond,
605 FTQUAL_bond_type,
606 FTQUAL_bound_moiety,
607 FTQUAL_cdd_definition,
608 FTQUAL_cds_product,
609 FTQUAL_citation,
610 FTQUAL_clone,
611 FTQUAL_coded_by,
612 FTQUAL_compare,
613 FTQUAL_codon,
614 FTQUAL_codon_start,
615 FTQUAL_cons_splice,
616 FTQUAL_db_xref,
617 FTQUAL_derived_from,
618 FTQUAL_direction,
619 FTQUAL_EC_number,
620 FTQUAL_encodes,
621 FTQUAL_estimated_length,
622 FTQUAL_evidence,
623 FTQUAL_exception,
624 FTQUAL_exception_note,
625 FTQUAL_experiment,
626 FTQUAL_experiment_string,
627 FTQUAL_extra_products,
628 FTQUAL_figure,
629 FTQUAL_frequency,
630 FTQUAL_function,
631 FTQUAL_gene,
632 FTQUAL_gene_desc,
633 FTQUAL_gene_allele,
634 FTQUAL_gene_map,
635 FTQUAL_gene_cyt_map,
636 FTQUAL_gene_gen_map,
637 FTQUAL_gene_rad_map,
638 FTQUAL_gene_syn,
639 FTQUAL_gene_syn_refseq,
640 FTQUAL_gene_note,
641 FTQUAL_gene_xref,
642 FTQUAL_go_component,
643 FTQUAL_go_function,
644 FTQUAL_go_process,
645 FTQUAL_heterogen,
646 FTQUAL_illegal_qual,
647 FTQUAL_inference,
648 FTQUAL_inference_string,
649 FTQUAL_inference_good,
650 FTQUAL_inference_bad,
651 FTQUAL_insertion_seq,
652 FTQUAL_label,
653 FTQUAL_locus_tag,
654 FTQUAL_map,
655 FTQUAL_maploc,
656 FTQUAL_mobile_element,
657 FTQUAL_mod_base,
658 FTQUAL_modelev,
659 FTQUAL_mol_wt,
660 FTQUAL_ncRNA_class,
661 FTQUAL_ncRNA_note,
662 FTQUAL_ncRNA_other,
663 FTQUAL_nomenclature,
664 FTQUAL_gene_nomen,
665 FTQUAL_note,
666 FTQUAL_number,
667 FTQUAL_old_locus_tag,
668 FTQUAL_operon,
669 FTQUAL_organism,
670 FTQUAL_partial,
671 FTQUAL_PCR_conditions,
672 FTQUAL_peptide,
673 FTQUAL_phenotype,
674 FTQUAL_product,
675 FTQUAL_product_quals,
676 FTQUAL_prot_activity,
677 FTQUAL_prot_comment,
678 FTQUAL_prot_EC_number,
679 FTQUAL_prot_note,
680 FTQUAL_prot_method,
681 FTQUAL_prot_conflict,
682 FTQUAL_prot_desc,
683 FTQUAL_prot_missing,
684 FTQUAL_prot_name,
685 FTQUAL_prot_names,
686 FTQUAL_protein_id,
687 FTQUAL_pseudo,
688 FTQUAL_pyrrolysine,
689 FTQUAL_pyrrolysine_note,
690 FTQUAL_region,
691 FTQUAL_region_name,
692 FTQUAL_replace,
693 FTQUAL_ribosomal_slippage,
694 FTQUAL_rpt_family,
695 FTQUAL_rpt_type,
696 FTQUAL_rpt_unit,
697 FTQUAL_rpt_unit_range,
698 FTQUAL_rpt_unit_seq,
699 FTQUAL_rrna_its,
700 FTQUAL_satellite,
701 FTQUAL_sec_str_type,
702 FTQUAL_selenocysteine,
703 FTQUAL_selenocysteine_note,
704 FTQUAL_seqannot_note,
705 FTQUAL_seqfeat_note,
706 FTQUAL_site,
707 FTQUAL_site_type,
708 FTQUAL_standard_name,
709 FTQUAL_tag_peptide,
710 FTQUAL_tag_peptide_str,
711 FTQUAL_transcription,
712 FTQUAL_transcript_id,
713 FTQUAL_transcript_id_note,
714 FTQUAL_transl_except,
715 FTQUAL_transl_table,
716 FTQUAL_translation,
717 FTQUAL_transposon,
718 FTQUAL_trans_splicing,
719 FTQUAL_trna_aa,
720 FTQUAL_trna_codons,
721 FTQUAL_trna_codons_note,
722 FTQUAL_UniProtKB_evidence,
723 FTQUAL_usedin,
724 FTQUAL_xtra_prod_quals,
725 ASN2GNBK_TOTAL_FEATUR
726 } FtQualType;
727
728 NLM_EXTERN void FF_www_db_xref(
729 IntAsn2gbJobPtr ajp,
730 StringItemPtr ffstring,
731 CharPtr db,
732 CharPtr identifier,
733 BioseqPtr bsp
734 );
735
736 NLM_EXTERN void FF_www_specimen_voucher (
737 IntAsn2gbJobPtr ajp,
738 StringItemPtr ffstring,
739 CharPtr subname
740 );
741
742 NLM_EXTERN void FF_Add_NCBI_Base_URL (
743 StringItemPtr ffstring,
744 CharPtr url
745 );
746
747 NLM_EXTERN Boolean StringIsJustQuotes (
748 CharPtr str
749 );
750
751
752 typedef struct sourcequal {
753 CharPtr name;
754 QualType qualclass;
755 } SourceQual, PNTR SourceQualPtr;
756
757 NLM_EXTERN SourceQual asn2gnbk_source_quals [ASN2GNBK_TOTAL_SOURCE];
758
759 NLM_EXTERN SourceType subSourceToSourceIdx [42];
760
761 NLM_EXTERN void DoOneSection (
762 BioseqPtr target,
763 BioseqPtr parent,
764 BioseqPtr bsp,
765 BioseqPtr refs,
766 SeqLocPtr slp,
767 Uint2 seg,
768 Int4 from,
769 Int4 to,
770 Boolean contig,
771 Boolean onePartOfSeg,
772 Asn2gbWorkPtr awp
773 );
774
775 NLM_EXTERN void DoOneBioseq (
776 BioseqPtr bsp,
777 Pointer userdata
778 );
779
780 NLM_EXTERN BaseBlockPtr Asn2gbAddBlock (
781 Asn2gbWorkPtr awp,
782 BlockType blocktype,
783 size_t size
784 );
785
786 NLM_EXTERN void InitWWW (IntAsn2gbJobPtr ajp);
787 NLM_EXTERN void FiniWWW (IntAsn2gbJobPtr ajp);
788 NLM_EXTERN Boolean GetWWW (IntAsn2gbJobPtr ajp);
789
790 NLM_EXTERN StringItemPtr FFGetString (IntAsn2gbJobPtr ajp);
791 NLM_EXTERN void FFRecycleString (IntAsn2gbJobPtr ajp, StringItemPtr ffstring);
792 NLM_EXTERN void FFAddOneChar (
793 StringItemPtr sip,
794 Char ch,
795 Boolean convertQuotes
796 );
797 NLM_EXTERN void FFAddNewLine(StringItemPtr ffstring);
798 NLM_EXTERN void FFAddNChar (
799 StringItemPtr sip,
800 Char ch,
801 Int4 n,
802 Boolean convertQuotes
803 );
804 NLM_EXTERN void FFExpandTildes (StringItemPtr sip, CharPtr PNTR cpp);
805 NLM_EXTERN void FFSemicolonSeparateTildes (StringItemPtr sip, CharPtr PNTR cpp);
806 NLM_EXTERN void FFReplaceTildesWithSpaces (StringItemPtr ffstring, CharPtr PNTR cpp);
807 NLM_EXTERN void FFOldExpand (StringItemPtr sip, CharPtr PNTR cpp);
808 NLM_EXTERN void AddCommentStringWithTildes (StringItemPtr ffstring, CharPtr string);
809 NLM_EXTERN void AddCommentWithURLlinks (
810 IntAsn2gbJobPtr ajp,
811 StringItemPtr ffstring,
812 CharPtr prefix,
813 CharPtr str,
814 CharPtr suffix
815 );
816 NLM_EXTERN void AddStringWithTildes (StringItemPtr ffstring, CharPtr string);
817 NLM_EXTERN void FFProcessTildes (StringItemPtr sip, CharPtr PNTR cpp, Int2 tildeAction);
818 NLM_EXTERN void FFAddPeriod (StringItemPtr sip);
819 NLM_EXTERN void FFAddOneString (
820 StringItemPtr sip,
821 CharPtr string,
822 Boolean addPeriod,
823 Boolean convertQuotes,
824 Int2 tildeAction
825 );
826 NLM_EXTERN void FFCatenateSubString (
827 StringItemPtr dest,
828 StringItemPtr start_sip, Int4 start_pos,
829 StringItemPtr end_sip, Int4 end_pos,
830 Uint4 line_max
831 );
832 NLM_EXTERN CharPtr FFToCharPtr (StringItemPtr sip);
833 NLM_EXTERN void FFSkipLink (StringItemPtr PNTR iterp, Int4Ptr ip);
834
835 NLM_EXTERN Boolean FFIsStartOfLink (
836 StringItemPtr iter,
837 Int4 pos );
838
839 NLM_EXTERN void FFSavePosition(StringItemPtr ffstring, StringItemPtr PNTR bufptr, Int4 PNTR posptr);
840 NLM_EXTERN void FFTrim (
841 StringItemPtr ffstring,
842 StringItemPtr line_start,
843 Int4 line_pos,
844 Int4 line_prefix_len
845 );
846 NLM_EXTERN int FFNextChar(
847 StringItemPtr start_sip,
848 Int4 start_pos
849 );
850 NLM_EXTERN void FFAdvanceChar(
851 StringItemPtr* start_sip,
852 Int4* start_pos
853 );
854 NLM_EXTERN void FFCalculateLineBreak (
855 StringItemPtr PNTR break_sip, Int4 PNTR break_pos,
856 Int4 init_indent, Int4 visible
857 );
858 NLM_EXTERN void FFLineWrap (
859 StringItemPtr dest,
860 StringItemPtr src,
861 Int4 init_indent,
862 Int4 cont_indent,
863 Int4 line_max,
864 CharPtr eb_line_prefix
865 );
866 NLM_EXTERN void FFStartPrint (
867 StringItemPtr sip,
868 FmtType format,
869 Int4 gb_init_indent,
870 Int4 gb_cont_indent,
871 CharPtr gb_label,
872 Int4 gb_tab_to,
873 Int4 eb_init_indent,
874 Int4 eb_cont_indent,
875 CharPtr eb_line_prefix,
876 Boolean eb_print_xx
877 );
878 NLM_EXTERN void FFAddTextToString (
879 StringItemPtr ffstring,
880 CharPtr prefix,
881 CharPtr string,
882 CharPtr suffix,
883 Boolean addPeriod,
884 Boolean convertQuotes,
885 Int2 tildeAction
886 );
887 NLM_EXTERN CharPtr FFEndPrint (
888 IntAsn2gbJobPtr ajp,
889 StringItemPtr ffstring,
890 FmtType format,
891 Int2 gb_init_indent,
892 Int2 gb_cont_indent,
893 Int2 eb_init_indent,
894 Int2 eb_cont_indent,
895 CharPtr eb_line_prefix
896 );
897 NLM_EXTERN Uint4 FFLength(StringItemPtr ffstring);
898 NLM_EXTERN Char FFCharAt(StringItemPtr ffstring, Uint4 pos);
899 NLM_EXTERN Char FFFindChar (
900 StringItemPtr ffstring,
901 StringItemPtr start_buf,
902 Uint4 start_pos,
903 Uint4 old_pos,
904 Uint4 new_pos
905 );
906 NLM_EXTERN Boolean FFEmpty(StringItemPtr ffstring);
907 NLM_EXTERN Int4 FFStringSearch (
908 StringItemPtr text,
909 const CharPtr pattern,
910 Uint4 position
911 );
912
913 /*
914 * Scans the given buffer from a given scan position, for the next occurrence of
915 * the indicated character. The search breaks when the character is found, or the
916 * supplied break position is reached.
917 * On exit, the scan position will either be on the character found, or at the
918 * given break position.
919 */
920 NLM_EXTERN Boolean FFFindSingleChar(
921 StringItemPtr* p_line_sip,
922 Int4* p_line_pos,
923 StringItemPtr break_sip,
924 Int4 break_pos,
925 char c
926 );
927
928 /*
929 * Returns the number of bytes remaining in the buffer chain, starting from the
930 * given buffer and a read mark inside it.
931 */
932 NLM_EXTERN Int4 FFRemainingLength(
933 StringItemPtr sip,
934 Int4 cur_pos
935 );
936
937 /*
938 * Scans the given line for the next opening tag of an HTML hyperlink. Ajusts
939 * the line position to immediately after the opening tag (if such a tag is
940 * found) or the the end of the line (if no such tag is found).
941 * If a character buffer is supplied, this function will copy any opening tag
942 * it finds into that buffer.
943 */
944 NLM_EXTERN Boolean FFExtractNextOpenLink(
945 StringItemPtr* p_line_sip,
946 Int4* p_line_pos,
947 StringItemPtr break_sip,
948 Int4 break_pos,
949 char* buf_open_link
950 );
951
952 /*
953 * Scans the given line for the next closing tag of an HTML hyperlink. Ajusts
954 * the line position to immediately after the closing tag (if such a tag is
955 * found) or the the end of the line (if no such tag is found).
956 */
957 NLM_EXTERN Boolean FFExtractNextCloseLink(
958 StringItemPtr* p_line_sip,
959 Int4* p_line_pos,
960 StringItemPtr break_sip,
961 Int4 break_pos
962 );
963
964 /*
965 * Tests whether the line ends between the opening and closing tag of an HTML
966 * hyper link.
967 */
968 NLM_EXTERN Boolean FFLineBreakSplitsHtmlLink(
969 StringItemPtr start_sip,
970 Int4 start_pos,
971 StringItemPtr break_sip,
972 Int4 break_pos,
973 char* buf_link_open,
974 Int4* html_open_link_counter
975 );
976
977 NLM_EXTERN Boolean IsWholeWordSubstr (
978 StringItemPtr searchStr,
979 Uint4 foundPos,
980 CharPtr subStr
981 );
982
983 NLM_EXTERN ValNodePtr ValNodeCopyStrToHead (ValNodePtr PNTR head, Int2 choice, CharPtr str);
984 NLM_EXTERN CharPtr MergeFFValNodeStrs (
985 ValNodePtr list
986 );
987 NLM_EXTERN void AddValNodeString (
988 ValNodePtr PNTR head,
989 CharPtr prefix,
990 CharPtr string,
991 CharPtr suffix
992 );
993 NLM_EXTERN void FFAddString_NoRedund (
994 StringItemPtr unique,
995 CharPtr prefix,
996 CharPtr string,
997 CharPtr suffix,
998 Boolean convertQuotes
999 );
1000 NLM_EXTERN void s_AddPeriodToEnd (CharPtr someString);
1001 NLM_EXTERN Boolean s_RemovePeriodFromEnd (CharPtr someString);
1002 NLM_EXTERN Boolean IsEllipsis (
1003 CharPtr str
1004 );
1005 NLM_EXTERN void A2GBSeqLocReplaceID (
1006 SeqLocPtr newloc,
1007 SeqLocPtr ajpslp
1008 );
1009 NLM_EXTERN CharPtr asn2gb_PrintDate (
1010 DatePtr dp
1011 );
1012 NLM_EXTERN CharPtr DateToFF (
1013 CharPtr buf,
1014 DatePtr dp,
1015 Boolean citSub
1016 );
1017
1018 NLM_EXTERN CharPtr FFFlatLoc (
1019 IntAsn2gbJobPtr ajp,
1020 BioseqPtr bsp,
1021 SeqLocPtr location,
1022 Boolean masterStyle
1023 );
1024
1025 NLM_EXTERN void FF_www_featloc(StringItemPtr ffstring, CharPtr loc);
1026
1027 NLM_EXTERN CharPtr GetMolTypeQual (
1028 BioseqPtr bsp
1029 );
1030
1031 NLM_EXTERN void AddFeatureToGbseq (
1032 GBSeqPtr gbseq,
1033 GBFeaturePtr gbfeat,
1034 CharPtr str,
1035 SeqFeatPtr sfp
1036 );
1037
1038 NLM_EXTERN void AddIntervalsToGbfeat (
1039 GBFeaturePtr gbfeat,
1040 SeqLocPtr location,
1041 BioseqPtr target
1042 );
1043
1044 NLM_EXTERN SeqIdPtr SeqLocIdForProduct (
1045 SeqLocPtr product
1046 );
1047
1048 NLM_EXTERN CharPtr GetAuthorsString (
1049 FmtType format,
1050 AuthListPtr alp,
1051 CharPtr PNTR consortP,
1052 IndxPtr index,
1053 GBReferencePtr gbref
1054 );
1055
1056 NLM_EXTERN AuthListPtr GetAuthListPtr (
1057 PubdescPtr pdp,
1058 CitSubPtr csp
1059 );
1060
1061 NLM_EXTERN Int2 MatchRef (
1062 ValNodePtr ppr,
1063 RefBlockPtr PNTR rbpp,
1064 Int2 numReferences
1065 );
1066
1067 NLM_EXTERN SeqLocPtr SeqLocReMapEx (
1068 SeqIdPtr newid,
1069 SeqLocPtr seq_loc,
1070 SeqLocPtr location,
1071 Int4 offset,
1072 Boolean rev,
1073 Boolean masterStyle
1074 );
1075
1076 NLM_EXTERN CharPtr Get3LetterSymbol (
1077 IntAsn2gbJobPtr ajp,
1078 Uint1 seq_code,
1079 SeqCodeTablePtr table,
1080 Uint1 residue
1081 );
1082
1083 NLM_EXTERN CharPtr CleanQualValue (
1084 CharPtr str
1085 );
1086 NLM_EXTERN CharPtr Asn2gnbkCompressSpaces (CharPtr str);
1087 NLM_EXTERN CharPtr StripAllSpaces (
1088 CharPtr str
1089 );
1090
1091 NLM_EXTERN Boolean GetAccnVerFromServer (Int4 gi, CharPtr buf);
1092
1093 NLM_EXTERN CharPtr bondList [];
1094 NLM_EXTERN CharPtr siteList [];
1095 NLM_EXTERN CharPtr secStrText [];
1096
1097 NLM_EXTERN CharPtr goQualType [];
1098 NLM_EXTERN CharPtr goFieldType [];
1099
1100 NLM_EXTERN CharPtr legalDbXrefs [];
1101 NLM_EXTERN CharPtr legalSrcDbXrefs [];
1102 NLM_EXTERN CharPtr legalRefSeqDbXrefs [];
1103
1104 NLM_EXTERN Boolean DbxrefIsValid (
1105 CharPtr name,
1106 BoolPtr is_refseq_P,
1107 BoolPtr is_source_P,
1108 BoolPtr is_badcap_P,
1109 CharPtr PNTR goodcapP
1110 );
1111
1112 NLM_EXTERN void AddAllDbxrefsToBioseq (
1113 BioseqPtr bsp
1114 );
1115
1116 NLM_EXTERN void AddRefStatsBlock (
1117 Asn2gbWorkPtr awp
1118 );
1119 NLM_EXTERN Boolean AddReferenceBlock (
1120 Asn2gbWorkPtr awp,
1121 Boolean isRefSeq
1122 );
1123 NLM_EXTERN void AddSourceFeatBlock (
1124 Asn2gbWorkPtr awp
1125 );
1126 NLM_EXTERN void AddFeatStatsBlock (
1127 Asn2gbWorkPtr awp
1128 );
1129 NLM_EXTERN void AddFeatureBlock (
1130 Asn2gbWorkPtr awp
1131 );
1132 NLM_EXTERN void AddLocusBlock (
1133 Asn2gbWorkPtr awp,
1134 Boolean willshowwgs,
1135 Boolean willshowcage,
1136 Boolean willshowgenome,
1137 Boolean willshowcontig,
1138 Boolean willshowsequence
1139 );
1140 NLM_EXTERN void AddAccessionBlock (
1141 Asn2gbWorkPtr awp
1142 );
1143 NLM_EXTERN void AddVersionBlock (
1144 Asn2gbWorkPtr awp
1145 );
1146 NLM_EXTERN void AddDblinkBlock (
1147 Asn2gbWorkPtr awp
1148 );
1149 NLM_EXTERN void AddDbsourceBlock (
1150 Asn2gbWorkPtr awp
1151 );
1152 NLM_EXTERN void AddDateBlock (
1153 Asn2gbWorkPtr awp
1154 );
1155 NLM_EXTERN void AddDeflineBlock (
1156 Asn2gbWorkPtr awp
1157 );
1158 NLM_EXTERN void AddKeywordsBlock (
1159 Asn2gbWorkPtr awp
1160 );
1161 NLM_EXTERN void AddSegmentBlock (
1162 Asn2gbWorkPtr awp,
1163 Boolean onePartOfSeg,
1164 Boolean is_na
1165 );
1166 NLM_EXTERN void AddSourceBlock (
1167 Asn2gbWorkPtr awp
1168 );
1169 NLM_EXTERN void AddOrganismBlock (
1170 Asn2gbWorkPtr awp
1171 );
1172 NLM_EXTERN void AddCommentBlock (
1173 Asn2gbWorkPtr awp
1174 );
1175 NLM_EXTERN void AddPrimaryBlock (
1176 Asn2gbWorkPtr awp
1177 );
1178 NLM_EXTERN void AddFeatHeaderBlock (
1179 Asn2gbWorkPtr awp
1180 );
1181 NLM_EXTERN void AddSourceFeatBlock (
1182 Asn2gbWorkPtr awp
1183 );
1184 NLM_EXTERN void AddWGSBlock (
1185 Asn2gbWorkPtr awp
1186 );
1187 NLM_EXTERN void AddCAGEBlock (
1188 Asn2gbWorkPtr awp
1189 );
1190 NLM_EXTERN void AddGenomeBlock (
1191 Asn2gbWorkPtr awp
1192 );
1193 NLM_EXTERN void AddContigBlock (
1194 Asn2gbWorkPtr awp
1195 );
1196 NLM_EXTERN void AddBasecountBlock (
1197 Asn2gbWorkPtr awp
1198 );
1199 NLM_EXTERN void AddOriginBlock (
1200 Asn2gbWorkPtr awp
1201 );
1202 NLM_EXTERN void AddSequenceBlock (
1203 Asn2gbWorkPtr awp
1204 );
1205 NLM_EXTERN void AddSlashBlock (
1206 Asn2gbWorkPtr awp
1207 );
1208
1209 NLM_EXTERN CharPtr DefaultFormatBlock (
1210 Asn2gbFormatPtr afp,
1211 BaseBlockPtr bbp
1212 );
1213 NLM_EXTERN CharPtr FormatSourceBlock (
1214 Asn2gbFormatPtr afp,
1215 BaseBlockPtr bbp
1216 );
1217 NLM_EXTERN CharPtr FormatOrganismBlock (
1218 Asn2gbFormatPtr afp,
1219 BaseBlockPtr bbp
1220 );
1221 NLM_EXTERN CharPtr FormatReferenceBlock (
1222 Asn2gbFormatPtr afp,
1223 BaseBlockPtr bbp
1224 );
1225 NLM_EXTERN CharPtr FormatCommentBlock (
1226 Asn2gbFormatPtr afp,
1227 BaseBlockPtr bbp
1228 );
1229 NLM_EXTERN CharPtr FormatFeatHeaderBlock (
1230 Asn2gbFormatPtr afp,
1231 BaseBlockPtr bbp
1232 );
1233 NLM_EXTERN CharPtr FormatSourceFeatBlock (
1234 Asn2gbFormatPtr afp,
1235 BaseBlockPtr bbp
1236 );
1237 NLM_EXTERN CharPtr FormatFeatureBlock (
1238 Asn2gbFormatPtr afp,
1239 BaseBlockPtr bbp
1240 );
1241 NLM_EXTERN CharPtr FormatBasecountBlock (
1242 Asn2gbFormatPtr afp,
1243 BaseBlockPtr bbp
1244 );
1245 NLM_EXTERN CharPtr FormatSequenceBlock (
1246 Asn2gbFormatPtr afp,
1247 BaseBlockPtr bbp
1248 );
1249 NLM_EXTERN CharPtr FormatContigBlock (
1250 Asn2gbFormatPtr afp,
1251 BaseBlockPtr bbp
1252 );
1253 NLM_EXTERN CharPtr FormatSlashBlock (
1254 Asn2gbFormatPtr afp,
1255 BaseBlockPtr bbp
1256 );
1257
1258 NLM_EXTERN void PrintFtableIntervals (
1259 ValNodePtr PNTR head,
1260 BioseqPtr target,
1261 SeqLocPtr location,
1262 CharPtr label
1263 );
1264 NLM_EXTERN void PrintFtableLocAndQuals (
1265 IntAsn2gbJobPtr ajp,
1266 ValNodePtr PNTR head,
1267 BioseqPtr target,
1268 SeqFeatPtr sfp,
1269 SeqMgrFeatContextPtr context
1270 );
1271 NLM_EXTERN CharPtr FormatFtableSourceFeatBlock (
1272 BaseBlockPtr bbp,
1273 BioseqPtr target
1274 );
1275
1276 NLM_EXTERN void DoImmediateRemoteFeatureFormat (
1277 Asn2gbFormatPtr afp,
1278 BaseBlockPtr bbp,
1279 SeqFeatPtr sfp
1280 );
1281
1282 NLM_EXTERN void DoImmediateFormat (
1283 Asn2gbFormatPtr afp,
1284 BaseBlockPtr bbp
1285 );
1286
1287 NLM_EXTERN void DoQuickLinkFormat (
1288 Asn2gbFormatPtr afp,
1289 CharPtr str
1290 );
1291
1292 NLM_EXTERN Boolean DeltaLitOnly (
1293 BioseqPtr bsp
1294 );
1295
1296 NLM_EXTERN Boolean SegHasParts (
1297 BioseqPtr bsp
1298 );
1299
1300
1301 #ifdef __cplusplus
1302 }
1303 #endif
1304
1305 #undef NLM_EXTERN
1306 #ifdef NLM_EXPORT
1307 #define NLM_EXTERN NLM_EXPORT
1308 #else
1309 #define NLM_EXTERN
1310 #endif
1311
1312 #endif /* ndef _ASN2NGNBI_ */
1313
1314 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |