PCA分析及CNS级别作图

 

从这节开始,就逐渐涉及转录组的基本可视化了,我们的可视化要做到CNS级别的图,争取做好分析,一步到位,让您有真正的收获!

PCA(主成分分析),具体的原理就不说了,自行百度。简单理解,PCA就是降维,将多维数据在2为平面理解和可视化。在转录组中的作用则是可以看出样本组间是否有差异,或者样本的一致性。组间差异大则两组分的开,反之则是差别不是很大。

示例数据用上节下载的GSE125424芯片数据表达矩阵,读入数据,并对数据进行初步的处理。


setwd("F:/生物信息学")
A <- read.table("GSE125424_series_matrix.txt",header = T,
                row.names = 1,sep = "\t",comment.char = "!")#这里注意,下载的芯片数据开有结尾包含有注释行,都是以!开头,所以要去除这些行
data <- t(A)#PCA分析需要将表达矩阵转置   

图片

PCA分析很简单,只需要一个函数就可以搞定。prcomp()就可以,然后导出分析结果。

###PCA分析
data.pca <- prcomp(data, scale. = T)  #这是后续作图的文件
#输出特征向量
write.table(data.pca$rotation, file="PC.xls", quote=F, sep = "\t")
#输出新表
write.table(predict(data.pca), file="newTab.xls", quote=F, sep = "\t")
#输出PC比重
pca.sum=summary(data.pca)
write.table(pca.sum$importance, file="importance.xls", quote=F, sep = "\t")

接着就是PCA分析结果的可视化了,这里我们提供了两种方法。

1、factoextra包

加载包:

library(factoextra)

设置分组:

group=c(rep("Control",3),rep("Test",3))

可视化,由于factoextra是ggplot2的,所以在画完图后可以用ggplot2的方式进行修饰。

fviz_pca_ind(data.pca,
             col.ind=group,
             mean.point=F,
             addEllipses = T, 
             legend.title="Groups",
             ellipse.type="confidence",
             ellipse.level=0.9,
             palette = c("#CC3333", "#339999"))+ #Cell配色哦
  theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加个边框

图片

结果很完美,非常满意!

2、ggbiplot包

看这包的名字就知道和ggplot2脱不了干系,先安装:

ibrary(devtools)
install_github("vqv/ggbiplot")
library(ggbiplot)

画图,画图数据和上一个一样:

ggbiplot(data.pca,obs.scale = 1,var.scale = 1,
         groups = group,ellipse = T,var.axes = F) +
  scale_color_brewer(palette = "Set1")  +
  theme(legend.direction = 'horizontal',legend.position = 'top') +
  geom_vline(xintercept = c(0), linetype = 6,color = "black") +
  geom_hline(yintercept = c(0),linetype = 6,color = "black") +
  theme_bw() + theme(panel.grid = element_line(colour = NA))

图片

同样看起来非常完美,赏心悦目有没有!

PCA分析和作图就是这么简单,你学会了吗?

### 使用PCA进行绘图的方法 #### R语言中的PCA绘图示例 在R语言中,可以通过`prcomp()`函数执行主成分分析PCA),并利用多种图形函数来展示结果。例如,对于一个数据框`data`,可以先调用`prcomp()`来进行PCA处理: ```r pca_result <- prcomp(data[, c("col1", "col2", "col3")], scale. = TRUE) summary(pca_result) ``` 为了更好地理解PCA的结果,通常会创建散点图以显示前两个主成分之间的关系[^1]。 接着,可以根据PCA对象生成二或三的散点图,以便直观地观察数据结构的变化趋势。如果想要进一步增强图表的表现力,则可以在图中标记不同的类别或者添加额外的信息层,比如置信区间等[^4]。 #### Python中的PCA绘图示例 而在Python环境下,借助于流行的机器学习库Scikit-Learn以及Matplotlib,同样能够轻松完成相似的任务。这里给出一段完整的代码片段用于演示如何基于给定的数据集构建PCA模型,并将其投影到二空间内展现出来[^2]: ```python from sklearn.decomposition import PCA import matplotlib.pyplot as plt import numpy as np # 假设X是我们要分析的数据矩阵 pca = PCA(n_components=2) # 设置保留下来的主成分数目为2 principalComponents = pca.fit_transform(X) plt.figure() plt.scatter(principalComponents[:, 0], principalComponents[:, 1]) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.title('2 component PCA') plt.show() ``` 此外,当涉及到多分类问题时,还可以考虑引入颜色编码机制区分各个群体;而对于连续变量的情况,则可能更适合采用渐变色彩方案表示数值大小差异。值得注意的是,在某些应用场景下,除了简单地呈现点云之外,人们往往也希望能够描绘出围绕着每一群体中心位置周围的概率密度轮廓——即所谓的“置信椭圆”。这种做法不仅有助于揭示潜在模式的存在与否,而且还能提供有关离群值检测方面的线索[^3]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值