# 6.1.2 Principios para el Análisis de Bases de Datos Moleculares

A continuación, se revisarán algunos ejemplos de cómo se puede hacer uso de los descriptores moleculares. Estos ejemplos fueron realizados utilizando Python con librerías auxiliares. Para el manejo de nuestra base de datos y la visualización de nuestros datos utilizaremos las siguientes paqueterías:

* [Pandas](https://aprendeconalf.es/docencia/python/manual/pandas/): Esta paquetería es útil ya que posee una biblioteca de software escrita como extensión de NumPy para la manipulación y análisis de datos para Python, ofrece estructuras de datos y operaciones para la manipulación de tablas numéricas.
* [Seaborn](https://seaborn.pydata.org/): Biblioteca de visualización de datos en Python basada en matplotlib, donde se proporciona una interfaz para dibujar gráficos estadísticos e informativos acerca de los datos expuestos.
* [Matplotlib pyplot](https://matplotlib.org/stable/tutorials/introductory/pyplot.html): Es una colección de funciones haciendo que matplotlib funcione como MATLAB, en donde cada pyplot tiene la función de realizar algún cambio en una figura.
* [NumPy](https://aprendeconalf.es/docencia/python/manual/numpy/): Biblioteca que da soporte a la creación de vectores y matrices multidimensionales, junto con una colección de funciones matemáticas para operar.
* [RDKit](https://www.rdkit.org/docs/index.html): Colección de software para cálculos de quimioinformática y aprendizaje de máquina. La librería RDKit permite hacer uso de diferentes descriptores moleculares.

Con los descriptores asociados a cada molécula, ya sea de valores experimentales o calculados con la librería RDKit, podemos comenzar nuestro análisis. A continuación, se presentan representaciones comunes para llevar a cabo esta tarea, incluyendo gráficos de una variable y análisis de correlación.

### <mark style="color:green;">Histogramas</mark>

Un histograma es una representación gráfica en forma de barras (<mark style="color:blue;">Figura 1</mark>), que simboliza la distribución de un conjunto de datos por intervalos y la frecuencia de estos intervalos en un rango.&#x20;

<figure><img src="/files/KVsIPxGrvPmkKcObm2hk" alt="" width="434"><figcaption><p><strong>Figura 1.</strong> Ejemplo de histograma.</p></figcaption></figure>

En general, el histograma es una herramienta útil para visualizar la distribución en un conjunto de datos y es comúnmente utilizado en análisis de datos.

### <mark style="color:green;">Gráficos de caja (</mark>*<mark style="color:green;">boxplots</mark>*<mark style="color:green;">)</mark>&#x20;

Un *boxplot* o gráfico de caja, es un gráfico unidimensional sencillo que muestra todos los valores de una variable de la base de datos. Especifica los valores mínimo y máximo en los bordes, y el primer, segundo (mediana) y tercer cuartil en el interior de la caja (<mark style="color:blue;">Figura 2</mark>). Los gráficos de caja muestran la distribución de los datos, con ayuda de la caja y de la mediana es posible observar si esta es simétrica, sesgada a la derecha o a la izquierda, indicándonos dónde se encuentran mayormente concentrados los datos. También permite identificar valores atípicos (*outliers*) y poder comparar distribuciones.

<figure><img src="/files/uYC1wlfBk2NJISC5IwWk" alt=""><figcaption><p><strong>Figura 2.</strong> <em>Boxplot</em> con la simbología estadística de sus elementos gráficos.</p></figcaption></figure>

### <mark style="color:green;">Gráficos de violín (</mark>*<mark style="color:green;">violin plots</mark>*<mark style="color:green;">)</mark>

Un gráfico de violín muestra la distribución de los datos y los valores atípicos al igual que un gráfico de caja. Sin embargo, el gráfico de violín también muestra la densidad estimada de los datos en cada punto (<mark style="color:blue;">Figura 3</mark>). El ancho del violín representa la densidad de los datos en esa ubicación, mientras que la forma del violín representa la distribución de los datos. En general, el *violinplot* puede ser una herramienta útil para visualizar la distribución de los datos en diferentes grupos y compararlos.

<figure><img src="/files/h0dEDhYcRRpq8ghFXz3K" alt="" width="423"><figcaption><p><strong>Figura 3</strong>. Elementos que componen a un <em>violinplot</em>.</p></figcaption></figure>

### <mark style="color:green;">Gráficos de nube (</mark>*<mark style="color:green;">raincloud plots</mark>*<mark style="color:green;">)</mark>

Los *raincloud plots* o gráficos de nube combinan la visualización de la distribución (la "nube") y la dispersión de los datos (la "lluvia"). Los gráficos de nube combinan la mitad de un diagrama de violín, la distribución de los datos representados con puntos aleatorios y una visualización de tendencia central como los diagramas de caja (<mark style="color:blue;">Figura 4</mark>). El objetivo de estos gráficos es proveer la máxima información estadística, al mismo tiempo que la visualización nos permite realizar inferencias sobre los datos ([Allen et. al. 2021](https://pubmed.ncbi.nlm.nih.gov/31069261/)).

<figure><img src="/files/NEoiaXniDsWL92HS9EjK" alt="" width="311"><figcaption><p><strong>Figura 4.</strong> Gráficos de nube.</p></figcaption></figure>

### <mark style="color:green;">Normalización de datos</mark>&#x20;

Para visualizar datos y comparar las diferentes variables en una misma escala, se realiza el proceso de normalización o escalado de los datos. Un método común es estandarizar las variables restando la media de la columna y dividiéndola por la varianza, haciendo esto nos quedan nuevos valores dentro de cada columna para los cuales $$μ=0$$ y $$σ=1$$.

Cabe destacar que existen otros métodos de normalización, como la normalización por rango, donde los datos se escalan para que estén en un rango específico, como 0 a 1. También existen técnicas como análisis de componentes principales, que se utilizan para reducir la dimensionalidad de los datos y visualizarlos en un espacio de menor dimensión.

Es importante mencionar que el escalado o normalización de datos es un paso crucial en el análisis de datos, especialmente cuando se comparan variables que están en diferentes escalas o unidades. La elección del método de normalización depende del tipo de datos y del análisis que se quiera realizar.

### <mark style="color:green;">Análisis de correlación</mark>

Otro aspecto importante para entender nuestros datos es estudiar la correlación entre las variables. Podemos  mostrar la relación entre las variables en un gráfico de dispersión con histogramas marginales (<mark style="color:blue;">Figura 5</mark>). Este tipo de gráfico es útil para identificar patrones o tendencias en la relación entre dos variables y también para detectar posibles valores atípicos o datos que se desvíen de la tendencia general. Además, los histogramas marginales permiten ver la distribución de cada variable individualmente.&#x20;

<figure><img src="/files/pKMmGqEKzatw2U274qWC" alt="" width="454"><figcaption><p><strong>Figura 5.</strong> Gráfico para analizar correlación.</p></figcaption></figure>

Otra opción para visualizar la correlación entre las variables es trazar una matriz de correlación (<mark style="color:blue;">Figura 6</mark>). Con esta podemos inferir si existen correlaciones positivas entre variables (las variables se mueven en la misma dirección) o correlaciones negativas (las variables se mueven en direcciones opuestas) al observar la dispersión de los datos al comparar dos descriptores.&#x20;

<figure><img src="/files/rj7vmwCLN9eBd0YA8vvG" alt=""><figcaption><p><strong>Figura 6.</strong> Matriz de correlación.</p></figcaption></figure>

Además de las gráficas, también podemos calcular numéricamente los coeficientes de correlación entre variables, como el de Pearson o el de Spearman.

### <mark style="color:green;">Coeficiente de correlación de Pearson</mark>

El *coeficiente de correlación de Pearson* ($$ρ$$) nos permite observar fácilmente las dependencias lineales entre dos conjuntos de datos, una medida que permite evaluar la relación lineal entre dos variables cuantitativas. Podemos calcular la correlación entre dos variables con el coeficiente de correlación *Pearson* y el *valor p*.&#x20;

Un valor de $$ρ$$:

* +1 significa correlación lineal positiva total
* 0 significa que no hay correlación lineal
* -1, correlación lineal negativa total.

Las correlaciones positivas implican que a medida que *x* aumenta, también lo hace *y*. Las correlaciones negativas implican que a medida que *x* aumenta, *y* disminuye.&#x20;

El *valor p* indica la probabilidad de que los datos no estén correlacionados en realidad. Un valor de p bajo (generalmente menor a 0.05) indica que la correlación observada es estadísticamente significativa, lo que significa que es poco probable que se deba al azar.

Es importante tener en cuenta que la correlación no implica causalidad. Dos variables pueden estar altamente correlacionadas pero no necesariamente estar relacionadas causalmente. Por lo tanto, se requiere un análisis más profundo para determinar si una correlación observada implica una relación causal.

Con los valores cuantitativos de correlación entre varibles, también podemos analizar nuestros datos con gráficos como los mapas de calor. Los mapas de calor o *heat maps* son representaciones gráficas que nos permiten observar la correlación entre variables (descriptores) evitando así ruido e información redundante.

El mapa de calor (<mark style="color:blue;">Figura 7</mark>) es una representación gráfica de los valores de la matriz de correlación, donde los valores más altos se muestran en tonos más oscuros y los valores más bajos en tonos más claros. El uso de un mapa de calor facilita la identificación visual de las correlaciones más altas entre las variables y ayuda a identificar las variables redundantes.

<figure><img src="/files/iRy8tJkZtapELOq8CP2U" alt="" width="563"><figcaption><p><strong>Figura 7.</strong> Mapa de calor.</p></figcaption></figure>

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

* Healy K (2018). [Data Visualization. A practical introduction](https://socviz.co/). Princeton University Press.
* Salazar C, del Castillo S (2018). [Fundamentos básicos de estadística](http://librodigital.sangregorio.edu.ec/librosusgp/B0009.pdf).&#x20;
* Allen M, Poggiali D, Whitaker K, Marshall TR, van Langen J, Kievit RA (2021). [Raincloud plots: a multi-platform tool for robust data visualization](https://pubmed.ncbi.nlm.nih.gov/31069261/). *Wellcome Open Res*. 21:63. doi: 10.12688/wellcomeopenres.15191.2.&#x20;
* Scaling of Data. <http://www.statistics4u.com/fundstat_eng/cc_scaling.html> Fecha de acceso: Enero de 2024.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://difacquim.gitbook.io/quimioinformatica/6.-analisis-y-visualizacion-de-informacion-quimica/6.1-descriptores-moleculares/6.1.2-principios-para-el-analisis-de-bases-de-datos-moleculares.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
