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 flattened 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()
compound_output

See also

Compounds API reference page

Scaffolds / Elaborations

Scaffold / superstructure relationships can also be encoded for Compound objects. Namely, the Compound.scaffolds property can be used to access other Compound objects that have been labelled as scaffolds/substructures, and Compound.elabs is used to access the inverse relationship.

c2 = animal.register_compound(smiles="OCc1ccc2c(c1F)CCO2")
c2.add_scaffold(scaffold=c1)
print(c2)
c2.draw()
compound_elab

Ingredient

An Ingredient is defined as a specific quantity (in mg) of a Compound and is used when defining quotes and recipes.

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()
pose_output

See also

Poses API reference page

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.

Tag

Compound and Pose objects can be tagged with arbitrary Tag strings to categorise them.

Quote

Procurement and catalogue/inventory availability information for Compound entries can be added to the database and interfaced with Quote objects.

See also

Quoting API reference page

Reaction

A Reaction is a simplified representation of a chemical reaction from the Reaction.reactants (CompoundSet) to a single Reaction.product (Compound).

See also

Reactions API reference page

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

Recipes & Routes API reference page

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.

Feature

A Feature is a pharmacophoric feature on a given protein Target

See also

Interactions API reference page

Interaction

The Interaction class can be used to store protein-ligand interactions between pharmacophores on the ligand and Feature records.

See also

Interactions API reference page

Units

  • lead time: days

  • compound quantities/amounts: mg

  • purity: fraction [0,1]

  • product_yield: fraction [0,1]