********************* Entries and Relations ********************* This page describes the entries and relations present in the *ChemRecon* ontology. .. image:: ../resources/schema.svg :width: 100% Overview ======== **Entries** ----------- Entries in the ChemRecon database represent various types of biochemical objects. Entries may be *source entries*. These entries represent those which contain only unmodified information sourced directly from the source databases (See the main page for details). Each source entry is identified (indexed) by its ``source_id``, the unique identifier, and its ``id_type``, the type of this identifier. In addition, each entry has an internal unique identifier, ``recon_id``. This has no link to the source databases, and it is NOT guaranteed to be stable across ChemRecon versions, so permanence of this identifer should not be relied upon. Other entries are *structural entries*, which are standardized versions of molecular structures and atom-to-atom maps. These are generated by ChemRecon based on the source entries, but are canonicalised and standardised to enable direct comparison. .. autoclass:: chemrecon.Entry Entry types: - :class:`.Compound` - :class:`.Reaction` - :class:`.Enzyme` - :class:`.MolStructureRepr` - :class:`.AAMRepr` - :class:`.MolStructure` - :class:`.AAM` **Relations** ------------- Relations represent various connections between entries. The *source* and *target* *entry types* define which types of entries the relation refers to. Each relation is identified by its source and target (given by `recon_id_1` and `recon_id_2`), and its attributes, if any. **Symmetric** relations are those which have no directonality, and the source/target ordering does not matter. In these cases, the source and target entry types are the same, and the 'source' will always be the entry with the lowest `recon_id`. Some types of relations come in pairs, of which each is the inverse relation of the other, indicated by a slash (`/`). Relation types can be **procedural**, in which case not all possible relations of this type exists in the database. These relations can be generated on-the-fly when querying relations or when generating entry graphs; this is done automatically and deterministically, so this process is transparent (but may increase runtime). Note that procedural relations **cannot** be queried or traversed in the backwards direction. .. autoclass:: chemrecon.Relation Relation types: - :class:`.CompoundReference` - :class:`.CompoundIsA` / :class:`.CompoundHasInstance` - :class:`.CompoundHasOldID` / :class:`.CompoundHasNewID` - :class:`.CompoundHasPart` / :class:`.CompoundIsPartOf` - :class:`.CompoundHasConjugateAcid` / :class:`.CompoundHasConjugateBase` - :class:`.CompoundHasTautomer` - :class:`.CompoundHasStereoIsomer` - :class:`.CompoundHasIsotopologue` - :class:`.ReactionInvolvesCompound` / :class:`.CompoundParticipatesInReaction` - :class:`.ReactionReference` - :class:`.ReactionIsA` / :class:`.ReactionHasInstance` - :class:`.ReactionHasNewID` / :class:`.ReactionHasOldID` - :class:`.EnzymeCatalyzesReaction` / :class:`.ReactionHasEnzyme` - :class:`.EnzymeIsA` / :class:`.EnzymeHasInstance` - :class:`.CompoundHasStructureRepresentation` - :class:`.ReactionHasAAMRepr` - :class:`.AAMReprInvolvesMolStructureRepr` / :class:`.MolStructureReprParticipatesInAAMRepr` - :class:`.CompoundHasMolStructure` - :class:`.MolStructureConvert` - :class:`.MolStructureStandardization` - :class:`.ReactionHasAAM` - :class:`.AAMConvert` Entry graph relation types: - :class:`.CompoundSelectStructure` - :class:`.ReactionSelectAAM` Entries ======= Source Entries ------------------ ``Compound`` ^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.Compound ``Reaction`` ^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.Reaction ``Enzyme`` ^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.Enzyme ``MolStructureRepr`` ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.MolStructureRepr ``AAMRepr`` ^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.AAMRepr Structural Entries ------------------ ``MolStructure`` ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.MolStructure ``AAM`` ^^^^^^^^^^^^ .. autoclass:: chemrecon.AAM Relations ============== Compound Relations ------------------ ``CompoundReference`` ^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` (symmetric) .. autoclass:: chemrecon.CompoundReference ``CompoundIsA`` / ``CompoundHasInstance`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` .. autoclass:: chemrecon.CompoundIsA .. autoclass:: chemrecon.CompoundHasInstance ``CompoundHasOldID`` / ``CompoundHasNewID`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` .. autoclass:: chemrecon.CompoundHasOldID .. autoclass:: chemrecon.CompoundHasNewID ``CompoundHasPart`` / ``CompoundIsPartOf`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` .. autoclass:: chemrecon.CompoundHasPart .. autoclass:: chemrecon.CompoundIsPartOf ``CompoundHasConjugateAcid`` / ``CompoundHasConjugateBase`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` .. autoclass:: chemrecon.CompoundHasConjugateAcid .. autoclass:: chemrecon.CompoundHasConjugateBase ``CompoundHasTautomer`` ^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` (symmetric) .. autoclass:: chemrecon.CompoundHasTautomer ``CompoundHasStereoIsomer`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` (symmetric) .. autoclass:: chemrecon.CompoundHasStereoIsomer ``CompoundHasIsotopologue`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Compound` (symmetric) .. autoclass:: chemrecon.CompoundHasIsotopologue Reaction Relations ------------------ ``ReactionInvolvesCompound`` / ``CompoundParticipatesInReaction`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source*: :class:`.Reaction`, *target*: :class:`.Compound` .. autoclass:: chemrecon.ReactionInvolvesCompound .. autoclass:: chemrecon.CompoundParticipatesInReaction ``ReactionReference`` ^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Reaction` (symmetric) .. autoclass:: chemrecon.ReactionReference ``ReactionIsA`` / ``ReactionHasInstance`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Reaction` .. autoclass:: chemrecon.ReactionIsA .. autoclass:: chemrecon.ReactionHasInstance ``ReactionHasNewID`` / ``ReactionHasOldID`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Reaction` .. autoclass:: chemrecon.ReactionHasNewID .. autoclass:: chemrecon.ReactionHasOldID Enzyme Relations ---------------- ``EnzymeCatalyzesReaction`` / ``ReactionHasEnzyme`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source*: :class:`.Enzyme`, *target*: :class:`.Reaction` .. autoclass:: chemrecon.EnzymeCatalyzesReaction .. autoclass:: chemrecon.ReactionHasEnzyme ``EnzymeIsA`` / ``EnzymeHasInstance`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *source/target*: :class:`.Enzyme` .. autoclass:: chemrecon.EnzymeIsA .. autoclass:: chemrecon.EnzymeHasInstance Molecular Structure Representation Relations -------------------------------------------- ``CompoundHasStructureRepresentation`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.CompoundHasStructureRepresentation Atom-to-Atom Map Representation Relations ----------------------------------------- ``ReactionHasAAMRepr`` ^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.ReactionHasAAMRepr ``AAMReprInvolvesMolStructureRepr`` / ``MolStructureReprParticipatesInAAMRepr`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.AAMReprInvolvesMolStructureRepr .. autoclass:: chemrecon.MolStructureReprParticipatesInAAMRepr Molecular Structure Relations ----------------------------- ``CompoundHasMolStructure`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.CompoundHasMolStructure ``MolStructureStandardization`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.MolStructureStandardization ``MolStructureConvert`` ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.MolStructureConvert Atom-to-Atom Map Relations -------------------------- ``ReactionHasAAM`` ^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.ReactionHasAAM ``AAMConvert`` ^^^^^^^^^^^^^^ .. autoclass:: chemrecon.AAMConvert ``AAMInvolvesMolStructure`` / ``MolStructureParticipatesInAAM`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.AAMInvolvesMolStructure .. autoclass:: chemrecon.MolStructureParticipatesInAAM Entry Graph Relations --------------------- These relations are based on the results of the entry graph scoring algorithm. ``CompoundSelectStructure`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.CompoundSelectStructure :inherited-members: Relation, ProceduralRelation, ProceduralRelationEG ``ReactionSelectAAM`` ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: chemrecon.ReactionSelectAAM :inherited-members: Relation, ProceduralRelation, ProceduralRelationEG