?1、《KS科研分享與服務(wù)》公眾號(hào)有QQ交流群,進(jìn)入門檻是20元(完全是為了防止白嫖黨,請(qǐng)理解),請(qǐng)考慮清楚。群里有免費(fèi)推文的注釋代碼和示例數(shù)據(jù)(終身擁有),沒有付費(fèi)內(nèi)容,群成員福利是購買單個(gè)付費(fèi)內(nèi)容半價(jià)! 2、《KS科研分享與服務(wù)》微信VIP群只針對(duì)購買打包代碼的小伙伴(公眾號(hào)所有付費(fèi)內(nèi)容合集)!微信群不是單獨(dú)的,是對(duì)于打包的人答疑解惑和交流的平臺(tái)、群成員專享視頻教程,帖子提前發(fā)布,以及其他更多福利! 點(diǎn)擊:→ 加入微信vip群:2024-2025《KS科研分享與服務(wù)》付費(fèi)內(nèi)容打包集合
3、需進(jìn)QQ群或者打包代碼入微信VIP的小伙伴請(qǐng)?zhí)砑幼髡呶⑿帕私?,?qǐng)備注目的,除此之外請(qǐng)勿添加,謝謝! 詳情請(qǐng)聯(lián)系作者: ? 前面我們介紹了decontX去除環(huán)境污染RNA的方法(decontX:單細(xì)胞轉(zhuǎn)錄組分析去除環(huán)境污染RNA),常用的其實(shí)還有SoupX,方法并沒有優(yōu)劣,感興趣的可以做個(gè)對(duì)比。不過在方法的操作上,decontX相比于SoupX那是相當(dāng)簡單了。SoupX的分析可基本分為三步驟:1-Calculate the profile of the soup. 2-Estimate the cell specific contamination fraction. 3-Infer a corrected expression matrix。SoupX建議是cluster后的數(shù)據(jù),或者注釋好的,這樣會(huì)得到較好得結(jié)果。同樣的,soupX矯正后的矩陣也是小數(shù),如果需要用它進(jìn)行下游分析,建議取整數(shù)。
github鏈接:https://github.com/constantAmateur/SoupX 原文鏈接:https://www./content/10.1101/303727v1 接下來我們看看具體的操作:首先安裝軟件
install.packages('SoupX') library(SoupX) library(Seurat)
然后就是獲取input文件,單細(xì)胞count矩陣即可:第一個(gè)是raw count(沒有經(jīng)過過濾或者原始的),第二個(gè)是過濾后的矩陣(經(jīng)歷過質(zhì)控)。 toc = GetAssayData(object = scRNA_ha, slot = "counts")
dirs = list.files('./',pattern='[scRNA]$') seurat_object = lapply(dirs,function(dirs){ CreateSeuratObject(counts = Read10X(dirs), project = dirs)}) Merge_obj <- merge(seurat_object[[1]], y = c(seurat_object[[2]],seurat_object[[3]]), add.cell.ids =c("AA","HC","SD")) #合并一個(gè)組的數(shù)據(jù)
tod = GetAssayData(object = Merge_obj, slot = "counts")
dim(tod) #[1] 33538 27304 dim(toc) #[1] 23046 19074 tod <- tod[rownames(toc),]
估計(jì)soup表達(dá)譜,矯正矩陣: #估計(jì)soup表達(dá)譜 sc = SoupChannel(tod, toc, calcSoupProfile = FALSE) soupProf = data.frame(row.names = rownames(toc), est = rowSums(toc)/sum(toc), counts = rowSums(toc)) sc = setSoupProfile(sc, soupProf) #add celltype clusters sc = setClusters(sc, setNames(scRNA_ha$celltype, rownames(scRNA_ha@meta.data)))
#Estimating the contamination fraction估計(jì)污染分?jǐn)?shù) sc = setContaminationFraction(sc, 0.2)#設(shè)置污染分?jǐn)?shù)20% sc = autoEstCont(sc)
#Correcting expression profile,roundToInt=TRUE表示矩陣取整 out = adjustCounts(sc, roundToInt=TRUE)
# seurat_obj[["RNA"]]@counts <- out
好了,這就是soupX的所有內(nèi)容了,也很簡單其實(shí)。至于后續(xù),那就是使用矯正的矩陣重新進(jìn)行降維聚類了。不過還是那句話,這些都是可選的,一定不要生搬硬套在自己的數(shù)據(jù)上,結(jié)合實(shí)際情況。覺得分享有用的,點(diǎn)個(gè)贊再走唄!
|