scCustomize:自定義可視化你的單細(xì)胞數(shù)據(jù)(二)

簡(jiǎn)介

scCustomize是一個(gè)單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)可視化的R包沃斤,里面集合了一些常用的數(shù)據(jù)可視化方法蛋铆,可以與Seurat包進(jìn)行很好的聯(lián)用触幼,支持Seurat拆祈,LIGER和SCE等常用對(duì)象的數(shù)據(jù)恨闪。

image.png

R包安裝

直接使用devtools包進(jìn)行安裝

devtools::install_github(repo = "samuel-marsh/scCustomize")
remotes::install_github(repo = "samuel-marsh/scCustomize")

實(shí)例演示

在本教程中,我將使用 SeuratData 包中的 HCA 骨髓單細(xì)胞數(shù)據(jù)放坏。

QC plot

所有 scRNA-seq 數(shù)據(jù)分析的第一步就是執(zhí)行一些 QC 檢查和繪圖咙咽,以便可以適當(dāng)?shù)剡^(guò)濾數(shù)據(jù)。scCustomize 包含許多功能淤年,可用于快速輕松地生成一些最相關(guān)的 QC 圖钧敞。

library(tidyverse)
library(patchwork)
library(Seurat)
library(scCustomize)
library(qs)

# Load Example Dataset
hca_bm <- hcabm40k.SeuratData::hcabm40k

# Add pseudo group variable just for this vignette
hca_bm@meta.data$group[hca_bm@meta.data$orig.ident == "MantonBM1" | hca_bm@meta.data$orig.ident ==
    "MantonBM2" | hca_bm@meta.data$orig.ident == "MantonBM3" | hca_bm@meta.data$orig.ident == "MantonBM4"] <- "Group 1"

hca_bm@meta.data$group[hca_bm@meta.data$orig.ident == "MantonBM5" | hca_bm@meta.data$orig.ident ==
    "MantonBM6" | hca_bm@meta.data$orig.ident == "MantonBM7" | hca_bm@meta.data$orig.ident == "MantonBM8"] <- "Group 2"

添加線粒體和核糖體基因百分比

# These defaults can be run just by providing accepted species name
hca_bm <- Add_Mito_Ribo_Seurat(seurat_object = hca_bm, species = "Human")
image.png

注意:目前Add_Mito_Ribo_Seurat函數(shù)只支持以上物種計(jì)算線粒體和核糖體基因百分比蜡豹,如果需要,請(qǐng)?jiān)?GitHub 上提交問(wèn)題以獲取其他默認(rèn)物種溉苛。請(qǐng)包括線粒體和核糖體基因的正則表達(dá)式模式或基因列表镜廉,我將在函數(shù)中添加額外的內(nèi)置默認(rèn)值。

# Using gene name patterns
hca_bm <- Add_Mito_Ribo_Seurat(seurat_object = hca_bm, species = "other", mito_pattern = "regexp_pattern",
    ribo_pattern = "regexp_pattern")

# Using feature name lists
mito_gene_list <- c("gene1", "gene2", "etc")
ribo_gene_list <- c("gene1", "gene2", "etc")
hca_bm <- Add_Mito_Ribo_Seurat(seurat_object = hca_bm, species = "other", mito_features = mito_gene_list,
    ribo_features = ribo_gene_list)

# Using combination of gene lists and gene name patterns
hca_bm <- Add_Mito_Ribo_Seurat(seurat_object = hca_bm, species = "Human", mito_features = mito_gene_list,
    ribo_pattern = "regexp_pattern")

Plotting QC Metrics

  • VlnPlot-Based QC Plots
    scCustomize 包提供了以下4種函數(shù)繪制VlnPlot-Based QC Plots.
  • QC_Plots_Genes() Plots genes per cell/nucleus.
  • QC_Plots_UMIs() Plots UMIs per cell/nucleus.
  • QC_Plots_Mito() Plots mito% (named “percent_mito”) per cell/nucleus.
  • QC_Plots_Feature() Plots “feature” per cell/nucleus. Using parameter feature to allow plotting of any applicable named feature in object@meta.data slot.
# All functions contain
p1 <- QC_Plots_Genes(seurat_object = hca_bm, low_cutoff = 800, high_cutoff = 5500)
p2 <- QC_Plots_UMIs(seurat_object = hca_bm, low_cutoff = 1200, high_cutoff = 45000)
p3 <- QC_Plots_Mito(seurat_object = hca_bm, high_cutoff = 20)

wrap_plots(p1, p2, p3, ncol = 3)
image.png

同時(shí)愚战,還提供了一下可選擇的自定義參數(shù):

  • plot_title: Change plot title
  • x_axis_label/y_axis_label: Change axis labels.
  • x_lab_rotate: Should x-axis label be rotated 45 degrees?
  • y_axis_log: Should y-axis in linear or log10 scale.
p1 <- QC_Plots_UMIs(seurat_object = hca_bm, low_cutoff = 1200, high_cutoff = 45000, pt.size = 0.1)
p2 <- QC_Plots_UMIs(seurat_object = hca_bm, low_cutoff = 1200, high_cutoff = 45000, pt.size = 0.1,
    y_axis_log = TRUE)

