# 5.1 Construcción de bases de datos

El **punto clave** de la construcción de bases de datos es **definir los objetivos y criterios** para la información que va a ser recolectada. Es decir, el usuario debe identificar cuáles son las características principales que desea implementar en la base de datos.

Preguntas que deben ser respondidas antes de empezar la construcción de una base de datos son las siguientes:

* ¿Qué tipo de compuestos debe contener?&#x20;
* ¿Qué tipo de parámetros serán analizados?
* ¿Se puede conseguir la información a partir de bases de datos públicas? De lo contrario, ¿debe construirse desde cero?

## <mark style="color:orange;">1. Caso de estudio</mark>

Por ejemplo, digamos que el usuario tiene el objetivo de comenzar a construir una base de datos relacionada a medicamentos que son usados en el ámbito de la salud mental. Existen diferentes formas de abordar esta tarea. A continuación, se revisarán una serie de recomendaciones generales.&#x20;

### <mark style="color:orange;">1.1 Revisión de literatura</mark>

La primera recomendación es revisar la literatura científica sobre el tipo de compuestos esperamos encontrar o cuales se están usando actualmente. Puede consultar la sección de [Búsqueda de información química](https://difacquim.gitbook.io/quimioinformatica/1.-busqueda-de-informacion-quimica) para obtener mayor detalles.

Consultado referencias bibliográficas y literatura sobre el tema en este caso, medicinas usadas en el ámbito de la salud mental podemos adentrarnos al tema y responder preguntas básicas:

* ¿Qué medicamentos se usan actualmente?
* ¿Cuál es el mecanismo de estos medicamentos? Es decir, ¿sobre qué objetivos biológicos tienen su efecto terapéutico?&#x20;

A partir de aquí, el usuario cuenta con un parámetro de selección que puede establecer para definir qué tipos de compuestos incluirá o no en la base de datos. Posteriormente, deberá elegir el método con el cual se agregarán esos compuestos. Es decir, ¿existe alguna base de datos pública que cumpla con el parámetro de elección? De no ser así, *¿el usuario puede construir la base de datos a partir de distintas fuentes?*

### <mark style="color:orange;">1.2 Construcción desde cero</mark>&#x20;

A continuación, se mostrará un ejemplo de cómo pueden obtenerse componentes de forma individual para construirla desde cero.&#x20;

Siguiendo con la revisión de literatura referente al desarrollo de inhibidores de fosfodiesterasas, se encuentra el artículo [New Selective Phosphodiesterase 4D Inhibitors Differently Acting on Long, Short, and Supershort Isoforms](https://doi.org/10.1021/jm900977c). En este [artículo](https://pubs.acs.org/doi/10.1021/jm900977c)  se reporta la síntesis de una serie de compuestos análogos al [rolipram](https://go.drugbank.com/drugs/DB01954), compuesto con efectos antidepresivos (<mark style="color:blue;">Figura 1</mark>).&#x20;

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FvEbMEjTVDAv32bv3fWaI%2Fimage.png?alt=media&#x26;token=17ce09f1-4581-4e15-ae2d-f3f849c89659" alt=""><figcaption><p><em><strong>Figura 1.</strong> Compuestos similares al Rolipram. Fuente:</em> <a href="https://pubs.acs.org/doi/10.1021/jm900977c">Bruno O et al., <em>J Med Chem.</em> <strong>2009</strong>, 52:6546-57</a></p></figcaption></figure>

El objetivo del usuario es crear una base de datos con estos compuestos. El tipo de información esencial para cualquier base de datos es el nombre o ID del compuesto y su representación en notación SMILES.&#x20;

Esto puede hacerse de diferentes formas:

* Construir las moléculas con un editor de estructuras químicas.
* Buscar directamente el nombre y/o representación de las moléculas.
* Utilizar un software para convertir compuestos de formato de imagen a una representación lineal, por ejemplo, SMILES.

En este caso en particular, no se cuenta con las representaciones y/o nombres en particular de cada compuesto así que usaremos un editor de estructuras químicas ([Marvin Sketch](https://chemaxon.com/marvin)); pero el usuario es libre de elegir otro software.&#x20;

La base de los compuestos es la siguiente:

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FIpB69Yf2grMCzGjzLEDn%2Fimage.png?alt=media&#x26;token=9a39f3c0-4b04-4921-803b-eb3a4015980f" alt=""><figcaption><p><em><strong>Figura 2.</strong> Compuesto base.</em> </p></figcaption></figure>

&#x20;Comencemos con la recopilación de compuestos.&#x20;

1. Primer compuesto.&#x20;

Representación SMILES: \[H]\C(=N/OCC(O)CNN1CCCC1)C1=CC(OC2CCCC2)=C(OC)C=C1.

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FnJYZaEHaZ4ojBAyLhf9n%2Fimage.png?alt=media&#x26;token=ca1c5899-d0c9-45d1-abf3-e3e5732640d8" alt=""><figcaption><p><em><strong>Figura 3.</strong> Primer compuesto derivado.</em></p></figcaption></figure>

2. Compuestos derivados

Se repite el proceso para los compuestos derivados.

Representación SMILES: \[H]\C(=N/OCC(O)CNN1CCCCC1)C1=CC(OC2CCCC2)=C(OC)C=C1.

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2F6jtgFQRVGGXbk7rkotid%2Fimage.png?alt=media&#x26;token=70deeca4-d25d-4e4b-a1da-b06a1add40df" alt=""><figcaption><p><em><strong>Figura 4.</strong> Quinto compuesto derivado.*Tacm: Trimetil acetamido metilo.</em> </p></figcaption></figure>

Con esta información, el usuario procede a almacenar la información en una hoja de cálculo.&#x20;

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FylwaTguQ9sQFMUfhcLWK%2Fimage.png?alt=media&#x26;token=e595cf0d-07c6-4042-ac76-38d018bd9a7d" alt=""><figcaption><p><em><strong>Figura 5.</strong> Adición de compuestos a una hoja de cálculo.</em> </p></figcaption></figure>

Este ejemplo se realizó con solo cinco compuestos, pero el usuario define la cantidad de compuestos que estarán en la base de datos.

Una vez que el usuario terminó de recopilar la información en la hoja de cálculo, debemos guardar el archivo en formato *csv* (delimitado por comas) para su posterior manejo.

Si cargamos nuestro archivo en formato csv y lo guardamos en nuestra carpeta de trabajo, podemos visualizar la información que hemos recopilado.

```python
import numpy as np
import pandas as pd

# For database in .csv
df = pd.read_csv("EjemploBasedeDatos.csv")
df
```

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2Fg1Ym0ud2EY9V3MmpAUYB%2Fimage.png?alt=media&#x26;token=835d5428-595f-4677-b9f9-a4f8d60c4ba4" alt=""><figcaption><p><em><strong>Figura 6.</strong> Resultado final de la recopilación de información.</em></p></figcaption></figure>

Es importante mencionar que el usuario puede elegir distintas formas de construir la base de datos. Es decir, el usuario con base en los criterios de selección previamente establecidos debe elegir entre distintas maneras de obtener compuestos. A continuación, se presentarán algunas alternativas que pueden ser útiles.

### <mark style="color:orange;">1.3 Uso de SciFinder para la recopilación de compuestos</mark>&#x20;

En el buscador de SciFinder, ingresamos el nombre del artículo que elegimos en la *Sección 1.2*.

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FhBLoX1Z8tRa861BN6THq%2Fimage.png?alt=media&#x26;token=e7df34d1-3fd0-42e4-a1c2-6da964018b22" alt=""><figcaption><p><em><strong>Figura 7:</strong></em> En el buscador de SciFinder, ingresamos el nombre del artículo que elegimos en la Sección 1.4.1.<em><strong>.</strong> Recopilación de compuestos a través de SciFinder.</em></p></figcaption></figure>

A continuación, seleccionamos el artículo e ingresamos a la sección de "*Substances*".&#x20;

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FLp18zftazoKntZ0HYo9J%2Fimage.png?alt=media&#x26;token=16525c46-3489-40ae-a170-25bc4699aab9" alt=""><figcaption><p><em><strong>FIgura 8.</strong> Recopilación de compuestos a través de SciFinder</em></p></figcaption></figure>

Para este artículo en específico, se encontraron 75 resultados de diferentes compuestos. Es importante mencionar que no todos los compuestos deben ser agregados a la base de datos. El usuario debe seleccionar con cuidado qué compuestos deben ser agregados o no.&#x20;

<figure><img src="https://4235622825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyzFDWCsANohM6QBx4kmk%2Fuploads%2FZeH2sbQN547jg6jEV2wc%2Fimage.png?alt=media&#x26;token=2cb891ce-7671-4924-bf3e-92164ea90e21" alt=""><figcaption><p><em><strong>Figura 9.</strong> Compuestos encontrados dentro del artículo seleccionado.</em></p></figcaption></figure>

Una facilidad que otorga SciFinder es que podemos acceder directamente a la representación de los compuestos que se encuentran dentro del artículo. Es decir, a diferencia del método utilizado en la seción 1.2 en donde el usuario dibujaba sus propias estructuras, con SciFinder podemos obtener directamente tanto el nombre como la representación en formato SMILES. Para obtener el nombre del compuesto así como su representación tipo SMILES, ingresar a la sección denominada '*Other Names and Identifiers*'.

El usuario puede descargar todos los resultados en formato 'xlsx' (es decir, hoja de cálculo) y desde el archivo de excel modificar las entradas que desee para solo quedarse con los compuestos que cumpla con los criterios de selección. &#x20;

### <mark style="color:orange;">1.4 Servidores para dibujar moléculas a partir de imágenes</mark>

[**DECIMER**](https://decimer.ai/) es una aplicación web para extraer estructuras químicas de archivos en **pdf**. **Sólo tiene que cargar un documento pdf, una o varias imágenes que contengan representaciones de estructuras químicas**. Si se carga un documento pdf, se utiliza DECIMER Segmentation para detectar y segmentar todas las representaciones de estructuras químicas. Las representaciones de estructuras químicas detectadas o cargadas se procesan utilizando el motor OCSR de DECIMER V2. Las representaciones de estructuras químicas y la correspondiente representación SMILES se presentan más arriba. Además, las estructuras químicas se pueden editar según sus necesidades del usuario utilizando el editor de estructuras químicas de Ketcher y, antes de descargar las imágenes segmentadas y los archivos mol correspondientes. Además, los nombres IUPAC de las estructuras químicas pueden resolverse utilizando [STOUT V2](https://jcheminf.biomedcentral.com/articles/10.1186/s13321-021-00512-4).

### <mark style="color:orange;">**Para saber más:**</mark>

* DECIMER. Recuperado el 16 de octubre de 2023 de <https://decimer.ai/>.
* Rajan K, Brinkhaus HO, Agea MI, Zielesny A, Steinbeck C (2023) [DECIMER.ai - An open platform for automated optical chemical structure identification, segmentation and recognition in scientific publications.](https://chemrxiv.org/engage/chemrxiv/article-details/63efb90dfcfb27a31ff39b08) ChemRxiv. doi: 10.26434/chemrxiv-2023-xhcx9.
* Rajan K, Zielesny A and Steinbeck C (2021) [STOUT: SMILES to IUPAC names using neural machine translation](https://doi.org/10.1186/s13321-021-00512-4). J Cheminform 13:34.
* Saldívar González FI, Chávez Ponce de León DE, López López E, Francisco Hernández L, Lira Rocha A, Medina Franco JL (2028) [Manual de Quimioinformática](https://form.jotform.co/71235121551848). UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO pp 18-26.
