aizynthfinder

A tool for retrosynthetic planning

https://github.com/molecularai/aizynthfinder

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.4%) to scientific vocabulary

Keywords

astrazeneca chemical-reactions cheminformatics monte-carlo-tree-search neural-networks reaction-informatics
Last synced: 6 months ago · JSON representation ·

Repository

A tool for retrosynthetic planning

Basic Info
Statistics
  • Stars: 707
  • Watchers: 28
  • Forks: 150
  • Open Issues: 13
  • Releases: 18
Topics
astrazeneca chemical-reactions cheminformatics monte-carlo-tree-search neural-networks reaction-informatics
Created over 5 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation

README.md

AiZynthFinder

License Tests codecov Code style: black version Open In Colab

AiZynthFinder is a tool for retrosynthetic planning. The default algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by a policy that suggests possible precursors by utilizing a neural network trained on a library of known reaction templates. This setup is completely customizable as the tool supports multiple search algorithms and expansion policies.

An introduction video can be found here: https://youtu.be/r9Dsxm-mcgA

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Linux, Windows or macOS platforms are supported - as long as the dependencies are supported on these platforms.

  • You have installed anaconda or miniconda with python 3.9 - 3.11

The tool has been developed on a Linux platform, but the software has been tested on Windows 10 and macOS Catalina.

Installation

For end-users

First time, execute the following command in a console or an Anaconda prompt

conda create "python>=3.9,<3.11" -n aizynth-env

To install, activate the environment and install the package using pypi

conda activate aizynth-env
python -m pip install aizynthfinder[all]

for a smaller package, without all the functionality, you can also type

python -m pip install aizynthfinder

For developers

First clone the repository using Git.

Then execute the following commands in the root of the repository

conda env create -f env-dev.yml
conda activate aizynth-dev
poetry install --all-extras

the aizynthfinder package is now installed in editable mode.

Usage

The tool will install the aizynthcli and aizynthapp tools as interfaces to the algorithm:

aizynthcli --config config_local.yml --smiles smiles.txt
aizynthapp --config config_local.yml

Consult the documentation here for more information.

To use the tool you need

1. A stock file
2. A trained expansion policy network
3. A trained filter policy network (optional)

Such files can be downloaded from figshare and here or they can be downloaded automatically using

download_public_data my_folder

where my_folder is the folder that you want download to. This will create a config.yml file that you can use with either aizynthcli or aizynthapp.

Development

Testing

Tests uses the pytest package, and is installed by poetry

Run the tests using:

pytest -v

The full command run on the CI server is available through an invoke command

invoke full-tests

### Documentation generation

The documentation is generated by Sphinx from hand-written tutorials and docstrings

The HTML documentation can be generated by

invoke build-docs

Contributing

We welcome contributions, in the form of issues or pull requests.

If you have a question or want to report a bug, please submit an issue.

To contribute with code to the project, follow these steps:

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make your changes and commit them: git commit -m '<commit_message>'
  4. Push to the remote branch: git push
  5. Create the pull request.

Please use black package for formatting, and follow pep8 style guide.

Contributors

The contributors have limited time for support questions, but please do not hesitate to submit an issue (see above).

License

The software is licensed under the MIT license (see LICENSE file), and is free and provided as-is.

References

  1. Thakkar A, Kogej T, Reymond J-L, et al (2019) Datasets and their influence on the development of computer assisted synthesis planning tools in the pharmaceutical domain. Chem Sci. https://doi.org/10.1039/C9SC04944D
  2. Genheden S, Thakkar A, Chadimova V, et al (2020) AiZynthFinder: a fast, robust and flexible open-source software for retrosynthetic planning. ChemRxiv. Preprint. https://doi.org/10.26434/chemrxiv.12465371.v1

Owner

  • Name: AstraZeneca - Molecular AI
  • Login: MolecularAI
  • Kind: organization

Software from the Molecular AI department at AstraZeneca R&D

Citation (CITATION.cff)

# YAML 1.2
---
abstract: "We present the open-source AiZynthFinder software that can be readily used in retrosynthetic planning. The algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by an artificial neural network policy that suggests possible precursors by utilizing a library of known reaction templates. The software is fast and can typically find a solution in less than 10 s and perform a complete search in less than 1 min. Moreover, the development of the code was guided by a range of software engineering principles such as automatic testing, system design and continuous integration leading to robust software with high maintainability. Finally, the software is well documented to make it suitable for beginners. The software is available at http://www.github.com/MolecularAI/aizynthfinder."
authors:
  -
    family-names: Genheden
    given-names: Samuel
  -
    family-names: Thakkar
    given-names: Amol
  -
    family-names: "Chadimová"
    given-names: Veronika
  -
    family-names: Reymond
    given-names: "Jean-Louis"
  -
    family-names: Engkvist
    given-names: Ola
  -
    family-names: Bjerrum
    given-names: Esben
    orcid: "https://orcid.org/0000-0003-1614-7376"
