细胞注释方法

这一次的问题是:分析单细胞转录组一定要用R包吗?

之前在 差异分析及可视化 中使用monocle的plot_cell_clusters函数画出了PBMC的第4和第10群两种不同T细胞的差异。那么这个分析一定要用包装好的R包吗?不是的,即使不使用别人做的R包,自己也能利用作图原理画出来
图片

问题的重点不在使用什么包,而是做出这个图的原理是什么

就上面这个图而言,为了分群,首先要有一个表达矩阵,还要设置分群信息(例如上面我们就明确知道要分成两群),然后还要进行PCA的线性降维和tSNE进一步非线性降维。有了这些认识,那么首先使用普通的函数来尝试一下
第一种方式:不使用R包,使用常规函数
先加载表达矩阵和分群信息

1options(warn=-1) 
 2load('patient1.PBMC_RespD376_for_DEG.Rdata')
 3# 其中保存了表达矩阵(count_matrix)和分群的信息(cluster)
 4> count_matrix[1:4,1:4]
 5              AAACCTGCAACGATGG.3 AAACCTGGTCTCCATC.3 AAACGGGAGCTCCTTC.3 AAAGCAATCATATCGG.3
 6RP11-34P13.7                   0                  0                  0                  0
 7FO538757.2                     0                  0                  0                  0
 8AP006222.2                     0                  0                  0                  0
 9RP4-669L17.10                  0                  0                  0                  0
10> table(cluster)
11cluster
12  4  10 
13636 170 

根据分群因子,赋予不同颜色

1# 根据分群因子,赋予不同颜色
2color <- cluster
3levels(color) <- rainbow(2)
4> table(color)
5color
6#FF0000FF #00FFFFFF 
7      636       170 

对表达矩阵过滤

1# 首先是对基因过滤,根据标准差将那些在细胞中的表达量没有变化的基因去掉
2choosed_count <- count_matrix
3choosed_count <- choosed_count[apply(choosed_count, 1, sd)>0,]
4# 看到过滤了5000多个基因

图片

1# 然后选择变化差异最明显的前1000个基因
2choosed_count <- choosed_count[names(head(sort(apply(choosed_count, 1, sd),decreasing = T),1000)),]

然后进行PCA分析

对行进行操作,因此需要转置,另外进行标准化

1pca_out <- prcomp(t(choosed_count),scale. = T)
2library(ggfortify)
3autoplot(pca_out, col=color) +theme_classic()+ggtitle('PCA plot')

图片

PCA的全部结果可以通过str(pca_out)了解,其中坐标的信息在pca_out$x

1>  pca_out$x[1:3,1:3]
2                          PC1      PC2        PC3
3AAACCTGCAACGATGG.3 -1.4940046 6.707691 -0.7655250
4AAA
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值