Explorando Compostos Químicos com Python e ChEMBL

Rubem Francisco Silva Bezerra
3 min readJul 5, 2023

--

A química computacional desempenha um papel fundamental na descoberta e no desenvolvimento de novos compostos químicos. Neste artigo, vamos explorar como usar Python e as bibliotecas RDKit e ChEMBL para extrair informações de compostos químicos a partir de um documento específico.

O ChEMBL é um banco de dados de química biológica que contém uma vasta quantidade de informações sobre compostos químicos e atividades biológicas associadas. Com a ajuda do Python e das bibliotecas RDKit e ChEMBL, podemos acessar facilmente esses dados e realizar análises interessantes.

Vamos mergulhar no código e entender como podemos extrair informações valiosas dos compostos químicos relacionados a um documento específico no ChEMBL.

Seção 1: Configurando o ambiente e importando as bibliotecas necessárias

Antes de começar, vamos configurar nosso ambiente e importar as bibliotecas necessárias. Certifique-se de ter o Python instalado e execute os seguintes comandos para instalar as bibliotecas:

pip install rdkit-pypi

pip install chembl_webresource_client

pip install pandas

Aqui está o código para importar as bibliotecas:

```python
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import Descriptors
from rdkit.Chem import AllChem
from rdkit import DataStructs
from chembl_webresource_client.new_client import new_client
import numpy as np
import pandas as pd
import sys

Seção 2: Obtendo informações dos compostos químicos no ChEMBL

Agora que temos nosso ambiente configurado e as bibliotecas importadas, podemos começar a extrair informações dos compostos químicos no ChEMBL.

Primeiro, vamos filtrar o documento desejado usando o DOI e recuperar o document_chembl_id correspondente. Em seguida, obteremos os registros de compostos químicos relacionados a esse documento e suas estruturas moleculares.

Aqui está o código para essa etapa:

```python
document = new_client.document
doc = document.filter(doi="10.1021/acs.jmedchem.8b01136").only('document_chembl_id')
compound_record = new_client.compound_record
records = compound_record.filter(document_chembl_id__in=[doc['document_chembl_id'] for doc in doc]).only(['document_chembl_id', 'molecule_chembl_id'])
molecule = new_client.molecule
natural_products = molecule.filter(molecule_chembl_id__in=[rec['molecule_chembl_id'] for rec in records]).only(['molecule_structures'])

Após essa etapa, teremos os registros de compostos químicos e suas estruturas moleculares armazenados em DataFrames, prontos para análise e visualização.

Seção 3: Análise e visualização dos compostos químicos

Agora que temos os dados sobre os compostos químicos, podemos realizar análises e visualizações interessantes.

Primeiro, vamos criar um DataFrame com os registros dos compostos químicos:

```python
df = pd.DataFrame.from_dict(records)

Em seguida, vamos extrair as estruturas moleculares dos compostos químicos e adicioná-las ao DataFrame:

```python
mol_list = []
for c in natural_products:
for v in c.values():
mol_list.append(v)
df1 = pd.DataFrame.from_dict(mol_list)
df2 = pd.concat([df, df1], axis=1)

Agora temos o DataFrame df2 que contém informações sobre os compostos químicos, incluindo os registros e as estruturas moleculares.

Podemos realizar análises adicionais, como calcular descritores moleculares:

```python
df2['Molecular Weight'] = df2['canonical_smiles'].apply(lambda x: Descriptors.MolWt(Chem.MolFromSmiles(x)))
df2['LogP'] = df2['canonical_smiles'].apply(lambda x: Descriptors.MolLogP(Chem.MolFromSmiles(x)))
df2['Num of Carbon Atoms'] = df2['canonical_smiles'].apply(lambda x: Descriptors.HeavyAtomCount(Chem.MolFromSmiles(x)))

Também podemos visualizar as estruturas moleculares dos compostos químicos:

```python
mols = [Chem.MolFromSmiles(smiles) for smiles in df2['canonical_smiles']]
img = Draw.MolsToGridImage(mols, molsPerRow=4, subImgSize=(200, 200), legends=df2['molecule_chembl_id'].tolist())
img

Essas análises e visualizações nos fornecem informações valiosas sobre os compostos químicos e nos ajudam a entender melhor suas propriedades e estruturas.

Conclusão:

Neste artigo, exploramos como usar Python e as bibliotecas RDKit e ChEMBL para extrair informações de compostos químicos a partir de um documento específico. Com o poder do Python e a riqueza de dados disponíveis no ChEMBL, podemos realizar análises e visualizações interessantes dos compostos químicos. A combinação do Python, RDKit e ChEMBL abre um mundo de possibilidades para a exploração da química computacional. Espero que este artigo tenha fornecido uma visão geral útil sobre como começar a explorar os compostos químicos usando essas ferramentas.

Referências:

— RDKit: https://www.rdkit.org/

— ChEMBL: https://www.ebi.ac.uk/chembl/

--

--

Rubem Francisco Silva Bezerra
Rubem Francisco Silva Bezerra

No responses yet