Source code for graphein.molecule.chembl
"""Functions for retrieving molecular data from ChEMBL."""
from typing import Any
import networkx as nx
# %%
# Graphein
# Author: Arian Jamasb <arian@jamasb.io>
# License: MIT
# Project Website: https://github.com/a-r-j/graphein
# Code Repository: https://github.com/a-r-j/graphein
from bioservices import ChEMBL
from graphein.utils.dependencies import requires_python_libs
[docs]
@requires_python_libs("bioservices")
def get_smiles_from_chembl(chembl_id: str) -> str:
"""Retrieves a SMILE string from a ChEMBL ID.
:param chembl_id: ChEMBL ID, e.g., ``'CHEMBL1234'``
:type smiles: str
:returns: A SMILE string, e.g.,
``'COc1cccc(c1)NC(=O)c2cccnc2'``
:rtype: str
"""
chembl = ChEMBL()
data = chembl.get_molecule(chembl_id)
return data["molecule_structures"]["canonical_smiles"]
[docs]
@requires_python_libs("bioservices")
def get_chembl_id_from_smiles(smiles: str) -> str:
"""Retrieves a ChEMBL ID from a SMILE string.
:param smiles: A valid SMILE string, e.g.,
``'COc1cccc(c1)NC(=O)c2cccnc2'``
:type smiles: str
:return: ChEMBL ID, e.g., ``'CHEMBL1234'``
:rtype: str
"""
chembl = ChEMBL()
data = chembl.get_molecule(smiles)
return data["molecule_chembl_id"]