Definitions and units
Definitions
HIPPO uses an sqlite database with several inter-connected tables (see Database). In both the database and the python API the following core objects are defined:
Target
A Target represents a certain protein / XCA-alignment as uploaded to Fragalysis.
Compound
A Compound represents a ligand/small molecule with stereochemistry removed and no atomic coordinates. I.e. it represents the chemical structure. It’s default name is always an InChiKey. Compound objects can have an Compound.alias which is a custom name which will supercede the InChiKey when representing the compound. Compound objects also have a shorthand prefixed with C, for example: C1 which refers to the compound with database id 7273.
c1 = animal.register_compound(smiles="OCc1ccc2c(c1)CCO2")
print(c1)
c1.draw()
See also
Bases / Elaborations
Scaffold / superstructure relationships can also be encoded for Compound objects. Namely, the Compound.bases property can be used to access other Compound objects that have been labelled as scaffolds/bases/substructures, and Compound.elabs is used to access the inverse relationship.
c2 = animal.register_compound(smiles="OCc1ccc2c(c1F)CCO2")
c2.add_base(base=c1)
print(c2)
c2.draw()
Ingredient
An Ingredient is defined as a specific quantity (in mg) of a Compound and is used when defining quotes and recipes.
See also
Pose
A Pose is a particular conformer of a Compound within a protein environment. A pose will have its own (stereochemical) smiles string, and must have a path to a coordinate file. This file can either be a .mol molecule file or a .pdb file of the protein-ligand complex.
p1 = c1.poses[0]
print(p1)
p1.draw()
Reference
When a pose has been defined from a .mol file without a protein conformation, a Pose.reference can be set to use the protein conformation from a different pose.
Inspirations
Poses can have Pose.inspirations that can be used to link to other poses that have been referenced in the design of this pose, for example it can be used to link to experimental fragment hits referenced in the fragment-growing/merging compound design.
See also
Tag
Compound and Pose objects can be tagged with arbitrary Tag strings to categorise them.
See also
Quote
Procurement and catalogue/inventory availability information for Compound entries can be added to the database and interfaced with Quote objects.
Reaction
A Reaction is a simplified representation of a chemical reaction from the Reaction.reactants (CompoundSet) to a single Reaction.product (Compound).
See also
ReactionTable
Recipe
A Recipe describes a synthetic pathway, potentially containing multiple Reaction steps to any number of Compound products (Recipe.products). Recipes are not stored in the database but can be serialized into JSON.
See also
Route
A Route is a special case of the Recipe mechanism, with the distinction that it encodes the information needed to synthesise a single product Compound. Routes can be stored and retrieved from the database.
Subsite
Subsite records are an additional annotation that can be applied to Pose entries, these should be used to indicate which subsites a pose occupies on a protein target.
See also
HIPPO.SubsitesPose.SubsitesSubsite
Feature
A Feature is a pharmacophoric feature on a given protein Target
See also
Interaction
The Interaction class can be used to store protein-ligand interactions between pharmacophores on the ligand and Feature records.
Units
lead time: days
compound quantities/amounts: mg
purity: fraction [0,1]
product_yield: fraction [0,1]