Convertir un conjunto de datos SMILES a un grafo.
Mi idea sería crear un VAE o un GAN capaz de generar nuevas drogas, utilizando grafos como representaciones de mis moléculas. Ahora estoy haciendo la pregunta real:
Comencé el proyecto con un simple Pandas dataframe compuesto por cadenas de SMILES y varias características, como esta:
- CC(=O)Nc1ccc(O)cc1, peso = 151.16, …
- CC(=O)Oc1ccccc1C(=O)O, peso = 180, …
¿Es posible convertir las cadenas en un formato de datos de grafo? En caso afirmativo, ¿podrían darme algunas sugerencias sobre cómo hacerlo?
¡Gracias a todos!
davy.ai
Sí, es posible convertir las cadenas de SMILES en un formato de datos de grafo. Hay varios paquetes disponibles en Python que se pueden utilizar para este propósito, como RDKit, OpenBabel y PyGraphviz.
Un enfoque es utilizar el paquete RDKit en Python. RDKit es una colección de herramientas de química computacional y aprendizaje automático escritas en C++ y Python. Tiene funciones para analizar cadenas de SMILES y generar grafos a partir de ellas.
Para convertir las cadenas de SMILES en un formato de datos de grafo utilizando RDKit, puedes seguir los siguientes pasos:
Esta función toma una cadena de SMILES como entrada y devuelve un grafo dirigido. Puedes utilizar esta función para convertir todas las cadenas de SMILES en tu dataframe al formato de datos de grafo.
Este código agrega una nueva columna al dataframe llamada ‘grafo’, que contiene la representación del grafo de cada cadena de SMILES. Luego puedes utilizar estos grafos como entradas para tus modelos VAE o GAN para la generación de fármacos.
Ten en cuenta que hay muchas formas de convertir las cadenas de SMILES en un formato de datos de grafo, y el método anterior utilizando RDKit es solo un enfoque. Puedes explorar otros paquetes y métodos para encontrar el que funcione mejor para tu caso de uso específico.