Introducción

En esta actividad realizaremos un Análisis de Componentes Principales a partir de un estudio en el que se han medido la expresión de los genes sobre distintos tumores.

Cargamos datos y librerias

library(FactoMineR)
library(factoextra)
## Cargando paquete requerido: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
df <- read.csv("genes_tumores.csv")
df <- df[, -1] # elimino la columna tumorA,B,C .... Solo variables continuas
head(df)
##        gene1      gene2      gene3      gene4      gene5       gene6
## 1  0.9323190  1.2113278  0.5383686 -0.3804224 -0.5994117 -0.46955658
## 2  1.0613959  0.7762260  0.5098463  0.1574786 -0.4035551 -0.50984955
## 3  0.4637662  1.1793956  1.1355446  0.1548933 -0.7319309 -0.42653172
## 4 -1.6228992 -0.7777483 -0.7868679 -1.1771294 -0.3007739  0.11591201
## 5 -1.1035586 -0.9511971 -0.9131699 -1.0484974 -0.3974149 -0.35492610
## 6 -1.0950318 -0.9722049 -0.9504966 -0.8261171 -0.5278552 -0.06271155
##         gene7       gene8      gene9    gene10    gene11    gene12
## 1 -1.06758821 -1.23610151  0.1145246 0.8975893 1.4624217 1.1259876
## 2 -1.31883371 -0.87248832 -0.2017863 1.5210825 1.1883528 0.9711843
## 3 -1.03071756 -1.05634140 -0.2747214 1.0444794 0.7132720 0.7550505
## 4  0.19523024  0.15654077  0.7884622 0.9194994 1.0616514 0.9178455
## 5  0.23230945 -0.22601482  1.0759271 1.1158295 0.8121759 1.1303828
## 6 -0.04847066  0.05124849  1.3769491 0.8643747 0.9175155 0.6019269

Aplicamos PCA

pca_genes <- PCA(df, scale.unit = T, graph = F) # pasamos "df" como parametro, Decimos que nos Normalize los datos, aunque no es necesario, ya que aplicamos anteriormente log2 a los datos, graph = F no queremos mostrar gráficos, lo haremos más adelante
summary((pca_genes))
## 
## Call:
## PCA(X = df, scale.unit = T, graph = F) 
## 
## 
## Eigenvalues
##                        Dim.1   Dim.2   Dim.3   Dim.4   Dim.5   Dim.6   Dim.7
## Variance               8.183   3.391   0.132   0.095   0.070   0.053   0.050
## % of var.             68.191  28.260   1.098   0.789   0.579   0.443   0.417
## Cumulative % of var.  68.191  96.451  97.549  98.338  98.918  99.361  99.778
##                        Dim.8   Dim.9
## Variance               0.017   0.009
## % of var.              0.144   0.079
## Cumulative % of var.  99.921 100.000
## 
## Individuals
##            Dist    Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr
## 1      |  2.713 | -1.819  4.043  0.450 |  1.903 10.682  0.492 | -0.141  1.513
## 2      |  2.594 | -1.543  2.910  0.354 |  1.928 10.962  0.552 |  0.485 17.858
## 3      |  2.494 | -1.071  1.401  0.184 |  2.085 12.822  0.699 | -0.654 32.420
## 4      |  3.363 | -2.178  5.798  0.419 | -2.485 18.207  0.546 | -0.220  3.678
## 5      |  3.464 | -2.656  8.622  0.588 | -2.160 13.763  0.389 |  0.186  2.614
## 6      |  3.391 | -2.363  6.824  0.486 | -2.352 16.316  0.481 |  0.096  0.694
## 7      |  4.218 |  4.100 20.541  0.945 | -0.717  1.518  0.029 | -0.470 16.784
## 8      |  4.199 |  4.168 21.230  0.985 | -0.271  0.216  0.004 | -0.032  0.079
## 9      |  4.711 |  4.662 26.566  0.980 | -0.215  0.136  0.002 |  0.515 20.123
## 10     |  2.697 | -1.300  2.065  0.232 |  2.284 15.377  0.717 |  0.236  4.238
##          cos2  
## 1       0.003 |
## 2       0.035 |
## 3       0.069 |
## 4       0.004 |
## 5       0.003 |
## 6       0.001 |
## 7       0.012 |
## 8       0.000 |
## 9       0.012 |
## 10      0.008 |
## 
## Variables (the 10 first)
##           Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr   cos2  
## gene1  |  0.530  3.434  0.281 |  0.808 19.260  0.653 |  0.198 29.684  0.039 |
## gene2  |  0.577  4.066  0.333 |  0.800 18.876  0.640 | -0.093  6.571  0.009 |
## gene3  |  0.595  4.321  0.354 |  0.787 18.268  0.620 | -0.100  7.620  0.010 |
## gene4  |  0.910 10.117  0.828 |  0.372  4.079  0.138 |  0.019  0.279  0.000 |
## gene5  |  0.949 11.014  0.901 | -0.220  1.433  0.049 |  0.191 27.663  0.036 |
## gene6  |  0.917 10.278  0.841 | -0.378  4.217  0.143 | -0.040  1.211  0.002 |
## gene7  |  0.707  6.114  0.500 | -0.674 13.390  0.454 | -0.102  7.833  0.010 |
## gene8  |  0.781  7.449  0.610 | -0.611 11.002  0.373 |  0.092  6.401  0.008 |
## gene9  | -0.867  9.185  0.752 | -0.449  5.952  0.202 |  0.051  1.980  0.003 |
## gene10 | -0.963 11.328  0.927 |  0.198  1.154  0.039 |  0.064  3.090  0.004 |

