前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现单细胞测序的表达矩阵复原

R语言实现单细胞测序的表达矩阵复原

作者头像
一粒沙
发布2019-09-12 15:28:33
3K0
发布2019-09-12 15:28:33
举报
文章被收录于专栏:R语言交流中心R语言交流中心
单细胞测序成为当下热门领域,很多新的观点以及新的机制通过单细胞测序得到确认以及放大。但是单细胞测序同时存在很大的噪音,因此如何校正单细胞测序所带来的噪音也成为研究的重点。故学者们开发了很多相应的算法去解决这个问题例如:MAGIC,scImpute等,今天给大家介绍另外一个在R语言中实现的算法SAVER,于2018年发表在nature method:

此包的安装很简单那就是:

代码语言:javascript
复制
Install.packages(“SAVER”)

接下来就是其使用,因为其包含的函数很少,我们主要看下主函数saver的相关系数:

主要的参数:

Do.fast 指是否展示计算过程中的参数显示,默认是TRUE。

Npred 指调用的进程数。

Pred.cells,pred.genes 指需要恢复的特定样本或者特定基因。

Pred.genes.only 指是否对仅特定的基因进行评估。

Estimates.only 指只是显示评估后的表达矩阵。

接下来我们就直接进行实例讲解:

数据的载入,此包的数据输入主要是各基因的reads数:

首先要下载所需要的示例数据,下载地址:https://storage.googleapis.com/linnarsson-lab-www-blobs/blobs/cortex/expression_mRNA_17-Aug-2014.txt

接下来就是数据的载入:

代码语言:javascript
复制
library(SAVER)
data.path <-"expression_mRNA_17-Aug-2014.txt"
# Need to remove first 10 rows of metadata
raw.data <- read.table(data.path, header= FALSE, skip = 11, row.names = 1, check.names = FALSE)
cortex <- as.matrix(raw.data[, -1])
cellnames <- read.table(data.path, skip= 7, nrows = 1, row.names = 1, stringsAsFactors = FALSE)
colnames(cortex) <- cellnames[-1]

然后是模型的构建:

我们这次选择的运行环境是ubuntu系统下的3.6.1版本的R语言:

代码语言:javascript
复制
cortex.saver <- saver(cortex, ncores =12)

下图是计算所调用的进程数:

最后我们看下结果的信息:

代码语言:javascript
复制
str(cortex.saver)

上图所包含的主要参数信息如下:

当然还可以对指定的基因集进行评估:

代码语言:javascript
复制
genes <- c("Thy1","Mbp", "Stim2", "Psmc6", "Rps19")
genes.ind <- which(rownames(cortex) %in%genes)
 
# Generate predictions for those genes andreturn entire dataset
cortex.saver.genes <- saver(cortex,pred.genes = genes.ind,
                            estimates.only =TRUE)
代码语言:javascript
复制
cortex.saver.genes.only <- saver(cortex,pred.genes = genes.ind,
                                pred.genes.only = TRUE, estimates.only = TRUE)

如果基因数很多,但是呢计算机内存不够的话,此包还提供了一个功能那就是分离后再合并计算结果:

代码语言:javascript
复制
                                                       
saver1 <- saver(cortex, pred.genes =1:5, pred.genes.only = TRUE,
                do.fast = FALSE)
saver2 <- saver(cortex, pred.genes =6:10, pred.genes.only = TRUE,
                do.fast = FALSE)
saver3 <- saver(cortex, pred.genes =11:15, pred.genes.only = TRUE,
                do.fast = FALSE)
 
 
saver.all <- combine.saver(list(saver1,saver2, saver3))

正如他文章中所提到的还可以对基因和样本进行相关性分析:

代码语言:javascript
复制
saver1.cor.gene <- cor.genes(saver1)

saver1.cor.cell <- cor.cells(saver1)

至此这个包就介绍完毕,虽然很简单,但是拼的是计算机性能,建议直接使用Linux的系统下的R语言,因为widnows容易中断。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档