Explorando Compostos Químicos com Python e ChEMBL
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/