免疫細(xì)胞組分:immunedeconv包與Xcell批量處理文件
一、immunedeconv包的下載與安裝
immunedeconv包:用于根據(jù)組織RNA測(cè)序數(shù)據(jù)估算免疫細(xì)胞組分的計(jì)算方法。該包的資源不同于一般的R包,并沒有儲(chǔ)存在CRAN或者bioconductor中。在github中查找immunedeconv,搜索頁面出來的第一個(gè)就是可供R語言調(diào)用的immunedeconv包。點(diǎn)擊進(jìn)入便可以找到immunedeconv包的相關(guān)內(nèi)容,以及下載、使用等相關(guān)信息。
點(diǎn)擊進(jìn)入,頁面的最下方就是immunedeconv包下載的源代碼,這是調(diào)用remote包中的install.github()函數(shù)進(jìn)行下載。
執(zhí)行命令如下:
install.packages("remotes")
remotes::install_github("icbi-lab/immunedeconv"
網(wǎng)絡(luò)差!以上代碼執(zhí)行失敗,另尋他法。
嘗試1:通過各種查閱資料,使用devtool包中的install.github(),依然報(bào)錯(cuò)了,使用remotes::install_github("icbi-lab/immunedeconv")和devtool::install.github("icbi-lab/immunedeconv"),都出現(xiàn)下面的錯(cuò)誤:
嘗試2:繼續(xù)百度,找到一個(gè)類似的情況,"invalid multibyte string"提示此處存在錯(cuò)誤編碼字符。在這里附上原文標(biāo)題,需要的朋友們可以參考一下,簡(jiǎn)書《[R|報(bào)錯(cuò)解決]Error in nchar(object, type = "chars") : invalid multibyte string, element 1》。
最終,多次努力之下如愿下載、安裝、成功加載immunedeconv包(以下展示)。具體的過程就不再展示了,因?yàn)橄螺dimmunedeconv包需要的依賴包較多,而每個(gè)人的計(jì)算機(jī)已有的內(nèi)置包不一樣,所以每個(gè)人可能會(huì)遇到的一些問題不一樣?傊,報(bào)錯(cuò)提示差什么就補(bǔ)什么。 執(zhí)行命令如下:
#########安裝immunedeconv##########
library(devtools)
Sys.setlocale(category = "LC_ALL",locale = "us") #調(diào)整內(nèi)碼格式
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包中的一種基于基因表達(dá)標(biāo)志,用于評(píng)估混合組織中的64種免疫和基質(zhì)細(xì)胞類型組成的計(jì)算方法。故首先用它來分析手頭的已有bulk array基因表達(dá)矩陣。
第一步:準(zhǔn)備表達(dá)矩陣(行名已注釋為gene symbol,與immunedeconv包中要求的hugo 基因名一致;列名為樣品名)并寫入R.
temptable<-read.table(file ="GSE10186_annotated_exprSet.txt" ,header = TRUE,sep = " ",row.names = 1)
測(cè)試讀取出內(nèi)容如下:
第二步:執(zhí)行deconvolute_xcell()并查看結(jié)果
abc <- deconvolute_xcell(gene_expression_matrix = temptable ,arrays = TRUE)
knitr::kable(abc[1:5,1:5], digits=2)
# | | GSM256425| GSM256426| GSM256427| GSM256428| GSM256429|
# |:----------|---------:|---------:|---------:|---------:|---------:|
# |aDC | 0.00| 0.03| 0.03| 0.04| 0.04|
# |Adipocytes | 0.07| 0.09| 0.09| 0.08| 0.10|
# |Astrocytes | 0.00| 0.00| 0.00| 0.00| 0.00|
# |B-cells | 0.02| 0.00| 0.00| 0.07| 0.00|
# |Basophils | 0.00| 0.13| 0.05| 0.06| 0.14|
第三步:將結(jié)果保存為.csv文件。
write.csv(file = "GSE10186_Xcell.csv")
三、for循環(huán)進(jìn)行文件批量處理#
1.將所有要分析的同類型文件放在同一個(gè)文件夾下,將其設(shè)置為當(dāng)前工作路徑
#1.1獲取該文件夾下的文件名和文件個(gè)數(shù)(我這里共有6個(gè)文件)
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循環(huán)語句
#2.1 簡(jiǎn)單試一試for循環(huán)是否可以正確執(zhí)行。這里用的是批量提取文件的名稱,并進(jìn)行重命名
for ( i in 1:n){
print(paste(strsplit(files[i],"_")[[1]][1],"_",i,"_Xcell.csv"))
}
#2.2 正式進(jìn)入循環(huán):讀入文件-執(zhí)行deconvolute_xcell()-寫出.csv文件,共循環(huán)6次。
for ( i in 1:n){
temptable<-read.table(file = files[i],header = TRUE,
sep = " ",
row.names = 1,
quote = "")
deconvolute_xcell(gene_expression_matrix = temptable ,
arrays = TRUE) %>%
write.csv(file = paste(strsplit(files[i],"[_]")[[1]][1],"_",i,"_Xcell.csv"))
}
最終的結(jié)果:
四、批量處理過程中遇到的問題及解決方法
盡管自己認(rèn)為for循環(huán)已經(jīng)寫得很完美了,但剛開始其實(shí)并沒有想象中的那么順利,囧…… 文件內(nèi)容不變,還是剛開始的文件。但是系統(tǒng)一直報(bào)錯(cuò):大意是結(jié)果只返回了第一條。在讀文件的時(shí)候遇到了問題。具體什么原因,我就不得而知了,只有一步一步來嘗試。
解決思路:
為什么結(jié)果只返回第一條?試一試循環(huán),看是不是循環(huán)出問題了?梢钥闯,循環(huán)沒有問題,因?yàn)榭梢暂斎?個(gè)結(jié)果;故可排除循環(huán)出問題的可能性。問題就出在讀入文件-執(zhí)行deconvolute_xcell()-寫入.csv文件中。
既然不能循環(huán),那就只有拆分開來處理。如下:依次處理,依次看每一步的執(zhí)行情況。 第一個(gè)順利。
oh......第二個(gè)好像出問題了?原來for循環(huán)的問題出現(xiàn)在這里。
打開原文件查看,肉眼并不能發(fā)現(xiàn)數(shù)據(jù)格式問題。既然它繼續(xù)提示字符帶有引號(hào)(盡管在數(shù)據(jù)處理之前我已經(jīng)統(tǒng)一去除了引號(hào),這里為什么會(huì)這樣提示,我也不知道原因),那就去掉引號(hào)吧。 read.table()中quote=""參數(shù)可以用于指定包圍字符型數(shù)據(jù)的字符。
增加該參數(shù)后,再次執(zhí)行第二個(gè)文件的數(shù)據(jù)處理,結(jié)果就很順利。在后面的4個(gè)文件中,也使用該參數(shù),鑒定完畢,其他幾個(gè)文件沒有問題。
最后再次嘗試for循環(huán):在for循環(huán)中添加該參數(shù),再次執(zhí)行for循環(huán)。結(jié)果不出意料,非常順利。就是我上面展示的“2.2 正式進(jìn)入循環(huán):讀入文件-執(zhí)行deconvolute_xcell()-寫出.csv文件,共循環(huán)6次”后的結(jié)果了。
結(jié)論:在執(zhí)行for循環(huán)的時(shí)候,例如從第1個(gè)文件到第20個(gè)文件,如果在第5個(gè)文件處出錯(cuò),那么系統(tǒng)就可以執(zhí)行到第4個(gè)文件,然后提示返回第1個(gè)文件,故我們需要解決第5個(gè)文件的問題。唯有解決第5個(gè)文件的問題,或者跳過第5個(gè)文件,才可以繼續(xù)執(zhí)行第6個(gè)文件到第20個(gè)文件的命令。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
11月20日火熱報(bào)名中>> 2024 智能家居出海論壇
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
推薦專題
- 1 腦機(jī)接口芯片,華為出了新專利!
- 2 地平線開啟配售,阿里百度各砸5000萬美金,市值最高超500億
- 3 小馬智行沖刺納斯達(dá)克:或成「全球Robotaxi第一股」,兩年半營(yíng)收約12億元
- 4 云從科技:營(yíng)收低迷與虧損加劇,2025年盈利目標(biāo)挑戰(zhàn)重重
- 5 AI奇跡:域名賣爆,無名小島意外賺2億
- 6 逆境求生,泄密風(fēng)波中的高精地圖
- 7 特斯拉無人駕駛來了,馬斯克的餅卻不香了
- 8 未來的大模型,或許都是A卡來算的?
- 9 2024量子計(jì)算發(fā)展態(tài)勢(shì)研究報(bào)告
- 10 科技巨頭加速破冰,京東物流將接入淘寶
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市