InicioIA y Aprendizaje AutomáticoAnalizador de Expresión Génica

🧬 Analizador de Expresión Génica — Reducción de Dimensionalidad PCA en Vivo

Observa cómo un Análisis de Componentes Principales real (descomposición en autovalores de la matriz de covarianza) reduce en vivo datos simulados de expresión génica de alta dimensión, proyectando las muestras sobre los componentes de mayor varianza genuinos.

IA y Aprendizaje Automático3DAvanzado60 FPS
ai-genomics-expression-pca ↗ Abrir independiente

Acerca del Analizador de Expresión Génica

Los experimentos reales de expresión génica miden la actividad de miles de genes en muchas muestras — una matriz demasiado grande para observar directamente. El Análisis de Componentes Principales es el clásico primer paso en casi todo pipeline de genómica: encuentra el puñado de combinaciones lineales de genes ("componentes") que capturan la mayor varianza en los datos, de modo que las muestras puedan graficarse en dos o tres dimensiones conservando la estructura biológica dominante, como tipos celulares distintos, subtipos de enfermedad o grupos de tratamiento.

Esta simulación genera un conjunto de datos sintético de expresión génica con estructura correlacionada genuina — un número elegido de "programas de expresión" reales subyacentes que cada muestra activa en distinto grado — y luego calcula la matriz de covarianza real centrada en la media sobre los genes y la diagonaliza con un algoritmo de autovalores de Jacobi construido desde cero que se ejecuta en JavaScript. Los autovalores se ordenan por magnitud, se convierten en porcentaje de varianza explicada para el gráfico de sedimentación, y los autovectores correspondientes se usan para proyectar cada muestra sobre sus tres componentes principales superiores para el diagrama de dispersión 3D en vivo. Como los grupos subyacentes se conocen por construcción, colorear cada punto según su grupo generador real permite observar cómo el PCA logra separar — o, con ruido alto, empieza a fallar en separar — la estructura real del ruido.

Preguntas frecuentes

¿Qué es el Análisis de Componentes Principales (PCA) y por qué usarlo en datos de expresión génica?

Los conjuntos de datos de expresión génica normalmente miden miles de genes en decenas o cientos de muestras, por lo que cada muestra es un punto en un espacio de muy alta dimensión que es imposible de representar directamente. El PCA encuentra un pequeño conjunto de nuevos ejes — combinaciones lineales de los genes originales — que capturan tanta varianza total en los datos como sea posible, por orden de importancia. Proyectar las muestras sobre los dos o tres primeros de estos ejes (los componentes principales) permite visualizar la estructura dominante en los datos, como grupos de muestras con programas de expresión similares, descartando direcciones que son mayormente ruido.

¿Cómo se calcula la matriz de covarianza y qué representa?

Dadas N muestras cada una con M mediciones génicas, los datos primero se centran restando la expresión media de cada gen en todas las muestras. La matriz de covarianza C es entonces la matriz M×M C = (1/(N−1)) XᶜᵀXᶜ, donde Xᶜ es la matriz de datos centrada N×M. La entrada C[i][j] mide cómo varían juntos el gen i y el gen j entre muestras: un valor positivo grande significa que los dos genes tienden a sobreexpresarse o subexpresarse juntos, un valor negativo grande significa que se mueven en direcciones opuestas, y un valor cercano a cero significa que varían de forma independiente. Los componentes principales del PCA son exactamente los autovectores de esta matriz de covarianza.

¿Cómo encuentra el algoritmo de autovalores de Jacobi los autovectores y autovalores?

El algoritmo de autovalores de Jacobi diagonaliza una matriz simétrica real aplicando repetidamente rotaciones que anulan un elemento fuera de la diagonal a la vez. Cada rotación se elige con un ángulo φ = 0.5·atan2(2a_pq, a_qq − a_pp) de modo que, tras aplicarla, la entrada (p,q) se vuelve exactamente cero, mientras que el producto acumulado de todas las matrices de rotación converge a los autovectores y la diagonal de la matriz transformada converge a los autovalores. Esta simulación ejecuta barridos cíclicos completos sobre cada par fuera de la diagonal, repitiendo hasta que la norma fuera de la diagonal cae por debajo de una tolerancia estricta — esta es una descomposición en autovalores numérica genuina calculada en JavaScript, no una búsqueda ni una aproximación, y converge a precisión de máquina en unas pocas decenas de barridos para los tamaños de matriz usados aquí.

¿Qué significa el porcentaje de varianza explicada, y cómo se lee el gráfico de sedimentación (scree plot)?

Cada autovalor de la matriz de covarianza equivale a la cantidad de varianza total capturada por su componente principal correspondiente. El porcentaje de varianza explicada para el componente k es simplemente el autovalor_k dividido por la suma de todos los autovalores, expresado como porcentaje. El gráfico de barras de sedimentación muestra estos porcentajes ordenados desde PC1 hacia abajo: una caída pronunciada tras las primeras barras significa que la mayor parte de la estructura en los datos simulados de expresión génica vive en un subespacio de baja dimensión (consistente con un pequeño número de programas de expresión reales subyacentes), mientras que un descenso lento y plano indicaría que los datos se acercan más a ruido no estructurado donde ningún pequeño conjunto de componentes captura mucha señal.

¿Por qué se agrupan los puntos de muestra en el espacio PC1/PC2/PC3?

El conjunto de datos simulado se genera a partir de un pequeño número de programas de expresión génica reales subyacentes — vectores de carga aleatorios en el espacio génico — y cada muestra se construye activando fuertemente el programa de su propio grupo más una pequeña fuga de los demás, y luego añadiendo ruido por gen. Esto incorpora una estructura correlacionada real en los datos brutos en lugar de pura aleatoriedad. Como los componentes principales del PCA son, por construcción, las direcciones de mayor varianza, y las diferencias entre grupos creadas por los programas son la fuente dominante de varianza cuando la relación señal-ruido es razonable, los primeros 2–3 componentes se alinean naturalmente con los ejes que separan los grupos reales — así que al graficar las muestras en el espacio PC y colorearlas por su grupo generador real se muestra visiblemente que el PCA logra recuperar esa estructura.

¿Qué ocurre si aumento el nivel de ruido o el número de programas reales?

Aumentar el nivel de ruido añade perturbaciones aleatorias por gen más grandes sobre la señal del programa real de cada muestra, lo que reduce la brecha entre la varianza intragrupo y la varianza intergrupo; con suficiente ruido, los grupos en el espacio PC se difuminan y el gráfico de sedimentación se aplana porque ninguna dirección destaca por encima del nivel de ruido. Aumentar el número de programas reales subyacentes reparte la misma varianza de señal total entre más direcciones, por lo que se necesitan más componentes antes de que la varianza acumulada explicada se acerque al 100%, y con solo 2–3 componentes principales graficados algunos grupos pueden empezar a superponerse una vez que el número de programas reales supera el número de componentes mostrados.

⚙ Bajo el capó

Un algoritmo de autovalores de Jacobi cíclico diagonaliza la matriz de covarianza genuina centrada en la media de un conjunto de datos de expresión génica sintético y correlacionado — los autovalores se convierten en porcentaje de varianza explicada, los autovectores se convierten en los ejes de proyección, y las muestras terminan en un espacio PC1/PC2/PC3 real.

PCADescomposición en autovaloresMatriz de covarianzaAlgoritmo de JacobiBioinformática

3D · Renderizador Three.js / WebGL · Objetivo de 60 FPS · funciona totalmente en el cliente, sin instalación

¿Qué encontraste?

Añadir pasos de reproducción (opcional)