<!-- ============================================
     ::DATATOOL:: Generated from "seqfeat.asn"
     ::DATATOOL:: by application DATATOOL version 1.9.0
     ::DATATOOL:: on 04/10/2008 16:04:22
     ============================================ -->

<!-- ============================================ -->
<!-- This section is mapped from module "NCBI-Seqfeat"
================================================= -->

<!--
$Revision: 1.1 $
**********************************************************************

  NCBI Sequence Feature elements
  by James Ostell, 1990
  Version 3.0 - June 1994

**********************************************************************
-->

<!-- Elements used by other modules:
          Seq-feat,
          Feat-id,
          Genetic-code -->

<!-- Elements referenced from other modules:
          Gene-ref FROM NCBI-Gene,
          Prot-ref FROM NCBI-Protein,
          Org-ref FROM NCBI-Organism,
          BioSource FROM NCBI-BioSource,
          RNA-ref FROM NCBI-RNA,
          Seq-loc,
          Giimport-id FROM NCBI-Seqloc,
          Pubdesc,
          Numbering,
          Heterogen FROM NCBI-Sequence,
          Rsite-ref FROM NCBI-Rsite,
          Txinit FROM NCBI-TxInit,
          Pub-set FROM NCBI-Pub,
          Object-id,
          Dbtag,
          User-object FROM NCBI-General -->
<!-- ============================================ -->

<!--
*** Feature identifiers ********************************
*
-->
<!ELEMENT Feat-id (
        Feat-id_gibb | 
        Feat-id_giim | 
        Feat-id_local | 
        Feat-id_general)>

<!-- geninfo backbone -->
<!ELEMENT Feat-id_gibb (%INTEGER;)>

<!-- geninfo import -->
<!ELEMENT Feat-id_giim (Giimport-id)>

<!-- for local software use -->
<!ELEMENT Feat-id_local (Object-id)>

<!-- for use by various databases -->
<!ELEMENT Feat-id_general (Dbtag)>

<!--
*** Seq-feat *******************************************
*  sequence feature generalization
-->
<!ELEMENT Seq-feat (
        Seq-feat_id?, 
        Seq-feat_data, 
        Seq-feat_partial?, 
        Seq-feat_except?, 
        Seq-feat_comment?, 
        Seq-feat_product?, 
        Seq-feat_location, 
        Seq-feat_qual?, 
        Seq-feat_title?, 
        Seq-feat_ext?, 
        Seq-feat_cit?, 
        Seq-feat_exp-ev?, 
        Seq-feat_xref?, 
        Seq-feat_dbxref?, 
        Seq-feat_pseudo?, 
        Seq-feat_except-text?, 
        Seq-feat_ids?, 
        Seq-feat_exts?)>
<!--
*** Feature identifiers ********************************
*
-->
<!ELEMENT Seq-feat_id (Feat-id)>

<!-- the specific data -->
<!ELEMENT Seq-feat_data (SeqFeatData)>

<!-- incomplete in some way? -->
<!ELEMENT Seq-feat_partial EMPTY>
<!ATTLIST Seq-feat_partial value ( true | false ) #REQUIRED >


<!-- something funny about this? -->
<!ELEMENT Seq-feat_except EMPTY>
<!ATTLIST Seq-feat_except value ( true | false ) #REQUIRED >


