前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >immunedeconv包与Xcell批量处理文件

immunedeconv包与Xcell批量处理文件

作者头像
科研菌
发布2021-02-19 09:43:06
1.8K0
发布2021-02-19 09:43:06
举报
文章被收录于专栏:科研菌

一、immunedeconv包的下载与安装

  • immunedeconv包:用于根据组织RNA测序数据估算免疫细胞组分的计算方法。该包的资源不同于一般的R包,并没有储存在CRAN或者bioconductor中。在github中查找immunedeconv,搜索页面出来的第一个就是可供R语言调用的immunedeconv包。点击进入便可以找到immunedeconv包的相关内容,以及下载、使用等相关信息。

点击进入,页面的最下方就是immunedeconv包下载的源代码,这是调用remote包中的install.github()函数进行下载。

执行命令如下:

网络差!以上代码执行失败,另寻他法。

  • 尝试1:通过各种查阅资料,使用devtool包中的install.github(),依然报错了,使用remotes::install_github("icbi-lab/immunedeconv")devtool::install.github("icbi-lab/immunedeconv"),都出现下面的错误:

最终,多次努力之下如愿下载、安装、成功加载immunedeconv包(以下展示)。具体的过程就不再展示了,因为下载immunedeconv包需要的依赖包较多,而每个人的计算机已有的内置包不一样,所以每个人可能会遇到的一些问题不一样。总之,报错提示差什么就补什么。 执行命令如下:

代码语言:javascript
复制
#########安装immunedeconv##########
library(devtools)
Sys.setlocale(category = "LC_ALL",locale = "us")  #调整内码格式
install_github("icbi-lab/immunedeconv")

library("immunedeconv")

ls("package:immunedeconv")
# [1] "dataset_racle"
# [2] "deconvolute"
# [3] "deconvolute_cibersort"
# [4] "deconvolute_epic"
# [5] "deconvolute_mcp_counter"
# [6] "deconvolute_quantiseq"
# [7] "deconvolute_quantiseq.default"
# [8] "deconvolute_timer"
# [9] "deconvolute_xcell"
# [10] "deconvolution_methods"
# [11] "eset_to_matrix"
# [12] "get_all_children"
# [13] "make_bulk_eset"
# [14] "make_random_bulk"
# [15] "map_cell_types"
# [16] "map_result_to_celltypes"
# [17] "scale_to_million"
# [18] "set_cibersort_binary"
# [19] "set_cibersort_mat"
# [20] "timer_available_cancers"
# [21] "xCell.data"

二、 deconvolute_xcell()的文件分析

deconvolute_xcell( ) 是immunedeconv包中的一种基于基因表达标志,用于评估混合组织中的64种免疫和基质细胞类型组成的计算方法。故首先用它来分析手头的已有bulk array基因表达矩阵。

第一步:准备表达矩阵(行名已注释为gene symbol,与immunedeconv包中要求的hugo 基因名一致;列名为样品名)并写入R.

测试读取出内容如下:

第二步:执行deconvolute_xcell()并查看结果

第三步:将结果保存为.csv文件。

三、for循环进行文件批量处理

代码语言:javascript
复制
#1.将所有要分析的同类型文件放在同一个文件夹下,将其设置为当前工作路径
#1.1获取该文件夹下的文件名和文件个数(我这里共有6个文件)
files<-dir()

files
# [1] "GSE10186_annotated_exprSet.txt"         "GSE116174_annotated_exprSet.txt"
# [3] "GSE14520_GPL3921_annotated_exprSet.txt" "GSE14520_GPL571_annotated_exprSet.txt"
# [5] "GSE364_annotated_exprSet.txt"           "GSE54236_annotated_exprSet.txt"

n <- length(files)  #6L

#2. for循环语句
#2.1 简单试一试for循环是否可以正确执行。这里用的是批量提取文件的名称,并进行重命名
for ( i in 1:n){
  print(paste(strsplit(files[i],"_")[[1]][1],"_",i,"_Xcell.csv"))
}


#2.2 正式进入循环:读入文件-执行deconvolute_xcell()-写出.csv文件,共循环6次。
for ( i in 1:n){
  temptable<-read.table(file = files[i],header = TRUE,
                      sep = "\t",
                       row.names = 1,
                      quote = "")
  deconvolute_xcell(gene_expression_matrix = temptable ,
                    arrays = TRUE) %>%
    write.csv(file = paste(strsplit(files[i],"[_]")[[1]][1],"_",i,"_Xcell.csv"))

}

最终的结果:

四、批量处理过程中遇到的问题及解决方法

尽管自己认为for循环已经写得很完美了,但刚开始其实并没有想象中的那么顺利,囧...... 文件内容不变,还是刚开始的文件。但是系统一直报错:大意是结果只返回了第一条。在读文件的时候遇到了问题。具体什么原因,我就不得而知了,只有一步一步来尝试。

解决思路:

  1. 为什么结果只返回第一条?试一试循环,看是不是循环出问题了。可以看出,循环没有问题,因为可以输入6个结果;故可排除循环出问题的可能性。问题就出在读入文件-执行deconvolute_xcell()-写入.csv文件中。
  1. 既然不能循环,那就只有拆分开来处理。如下:依次处理,依次看每一步的执行情况。 第一个顺利。

oh......第二个好像出问题了?原来for循环的问题出现在这里。

  1. 打开原文件查看,肉眼并不能发现数据格式问题。既然它继续提示字符带有引号(尽管在数据处理之前我已经统一去除了引号,这里为什么会这样提示,我也不知道原因),那就去掉引号吧。 read.table()quote=""参数可以用于指定包围字符型数据的字符。

增加该参数后,再次执行第二个文件的数据处理,结果就很顺利。在后面的4个文件中,也使用该参数,鉴定完毕,其他几个文件没有问题。

  1. 最后再次尝试for循环:在for循环中添加该参数,再次执行for循环。结果不出意料,非常顺利。就是我上面展示的“2.2 正式进入循环:读入文件-执行deconvolute_xcell()-写出.csv文件,共循环6次”后的结果了。
  2. 结论:在执行for循环的时候,例如从第1个文件到第20个文件,如果在第5个文件处出错,那么系统就可以执行到第4个文件,然后提示返回第1个文件,故我们需要解决第5个文件的问题。唯有解决第5个文件的问题,或者跳过第5个文件,才可以继续执行第6个文件到第20个文件的命令。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研菌 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、immunedeconv包的下载与安装
  • 二、 deconvolute_xcell()的文件分析
    • 三、for循环进行文件批量处理
      • 四、批量处理过程中遇到的问题及解决方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档