Skip to main content

Odachi

Advanced deep learning-based organic retrosynthesis engine.

Overview

The Odachi Retrosynthesis Engine provides a platform for predicting organic retrosynthetic disconnections using a graph convolutional network. It also exposes two custom Tensorflow layers for performing spectral graph convolutions. The engine powers the retrosynthesis.com website, which provides a clean and intuitive interface to run retrosynthetic predictions.

Requirements

The Odachi Engine is built in Python 3. It has only three requirements to run:

- TensorFlow 2.x
- Scikit-Learn
- Numpy

Reference

Installation

To download dgaintel, simply use Pypi via pip.

$ pip install odachi

Alternatively, you could install from source.

$ git clone https://github.com/sudo-rushil/odachi
$ cd odachi
$ python setup.py install

Verify your installation by running

>>> import odachi
>>> odachi.engine.model.Odachi()
'<odachi.engine.model.Odachi object at 0x7f9ec80b3bd0>''

Examples

Predict bond disconnection

This is simple way of finding a retrosynthetic disconnection in a molecule. The input to the model is the SMILES string of the molecule (Ex. Aspirin).

from odachi.engine.model import Odachi

odachi = Odachi() # instantiates engine and load up TensorFlow model in backend.

results = odachi('O=C(C)Oc1ccccc1C(=O)O') # call prediction function on an input molecule.
print(results)

{'bonds': [2], 'smiles': 'O=C(C)Oc1ccccc1C(=O)O', 'svg':...}

Documentation

The Odachi package exposes four main objects: the GraphConv and ConvEmbed TensorFlow layers for spectral graph convolutions with knockdown, the Conv object for representing molecules as graphs, and the Odachi object for top-level predictions.

Layers

GraphConv

graph_conv = odachi.engine.layers.GraphConv(n,
                                            num_feat = 41,
                                            num_atoms = 130,
                                            activation = tf.nn.elu,
                                            knockdown = 0.1,
                                            BATCH_SIZE = 1)

Layer for performing single-phase spectral graph convolutions. Inherits from tensorflow.keras.layers.Layer and has access to all associated methods.

Parameters

  • n - Layer index for labeling purpose.
  • num_feat - Number of features for each node in graph.
  • num_atoms - Maximum number of nodes over all graphs.
  • activation - Activation function for layer.
  • knockdown - Convolutional knockdown threshold for spectral regularization.
  • BATCH_SIZE - Number of batches in input

Call

A, X = graph_conv([A, X])

Parameters

  • A - Adjacency matrix of graph. Has dimensions (BATCH_SIZE, num_atoms, num_atoms).
  • X - Features matrix of graph. Has dimensions (BATCH_SIZE, num_atoms, num_feat).

Returns

  • A - Adjacency matrix of graph. Unchanged from input.
  • X - Convolved features matrix of graph.

ConvEmbed

conv_embed = odachi.engine.layers.ConvEmbed(num_feat = 41,
                                            num_atoms = 130,
                                            depth = 10,
                                            knock = 0.2,
                                            BATCH_SIZE = 1)

Model object for performing stacked graph convolutions with the number of features staying constant across layers. Inherits from tensorflow.keras.Model.

Parameters

  • num_feat - Number of features for each node in graph.
  • num_atoms - Maximum number of nodes over all graphs.
  • depth - Number of stacked convolutional layers.
  • knock - Convolutional knockdown threshold.
  • BATCH_SIZE - Number of batches in input.

Call

X = conv_embed([A, X])

Parameters

  • A - Initial adjacency matrix of graph. Has dimensions (BATCH_SIZE, num_atoms, num_atoms).
  • X - Initial features matrix of graph. Has dimensions (BATCH_SIZE, num_atoms, num_feat).

Returns

  • X - Fully convolved features matrix of graph.

Molecular Graph Representation

Conv

conv = odachi.data.conv.Conv(smiles)

Convolutional molecule (Conv) object for storing and representing molecules as featurized graphs upon which graph convolutional methods can be applied.

Parameters

  • smiles - SMILES string representing the molecule to be stored as a featurized graph.

Attributes

  • smiles - SMILES string of the molecule stored in the object.
  • num_atoms - Number of atoms in the stored molecule.
  • num_feat - Number of features per each atom (default 41).
  • adj_matrix - Adjacency matrix of molecular graph. Padded up to 130 nodes by default.
  • atom_features - Features matrix of molecular graph. Padded up to 130 nodes by default.

Engine

Odachi

odachi = odachi.engine.models.Odachi(knock = 0.0)

Engine implementation that wraps all three phases of the retrosynthetic prediction process to allow for predictions to be made and streamed to the retrosynthesis.com website.

Parameters

  • knock - Convolutional knockdown threshold for loading saved models.

Call

result_dict = odachi(smiles,
                     clusters = 2,
                     version = 9)

Parameters

  • smiles - SMILES string of the query target molecule.
  • clusters - number of synthons to cluster the target molecule into.
  • version - Version edition of the convolutional embedding to use for prediction. Latest version is 9.

Returns

  • result_dict - Dictionary containing prediction data.
    • smiles - Original smiles string of target molecule.
    • bonds - List of bonds which are predicted to be disconnected.
    • svg - Raw SVG for rendering the predicted retrosynthetic disconnection.
    • time - Total prediction runtime.

Metadata

Release files for odachi 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odachi 1.0.1
File Size Uploaded Provenance
odachi-1.0.1.tar.gz 1.4 MB Without provenance Details

Release files / odachi-1.0.1.tar.gz

Download URL odachi-1.0.1.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
937f35e085ddb54f49fd38dde872d28b1e65de3b35d15d8c38396d63c6ff4038
BLAKE2b-256 checksum
How to use checksums
d01e5ce36118da21f1f68ad678e4ecfb92b794d2897a64981d0b18e262fc0fa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

Security for odachi 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page