cff-version: "1.1.0"
date-released: 2020-12-08
doi: "https://doi.org/10.1186/s13321-020-00472-1"
identifiers:
  -
    type: doi
    value: "10.1186/s13321-020-00472-1"
keywords:
  - retrosynthesis
  - casp
  - retrosynthesis
  - cheminformatics
  - "neural-networks"
  - "monte-carlo-tree-search"
  - "chemical-reactions"
  - astrazeneca
  - "reaction-informatics"
license: MIT
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/MolecularAI/aizynthfinder"
title: AiZynthFinder
version: "2.2.1"
...

GitHub Events

Total
  • Create event: 9
  • Release event: 2
  • Issues event: 24
  • Watch event: 106
  • Delete event: 7
  • Issue comment event: 24
  • Push event: 14
  • Pull request review event: 6
  • Pull request event: 18
  • Fork event: 14
Last Year
  • Create event: 9
  • Release event: 2
  • Issues event: 24
  • Watch event: 106
  • Delete event: 7
  • Issue comment event: 24
  • Push event: 14
  • Pull request review event: 6
  • Pull request event: 18
  • Fork event: 14

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 72
  • Total Committers: 7
  • Avg Commits per committer: 10.286
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Samuel Genheden s****n@g****m 36
Samuel Genheden s****n@a****m 25
dependabot[bot] 4****]@u****m 4
Helio Machado 0****t@g****m 3
Robert Burbidge r****e@u****m 2
Naruki Yoshikawa n****a@g****m 1
Esben Jannik Bjerrum e****m@a****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 103
  • Total pull requests: 71
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 months
  • Total issue authors: 67
  • Total pull request authors: 10
  • Average comments per issue: 2.86
  • Average comments per pull request: 1.13
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 36
Past Year
  • Issues: 12
  • Pull requests: 16
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 13 hours
  • Issue authors: 12
  • Pull request authors: 3
  • Average comments per issue: 1.25
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • queliyong (15)
  • hongxianglics (6)
  • drc007 (4)
  • pkrezel (2)
  • sitanshubhunia (2)
  • Zbless (2)
  • masyost (2)
  • milktea-lab (2)
  • danisetiawan (2)
  • philipyang1 (2)
  • shreyasvinaya (2)
  • 0x2b3bfa0 (2)
  • tagirshin (2)
  • yangxiaofei77 (2)
  • okikosuke (1)
Pull Request Authors
  • dependabot[bot] (41)
  • SGenheden (15)
  • 0x2b3bfa0 (7)
  • Lakshidaa (7)
  • hubbs5 (2)
  • ivanmilevtues (2)
  • churnikov (2)
  • chajath (2)
  • bruceunx (1)
  • proddi (1)
  • EBjerrum (1)
Top Labels
Issue Labels
wontfix (10) question (10) enhancement (9) bug (6) dependencies (5) documentation (3) invalid (1)
Pull Request Labels
dependencies (41)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 1,291 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 45
  • Total maintainers: 2
proxy.golang.org: github.com/MolecularAI/aizynthfinder
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/molecularai/aizynthfinder
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: aizynthfinder

Retrosynthetic route finding using neural network guided Monte-Carlo tree search

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 1,291 Last month
Rankings
Stargazers count: 2.9%
Forks count: 4.4%
Downloads: 9.7%
Average: 9.7%
Dependent packages count: 10.1%
Dependent repos count: 21.6%
Maintainers (2)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • 202 dependencies
pyproject.toml pypi
  • black ^22.0.0 develop
  • invoke ^1.5.0 develop
  • mypy ^0.800 develop
  • pylint ^2.7.0 develop
  • pytest ^6.2.2 develop
  • pytest-black ^0.3.12 develop
  • pytest-cov ^2.11.0 develop
  • pytest-datadir ^1.3.1 develop
  • pytest-mccabe ^2.0.0 develop
  • pytest-mock ^3.5.0 develop
  • sphinx ^4.0.0 develop
  • deprecated ^1.2.10
  • grpcio ^1.24.0
  • ipywidgets ^7.5.1
  • jinja2 ^3.0.0
  • jupyter ^1.0.0
  • jupytext ^1.3.3
  • matplotlib ^3.0.0
  • more-itertools ^8.2.0
  • networkx ^2.4
  • pandas ^1.0.0
  • pillow ^9.0.0
  • pymongo ^3.10.1
  • python >=3.7,<3.10
  • rdchiral ^1.0.0
  • requests ^2.23.0
  • route_distances *
  • scikit-learn >0.21.0
  • scipy ^1.0
  • tables ^3.6.1
  • tensorflow ^2.8.0
  • tensorflow-serving-api ^2.1.0
  • timeout-decorator ^0.5.0
  • tqdm ^4.42.1
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v1 composite