点击进入,页面的最下方就是immunedeconv包下载的源代码,这是调用remote包中的install.github()函数进行下载。
执行命令如下:
网络差!以上代码执行失败,另寻他法。
install.github()
,依然报错了,使用remotes::install_github("icbi-lab/immunedeconv")
和devtool::install.github("icbi-lab/immunedeconv")
,都出现下面的错误:
最终,多次努力之下如愿下载、安装、成功加载immunedeconv包(以下展示)。具体的过程就不再展示了,因为下载immunedeconv包需要的依赖包较多,而每个人的计算机已有的内置包不一样,所以每个人可能会遇到的一些问题不一样。总之,报错提示差什么就补什么。 执行命令如下:
#########安装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( ) 是immunedeconv包中的一种基于基因表达标志,用于评估混合组织中的64种免疫和基质细胞类型组成的计算方法。故首先用它来分析手头的已有bulk array基因表达矩阵。
第一步:准备表达矩阵(行名已注释为gene symbol,与immunedeconv包中要求的hugo 基因名一致;列名为样品名)并写入R.
测试读取出内容如下:
第二步:执行deconvolute_xcell()
并查看结果
第三步:将结果保存为.csv文件。
#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循环已经写得很完美了,但刚开始其实并没有想象中的那么顺利,囧...... 文件内容不变,还是刚开始的文件。但是系统一直报错:大意是结果只返回了第一条。在读文件的时候遇到了问题。具体什么原因,我就不得而知了,只有一步一步来尝试。
解决思路:
oh......第二个好像出问题了?原来for循环的问题出现在这里。
read.table()
中quote=""
参数可以用于指定包围字符型数据的字符。增加该参数后,再次执行第二个文件的数据处理,结果就很顺利。在后面的4个文件中,也使用该参数,鉴定完毕,其他几个文件没有问题。