免疫細(xì)胞組分:immunedeconv包與Xcell批量處理文件
一、immunedeconv包的下載與安裝
immunedeconv包:用于根據(jù)組織RNA測(cè)序數(shù)據(jù)估算免疫細(xì)胞組分的計(jì)算方法。該包的資源不同于一般的R包,并沒(méi)有儲(chǔ)存在CRAN或者bioconductor中。在github中查找immunedeconv,搜索頁(yè)面出來(lái)的第一個(gè)就是可供R語(yǔ)言調(diào)用的immunedeconv包。點(diǎn)擊進(jìn)入便可以找到immunedeconv包的相關(guān)內(nèi)容,以及下載、使用等相關(guān)信息。
點(diǎn)擊進(jìn)入,頁(yè)面的最下方就是immunedeconv包下載的源代碼,這是調(diào)用remote包中的install.github()函數(shù)進(jìn)行下載。
執(zhí)行命令如下:
install.packages("remotes")
remotes::install_github("icbi-lab/immunedeconv"
網(wǎng)絡(luò)差!以上代碼執(zhí)行失敗,另尋他法。
嘗試1:通過(guò)各種查閱資料,使用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包(以下展示)。具體的過(guò)程就不再展示了,因?yàn)橄螺dimmunedeconv包需要的依賴包較多,而每個(gè)人的計(jì)算機(jī)已有的內(nèi)置包不一樣,所以每個(gè)人可能會(huì)遇到的一些問(wèn)題不一樣。總之,報(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ì)算方法。故首先用它來(lái)分析手頭的已有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)語(yǔ)句
#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é)果:
四、批量處理過(guò)程中遇到的問(wèn)題及解決方法
盡管自己認(rèn)為for循環(huán)已經(jīng)寫得很完美了,但剛開(kāi)始其實(shí)并沒(méi)有想象中的那么順利,囧…… 文件內(nèi)容不變,還是剛開(kāi)始的文件。但是系統(tǒng)一直報(bào)錯(cuò):大意是結(jié)果只返回了第一條。在讀文件的時(shí)候遇到了問(wèn)題。具體什么原因,我就不得而知了,只有一步一步來(lái)嘗試。
解決思路:
為什么結(jié)果只返回第一條?試一試循環(huán),看是不是循環(huán)出問(wèn)題了?梢钥闯觯h(huán)沒(méi)有問(wèn)題,因?yàn)榭梢暂斎?個(gè)結(jié)果;故可排除循環(huán)出問(wèn)題的可能性。問(wèn)題就出在讀入文件-執(zhí)行deconvolute_xcell()-寫入.csv文件中。
既然不能循環(huán),那就只有拆分開(kāi)來(lái)處理。如下:依次處理,依次看每一步的執(zhí)行情況。 第一個(gè)順利。
oh......第二個(gè)好像出問(wèn)題了?原來(lái)for循環(huán)的問(wèn)題出現(xiàn)在這里。
打開(kāi)原文件查看,肉眼并不能發(fā)現(xiàn)數(shù)據(jù)格式問(wèn)題。既然它繼續(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è)文件沒(méi)有問(wèn)題。
最后再次嘗試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è)文件的問(wèn)題。唯有解決第5個(gè)文件的問(wèn)題,或者跳過(guò)第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è)字
圖片新聞
-
馬云重返一線督戰(zhàn),阿里重啟創(chuàng)始人模式
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
11月7日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
即日-11.25立即下載>>> 費(fèi)斯托白皮書《柔性:汽車生產(chǎn)未來(lái)的關(guān)鍵》
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
11月28日立即下載>> 【白皮書】精準(zhǔn)洞察 無(wú)線掌控——283FC智能自檢萬(wàn)用表
推薦專題
-
8 每日AI全球觀察
- 1 特斯拉工人被故障機(jī)器人打成重傷,索賠3.6億
- 2 【行業(yè)深度研究】退居幕后四年后,張一鳴終于把算法公司變成AI公司?
- 3 AI 時(shí)代,阿里云想當(dāng)“安卓” ,那誰(shuí)是“蘋果”?
- 4 拐點(diǎn)已至!匯川領(lǐng)跑工控、埃斯頓份額第一、新時(shí)達(dá)海爾賦能扭虧為盈
- 5 硬剛英偉達(dá)!華為發(fā)布全球最強(qiáng)算力超節(jié)點(diǎn)和集群
- 6 隱退4年后,張一鳴久違現(xiàn)身!互聯(lián)網(wǎng)大佬正集體殺回
- 7 谷歌“香蕉”爆火啟示:國(guó)產(chǎn)垂類AI的危機(jī)還是轉(zhuǎn)機(jī)?
- 8 L3自動(dòng)駕駛延期,逼出車企技術(shù)自我淘汰
- 9 00后華裔女生靠?jī)刹緼I電影狂賺7.8億人民幣,AI正式進(jìn)軍好萊塢
- 10 機(jī)器人9月大事件|3家國(guó)產(chǎn)機(jī)器人沖刺IPO,行業(yè)交付與融資再創(chuàng)新高!
- 生產(chǎn)部總監(jiān) 廣東省/廣州市
- 資深管理人員 廣東省/江門市
- Regional Sales Manager 廣東省/深圳市
- 銷售總監(jiān) 廣東省/深圳市
- 結(jié)構(gòu)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 技術(shù)專家 廣東省/江門市
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 封裝工程師 北京市/海淀區(qū)