wrap_plots(p1, p2, ncol = 2)
image.png
  • FeatureScatter-Based QC Plots
    scCustomize 包提供了以下3種函數(shù)繪制FeatureScatter-Based QC Plots.
  • QC_Plot_UMIvsGene() Plots genes vs UMIs per cell/nucleus
  • QC_Plot_GenevsFeature() Plots Genes vs. “feature” per cell/nucleus. Using parameter feature1 to allow plotting of any applicable named feature in object@meta.data slot.
  • QC_Plot_UMIvsFeature() Plots UMIs vs. “feature” per cell/nucleus. Using parameter feature1 to allow plotting of any applicable named feature in object@meta.data slot.
# All functions contain
QC_Plot_UMIvsGene(seurat_object = hca_bm, low_cutoff_gene = 800, high_cutoff_gene = 5500, low_cutoff_UMI = 500,
    high_cutoff_UMI = 50000)
QC_Plot_GenevsFeature(seurat_object = hca_bm, feature1 = "percent_mito", low_cutoff_gene = 800,
    high_cutoff_gene = 5500, high_cutoff_feature = 20)
image.png
QC_Plot_UMIvsGene(seurat_object = hca_bm, meta_gradient_name = "percent_mito", low_cutoff_gene = 800,
    high_cutoff_gene = 5500, high_cutoff_UMI = 45000)
QC_Plot_UMIvsGene(seurat_object = hca_bm, meta_gradient_name = "percent_mito", low_cutoff_gene = 800,
    high_cutoff_gene = 5500, high_cutoff_UMI = 45000, meta_gradient_low_cutoff = 20)
image.png

計(jì)算每個(gè)樣本的QC值的中位數(shù)

scCustomize 包提供了Median_Stats()函數(shù)桨吊,可以快速計(jì)算不同QC指標(biāo) (Genes/, UMIs/, %Mito/Cell, etc)的中位數(shù)。

median_stats <- Median_Stats(seurat_object = hca_bm, group_by_var = "orig.ident")
image.png

繪制QC指標(biāo)中位數(shù)值
scCustomize 包提供了以下函數(shù)繪制QC指標(biāo)的中位數(shù)值

  • Plot_Median_Genes()
  • Plot_Median_UMIs()
  • Plot_Median_Mito()
  • Plot_Median_Other()
Plot_Median_Genes(seurat_object = hca_bm, group_by = "group")
Plot_Median_UMIs(seurat_object = hca_bm, group_by = "group")
Plot_Median_Mito(seurat_object = hca_bm, group_by = "group")
Plot_Median_Other(seurat_object = hca_bm, median_var = "percent_ribo", group_by = "group")
image.png

內(nèi)置自定義顏色畫(huà)板

(1)Continuous Palettes

  • viridis_plasma_dark_high
  • viridis_plasma_light_high
  • viridis_magma_dark_high
  • viridis_magma_light_high
  • viridis_inferno_dark_high
  • viridis_inferno_light_high
  • viridis_dark_high
  • viridis_light_high
image.png

(2)Discrete Palettes

  • alphabet (24)
  • alphabet2 (24)
  • glasbey (32)
  • polychrome (36)
  • stepped (24)
  • ditto_seq (40)
  • varibow (Dynamic)
PalettePlot(palette = DiscretePalette_scCustomize(num_colors = 26, palette = "alphabet"))
PalettePlot(palette = c("color1", "color2", ...)
image.png
image.png
# Save as variable to global environment
polychrome_pal <- DiscretePalette_scCustomize(num_colors = 36, palette = "polychrome")

# Call within another function
DimPlot(object = obj_name, cols = DiscretePalette_scCustomize(num_colors = 26, palette = "polychrome"))

DimPlot_scCustom(seurat_object = pbmc)
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凤巨,一起剝皮案震驚了整個(gè)濱河市视乐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敢茁,老刑警劉巖佑淀,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異彰檬,居然都是意外死亡伸刃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)逢倍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捧颅,“玉大人,你說(shuō)我怎么就攤上這事较雕〉镅疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵亮蒋,是天一觀的道長(zhǎng)扣典。 經(jīng)常有香客問(wèn)我,道長(zhǎng)慎玖,這世上最難降的妖魔是什么贮尖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮趁怔,結(jié)果婚禮上湿硝,老公的妹妹穿的比我還像新娘。我一直安慰自己润努,他們只是感情好关斜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著任连,像睡著了一般蚤吹。 火紅的嫁衣襯著肌膚如雪例诀。 梳的紋絲不亂的頭發(fā)上随抠,一...
    開(kāi)封第一講書(shū)人閱讀 48,954評(píng)論 1 283
  • 那天裁着,我揣著相機(jī)與錄音,去河邊找鬼拱她。 笑死二驰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秉沼。 我是一名探鬼主播桶雀,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼唬复!你這毒婦竟也來(lái)了矗积?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤敞咧,失蹤者是張志新(化名)和其女友劉穎棘捣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體休建,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乍恐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了测砂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茵烈。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖砌些,靈堂內(nèi)的尸體忽然破棺而出呜投,到底是詐尸還是另有隱情,我是刑警寧澤存璃,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布宙彪,位于F島的核電站,受9級(jí)特大地震影響有巧,放射性物質(zhì)發(fā)生泄漏释漆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一篮迎、第九天 我趴在偏房一處隱蔽的房頂上張望男图。 院中可真熱鬧,春花似錦甜橱、人聲如沸逊笆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)难裆。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乃戈,已是汗流浹背褂痰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留症虑,地道東北人缩歪。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谍憔,于是被迫代替她去往敵國(guó)和親匪蝙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

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