Representación Gráfica de la varianza explicada para cada dimensión

fviz_eig(pca_genes,addlabels = T, ylim = c(0,100), barfill = "red")

Tal y como apreciamos en nuestro Scree plot , la primera componente PCA1 explica el 68,2% de la variabilidad total de los datos, mientras que la segunda componente PCA2 explica el 28,3%. Entre las dos componentes principales PCA1 y PCA2 explican un total del 96% de la variablidad total de los datos.

Visualización Biplot

fviz_pca_biplot(pca_genes, repel = T)

Determinación del número de Clústers

scores <- pca_genes$ind$coord
scores_1_2 <- scores[,1:2]


fviz_nbclust(scores_1_2,FUNcluster = kmeans,method="wss", k.max = 8 )

Aplicando la regla del codo, podemos ver cómo la pendiente cae de forma pronunciada hasta el clúster 3 y, a partir de ahí, se aplana de golpe, lo cual indica que el número óptimo de clústeres para diferenciar los grupos es 3.

Visualización Biplot con envoltura en los clústers

set.seed(12)
km <- kmeans(scores_1_2,centers = 3,nstart = 25)

fviz_pca_biplot(pca_genes, habillage = factor(km$cluster),addEllipses = TRUE, ellipse.type = "convex", palette = "Dark2",repel = TRUE)

Interpretación de los resultados

En el siguiente Biplot PCA podemos observar inicialmente tres grupos o clústers claramente diferenciados, lo que indica que las observaciones dentro de cada grupo presentan una alta similitud en cuanto a la expresión de sus genes, es decir, cada grupo comparte patrones comunes de expresión genética.

Nuestro Analisis de Componentes muestra que para la PCA1 que tiene un 68% de varianza total de los datos, esta separando princilmente el grupo 1 y 3 (comparten valores negativos en el eje PCA1 o DIM1) del grupo 2 (valores positivos en Dim1) , este último contribuye significativamente en la PC1 con valores CTR 20.541, 21.230 y 26.566 respectivamente.

En cambio, para la creación de PCA2 , son los grupos 1 y 3 los que más contribuyen a esta componente.Teniendo el Grupo 3 valores positivos, distinguiéndose del Grupo 1 que tienen valores negativos en dicha componente.

Para el resto de variables GEN1,2,3,4 , están alejadas de los diferentes clústers, y salvo para el cluster 1 que tendrían una correlación negativa con respecto al GEN4, no contribuiría significativamente para el resto de clústers.