<!ELEMENT Seq-feat_comment (#PCDATA)>

<!-- product of process -->
<!ELEMENT Seq-feat_product (Seq-loc)>

<!-- feature made from -->
<!ELEMENT Seq-feat_location (Seq-loc)>

<!-- qualifiers -->
<!ELEMENT Seq-feat_qual (Gb-qual*)>

<!-- for user defined label -->
<!ELEMENT Seq-feat_title (#PCDATA)>

<!-- user defined structure extension -->
<!ELEMENT Seq-feat_ext (User-object)>

<!-- citations for this feature -->
<!ELEMENT Seq-feat_cit (Pub-set)>
<!-- evidence for existence of feature -->
<!ELEMENT Seq-feat_exp-ev %ENUM;>

<!--
    experimental	-  any reasonable experimental check
    not-experimental	-  similarity, pattern, etc
-->
<!ATTLIST Seq-feat_exp-ev value (
        experimental |
        not-experimental
        ) #REQUIRED >


<!-- cite other relevant features -->
<!ELEMENT Seq-feat_xref (SeqFeatXref*)>

<!-- support for xref to other databases -->
<!ELEMENT Seq-feat_dbxref (Dbtag*)>

<!-- annotated on pseudogene? -->
<!ELEMENT Seq-feat_pseudo EMPTY>
<!ATTLIST Seq-feat_pseudo value ( true | false ) #REQUIRED >


<!-- explain if except=TRUE -->
<!ELEMENT Seq-feat_except-text (#PCDATA)>

<!-- set of Ids; will replace 'id' field -->
<!ELEMENT Seq-feat_ids (Feat-id*)>

<!-- set of extensions; will replace 'ext' field -->
<!ELEMENT Seq-feat_exts (User-object*)>


<!ELEMENT SeqFeatData (
        SeqFeatData_gene | 
        SeqFeatData_org | 
        SeqFeatData_cdregion | 
        SeqFeatData_prot | 
        SeqFeatData_rna | 
        SeqFeatData_pub | 
        SeqFeatData_seq | 
        SeqFeatData_imp | 
        SeqFeatData_region | 
        SeqFeatData_comment | 
        SeqFeatData_bond | 
        SeqFeatData_site | 
        SeqFeatData_rsite | 
        SeqFeatData_user | 
        SeqFeatData_txinit | 
        SeqFeatData_num | 
        SeqFeatData_psec-str | 
        SeqFeatData_non-std-residue | 
        SeqFeatData_het | 
        SeqFeatData_biosrc)>

<!ELEMENT SeqFeatData_gene (Gene-ref)>

<!ELEMENT SeqFeatData_org (Org-ref)>
<!--
*** CdRegion ***********************************************
*
*  Instructions to translate from a nucleic acid to a peptide
*    conflict means it's supposed to translate but doesn't
*
-->
<!ELEMENT SeqFeatData_cdregion (Cdregion)>

<!ELEMENT SeqFeatData_prot (Prot-ref)>

<!ELEMENT SeqFeatData_rna (RNA-ref)>

<!-- publication applies to this seq  -->
<!ELEMENT SeqFeatData_pub (Pubdesc)>

<!-- to annotate origin from another seq -->
<!ELEMENT SeqFeatData_seq (Seq-loc)>
<!--
*** Import ***********************************************
*
*  Features imported from other databases
*
-->
<!ELEMENT SeqFeatData_imp (Imp-feat)>

<!-- named region (globin locus) -->
<!ELEMENT SeqFeatData_region (#PCDATA)>

<!-- just a comment -->
<!ELEMENT SeqFeatData_comment EMPTY>

<!ELEMENT SeqFeatData_bond %ENUM;>
<!ATTLIST SeqFeatData_bond value (
        disulfide |
        thiolester |
        xlink |
        thioether |
        other
        ) #REQUIRED >


<!ELEMENT SeqFeatData_site %ENUM;>
<!ATTLIST SeqFeatData_site value (
        active |
        binding |
        cleavage |
        inhibit |
        modified |
        glycosylation |
        myristoylation |
        mutagenized |
        metal-binding |
        phosphorylation |
        acetylation |
        amidation |
        methylation |
        hydroxylation |
        sulfatation |
        oxidative-deamination |
        pyrrolidone-carboxylic-acid |
        gamma-carboxyglutamic-acid |
        blocked |
        lipid-binding |
        np-binding |
        dna-binding |
        signal-peptide |
        transit-peptide |
        transmembrane-region |
        nitrosylation |
        other
        ) #REQUIRED >


<!-- restriction site  (for maps really) -->
<!ELEMENT SeqFeatData_rsite (Rsite-ref)>

<!-- user defined structure -->
<!ELEMENT SeqFeatData_user (User-object)>

<!-- transcription initiation -->
<!ELEMENT SeqFeatData_txinit (Txinit)>

<!-- a numbering system -->
<!ELEMENT SeqFeatData_num (Numbering)>
<!-- protein secondary structure -->
<!ELEMENT SeqFeatData_psec-str %ENUM;>

<!--
    helix	-  any helix
    sheet	-  beta sheet
    turn	-  beta or gamma turn
-->
<!ATTLIST SeqFeatData_psec-str value (
        helix |
        sheet |
        turn
        ) #REQUIRED >


<!-- non-standard residue here in seq -->
<!ELEMENT SeqFeatData_non-std-residue (#PCDATA)>

<!-- cofactor, prosthetic grp, etc, bound to seq -->
<!ELEMENT SeqFeatData_het (Heterogen)>

<!ELEMENT SeqFeatData_biosrc (BioSource)>

<!-- both optional because can have one or both -->
<!ELEMENT SeqFeatXref (
        SeqFeatXref_id?, 
        SeqFeatXref_data?)>

<!-- the feature copied -->
<!ELEMENT SeqFeatXref_id (Feat-id)>

<!-- the specific data -->
<!ELEMENT SeqFeatXref_data (SeqFeatData)>

<!--
*** CdRegion ***********************************************
*
*  Instructions to translate from a nucleic acid to a peptide
*    conflict means it's supposed to translate but doesn't
*
-->
<!ELEMENT Cdregion (
        Cdregion_orf?, 
        Cdregion_frame?, 
        Cdregion_conflict?, 
        Cdregion_gaps?, 
        Cdregion_mismatch?, 
        Cdregion_code?, 
        Cdregion_code-break?, 
        Cdregion_stops?)>

<!-- just an ORF ? -->
<!ELEMENT Cdregion_orf EMPTY>
<!ATTLIST Cdregion_orf value ( true | false ) #REQUIRED >


<!ELEMENT Cdregion_frame %ENUM;>

<!--
    not-set	-  not set, code uses one
    three	-  reading frame
-->
<!ATTLIST Cdregion_frame value (
        not-set |
        one |
        two |
        three
        ) #REQUIRED >


<!-- conflict -->
<!ELEMENT Cdregion_conflict EMPTY>
<!ATTLIST Cdregion_conflict value ( true | false ) #REQUIRED >


<!-- number of gaps on conflict/except -->
<!ELEMENT Cdregion_gaps (%INTEGER;)>

<!-- number of mismatches on above -->
<!ELEMENT Cdregion_mismatch (%INTEGER;)>

<!-- genetic code used -->
<!ELEMENT Cdregion_code (Genetic-code)>

<!-- individual exceptions -->
<!ELEMENT Cdregion_code-break (Code-break*)>

<!-- number of stop codons on above -->
<!ELEMENT Cdregion_stops (%INTEGER;)>

<!--
 each code is 64 cells long, in the order where
 T=0,C=1,A=2,G=3, TTT=0, TTC=1, TCA=4, etc
 NOTE: this order does NOT correspond to a Seq-data
 encoding.  It is "natural" to codon usage instead.
 the value in each cell is the AA coded for
 start= AA coded only if first in peptide
   in start array, if codon is not a legitimate start
   codon, that cell will have the "gap" symbol for
   that alphabet.  Otherwise it will have the AA
   encoded when that codon is used at the start.
-->
<!ELEMENT Genetic-code (Genetic-code_E*)>



<!ELEMENT Genetic-code_E (
        Genetic-code_E_name | 
        Genetic-code_E_id | 
        Genetic-code_E_ncbieaa | 
        Genetic-code_E_ncbi8aa | 
        Genetic-code_E_ncbistdaa | 
        Genetic-code_E_sncbieaa | 
        Genetic-code_E_sncbi8aa | 
        Genetic-code_E_sncbistdaa)>

<!-- name of a code -->
<!ELEMENT Genetic-code_E_name (#PCDATA)>

<!-- id in dbase -->
<!ELEMENT Genetic-code_E_id (%INTEGER;)>

<!-- indexed to IUPAC extended -->
<!ELEMENT Genetic-code_E_ncbieaa (#PCDATA)>

<!-- indexed to NCBI8aa -->
<!ELEMENT Genetic-code_E_ncbi8aa (%OCTETS;)>

<!-- indexed to NCBIstdaa -->
<!ELEMENT Genetic-code_E_ncbistdaa (%OCTETS;)>

<!-- start, indexed to IUPAC extended -->
<!ELEMENT Genetic-code_E_sncbieaa (#PCDATA)>

<!-- start, indexed to NCBI8aa -->
<!ELEMENT Genetic-code_E_sncbi8aa (%OCTETS;)>

<!-- start, indexed to NCBIstdaa -->
<!ELEMENT Genetic-code_E_sncbistdaa (%OCTETS;)>

<!--
 specific codon exceptions
 NCBIstdaa code
-->
<!ELEMENT Code-break (
        Code-break_loc, 
        Code-break_aa)>

<!-- location of exception -->
<!ELEMENT Code-break_loc (Seq-loc)>
<!-- the amino acid -->
<!ELEMENT Code-break_aa (
        Code-break_aa_ncbieaa | 
        Code-break_aa_ncbi8aa | 
        Code-break_aa_ncbistdaa)>

<!-- ASCII value of NCBIeaa code -->
<!ELEMENT Code-break_aa_ncbieaa (%INTEGER;)>

<!-- NCBI8aa code -->
<!ELEMENT Code-break_aa_ncbi8aa (%INTEGER;)>

<!ELEMENT Code-break_aa_ncbistdaa (%INTEGER;)>

<!-- table of genetic codes -->
<!ELEMENT Genetic-code-table (Genetic-code*)>

<!--
*** Import ***********************************************
*
*  Features imported from other databases
*
-->
<!ELEMENT Imp-feat (
        Imp-feat_key, 
        Imp-feat_loc?, 
        Imp-feat_descr?)>

<!ELEMENT Imp-feat_key (#PCDATA)>

<!-- original location string -->
<!ELEMENT Imp-feat_loc (#PCDATA)>

<!-- text description -->
<!ELEMENT Imp-feat_descr (#PCDATA)>


<!ELEMENT Gb-qual (
        Gb-qual_qual, 
        Gb-qual_val)>

<!ELEMENT Gb-qual_qual (#PCDATA)>

<!ELEMENT Gb-qual_val (#PCDATA)>

