- FarmacoDB: Automatización de Extracción y Análisis de Datos
Este repositorio se enfoca en automatizar la extracción y análisis de datos farmacocinéticos de diversas fuentes, con el fin de obtener una base de datos integral y estandarizada de información farmacocinética junto con los scripts de creación y análisis, dirigidos a resolver los retos de la individualización en farmacología debido a la escasez de bases de datos completas (Wang et al., 2009). Finalmente se incluye la implementación de un modelo predictivo para la vida media de medicamentos en humanos. Se emplearon técnicas avanzadas de minería de texto y modelos de lenguaje para obtener datos esenciales con un total de 1,130 fármacos, representados por 100,359 registros de parámetros farmacocinéticos.
Este repositorio proporciona la metodología y los scripts necesarios para replicar el proceso de creación de la base de datos y del modelo predictivo y extender su aplicación a otros parámetros farmacocinéticos recogidos en la base de datos.
Para más detalles sobre la investigación, consulte la publicación completa aquí.
- Desarrollar una base de datos integral y estandarizada que aglutine datos farmacocinéticos esenciales como la Vida Media, Concentración Máxima, Tiempo hasta Cmax, entre otros, recopilados de diversas fuentes incluyendo PKPDAI (Pharmacokinetics Parameter Data Aggregator and Identifier) (Hernandez F et al., 2021), DrugBank (Wishart, 2006).
Figura 1: Esquema procedimental para la creación de la base de datos de descriptores moleculares y la base de datos de parámetros farmacocinéticos.
- Proporcionar un modelo para la predicción de la Vida Media (half-life) utilizando descriptores moleculares.
Figura 2: Esquema procedimental para la creación del modelo predictivo.
La finaliad principal consiste en ofrecer un pipeline para poder aplicar a la estimación de otros parámetros farmacocinéticos contemplados en la base de datos, facilitando así una herramienta valiosa en el campo de la farmacocinética y la farmacología personalizada.
Puede descargar directamente la base de datos final FarmacoDB o la base de datos de descriptores moleculares asociados.
Se realizó un análisis exhaustivo de los datos de farmacocinética extrayendo información de las bases de datos PKPDAI y DrugBank. Se desarrolló una metodología eficiente en Python para extraer y almacenar los datos en una base de datos SQLite local.
Figura 3: Esquema del Proceso de Obtención y Almacenamiento de Datos Farmacocinéticos.
bbdd_pipeline/1_extract/extract.ipynb
Obtendrá DRUG_DB.db
necesario para la siguiente etapa (2).
Se implementó un proceso de minería de texto para extraer la información de "especie" y "enfermedad" de los artículos científicos utilizando el modelo BERN2 (Sung et al., 2022). Se automatizó la búsqueda en la base de datos SQLite local y se realizaron consultas a la API de BERN2.
Figura 4: Creación de la base de datos de parámetros farmacocinéticos.
bbdd_pipeline/2_diseases_species/diseases_species.ipynb
Obtendrá DRUG_DB.db
necesario para la siguiente etapa (3).
Se procedió a la extracción de descriptores moleculares utilizando la calculadora Mordred (Moriwaki et al., 2018), que ofrece una solución robusta y eficiente para esta tarea. Se accedió a los SMILES de los compuestos a través del paquete pubchempy y se extrajeron los descriptores moleculares con Mordred.
Figura 5: Creación de la base de datos de descriptores moleculares.
bbdd_pipeline/3_descriptors/descriptors.ipynb
Obtendrá DRUG_DB.db
necesario para la siguiente etapa (4).
Obtendrá BD_DESCRIPTORS.db
necesario para la etapa 8.
Se realizó una normalización y limpieza profunda de los nombres de los parámetros farmacocinéticos en la base de datos de medicamentos para eliminar redundancias y asegurar coherencia. Se normalizaron unidades y valores para garantizar la coherencia y fiabilidad de los datos.
Figura 6: Esquema del Proceso de Normalización y Limpieza.
bbdd_pipeline/4_clean_normalization_metrics/clean_normalization_metrics.ipynb
Obtendrá DRUG_DB.db
necesario para la siguiente etapa (5).
bbdd_pipeline/4_clean_normalization_metrics/5_groups/groups.ipynb
Obtendrá DRUG_DB_applied.db
necesario para la siguiente etapa (6).
bbdd_pipeline/4_clean_normalization_metrics/6_standard_units/standard_units.ipynb
Obtendrá DRUG_DB_applied.db
necesario para la siguiente etapa (7).
Opcional, para ver la distribución y otra información referente a las unidades: bbdd_pipeline/4_clean_normalization_metrics/6_standard_units/distribution.ipynb
bbdd_pipeline/4_clean_normalization_metrics/7_mean_median_std/mean_median_std.ipynb
Obtendrá DRUG_DB_applied.db
necesario para la siguiente etapa (8).
Esta base de datos será la base de datos completa.
Se integraron los parámetros descriptivos junto con la base de datos final para preparar los .csv necesarios para la creación del modelo predictivo.
bbdd_pipeline/8_create_csv/create_csv.ipynb
Obtendrá dentro de la carpeta csv
todos los .csv correspondientes a cada parámetro, necesarios para la creación del modelo.
-
Recopilación y preparación de datos: Se recolectaron datos de parámetros farmacocinéticos y se filtraron para incluir solo instancias relacionadas con la especie "humano".
-
Variable Target: Trás múltiples configuraciones se decidió usar como variable objetivo la variable mediana median, usted puede probar con la media por ejemplo, sustituyendo por mean.
-
Pipeline Customizado: Recuerde que se le ofrece el pipeline completo. Usted podrá realizar los cambios que considere como aplicar otro método de optimización por ejemplo, o implementar otro modelo, cambiar la variable target, explorar otras técnicas de limpieza, normalizaciones etc.
-
Eliminación de valores faltantes y no numéricos: Se eliminaron instancias con valores "nan" y variables no numéricas.
-
Filtrado de valores atípicos: Se excluyeron valores atípicos correspondientes al primer cuartil de las variables objetivo.
-
Construcción de conjuntos de entrenamiento y prueba: Se asignó el 80% de los datos al conjunto de entrenamiento y el 20% restante al conjunto de prueba.
Se probaron cuatro enfoques distintos de normalización y estandarización de datos para evaluar su impacto en la precisión del modelo. Finalmente se propone el mejor.
Se han probado una larga secuencia de modelos, de hiperparametrizaciones y de optimizaciones.
A continuación se proponen los modelos finalistas que arrojan mejores resultados:
-
Redes Neuronales Artificiales (ANN): Utilizadas para capturar relaciones complejas entre descriptores moleculares y parámetros farmacocinéticos.
-
MLJAR: Paquete de AutoML en Python que opera de manera supervisada, utilizado para la optimización de modelos predictivos mediante métodos como el Random Search y otros algoritmos evolutivos.
El pipeline para el desarrollo del modelo lo puede encontrar a continuación:
Recuerde que podrá adaptarlo a sus necesidades.Si prefiere explorar todos los modelos probados y configuraciones puede usar el siguiente pipeline:
Recuerde que podrá adaptarlo a sus necesidades.El repositorio está organizado de la siguiente manera:
-
bbdd_pipeline/
: Contiene todos los scripts mencionados en los pasos anteriores. -
model_pipeline/
: Contiene los scripts utilizados para la creación del modelo predictivo, limpieza de datos, análisis etc. -
bbdd/
: Contiene la base de datos final FarmacoDB y la base de datos de descriptores moleculares asociados.
Puede clonar este repositorio y utilizar las bases de datos creadas y los scripts proporcionados para crear su propia base de datos, o bien desarrollar sus propios modelos predictivos según sus necesidades siguiendo los pipelines propuestos.
git clone https://github.com/pablosierrafernandez/FarmacoDB.git
Agradezco a @Santi Garcia-Vallve y a @Pedro M. Filipe por su orientación y apoyo durante el desarrollo de este trabajo.
Las contribuciones son bienvenidas. Si tiene sugerencias de mejoras, nuevas funcionalidades o encuentra algún problema, por favor abra un issue o envía un pull request.
Este proyecto está bajo la licencia MIT.
Consulte el archivo LICENSE
para más detalles.
-
@pablosierrafernandez: Investigador y desarrollador principal del proyecto.
-
@Pedro M. Filipe: Tutor acompañante durante el proceso de desarrollo e investigación del proyecto.
En colaboracion con:
Logo | Entidad | Descripción |
---|---|---|
Anaxomics SL | Empresa de biotecnología que utiliza inteligencia artificial para acelerar la investigación de fármacos. | |
Universitat Rovira i Virgili | Institución de educación superior ubicada en Tarragona, España, conocida por su excelencia académica e investigación multidisciplinaria. |
- Wang et al., 2009. https://pubmed.ncbi.nlm.nih.gov/19345282/
- Hernandez F et al., 2021. https://wellcomeopenresearch.org/articles/6-88/v1
- Wishart, 2006. https://academic.oup.com/nar/article/34/suppl_1/D668/1132926
- Sung et al., 2022. https://academic.oup.com/bioinformatics/article/38/20/4837/6687126
- Moriwaki et al., 2018. https://jcheminf.biomedcentral.com/articles/10.1186/s13321-018-0258-y
Para obtener más detalles sobre la metodología utilizada y las referencias adicionales, consulte la publicación completa en el Archivo de la URV.
¡Gracias por contribuir al avance de la farmacocinética con este proyecto! Si tiene alguna pregunta o necesita ayuda, no dude en contactarme.