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