[Bio] / Sprout / SaplingDBD.xml Repository:
ViewVC logotype

View of /Sprout/SaplingDBD.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (download) (as text) (annotate)
Sat Mar 7 18:07:36 2009 UTC (10 years, 8 months ago) by parrello
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +0 -0 lines
FILE REMOVED
Cleaned up some error messages. Fixed some bugs in search.

<Database>
  <Title>Sapling Bioinformatics Database</Title>
  <Notes>[p]The Sapling database is a distributable, self-contained copy of the
    NMPDR data. Unlike Sprout, which is optimized for searching, Sapling is
    designed to be structurally simple without sacrificing the ability to find
    information quickly.[/p]
    [p]The diagram colors indicate the way the data is loaded: each color indicates
    a different load group.[/p]
    [list]
    [b]Red[/b] Genome group: includes all taxonomy and sequence data.[*]
    [b]Blue[/b] Subsystem group: includes the subsystems themselves
    and all the subsystem spreadsheets.[*]
    [b]Green[/b] Feature group: includes features, feature identifiers,
    protein sequences, and related publications.[*]
    [b]Yellow[/b] Scenario group: includes KEGG diagrams, scenarios,
    and connections to the related chemical reactions.[*]
    [b]Purple[/b] Drug group: includes PDBs and docking data.[*]
    [b]Navy[/b] Model group: includes compounds, reactions,
    structural cues, and models for the cell chemistry.[*]
    [b]Brown[/b] Annotation group: includes feature annotations,
    FIGfams, and functional coupling data.[*]
    [b]Black[/b] Protein group: includes data from the Annotation
    Clearinghouse.
    [/list]
    [p]In this version of Sapling the Red, Blue, Green, Brown, and Yellow objects
    have been loaded. The Purple, Navy, and Black objects are not yet available.[/p]
    </Notes>
  <Regions>
    <Region name="Chemistry">
      <Notes>The Chemistry region contains data about reactions and subsystem
      scenarios.</Notes>
    </Region>
    <Region name="Annotations">
      <Notes>The Annotations region contains feature annotation history, information
      about functional coupling, and annotation clearinghouse
      assertions.</Notes>
    </Region>
    <Region name="Models">
      <Notes>The Models region contains data related to genome models.</Notes>
    </Region>
  </Regions>
  <Diagram height="800" ratio="0.7" size="90" fontSize="12" editable="0"/>
  <Entities>
    <Entity name="Cluster" keyType="int">
      <DisplayInfo theme="brown">
        <RegionInfo name="Annotations" row="5" col="3"/>
      </DisplayInfo>
      <Notes>A cluster is a set of features that occur close to each other
      on a genome and are related by a significant degree of functional
      coupling.</Notes>
    </Entity>
    <Entity name="Compound" keyType="string">
      <DisplayInfo theme="navy">
        <RegionInfo name="Chemistry" row="1" col="2"/>
        <RegionInfo name="Models" col="4" row="1"/>
      </DisplayInfo>
      <Notes>A compound is a chemical that participates in a reaction. All compounds
      have a unique ID and may also have one or more names. Both ligands and reaction
      components are treated as compounds.</Notes>
      <Fields>
        <Field name="label" type="string">
          <Notes>Primary name of the compound. This is the name used
          in reaction display strings.</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index allows searching for compounds by name.</Notes>
          <IndexFields>
            <IndexField name="name" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
    <Entity name="StructuralCue" keyType="string">
      <DisplayInfo theme="navy" caption="Structural Cue">
        <RegionInfo name="Models" col="2" row="1"/>
      </DisplayInfo>
      <Notes>A structural cue is a molecular substructure for a compound that
      is useful to known about.</Notes>
    </Entity>
    <Entity name="AliasType" keyType="string">
      <DisplayInfo theme="navy">
        <RegionInfo name="Models" col="6" row="1"/>
      </DisplayInfo>
      <Notes>An alias type describes a kind of alternate name for a compound
      or reaction.</Notes>
    </Entity>
    <Entity name="Diagram" keyType="string">
      <DisplayInfo theme="ivory" col="5" row="3">
        <RegionInfo name="Chemistry" row="3" col="4"/>
      </DisplayInfo>
      <Notes>A functional diagram describes a network of chemical
      reactions, often comprising a single subsystem. A diagram is
      identified by a short name and contains a longer descriptive
      name.</Notes>
      <Fields>
        <Field name="name" type="text">
          <Notes>Descriptive name of this diagram.</Notes>
        </Field>
        <Field name="content" type="image" relation="DiagramContent">
          <Notes>The content of the diagram, in PNG format.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Reaction" keyType="string">
      <DisplayInfo theme="navy" col="3" row="3">
        <RegionInfo name="Chemistry" row="3" col="2"/>
        <RegionInfo name="Models" row="3" col="4"/>
      </DisplayInfo>
      <Notes>A reaction is a chemical process that converts one set of
      compounds (substrate) to another set (products). The reaction ID is
      generally a small number preceded by a letter.</Notes>
      <Fields>
        <Field name="url" type="string" relation="ReactionURL">
          <Notes>HTML string containing a link to a web location that
          describes the reaction. This field is optional.</Notes>
        </Field>
        <Field name="rev" type="boolean">
          <Notes>TRUE if this reaction is reversible, else
          FALSE</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Subsystem" keyType="string">
      <DisplayInfo theme="blue" col="7" row="3">
        <RegionInfo name="" row="1" col="3"/>
        <RegionInfo name="Chemistry" row="3" col="6"/>
      </DisplayInfo>
      <Notes>A subsystem is a collection of roles that work together in a
      cell. Identification of subsystems is an important tool for
      recognizing parallel genetic features in different organisms. The
      key is subsystem name.</Notes>
      <Asides>The subsystem name used to come in two forms-- a natural form
      with spaces and an internal form with underscores. In this database we
      will only have the natural form.</Asides>
      <Fields>
        <Field name="version" type="int">
          <Notes>Version number for the subsystem. This value is
          incremented each time the subsystem is backed up.</Notes>
        </Field>
        <Field name="curator" type="string">
          <Notes>Name of the person currently in charge of the
          subsystem.</Notes>
        </Field>
        <Field name="notes" type="text">
          <Notes>Descriptive notes about the subsystem.</Notes>
        </Field>
        <Field name="description" type="text">
          <Notes>Description of the subsystem's function in the
          cell.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="SubsystemClass" keyType="string">
      <DisplayInfo theme="blue" caption="Subsystem Class">
        <RegionInfo name="" row="1" col="5"/>
        <RegionInfo name="Chemistry" row="5" col="6"/>
      </DisplayInfo>
      <Notes>Subsystem classes impose a hierarchical organization on the
      subsystems.</Notes>
    </Entity>
    <Entity name="Publication" keyType="hash-string">
      <DisplayInfo theme="green" col="1" row="8">
        <RegionInfo name="" row="3" col="1"/>
      </DisplayInfo>
      <Notes>A publication is an article or citation that may be used as
      evidence for assertions made in the database. The key is a hash code
      computed from the original URL. We expect almost all of the articles to
      be in PUBMED, but this object has been implemented in a slightly
      more general fashion just in case.</Notes>
      <Fields>
        <Field name="citation" type="link">
          <Notes>Hyperlink of the article. The text is the article title.</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index provides the ability to search by article
          title. It should only be used for LIKE-style searches, since
          the article titles are encoded together with the URLs.</Notes>
          <IndexFields>
            <IndexField name="citation" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
    <Entity name="Variant" keyType="string">
      <DisplayInfo theme="blue" col="7" row="5">
        <RegionInfo name="" row="3" col="5"/>
      </DisplayInfo>
      <Notes>A variant is a functional subset of a subsystem. It indicates
      the particular sequence of roles used to implement a metabolic
      pathway. Variants are abstract concepts used to classify machines.
      The key of the variant is the subsystem ID followed by the variant
      code.</Notes>
      <Asides>The variant code is generally a number with zero or more
      decimal points, similar to what it done with software version numbers
      or legal outline numbers.</Asides>
      <Fields>
        <Field name="role-rule" type="text">
          <Notes>Boolean expression (encoded as text) that describes
          the roles in this variant. The roles themselves are
          represented by their IDs.</Notes>
        </Field>
        <Field name="comment" type="text">
          <Notes>Commentary text about the variant.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="ProteinSequence" keyType="hash-string">
      <DisplayInfo theme="green" col="3" row="7" caption="Protein Sequence">
        <RegionInfo name="" row="5" col="1"/>
        <RegionInfo name="Chemistry" row="7" col="2"/>
        <RegionInfo name="Annotations" row="3" col="1"/>
      </DisplayInfo>
      <Notes>A protein sequence is a specific sequence of amino acids.
      Unlike a DNA sequence, a protein sequence does not belong to a
      genome. Identical proteins generated by different genomes are
      generally stored as a single ProteinSequence instance. The key is a
      hash code computed from the protein letter sequence.</Notes>
      <Fields>
        <Field name="sequence" type="text">
          <Notes>The sequence contains the letters corresponding to
          the protein's amino acids.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Family" keyType="string">
      <DisplayInfo theme="brown" col="4" row="11">
        <RegionInfo name="Annotations" row="1" col="5"/>
      </DisplayInfo>
      <Notes>A family is a group of features united by a particular
      determination algorithm. The algorithm will frequently-- but not
      always-- signify a functional role. The key is a character code for
      the kind of family (generally two or three letters) followed by
      the family's ID number.</Notes>
      <Fields>
        <Field name="native-name" type="string" relation="FamilyName">
          <Notes>This is an optional common or descriptive name for the
          family. If the family uses a naming scheme that does
          not translate to the standard ID format, the real name
          is put in here.</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index enables the user to find a family by its
          native name.</Notes>
          <IndexFields>
            <IndexField name="native-name" order="ascending"/>
            <IndexField name="id" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
    <Entity name="MolecularMachine" keyType="hash-string">
      <DisplayInfo theme="blue" col="7" row="7" caption="Molecular\nMachine">
        <RegionInfo name="" row="5" col="5"/>
      </DisplayInfo>
      <Notes>A molecular machine is a collection of features that
      implements a metabolic pathway. Machines are the physical instances
      of variants. Each machine corresponds to a row in a subsystem
      spreadsheet. The key is an MD5 hash formed from a comma-separated list
      containing the variant key, the Genome ID, and an optional region
      string.</Notes>
      <Asides>It is possible for a single subsystem to occur multiple times
      in a particular genome. If that is the case, then the subsystem will
      have a molecular machine for each occurrence. The sequence number used
      in forming the key insures that each machine has a unique ID.</Asides>
      <Fields>
        <Field name="type" type="string">
          <Notes>The machine type indicates how the machine relates to
          the parent variant. A type of "vacant" means that the
          machine does not appear to actually exist in the organism. A
          type of "incomplete" means that the machine appears to be
          missing many reactions. In all other cases, the type is
          "normal".</Notes>
        </Field>
        <Field name="curated" type="boolean">
          <Notes>This flag is TRUE if the assignment of the molecular
          machine has been curated, and FALSE if it was made by an
          automated program.</Notes>
        </Field>
        <Field name="region" type="string">
          <Notes>Region in the genome for which the machine is relevant.
          Normally, this is an empty string, indicating that the machine
          covers the whole genome. If a subsystem has multiple machines
          for a genome, this contains a location string describing the
          region occupied by this particular machine.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Pairing" keyType="string">
      <DisplayInfo theme="brown" col="5" row="11">
        <RegionInfo name="Annotations" row="3" col="5"/>
      </DisplayInfo>
      <Notes>A pairing indicates that two features are found
      close together in a genome. Not all possible pairings are stored in
      the database; only those that are considered for some reason to be
      significant for annotation purposes.The key of the pairing is the
      concatenation of the feature IDs in alphabetical order with an
      intervening colon.</Notes>
      <Asides>Theoretically, the pairing is unordered: (A,B) and (B,A) are the
      same pairing. It is frequently the case, however, that we need to refer to
      the "first" or "second" protein in the pairing. When this happens, the
      first one is always the protein with the alphabetically lesser key. The
      IsInPair relationship automatically shows the proteins in this
      order.</Asides>
    </Entity>
    <Entity name="Genome" keyType="float">
      <DisplayInfo theme="red">
        <RegionInfo name="Models" col="6" row="7"/>
        <RegionInfo name="Chemistry" col="6" row="7"/>
        <RegionInfo name="Annotations" row="1" col="3"/>
        <RegionInfo name="" row="7" col="5"/>
      </DisplayInfo>
      <Notes>A genome represents a specific organism with DNA, or a
      specific meta-genome. All DNA sequences in the database belong to
      genomes.</Notes>
      <Fields>
        <Field name="scientific-name" type="string">
          <Notes>Full genus/species/strain name of the genome.</Notes>
        </Field>
        <Field name="complete" type="boolean">
          <Notes>TRUE if the genome is complete, else FALSE</Notes>
        </Field>
        <Field name="dna-size" type="counter">
          <Notes>Number of base pairs in the genome.</Notes>
        </Field>
        <Field name="contigs" type="int">
          <Notes>Number of contigs for this genome.</Notes>
        </Field>
        <Field name="pegs" type="int">
          <Notes>Number of protein encoding genes for this genome.</Notes>
        </Field>
        <Field name="rnas" type="int">
          <Notes>Number of RNA features found for this organism.</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index allows the applications to find all
          genomes in lexical order by name.</Notes>
          <IndexFields>
            <IndexField name="scientific-name" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
    <Entity name="Annotation" keyType="string">
      <DisplayInfo col="3" row="11" theme="brown">
        <RegionInfo name="Annotations" row="1" col="1"/>
      </DisplayInfo>
      <Notes>An annotation is a comment attached to a feature. Annotations
      are used to track the history of a feature's functional assignments
      and any related issues. The key is the feature ID followed by a
      colon and an complemented ten-digit sequence number.</Notes>
      <Asides>The complemented sequence number causes the annotations to
      sort with the most recent one first.</Asides>
      <Fields>
        <Field name="annotator" type="string">
          <Notes>Name of the annotator who made the comment.</Notes>
        </Field>
        <Field name="comment" type="text">
          <Notes>Text of the annotation.</Notes>
        </Field>
        <Field name="annotation-time" type="date">
          <Notes>Date and time at which the annotation was made.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="RoleSet" keyType="int">
      <DisplayInfo theme="navy" col="3" row="5" caption="Role Set">
        <RegionInfo name="Chemistry" row="5" col="2"/>
        <RegionInfo name="Models" row="3" col="2"/>
      </DisplayInfo>
      <Notes>A role set is a group of roles that work together to
      stimulate a reaction. Most role sets consist of a single role;
      however, some reactions require the presence of multiple roles to
      get them started.</Notes>
      <Asides>A reaction is usually triggered by a single role, but some
      reactions are triggered by a boolean combination of roles (e.g. =(A
      and (B or C) and D) or (E and B and F) or G=). The boolean
      expression can be converted into disjunctive normal form, which is a
      list of alternative sets (e.g. =(A and B and D) or (A and C and D)
      or (E and B and F) or G=). Each alternative is then converted into a
      role set. This allows us to precisely represent the triggering
      conditions of a reaction in the database.</Asides>
    </Entity>
    <Entity name="Contig" keyType="string">
      <DisplayInfo theme="red" col="7" row="11">
        <RegionInfo name="" row="9" col="3"/>
      </DisplayInfo>
      <Notes>A contig is a contiguous sequence of base pairs belonging to
      a single genome. The key of the contig is the genome ID followed
      by a colon and then the contig ID.</Notes>
      <Fields>
        <Field name="length" type="counter">
          <Notes>Number of base pairs in the contig.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="DNASequence" keyType="string">
      <DisplayInfo theme="red" col="7" row="13">
        <RegionInfo name="" row="9" col="1"/>
      </DisplayInfo>
      <Notes>A DNA sequence is a segment of a contig. Contigs are broken
      into multiple DNA sequences in order to prevent problems that might
      arise from loading an entire contig into memory when it consists of
      a billion or more base pairs.</Notes>
      <Asides>The maximum length of a DNA sequence is one million bases.
      The key is the contigID followed by a 7-digit ordinal number. So,
      the first sequence will have an ordinal of 0000000 and contain the base
      pairs from position 1 to position 1,000,000, the second will have an
      ordinal of 0000001 and contain the pairs from position 1,000,001 to
      2,000,000, and so forth. This will allow us to store 10 trillion
      base pairs per contig.</Asides>
      <Fields>
        <Field name="sequence" type="dna">
          <Notes>Base pairs that make up this sequence.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Structure" keyType="string">
      <DisplayInfo theme="purple" col="2" row="5">
        <RegionInfo name="Chemistry" row="5" col="1"/>
      </DisplayInfo>
      <Notes>A structure is the geometrical representation of a protein
      sequence. A single protein sequence may have multiple structural
      representations, either because it is folded in different ways or
      because there are alternative representation formats. The key field
      is the representation type (currently only PDB) followed by
      a colon and the ID.</Notes>
    </Entity>
    <Entity name="EcNumber" keyType="string">
      <DisplayInfo theme="navy" col="3" row="7" caption="EC\nNumber">
        <RegionInfo name="Models" row="5" col="2"/>
      </DisplayInfo>
      <Notes>EC numbers are assigned by the Enzyme Commission, and consist
      of four numbers separated by periods, each indicating a successively
      smaller cateogry of enzymes.</Notes>
    </Entity>
    <Entity name="MachineRole" keyType="string">
      <DisplayInfo row="7" col="5" caption="Machine Role" theme="blue">
        <RegionInfo name="" row="5" col="3"/>
      </DisplayInfo>
      <Notes>A machine role represents a role as it occurs in a molecular
      machine. The key is the machine key plus the role
      abbreviation.</Notes>
      <Asides>The machine role corresponds to a cell on the subsystem
      spreadsheet. Features in the subsystem are assigned directly to the
      machine role.</Asides>
    </Entity>
    <Entity name="Model" keyType="string">
      <DisplayInfo col="7" row="7" theme="navy">
        <RegionInfo name="Models" row="5" col="6"/>
      </DisplayInfo>
      <Notes>A model specifies a relationship between sets of features and
      reactions in a cell. It is used to simulate cell growth and gene
      knockouts to validate annotations.</Notes>
    </Entity>
    <Entity name="FeatureSet" keyType="hash-string">
      <DisplayInfo theme="navy" col="5" row="7">
        <RegionInfo name="Models" row="5" col="4"/>
      </DisplayInfo>
      <Notes>A feature set is a group of features that implement a reaction
      in a particular model.</Notes>
      <Asides>The key is a hash string computed from the model name and a
      sorted list of the initial features in the set.</Asides>
    </Entity>
    <Entity name="GenomeSet" keyType="string">
      <DisplayInfo theme="red">
        <RegionInfo name="" row="5" col="6"/>
      </DisplayInfo>
      <Notes>A genome set is a named group of related genomes.</Notes>
    </Entity>
    <Entity name="Source" keyType="string">
      <DisplayInfo theme="black">
        <RegionInfo name="Annotations" row="7" col="1"/>
      </DisplayInfo>
      <Notes>A source is a user or organization that is permitted to make assertions
      about identifiers.</Notes>
    </Entity>
    <Entity name="PairSet" keyType="int">
      <DisplayInfo theme="brown" col="5" row="13" caption="Pair Set">
        <RegionInfo name="Annotations" row="5" col="5"/>
      </DisplayInfo>
      <Notes>A pair set indicates evidence for a functional connection between
      protein sequence pairs. The protein sequences possessing the connection
      are the ones that participate in the evidence set's pairings.</Notes>
      <Asides>The pairings for a particular evidence set will contain
      protein sequences that are significantly similar. In other words, if
      (A,B) and (X,Y) are both pairings in a single evidence set, then (A
      =~ X) and (B =~ Y) or (A =~ Y) and (B =~ X), depending on the value
      of the "inverted" attribute of the IsDeterminedBy relationship.
      Essentially, a pairing in its own right is unordered. If (A,B) is a
      pair, then so is (B,A). However, the evidence set maintains a
      correspondence between its pairs that _is_ ordered, because the
      constituent pairs must match. The direction in which a pair matches
      others in the set is an attribute of the relationship from the pairs
      to the sets.</Asides>
      <Fields>
        <Field name="score" type="int">
          <Notes>Score for this evidence set. The score indicates the
          number of significantly different genomes represented by the
          pairings.</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Role" keyType="string">
      <DisplayInfo theme="blue" col="5" row="5">
        <RegionInfo name="" row="3" col="3"/>
        <RegionInfo name="Chemistry" row="5" col="4"/>
        <RegionInfo name="Models" col="2" row="7"/>
      </DisplayInfo>
      <Notes>A role describes a biological function that may be fulfilled
      by a feature. One of the main goals of the database is to assign
      features to roles. Most roles are effected by the construction of
      proteins. Some, however, deal with functional regulation and message
      transmission.</Notes>
      <Asides>A role represents a single gene function. Only roles in
      subsystems are represented in this way. The key of the role
      is a hash code computed from the name.</Asides>
      <Fields>
        <Field name="hypothetical" type="boolean">
          <Notes>TRUE if a role is hypothetical, else FALSE</Notes>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Feature" keyType="string">
      <DisplayInfo theme="green">
        <RegionInfo name="Models" col="4" row="7"/>
        <RegionInfo name="Chemistry" col="4" row="7"/>
        <RegionInfo name="" col="3" row="7"/>
        <RegionInfo name="Annotations" col="3" row="3"/>
      </DisplayInfo>
      <Notes>A feature (sometimes also called a gene) is a part of a
      genome that is of special interest. Features may be spread across
      multiple DNA sequences (contigs) of a genome, but never across more
      than one genome. Each feature in the database has a unique FIG
      ID that functions as its ID in this table.</Notes>
      <Fields>
        <Field name="feature-type" type="string">
          <Notes>Code indicating the type of this feature. Among the
          codes currently supported are "peg" for a protein encoding
          gene, "bs" for a binding site, "opr" for an operon, and so
          forth.</Notes>
        </Field>
        <Field name="link" type="text" relation="FeatureLink">
          <Notes>Web hyperlink for this feature. A feature can have no
          hyperlinks or it can have many. The links are to other
          websites that have useful about the gene that the feature
          represents, and are coded as raw HTML, using an anchor href
          tag.</Notes>
        </Field>
        <Field name="essential" type="link" relation="FeatureEssential" special="property_search">
          <Notes>A value indicating the essentiality of the feature,
          In most cases, this will be a word describing whether the
          essentiality is confirmed (essential) or potential
          (potential-essential), hyperlinked to the document
          from which the essentiality was curated. If a feature is not
          essential, this field will have no values; otherwise, it may
          have multiple values.</Notes>
        </Field>
        <Field name="virulent" type="link" relation="FeatureVirulent" special="property_search">
          <Notes>A value indicating the virulence of the feature,
          coded as HTML. In most cases, this will be a phrase or SA
          number hyperlinked to the document from which the virulence
          information was curated. If the feature is not virulent,
          this field will have no values; otherwise, it may have
          multiple values.</Notes>
        </Field>
        <Field name="sequence-length" type="counter">
          <Notes>Number of base pairs in this feature.</Notes>
        </Field>
        <Field name="evidence-code" type="string" relation="FeatureEvidence">
          <Notes>An evidence code describes the possible evidence that
          exists for deciding a feature's functional assignment. A
          feature may have no evidence, a single evidence code, or
          several.</Notes>
        </Field>
        <Field name="locked" type="boolean">
          <Notes>If TRUE, then this feature is locked and its functional
          role assignment cannot be changed.</Notes>
        </Field>
        <Field name="function" type="text">
          <Notes>Functional assignment for this feature. This will
          often indicate the feature's functional role or roles, and
          may also have comments.</Notes>
          <Asides>It will frequently be the case that a feature is
          assigned to a single role, and it is identical to the
          function. In some cases, a feature will have multiple roles,
          and all of them will be listed in the function field. In
          addition, the function may have comment text at the
          end.</Asides>
        </Field>
      </Fields>
    </Entity>
    <Entity name="Identifier" keyType="string">
      <DisplayInfo theme="green" col="3" row="9">
        <RegionInfo name="" row="7" col="1"/>
        <RegionInfo name="Annotations" row="5" col="1"/>
      </DisplayInfo>
      <Notes>An identifier is an alternate name for a feature or a protein
      sequence.</Notes>
      <Asides>Identifiers are preferentially associated with features; however, in 
      some cases the precise feature named by an external identifier cannot be
      computed; in this case, the identifier is associated with the protein
      sequence. Identifiers are stored in a prefixed format that insures identifiers
      from different sources have different IDs.</Asides>
      <Fields>
        <Field name="source" type="string">
          <Notes>Specific type of the identifier, such as its source
          database or category. The type can usually be decoded to
          convert the identifier to a URL.</Notes>
        </Field>
        <Field name="natural-form" type="string">
          <Notes>Natural form of the identifier. This is how the identifier looks
          without the identifying prefix (if one is present).</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index allows all the identifiers of a specified
          type to be located.</Notes>
          <IndexFields>
            <IndexField name="source" order="ascending"/>
            <IndexField name="id" order="ascending"/>
          </IndexFields>
        </Index>
        <Index>
          <Notes>This index allows looking up a natural identifier (that is,
          one without the identifying prefix..</Notes>
          <IndexFields>
            <IndexField name="natural-form" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
    <Entity name="Scenario" keyType="string">
      <DisplayInfo theme="ivory" col="5" row="1">
        <RegionInfo name="Chemistry" row="1" col="4"/>
      </DisplayInfo>
      <Notes>A scenario is a partial instance of a subsystem with a
      defined set of reactions. Each scenario converrts input compounds to
      output compounds using reactions. The scenario may use all of the
      reactions controlled by a subsystem or only some, and may also
      incorporate additional reactions.</Notes>
    </Entity>
    <Entity name="TaxonomicGrouping" keyType="float">
      <DisplayInfo row="8" col="7" caption="Taxonomic\nGrouping" theme="red">
        <RegionInfo name="" row="9" col="5"/>
      </DisplayInfo>
      <Notes>A taxonomic grouping is a segment of the classification for
      an organism. Taxonomic groupings are organized into a strict
      hierarchy by the IsGroupContaining relationship.</Notes>
      <Fields>
        <Field name="domain" type="boolean">
          <Notes>TRUE if this is a domain grouping, else FALSE.</Notes>
        </Field>
        <Field name="hidden" type="boolean">
          <Notes>TRUE if this is a hidden grouping, else FALSE. Hidden groupings
          are not typically shown in a lineage list.</Notes>
        </Field>
        <Field name="scientific-name" type="string">
          <Notes>Primary scientific name for this grouping. This is the name used
          when displaying a taxonomy.</Notes>
        </Field>
        <Field name="alias" type="string" relation="TaxonomicGroupingAlias">
          <Notes>Alternate name for this grouping. A grouping
          may have many alternate names. The scientific name should also
          be in this list.</Notes>
        </Field>
      </Fields>
      <Indexes>
        <Index>
          <Notes>This index allows the user to find a particular
          taxonomic grouping by name. Because the scientifc name is
          also an alias, there is no index on scientific name.</Notes>
          <IndexFields>
            <IndexField name="alias" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Entity>
  </Entities>
  <Relationships>
    <Relationship name="IsFoundIn" arity="MM" from="StructuralCue" to="Compound" converse="IsComprisedOf">
      <DisplayInfo theme="navy" caption="Is\nFound\nIn">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects a compound to the known structural cues.
      The structural cues enable the application to query compounds by molecular
      structure.</Notes>
      <Fields>
        <Field name="count" type="int">
          <Notes>Number of times the cue occurs in the compound.</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="HasAliasOf" arity="MM" from="Compound" to="AliasType" converse="IsAliasOf">
      <DisplayInfo theme="navy">
        <RegionInfo name="Models" caption="Has\nAlias\nOf"/>
      </DisplayInfo>
      <Notes>This relationship is used to find all the alternate names for a
      compound.</Notes>
      <Fields>
        <Field name="alias" type="string">
          <Notes>This is the actual alias used, and is frequently the main point of
          access for this relationship.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index allows the application to find a particular alias if the
        type is known.</Notes>
        <IndexFields>
          <IndexField name="alias" order="ascending"/>
        </IndexFields>
      </FromIndex>
      <Indexes>
        <Index>
          <Notes>This index can be used to find a particular alias when the type is
          not known.</Notes>
          <IndexFields>
            <IndexField name="alias" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Relationship>
    <Relationship name="HasReactionAliasOf" arity="MM" from="Reaction" to="AliasType" converse="IsAliasOfReaction">
      <DisplayInfo theme="navy">
        <RegionInfo name="Models" caption="Has\nReaction\nAlias Of"/>
      </DisplayInfo>
      <Notes>This relationship is used to find all the alternate names for a
      reaction.</Notes>
      <Fields>
        <Field name="alias" type="string">
          <Notes>This is the actual alias used, and is frequently the main point of
          access for this relationship.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index allows the application to find a particular alias if the
        type is known.</Notes>
        <IndexFields>
          <IndexField name="alias" order="ascending"/>
        </IndexFields>
      </FromIndex>
      <Indexes>
        <Index>
          <Notes>This index can be used to find a particular alias when the type is
          not known.</Notes>
          <IndexFields>
            <IndexField name="alias" order="ascending"/>
          </IndexFields>
        </Index>
      </Indexes>
    </Relationship>
    <Relationship name="OccursIn" arity="MM" from="Feature" to="Cluster" converse="IsOccurrenceOf">
      <DisplayInfo theme="brown" caption="Occurs In">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>This relationship connects features to clusters. It is generally expected
      that the presence of features in a cluster indicates a functional relationship.</Notes>
    </Relationship>
    <Relationship name="IsCategorizedInto" arity="MM" from="Reaction" to="EcNumber" converse="Categorizes">
      <DisplayInfo theme="navy" caption="Is\nCategorized\nInto">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects an EC number to reactions that are consistent
      with the chemistry described by the EC class.</Notes>
    </Relationship>
    <Relationship name="IsConsistentWith" arity="MM" from="EcNumber" to="Role">
      <DisplayInfo theme="navy" caption="Is\nConsistent\nWith">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects a functional role to the EC numbers consistent
      with the chemistry described in the role.</Notes>
    </Relationship>
    <Relationship name="IsSetOf" from="FeatureSet" to="Feature" arity="MM" converse="IsInSet">
      <DisplayInfo theme="navy" caption="Is\nSet\nOf">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects a feature set to its constituent features.
      All of the features in a set must be present for a set to stimulate a
      reaction.</Notes>
    </Relationship>
    <Relationship name="IsStimulatedBy" from="Reaction" to="FeatureSet" arity="MM" converse="Stimulates">
      <DisplayInfo theme="navy" caption="Is\nStimulated\nBy">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>In the context of a model, a reaction is stimulated when all features
      in a feature set are present. By comparing feature sets to role sets we
      can determine whether a model is consistent with annotations.</Notes>
    </Relationship>
    <Relationship name="IsModeledBy" arity="1M" from="Genome" to="Model" converse="Models">
      <DisplayInfo theme="navy" caption="Models">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>A genome can be modeled by many different models, but a model belongs
      to only one genome.</Notes>
    </Relationship>
    <Relationship name="IsRequiredBy" arity="MM" from="Reaction" to="Model" converse="Requires">
      <DisplayInfo theme="navy" caption="Is\nRequired\nBy">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship specifies the reactions that occur in the model.
      The direction is an attribute of this relationship.</Notes>
      <Fields>
        <Field name="direction" type="char">
          <Notes>This field indicates the direction in which the reaction
          operates in the context of the model. The values are 'F' (forward),
          'R' (reverse) and 'B' (both).</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="IsTerminusFor" from="Compound" to="Scenario" arity="MM" converse="HasAsTerminus">
      <DisplayInfo caption="Has As\nTerminus" theme="ivory">
        <RegionInfo name="Chemistry"/>
      </DisplayInfo>
      <Notes>A terminus for a scenario is a compound that acts as its
      input or output. A compound can be the terminus for many scenarios,
      and a scenario will have many termini. The relationship attributes
      indicate whether the compound is an input to the scenario or an
      output. In some cases, there may be multiple alternative output
      groups. This is also indicated by the attributes.</Notes>
      <Fields>
        <Field name="group-number" type="int">
          <Notes>If zero, then the compound is an input. If one, the compound is
          an output. If two, the compound is an auxiliary output.</Notes>
        </Field>
      </Fields>
      <ToIndex>
        <Notes>This index allows the application to view a scenario's
        compounds by group.</Notes>
        <IndexFields>
          <IndexField name="group-number" order="ascending"/>
        </IndexFields>
      </ToIndex>
    </Relationship>
    <Relationship name="IsSuperclassOf" arity="1M" from="SubsystemClass" to="SubsystemClass" converse="IsSubclassOf">
      <DisplayInfo caption="Is\nSuperclass\nOf" theme="blue" col="7" row="1" fixed="1">
        <RegionInfo name="" row="1" col="6"/>
        <RegionInfo name="Chemistry" row="6" col="6" caption="Is\nSubclass\nOf" />
      </DisplayInfo>
      <Notes>This is a recursive relationship that imposes a hierarchy on
      the subsystem classes.</Notes>
    </Relationship>
    <Relationship name="Describes" from="Subsystem" to="Variant" arity="1M" converse="IsDescribedBy">
      <DisplayInfo theme="blue">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a subsystem to the individual
      variants used to implement it. Each variant contains a slightly
      different subset of the roles in the parent subsystem.</Notes>
    </Relationship>
    <Relationship name="Displays" from="Diagram" to="Reaction" arity="MM" converse="IsDisplayedOn">
      <DisplayInfo theme="ivory" caption="Is\nDisplayed\nOn">
        <RegionInfo name="Chemistry"/>
      </DisplayInfo>
      <Notes>This relationship connects a diagram to its reactions. A
      diagram shows multiple reactions, and a reaction can be on many
      diagrams.</Notes>
      <Fields>
        <Field name="location" type="rectangle">
          <Notes>Location of the reaction's node on the diagram.</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="IsRelevantFor" from="Diagram" to="Subsystem" arity="MM" converse="IsRelevantTo">
      <DisplayInfo theme="ivory" caption="Is\nRelevant\nFor">
        <RegionInfo name="Chemistry" />
      </DisplayInfo>
      <Notes>This relationship connects a diagram to the subsystems that are depicted on
      it. Only diagrams which are useful in curating or annotation the subsystem are
      specified in this relationship.</Notes>
    </Relationship>
    <Relationship name="IsImplementedBy" from="Variant" to="MolecularMachine" arity="1M" converse="Implements">
      <DisplayInfo theme="blue" caption="Is\nImplemented\nBy" row="6" col="7">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a variant to the physical machines
      that implement it in the genomes. A variant is implemented by many
      machines, but a machine belongs to only one variant.</Notes>
    </Relationship>
    <Relationship name="Uses" from="Genome" to="MolecularMachine" arity="1M" converse="IsUsedBy">
      <DisplayInfo theme="blue" caption="Is\nUsed\nBy">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a genome to the machines that form
      its metabolic pathways. A genome can use many machines, but a
      machine is used by exactly one genome.</Notes>
    </Relationship>
    <Relationship name="Includes" from="Subsystem" to="Role" arity="MM" converse="IsIncludedIn">
      <DisplayInfo theme="blue" caption="Includes">
        <RegionInfo name="" />
        <RegionInfo name="Chemistry" />
      </DisplayInfo>
      <Notes>A subsystem is defined by its roles. The subsystem's variants
      contain slightly different sets of roles, but all of the roles in a
      variant must be connected to the parent subsystem by this
      relationship. A subsystem always has at least one role, and a role
      always belongs to at least one subsystem.</Notes>
      <Fields>
        <Field name="sequence" type="counter">
          <Notes>Sequence number of the role within the subsystem.
          When the roles are formed into a variant, they will
          generally appear in sequence order.</Notes>
        </Field>
        <Field name="abbreviation" type="string">
          <Notes>Abbreviation for this role in this subsystem. The
          abbreviations are used in columnar displays, and they also
          appear on diagrams.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index insures that the roles of the subsystem are
        presented in sequence order.</Notes>
        <IndexFields>
          <IndexField name="sequence" order="ascending"/>
        </IndexFields>
      </FromIndex>
    </Relationship>
    <Relationship name="IsCombinationOf" from="RoleSet" to="Role" arity="MM" converse="IsInCombination">
      <DisplayInfo theme="navy" caption="Is\nCombination\nOf">
        <RegionInfo name="Chemistry"/>
        <RegionInfo name="Models" fixed="1" col="1" row="5"/>
      </DisplayInfo>
      <Notes>This relationship combines roles into role sets. Each role
      set is a combination of roles that can trigger a reaction.</Notes>
    </Relationship>
    <Relationship name="IsTriggeredBy" from="Reaction" to="RoleSet" arity="MM" converse="Triggers">
      <DisplayInfo theme="navy" caption="Is\nTriggered\nBy">
        <RegionInfo name="Chemistry"/>
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>A reaction can be triggered by many role sets. A role set can
      trigger many reactions.</Notes>
    </Relationship>
    <Relationship name="IsMadeUpOf" from="Genome" to="Contig" arity="1M" converse="MakesUp">
      <DisplayInfo theme="red" caption="Is\nMade Up\nOf">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects each genome to the DNA sequences
      that make it up.</Notes>
    </Relationship>
    <Relationship name="Attracts" from="Structure" to="Compound" arity="MM" converse="IsAttractedTo">
      <DisplayInfo theme="purple" row="1" col="2" fixed="1" caption="Is\nAttracted\nTo">
        <RegionInfo name="Chemistry" row="1" col="1"/>
      </DisplayInfo>
      <Notes>This relationship connects a compound to the protein
      structures that attract it. This is an incomplete relationship that
      exists to service drug targeting queries. Only the attractions whose
      parameters have been determined through modeling or experimentation
      are included. The goal is to determine the docking energy between
      the compound and the protein structure.</Notes>
      <Fields>
        <Field name="reason" type="string">
          <Notes>Indication of the reason for determining the docking
          energy. A value of "Random" indicates the docking was
          attempted as a part of a random survey used to determine the
          docking characteristics of a protein structure. A value of
          "Rich" indicates the docking was attempted because a
          low-energy docking result was predicted for the
          compound.</Notes>
        </Field>
        <Field name="tool" type="string">
          <Notes>Name of the tool used to compute the docking
          energy.</Notes>
        </Field>
        <Field name="total-energy" type="float">
          <Notes>Total energy required for the compound to dock with
          the structure, in kcal/mol. A negative value means energy is
          released.</Notes>
        </Field>
        <Field name="vanderwaals-energy" type="float">
          <Notes>Docking energy in kcal/mol that results from the
          geometric fit (Van der Waals force) between the structure
          and the compound.</Notes>
        </Field>
        <Field name="electrostatic-energy" type="float">
          <Notes>Docking energy in kcal/mol that results from the
          movement of electrons (electrostatic force) between the
          structure and the compound.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index enables the application to view a structure's
        docking results from the lowest energy (best docking) to highest
        energy (worst docking).</Notes>
        <IndexFields>
          <IndexField name="total-energy" order="ascending"/>
        </IndexFields>
      </FromIndex>
      <ToIndex>
        <Notes>This index enables the application to view a compound's
        docking results from the lowest energy (best docking) to highest
        energy (worst docking).</Notes>
        <IndexFields>
          <IndexField name="total-energy" order="ascending"/>
        </IndexFields>
      </ToIndex>
    </Relationship>
    <Relationship name="Involves" from="Reaction" to="Compound" arity="MM" converse="IsInvolvedIn">
      <DisplayInfo theme="navy" caption="Is\nInvolved\nIn">
        <RegionInfo name="Chemistry" row="2" col="1.5" fixed="1"/>
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects a reaction to the compounds that
      participate in it. A reaction involves many compounds, and a
      compound can be involved in many reactions. The relationship
      attributes indicate whether a compound is a product or substrate of
      the reaction, as well as its stoichiometry.</Notes>
      <Fields>
        <Field name="product" type="boolean">
          <Notes>TRUE if the compound is a product of the reaction,
          FALSE if it is a substrate. When a reaction is written on
          paper in chemical notation, the substrates are left of the
          arrow and the products are to the right. Sorting on this
          field will cause the substrates to appear first, followed by
          the products. If the reaction is reversible, then the notion
          of substrates and products is not intuitive; however, a
          value here of FALSE still puts the compound left of the
          arrow and a value of TRUE still puts it to the
          right.</Notes>
        </Field>
        <Field name="stoichiometry" type="string">
          <Notes>Number of molecules of the compound that participate
          in a single instance of the reaction. For example, if a
          reaction produces two water molecules, the stoichiometry of
          water for the reaction would be two. When a reaction is
          written on paper in chemical notation, the stoichiometry is
          the number next to the chemical formula of the
          compound.</Notes>
        </Field>
        <Field name="main" type="boolean">
          <Notes>TRUE if this compound is one of the main participants
          in the reaction, else FALSE. It is permissible for none of
          the compounds in the reaction to be considered main, in
          which case this value would be FALSE for all of the relevant
          compounds.</Notes>
        </Field>
        <Field name="loc" type="string">
          <Notes>An optional character string that indicates the
          relative position of this compound in the reaction's
          chemical formula. The location affects the way the compounds
          present as we cross the relationship from the reaction side.
          The product/substrate flag comes first, then the value of
          this field, then the main flag. The default value is an
          empty string; however, the empty string sorts first, so if
          this field is used, it should probably be used for every
          compound in the reaction.</Notes>
        </Field>
        <Field name="discriminator" type="int">
          <Notes>A unique ID for this record. The discriminator does
          not provide any useful data, but it prevents identical
          records from being collapsed by sort process used to
          load the database from constituent files.</Notes>
        </Field>
      </Fields>
      <ToIndex>
        <Notes>This index presents the compounds in the reaction in the
        order they should be displayed when writing it in chemical
        notation. All the substrates appear before all the products, and
        within that ordering, the main compounds appear first.</Notes>
        <IndexFields>
          <IndexField name="product" order="ascending"/>
          <IndexField name="loc" order="ascending"/>
          <IndexField name="main" order="descending"/>
        </IndexFields>
      </ToIndex>
    </Relationship>
    <Relationship name="Shows" from="Diagram" to="Compound" arity="MM" converse="IsShownOn">
      <DisplayInfo theme="ivory" fixed="1" caption="Is\nShown\nOn" row="2" col="3.5">
        <RegionInfo name="Chemistry" row="2" col="2.5"/>
      </DisplayInfo>
      <Notes>This relationship indicates that a compound appears on a
      particular diagram. The same compound can appear on many diagrams,
      and a diagram always contains many compounds.</Notes>
      <Fields>
        <Field name="location" type="rectangle">
          <Notes>Location of the compound's node on the diagram.</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="IsRoleOf" from="Role" to="MachineRole" arity="1M" converse="HasRole">
      <DisplayInfo caption="Is\nRole\nOf" theme="blue">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a role to the machine roles that
      represent its appearance in a molecular machine. A machine role has
      exactly one associated role, but a role may be represented by many
      machine roles.</Notes>
    </Relationship>
    <Relationship name="Exposes" from="ProteinSequence" to="Structure" arity="MM" converse="IsExposedBy">
      <DisplayInfo theme="purple" fixed="1" row="7" col="2" caption="Is\nExposed\nBy">
        <RegionInfo name="Chemistry" row="7" col="1"/>
      </DisplayInfo>
      <Notes>This relationship connects a protein sequence to its
      structural representations. It is a many-to-many relationship. Note
      that only some protein sequences have known structural
      representations.</Notes>
    </Relationship>
    <Relationship name="IsSubInstanceOf" from="Subsystem" to="Scenario" arity="1M" converse="Validates">
      <DisplayInfo theme="ivory" caption="Is Sub-\nInstance\nOf" fixed="1" row="1" col="7">
        <RegionInfo name="Chemistry" row="1" col="6"/>
      </DisplayInfo>
      <Notes>This relationship connects a scenario to its subsystem it
      validates. A scenario belongs to exactly one subsystem, but a
      subsystem may have multiple scenarios.</Notes>
    </Relationship>
    <Relationship name="Overlaps" from="Scenario" to="Diagram" arity="MM" converse="IncludesPartOf">
      <DisplayInfo theme="ivory" fixed="1" row="2" col="5.5">
        <RegionInfo name="Chemistry" row="2" col="4.5"/>
      </DisplayInfo>
      <Notes>A Scenario overlaps a diagram when the diagram displays a
      portion of the reactions that make up the scenario. A scenario may
      overlap many diagrams, and a diagram may be include portions of many
      scenarios.</Notes>
    </Relationship>
    <Relationship name="HasParticipant" from="Scenario" to="Reaction" arity="MM" converse="ParticipatesIn">
      <DisplayInfo theme="ivory" caption="Has\nParticipant" row="2" col="4.5" fixed="1">
        <RegionInfo name="Chemistry" row="2" col="3.5"/>
      </DisplayInfo>
      <Notes>A scenario consists of many participant reactions that
      convert the input compounds to output compounds. A single reaction
      may participate in many scenarios.</Notes>
      <Fields>
        <Field name="type" type="int">
          <Notes>Indicates the type of participaton. If 0, the
          reaction is in the main pathway of the scenario. If 1, the
          reaction is necessary to make the model work but is not in
          the subsystem. If 2, the reaction is part of the subsystem
          but should not be included in the modelling process.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index presents the reactions in the scenario in
        order from most important to least important.</Notes>
        <IndexFields>
          <IndexField name="type" order="ascending"/>
        </IndexFields>
      </FromIndex>
    </Relationship>
    <Relationship name="IsInPair" from="Feature" to="Pairing" arity="MM" converse="IsPairOf">
      <DisplayInfo theme="brown" caption="Is In\nPair">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>A pairing contains exactly two protein sequences. A protein
      sequence can belong to multiple pairings. When going from a protein
      sequence to its pairings, they are presented in alphabetical order
      by sequence key.</Notes>
    </Relationship>
    <Relationship name="IsTaxonomyOf" from="TaxonomicGrouping" to="Genome" arity="1M" converse="IsInTaxa">
      <DisplayInfo theme="red" fixed="1" caption="Is In\nTaxa" row="9" col="6">
        <RegionInfo name="" row="8" col="5"/>
      </DisplayInfo>
      <Notes>A genome is assigned to a particular point in the taxonomy tree, but not
      necessarily to a leaf node. In some cases, the exact species and strain is
      not available when inserting the genome, so it is placed at the lowest node
      that probably contains the actual genome.</Notes>
    </Relationship>
    <Relationship name="IsMachineOf" from="MolecularMachine" to="MachineRole" arity="1M" converse="IsRoleFor">
      <DisplayInfo caption="Is\nRole\nFor" theme="blue" row="7" col="6">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a molecular machine to its various
      machine roles. Each machine has many machine roles, but each machine
      role belongs to only one machine.</Notes>
    </Relationship>
    <Relationship name="Encompasses" from="Model" to="FeatureSet" arity="1M" converse="IsEncompassedIn">
      <DisplayInfo theme="navy" caption="Is\nEncompassed\nIn">
        <RegionInfo name="Models"/>
      </DisplayInfo>
      <Notes>This relationship connects a model to its feature sets. A feature set
      can only be in a single model. The model can be said to be identified by its
      feature sets.</Notes>
    </Relationship>
    <Relationship name="IsClassFor" arity="1M" from="SubsystemClass" to="Subsystem" converse="IsInClass">
      <DisplayInfo caption="Is In\nClass" theme="blue">
        <RegionInfo name=""/>
        <RegionInfo name="Chemistry"/>
      </DisplayInfo>
      <Notes>This relationship connects each subsystem class with the
      subsystems that belong to it. A class can contain many subsystems,
      but a subsystem is only in one class. Some subsystems are not in any
      class, but this is usually a temporary condition.</Notes>
    </Relationship>
    <Relationship name="IsAnnotatedBy" from="Feature" to="Annotation" arity="1M" converse="Annotates">
      <DisplayInfo theme="brown" caption="Is\nAnnotated\nBy">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>This relationship connects a feature to its annotations. A
      feature may have multiple annotations, but an annotation belongs to
      only one feature.</Notes>
    </Relationship>
    <Relationship name="HasMember" from="Family" to="Feature" arity="MM" converse="IsMemberOf">
      <DisplayInfo theme="brown" caption="Is\nMember\nOf">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>This relationship connects each feature family to its
      constituent features. A family always has many features, and a
      single feature can be found in many families.</Notes>
    </Relationship>
    <Relationship name="Concerns" from="Publication" to="ProteinSequence" arity="MM" converse="IsATopicOf">
      <DisplayInfo theme="green">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a publication to the protein
      sequences it describes.</Notes>
    </Relationship>
    <Relationship name="IsCollectionOf" from="GenomeSet" to="Genome" arity="1M" converse="IsCollectedInto">
      <DisplayInfo theme="red" caption="Is\nCollection\nOf">
        <RegionInfo name="" row="6" col="6" fixed="1"/>
      </DisplayInfo>
      <Notes>A genome belongs to only one genome set. For each set, this relationship marks the genome to be used as its representative.</Notes>
      <Fields>
        <Field name="representative" type="boolean">
          <Notes>TRUE for the representative genome of the set, else FALSE.</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="HasAssertionFrom" from="Identifier" to="Source" converse="Asserts" arity="MM">
      <DisplayInfo theme="black" caption="Has\nAssertion\nFrom">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>Sources (users) can make assertions about identifiers using the annotation clearinghouse.
      When a user makes a new assertion about an identifier, it erases the old one.</Notes>
      <Fields>
        <Field name="time-stamp" type="date">
          <Notes>This is the date and time the assertion was made.</Notes>
        </Field>
        <Field name="function" type="text">
          <Notes>The function is the text of the assertion made about the identifier.</Notes>
        </Field>
        <Field name="expert" type="boolean">
          <Notes>TRUE if this is an expert assertion, else FALSE</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="IsDeterminedBy" from="PairSet" to="Pairing" arity="1M" converse="Determines">
      <DisplayInfo theme="brown" caption="Determines">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>A functional coupling evidence set exists because it has
      pairings in it, and this relationship connects the evidence set to
      its constituent pairings. A pairing cam belong to multiple evidence
      sets.</Notes>
      <Fields>
        <Field name="inverted" type="boolean">
          <Notes>A pairing is an unordered pair of protein sequences,
          but its similarity to other pairings in a pair set is
          ordered. Let (A,B) be a pairing and (X,Y) be another pairing
          in the same set. If this flag is FALSE, then (A =~ X) and (B
          =~ Y). If this flag is TRUE, then (A =~ Y) and (B =~
          X).</Notes>
        </Field>
      </Fields>
    </Relationship>
    <Relationship name="IsContainedIn" from="Feature" to="MachineRole" arity="MM" converse="Contains">
      <DisplayInfo theme="blue" caption="Contains" row="8" col="5">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a machine role to the features
      that occur in it. A feature may occur in many machine roles and a
      machine role may contain many features. The subsystem annotation
      process is essentially the maintenance of this relationship.</Notes>
    </Relationship>
    <Relationship name="IsOwnerOf" from="Genome" to="Feature" arity="1M" converse="IsOwnedBy">
      <DisplayInfo caption="Is\nOwned\nBy" theme="green"/>
      <Notes>This relationship connects each feature to its parent genome.</Notes>
    </Relationship>
    <Relationship name="IsProteinFor" from="ProteinSequence" to="Feature" arity="1M" converse="Produces">
      <DisplayInfo caption="Is\nProtein\nFor" theme="green">
        <RegionInfo name=""/>
        <RegionInfo name="Annotations"/>
        <RegionInfo name="Chemistry"/>
      </DisplayInfo>
      <Notes>This relationship connects a peg feature to the protein
      sequence it produces (if any). Only peg features participate in this
      relationship. A single protein sequence will frequently be produced
      by many features.</Notes>
    </Relationship>
    <Relationship name="IsLocatedIn" from="Feature" to="Contig" arity="MM" converse="IsLocusFor">
      <DisplayInfo theme="green" caption="Is\nLocated\nIn" fixed="1" row="10" col="6">
        <RegionInfo name="" row="8" col="3"/>
      </DisplayInfo>
      <Notes>A feature is a set of DNA sequence fragments. Most features
      are a single contiquous fragment, so they are located in only one
      DNA sequence; however, fragments have a maximum length, so even a
      single contiguous feature may participate in this relationship
      multiple times. A few features belong to multiple DNA sequences. In
      that case, however, all the DNA sequences belong to the same genome.
      A DNA sequence itself will frequently have thousands of features
      connected to it.</Notes>
      <Fields>
        <Field name="ordinal" type="int">
          <Notes>Sequence number of this segment, starting from 1
          and proceeding sequentially forward from there.</Notes>
        </Field>
        <Field name="begin" type="int">
          <Notes>Index (1-based) of the first residue in the contig
          that belongs to the segment.</Notes>
          <Asides>The begin value is not the start residue, it is the
          leftmost residue. If the direction is backward, it will
          actually be the end residue.</Asides>
        </Field>
        <Field name="len" type="int">
          <Notes>Length of this segment.</Notes>
        </Field>
        <Field name="dir" type="char">
          <Notes>Direction (strand) of the segment: "+" if it is
          forward and "-" if it is backward.</Notes>
        </Field>
      </Fields>
      <FromIndex>
        <Notes>This index allows the application to find all the
        segments of a feature in the proper order.</Notes>
        <IndexFields>
          <IndexField name="ordinal" order="ascending"/>
        </IndexFields>
      </FromIndex>
      <ToIndex>
        <Notes>This index is the one used by applications to find all
        the feature segments that contain a specific residue.</Notes>
        <IndexFields>
          <IndexField name="begin" order="ascending"/>
        </IndexFields>
      </ToIndex>
    </Relationship>
    <Relationship name="Identifies" from="Identifier" to="Feature" arity="MM" converse="IsIdentifiedByF">
      <DisplayInfo theme="green">
        <RegionInfo name="" caption="Is\nIdentified\nBy"/>
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>The normal case is that an identifier identifies a single
      feature, while a feature can have many identifiers. Some identifiers,
      however, are ambiguous and will connect to many features.</Notes>
    </Relationship>
    <Relationship name="IsNamedBy" from="ProteinSequence" to="Identifier" arity="MM" converse="Names">
      <DisplayInfo theme="black" caption="Is\nNamed\nBy">
        <RegionInfo name="Annotations"/>
      </DisplayInfo>
      <Notes>The normal case is that an identifier names a single
      protein sequence, while a protein sequence can have many identifiers,
      but some identifiers name multiple sequences.</Notes>
      <Asides>This relationship is populated with data submitted to the annotation
      clearinghouse as well as external IDs in the non-redundant database.</Asides>
    </Relationship>
    <Relationship name="HasSection" from="Contig" to="DNASequence" arity="1M" converse="IsSectionOf">
      <DisplayInfo caption="Is\nSection\Of" theme="red">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship connects a contig to its actual DNA
      sequences.</Notes>
    </Relationship>
    <Relationship name="IsGroupFor" from="TaxonomicGrouping" to="TaxonomicGrouping" arity="1M" converse="IsInGroup">
      <DisplayInfo theme="red" caption="Is\nGroup\nFor">
        <RegionInfo name="" row="9" col="6" fixed="1"/>
      </DisplayInfo>
      <Notes>The recursive IsGroupContaining relationship organizes
      taxonomic groupings into a hierarchy based on the standard organism
      taxonomy.</Notes>
    </Relationship>
  </Relationships>
  <Shapes>
    <Shape type="diamond" name="ConsistsOf" from="Variant" to="Role">
      <DisplayInfo theme="neutral" caption="Belongs To" connected="1">
        <RegionInfo name=""/>
      </DisplayInfo>
      <Notes>This relationship is not physically implemented in the
      database. It is implicit in the data for a variant. A variant
      contains a boolean expression that describes the various
      combinations of roles it can contain.</Notes>
    </Shape>
  </Shapes>
</Database>

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3