Skip to main content

Python wrapper for the ASKCOS API

Project description

Python wrapper for the ASKCOS API

Installation

Installing this package depends on a working installation of Python with pip. To install the package, run:

pip install git+ssh://git@github.com:syngenta/EasyAskcos.git

For Development

When working on the development of this package, the developer wants to work directly on the source code while still using the packaged installation. For that, run:

git clone git@github.com:syngenta/EasyAskcos.git
pip install -e easyaskcos/[dev]

Configuration

This package requires some configuration parameters to work, including some secretes and settings. After installation, and before the first usage, the useR should run the following command

easyaskcos_configure

this command generates the user_home/easyaskcos directory and places into it two files:

  1. settings.toml populated with defaults settings. The user can review and modify these values if necessary

  2. .secrets.toml containing the keys for the necessary secrets. The user must replace the placeholders with the correct values

Usage: ASKCOS V1

Let’s initialize the wrapper.

from easyaskcos.wrapper import AskcosWrapper

wrapper = AskcosWrapper()

It will connect to the url provided in the settings file, however it is possible to define a different base url by indicating it during the initialization of the wrapper

from easyaskcos.wrapper import AskcosWrapper

wrapper = AskcosWrapper(base_url="https://some.server")

Now it is possible to access various endpoints provided by the Askcos API in a simple and straightforward manner.

Perform prediction for retrosynthetic trees

response = wrapper.predict_retrosynthetic_tree("CCC(O)=O")
# to check the status of the response
prediction_id = response["prediction_id"]
results = wrapper.get_results(prediction_id)
print(results["status"])
# upon "SUCCESS", the results can be inspected
retrosynthetic_trees = results["output"]

To inspect the available template sets for the retrosynthetic predictions

sets = wrapper.list_template_sets()

Each string in the returned list can be assigned to the “template_set” argument of the “predict_retrosynthetic_tree” method; by default the “reaxys” template is used.

response = wrapper.predict_retrosynthetic_tree("CCC(O)=O", template_set="pistachio")

Perform prediction for chemical reactions

response = wrapper.predict_forward("CC(=O)c1cc(Cl)ccc1Oc1ccc(Cl)cc1Cl.O=C(OO)c1cccc(Cl)c1")
# to check the status of the response
prediction_id = response["prediction_id"]
results = wrapper.get_results(prediction_id)
print(results["status"])
# upon "SUCCESS", the results can be inspected
reactions = results["output"]

Usage: ASKCOS V2

With the release of the new ASKCOS V2 platform, that soon will completely replace the previous version, we included in this package also the SDK for the new version. The usage remain overall very similar to how it is for version 1, starting with the initialization of the wrapper:

from easyaskcos.wrapper import AskcosWrapperV2

wrapper = AskcosWrapperV2()

Also in this case it will automatically connect to the url provided in the settings file, but it is always possible to specify a different base url as follows:

from easyaskcos.wrapper import AskcosWrapperV2

wrapper = AskcosWrapperV2(base_url="https://some.server")

Some endpoints of ASKCOS V2 require authentication. In order to get the token necessary to access these endpoints, you need to define your username and password for the ASKCOS V2 platform. This can be done either by adding this information in the .secrets.yaml file created by the initial configuration, or by passing these arguments while instantiating the wrapper.

from easyaskcos.wrapper import AskcosWrapperV2

wrapper = AskcosWrapperV2(user_name="my_username",
                          password="my_password")

For example, the endpoint for searching retrosynthetic trees for a given target molecule in an asynchronous way, requires the authentication. If you included the necessary credentials in the settings or while instantiating the wrapper, EasyAskcos will take care of handling the authentication for you:

from easyaskcos.wrapper import AskcosWrapperV2

wrapper = AskcosWrapperV2(user_name="my_username",
                          password="my_password")
# Retrieve the task ID associated with your prediction
task_id = wrapper.predict_retrosynthetic_tree_async("CCC(O)=O")
# Retrieve the results
results = wrapper.get_results(task_id)
print(results["status"])
# upon "SUCCESS", the results can be inspected
reactions = results["response"]["output"]

In the new version of ASKCOS, There is also an endpoint for retrosynthetic predictions that works synchronously, which does not require authentication. So you will need to just run:

from easyaskcos.wrapper import AskcosWrapperV2

results = wrapper.predict_retrosynthetic_tree("CCC(O)=O")

The endpoints for the other types of predictions (forward, impurities and reaction conditions) are still asynchronous:

task_id = wrapper.predict_forward([
                "CS(=N)(=O)Cc1cccc(Br)c1.Nc1cc(Br)ccn1",
                "CCO.CC(=O)O"
              ],)

results = wrapper.get_results(task_id)
print(results["status"])
# upon "SUCCESS", the results can be inspected
reactions = results["response"]["output"]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyaskcos-2.1.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyaskcos-2.1.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file easyaskcos-2.1.0.tar.gz.

File metadata

  • Download URL: easyaskcos-2.1.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.18

File hashes

Hashes for easyaskcos-2.1.0.tar.gz
Algorithm Hash digest
SHA256 0730445b19db31de9c52bfa75593420886b7975920e016b319141fd382c109a9
MD5 58474389b371ee49130ff7162f72eeee
BLAKE2b-256 2496de0ff0b6c5228cdf9f15b14a85ebfdb02a70b4442bda2f1aa564ac7b5739

See more details on using hashes here.

File details

Details for the file easyaskcos-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: easyaskcos-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.18

File hashes

Hashes for easyaskcos-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35ed305fa2b5dd6d1c666a737961e027e5ad157f1beb3a5b4521e2809a411f13
MD5 3dd41f30c27e5150fcdae64535e2f110
BLAKE2b-256 d80cf04fe155c24f57b96ca51233db03a0a23b68e77fff9d8593cfbcad1a9019

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page