Scillus:一個R包解決單細胞數(shù)據(jù)分析的所有美圖

說在前面

單細胞數(shù)據(jù)分析發(fā)展到現(xiàn)在越來越平民化了,如今對于很多小伙伴來說必峰,入門單細胞數(shù)據(jù)分析要比幾年前簡單多了洪唐,這主要得利于很多輕便而且一站式的單細胞數(shù)據(jù)分析軟件的使用,其中最有名的就是基于R語言的Seurat和基于Python的Scanpy了吼蚁。

今天小編介紹的這款Scillus軟件就是Seurat的一個wrapper凭需,使用它可以做到和Seurat無縫銜接,并且也有自己獨特的分析函數(shù)肝匆,可謂是單細胞數(shù)據(jù)分析的必備神器粒蜈!而且,最重要的是使用這個軟件可以輕松克服沒有辦法在一個圖中添加更多組條來為不同的數(shù)據(jù)著色的問題旗国,而且出圖十分美觀枯怖。

下面我們來使用代碼進行實操演示。能曾。度硝。


代碼實現(xiàn)

devtools::install_github("xmc811/Scillus", ref = "development")
library(Scillus)
library(tidyverse)
library(Seurat)
library(magrittr)
library(tidyverse)
library('magrittr')
library(R.utils)
a <- list.files("GSE128531_RAW", full.names = TRUE)

m <- tibble(file = a,
            sample = stringr::str_remove(basename(a), ".csv.gz"),
            group = rep(c("CTCL", "Normal"), each = 3))


pal <- tibble(var = c("sample", "group","seurat_clusters"),
              pal = c("Set2","Set1","Paired")) #配色

scRNA <- load_scfile(m)

讀取完數(shù)據(jù),下面進行數(shù)據(jù)質(zhì)控寿冕。蕊程。。

plot_qc(scRNA, metrics = "percent.mt")
plot_qc(scRNA, metrics = "nFeature_RNA")
plot_qc(scRNA, metrics = "nCount_RNA")
plot_qc(scRNA, metrics = "nCount_RNA", plot_type = "density") + scale_x_log10()
plot_qc(scRNA, metrics = "percent.mt", group_by = "group", pal_setup = c("purple","yellow"))
scRNA_f <- filter_scdata(scRNA, subset = nFeature_RNA > 500 & percent.mt < 10)

scRNA_f %<>%
  purrr::map(.f = NormalizeData) %>%
  purrr::map(.f = FindVariableFeatures) %>%
  purrr::map(.f = CellCycleScoring,
             s.features = cc.genes$s.genes,
             g2m.features = cc.genes$g2m.genes)


scRNA_int <- IntegrateData(anchorset = FindIntegrationAnchors(object.list = scRNA_f, dims = 1:30, k.filter = 50), dims = 1:30)
scRNA_int %<>%
  ScaleData(vars.to.regress = c("nCount_RNA", "percent.mt", "S.Score", "G2M.Score"))

scRNA_int %<>%
  RunPCA(npcs = 50, verbose = TRUE)
scRNA_int %<>%
  RunUMAP(reduction = "pca", dims = 1:20, n.neighbors = 30) %>%
  FindNeighbors(reduction = "pca", dims = 1:20) %>%
  FindClusters(resolution = 0.3)

m %<>%mutate(group = factor(group, levels = c("Normal", "CTCL")))
scRNA_int %<>%refactor_seurat(metadata = m)
plot_scdata(scRNA_int, pal_setup = pal)
plot_scdata(scRNA_int, color_by = "group", pal_setup = pal)
plot_scdata(scRNA_int, split_by = "sample", pal_setup = pal)
plot_scdata(scRNA_int, pal_setup = "Dark2")

plot_stat(scRNA_int, plot_type = "prop_multi", pal_setup = "Set3")
image.png
image.png
image.png
image.png

Seurat做出的熱圖其實是很丑的驼唱,而用Scillus就很好的解決了這個問題藻茂,美美噠。

markers <- FindAllMarkers(scRNA_int, logfc.threshold = 0.1, min.pct = 0, only.pos = T)

plot_heatmap(dataset = scRNA_int,
             markers = markers,
             sort_var = c("seurat_clusters","sample"),
             anno_var = c("seurat_clusters","sample","percent.mt","S.Score","G2M.Score"),
             anno_colors = list("Set2",                                             # RColorBrewer palette
                                c("red","orange","yellow","purple","blue","green"), # color vector
                                "Reds",
                                c("blue","white","red"),                            # Three-color gradient
                                "Greens"))

image.png

Scillus最有特色的一點是可以一站式進行功能分析曙蒸,包括ORA和GSEA.

plot_all_cluster_go(markers, org = "human", ont = "CC")

de <- find_diff_genes(dataset = scRNA_int,
clusters = as.character(0:7),
comparison = c("group", "CTCL", "Normal"),
logfc.threshold = 0,   # threshold of 0 is used for GSEA
min.cells.group = 1)   # To include clusters with only 1 cell
gsea_res <- test_GSEA(de,
pathway = pathways.hallmark)
plot_GSEA(gsea_res, p_cutoff = 0.1, colors = c("#0570b0", "grey", "#d7301f"))
image.png
image.png

小結(jié)

Scillus的功能其實是很多的捌治,也能畫很多圖,這里Immugent只介紹了一部分纽窟,大家可以進官網(wǎng)進行系統(tǒng)學習(Scillus https://scillus.netlify.app/)肖油。

不過Immugent一直沒搞明白這個包好像沒有自己的函數(shù),都是調(diào)用的別的軟件臂港,因此也沒有發(fā)表相應(yīng)的文章森枪。Whatever视搏,好用就行,小伙伴趕緊用起來哇县袱!


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浑娜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子式散,更是在濱河造成了極大的恐慌筋遭,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暴拄,死亡現(xiàn)場離奇詭異漓滔,居然都是意外死亡,警方通過查閱死者的電腦和手機乖篷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門响驴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撕蔼,你說我怎么就攤上這事豁鲤。” “怎么了鲸沮?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵琳骡,是天一觀的道長。 經(jīng)常有香客問我讼溺,道長日熬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任肾胯,我火速辦了婚禮,結(jié)果婚禮上耘纱,老公的妹妹穿的比我還像新娘敬肚。我一直安慰自己,他們只是感情好束析,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布艳馒。 她就那樣靜靜地躺著,像睡著了一般员寇。 火紅的嫁衣襯著肌膚如雪弄慰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天蝶锋,我揣著相機與錄音陆爽,去河邊找鬼。 笑死扳缕,一個胖子當著我的面吹牛慌闭,可吹牛的內(nèi)容都是我干的别威。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驴剔,長吁一口氣:“原來是場噩夢啊……” “哼省古!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丧失,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤豺妓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后布讹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琳拭,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年炒事,在試婚紗的時候發(fā)現(xiàn)自己被綠了臀栈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡挠乳,死狀恐怖权薯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情睡扬,我是刑警寧澤盟蚣,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站卖怜,受9級特大地震影響屎开,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜马靠,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一奄抽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甩鳄,春花似錦逞度、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揖赴,卻和暖如春馆匿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背燥滑。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工渐北, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人突倍。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓腔稀,卻偏偏與公主長得像盆昙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子焊虏,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容