Seurat4.0系列教程21: 結(jié)合Cell Hashing分析雙細胞

Cell Hashing 由NYGC 技術(shù)創(chuàng)新小組與Satija實驗室合作開發(fā)了袁,使用寡核苷酸標記的抗體標記細胞表面表達的蛋白質(zhì)软驰,在每個單細胞上放置一個"樣本條形碼"稚伍,使不同的樣品能夠一起多路復用疼蛾,并在單次實驗中運行。欲了解更多信息愉舔,請參閱此文

image.png

image.png

此教程簡要演示如何處理 Seurat 中與Cell Hashing一起生成的數(shù)據(jù)。應(yīng)用于兩個數(shù)據(jù)集伙菜,我們可以成功地將細胞分離到它們原始的來源轩缤,并識別跨樣本的雙細胞。
The demultiplexing 函數(shù) HTODemux()執(zhí)行了以下程序:

  • 在標準化的 HTO 值上執(zhí)行 k-medoid 聚類,該值最初將細胞分離為 K(樣本的# )+1 群火的。
  • 計算 HTO 的"negative"分布壶愤。對于每個 HTO,我們使用平均值最低的群作為negative組馏鹤。
  • 對于每個 HTO征椒,我們選合適的負二元分布到negative組。我們使用此分布的 0.99 分位作為閾值湃累。
  • 根據(jù)這些閾值勃救,每個細胞根據(jù) HTO被歸類為 positive 或negative。
  • 多于1個 HTO positive 的細胞被注釋為雙細胞治力。

來自人類 PBMC 的 8-HTO 數(shù)據(jù)集

數(shù)據(jù)集描述:

  • 數(shù)據(jù)來自八個不同捐贈者的外周血單核細胞 (PBMC)蒙秒。
  • 每個捐贈者的細胞都具有獨特的標簽,使用CD45作為hashing抗體宵统。
  • 樣品隨后被混樣晕讲,并在 10X v2 系統(tǒng)的單個lane上運行。
  • 您可以在此處下載RNA和HTO的計數(shù)矩陣马澈,或來自GEO的 FASTQ 文件

基本設(shè)置

加載包

library(Seurat)

讀取數(shù)據(jù)

# Load in the UMI matrix
pbmc.umis <- readRDS("../data/pbmc_umi_mtx.rds")

# For generating a hashtag count matrix from FASTQ files, please refer to
# https://github.com/Hoohm/CITE-seq-Count.  Load in the HTO count matrix
pbmc.htos <- readRDS("../data/pbmc_hto_mtx.rds")

# Select cell barcodes detected by both RNA and HTO In the example datasets we have already
# filtered the cells for you, but perform this step for clarity.
joint.bcs <- intersect(colnames(pbmc.umis), colnames(pbmc.htos))

# Subset RNA and HTO counts by joint cell barcodes
pbmc.umis <- pbmc.umis[, joint.bcs]
pbmc.htos <- as.matrix(pbmc.htos[, joint.bcs])

# Confirm that the HTO have the correct names
rownames(pbmc.htos)
## [1] "HTO_A" "HTO_B" "HTO_C" "HTO_D" "HTO_E" "HTO_F" "HTO_G" "HTO_H"

設(shè)置Seurat對象并添加 HTO 數(shù)據(jù)

# Setup Seurat object
pbmc.hashtag <- CreateSeuratObject(counts = pbmc.umis)

# Normalize RNA data with log normalization
pbmc.hashtag <- NormalizeData(pbmc.hashtag)
# Find and scale variable features
pbmc.hashtag <- FindVariableFeatures(pbmc.hashtag, selection.method = "mean.var.plot")
pbmc.hashtag <- ScaleData(pbmc.hashtag, features = VariableFeatures(pbmc.hashtag))

添加 HTO 數(shù)據(jù)作為獨立assay

可以在此處閱讀更多有關(guān)使用多模式數(shù)據(jù)的信息

# Add HTO data as a new assay independent from RNA
pbmc.hashtag[["HTO"]] <- CreateAssayObject(counts = pbmc.htos)
# Normalize HTO data, here we use centered log-ratio (CLR) transformation
pbmc.hashtag <- NormalizeData(pbmc.hashtag, assay = "HTO", normalization.method = "CLR")

基于 HTO 富集Demultiplex細胞

在這里瓢省,我們使用 Seurat 函數(shù)HTODemux()將單個細胞分配回其樣本來源。

# If you have a very large dataset we suggest using k_function = 'clara'. This is a k-medoid
# clustering function for large applications You can also play with additional parameters (see
# documentation for HTODemux()) to adjust the threshold for classification Here we are using the
# default settings
pbmc.hashtag <- HTODemux(pbmc.hashtag, assay = "HTO", positive.quantile = 0.99)

可視化demultiplexing 的結(jié)果

運行HTODemux()的輸出保存在metadata中痊班。我們可以可視化多少細胞被歸類為單細胞勤婚、雙細胞和負細胞/模糊細胞。

# Global classification results
table(pbmc.hashtag$HTO_classification.global)

## 
##  Doublet Negative  Singlet 
##     2598      346    13972

山脊圖可視化選定 HTO的 富集

# Group cells based on the max HTO signal
Idents(pbmc.hashtag) <- "HTO_maxID"
RidgePlot(pbmc.hashtag, assay = "HTO", features = rownames(pbmc.hashtag[["HTO"]])[1:2], ncol = 2)
image

可視化HTO 信號對 辩块,確認單個細胞中的相互排他性

FeatureScatter(pbmc.hashtag, feature1 = "hto_HTO-A", feature2 = "hto_HTO-B")
image

比較單細胞蛔六、雙細胞和negative 細胞的 UMI 數(shù)量

Idents(pbmc.hashtag) <- "HTO_classification.global"
VlnPlot(pbmc.hashtag, features = "nCount_RNA", pt.size = 0.1, log = TRUE)
image

為HTOs生成一個二維tsNE圖。在這里废亭,我們將細胞按單細胞和雙細胞分組国章,以實現(xiàn)簡化。

# First, we will remove negative cells from the object
pbmc.hashtag.subset <- subset(pbmc.hashtag, idents = "Negative", invert = TRUE)

# Calculate a tSNE embedding of the HTO data
DefaultAssay(pbmc.hashtag.subset) <- "HTO"
pbmc.hashtag.subset <- ScaleData(pbmc.hashtag.subset, features = rownames(pbmc.hashtag.subset), 
    verbose = FALSE)
pbmc.hashtag.subset <- RunPCA(pbmc.hashtag.subset, features = rownames(pbmc.hashtag.subset), approx = FALSE)
pbmc.hashtag.subset <- RunTSNE(pbmc.hashtag.subset, dims = 1:8, perplexity = 100)
DimPlot(pbmc.hashtag.subset)
image
# You can also visualize the more detailed classification result by running Idents(object) <-
# 'HTO_classification' before plotting. Here, you can see that each of the small clouds on the
# tSNE plot corresponds to one of the 28 possible doublet combinations.

根據(jù)Cell Hashing文章中圖 1C 創(chuàng)建 HTO 熱圖豆村。

# To increase the efficiency of plotting, you can subsample cells using the num.cells argument
HTOHeatmap(pbmc.hashtag, assay = "HTO", ncells = 5000)
image

使用常規(guī)的 scRNA-seq 工作流對細胞進行聚類和可視化液兽,并檢查潛在的批次效應(yīng)。

# Extract the singlets
pbmc.singlet <- subset(pbmc.hashtag, idents = "Singlet")

# Select the top 1000 most variable features
pbmc.singlet <- FindVariableFeatures(pbmc.singlet, selection.method = "mean.var.plot")

# Scaling RNA data, we only scale the variable features here for efficiency
pbmc.singlet <- ScaleData(pbmc.singlet, features = VariableFeatures(pbmc.singlet))

# Run PCA
pbmc.singlet <- RunPCA(pbmc.singlet, features = VariableFeatures(pbmc.singlet))
# We select the top 10 PCs for clustering and tSNE based on PCElbowPlot
pbmc.singlet <- FindNeighbors(pbmc.singlet, reduction = "pca", dims = 1:10)
pbmc.singlet <- FindClusters(pbmc.singlet, resolution = 0.6, verbose = FALSE)
pbmc.singlet <- RunTSNE(pbmc.singlet, reduction = "pca", dims = 1:10)

# Projecting singlet identities on TSNE visualization
DimPlot(pbmc.singlet, group.by = "HTO_classification")
image

來自四個人類細胞系的 12個HTO 數(shù)據(jù)集

數(shù)據(jù)集描述:

  • 數(shù)據(jù)來源于從四個細胞系HEK掌动、K562四啰、KG1 和 THP1收集的單細胞:
  • 每個細胞系被進一步分成三個樣本(總共12個樣本)。
  • 每個樣品都標有 hashing抗體混合物(CD29和CD45)粗恢,匯集在一起柑晒,在10X的單lane上運行。
  • 基于此設(shè)計眷射,我們應(yīng)該能夠檢測跨細胞類型和細胞類型內(nèi)的雙細胞
  • 您可以在此處下載RNA和HTO的計數(shù)矩陣匙赞,并可在GEO上找到

創(chuàng)建Seurat對象佛掖,添加 HTO 數(shù)據(jù)并執(zhí)行標準化

# Read in UMI count matrix for RNA
hto12.umis <- readRDS("../data/hto12_umi_mtx.rds")

# Read in HTO count matrix
hto12.htos <- readRDS("../data/hto12_hto_mtx.rds")

# Select cell barcodes detected in both RNA and HTO
cells.use <- intersect(rownames(hto12.htos), colnames(hto12.umis))

# Create Seurat object and add HTO data
hto12 <- CreateSeuratObject(counts = hto12.umis[, cells.use], min.features = 300)
hto12[["HTO"]] <- CreateAssayObject(counts = t(x = hto12.htos[colnames(hto12), 1:12]))

# Normalize data
hto12 <- NormalizeData(hto12)
hto12 <- NormalizeData(hto12, assay = "HTO", normalization.method = "CLR")

Demultiplex data

hto12 <- HTODemux(hto12, assay = "HTO", positive.quantile = 0.99)

可視化demultiplexing的結(jié)果

選定 HTO 的分布按照分類分組,用山脊圖展示

RidgePlot(hto12, assay = "HTO", features = c("HEK-A", "K562-B", "KG1-A", "THP1-C"), ncol = 2)
image

在熱圖中可視化 HTO 信號

HTOHeatmap(hto12, assay = "HTO")
image

可視化RNA聚類

  • 下面涌庭,我們使用標準的 scRNA-seq 工作流對細胞進行聚類芥被。正如預期的那樣,我們看到四個主要群坐榆,對應(yīng)于細胞系
  • 此外拴魄,我們看到中間有小群,表示正確注釋為雙細胞的混合轉(zhuǎn)錄組席镀。
  • 我們還看到細胞亞型內(nèi)的雙細胞匹中,它們與同一細胞類型的單細胞混合在一起
# Remove the negative cells
hto12 <- subset(hto12, idents = "Negative", invert = TRUE)

# Run PCA on most variable features
hto12 <- FindVariableFeatures(hto12, selection.method = "mean.var.plot")
hto12 <- ScaleData(hto12, features = VariableFeatures(hto12))
hto12 <- RunPCA(hto12)
hto12 <- RunTSNE(hto12, dims = 1:5, perplexity = 100)
DimPlot(hto12) + NoLegend()
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市愉昆,隨后出現(xiàn)的幾起案子职员,更是在濱河造成了極大的恐慌,老刑警劉巖跛溉,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焊切,死亡現(xiàn)場離奇詭異,居然都是意外死亡芳室,警方通過查閱死者的電腦和手機专肪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堪侯,“玉大人嚎尤,你說我怎么就攤上這事∥榛拢” “怎么了芽死?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長次洼。 經(jīng)常有香客問我关贵,道長,這世上最難降的妖魔是什么卖毁? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任揖曾,我火速辦了婚禮,結(jié)果婚禮上亥啦,老公的妹妹穿的比我還像新娘炭剪。我一直安慰自己,他們只是感情好翔脱,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布奴拦。 她就那樣靜靜地躺著,像睡著了一般届吁。 火紅的嫁衣襯著肌膚如雪粱坤。 梳的紋絲不亂的頭發(fā)上隶糕,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音站玄,去河邊找鬼。 笑死濒旦,一個胖子當著我的面吹牛株旷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尔邓,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼晾剖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梯嗽?” 一聲冷哼從身側(cè)響起齿尽,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灯节,沒想到半個月后循头,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡炎疆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年卡骂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片形入。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡全跨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亿遂,到底是詐尸還是另有隱情浓若,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布蛇数,位于F島的核電站挪钓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苞慢。R本人自食惡果不足惜诵原,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挽放。 院中可真熱鬧绍赛,春花似錦、人聲如沸辑畦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纯出。三九已至蚯妇,卻和暖如春敷燎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箩言。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工硬贯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陨收。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓饭豹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親务漩。 傳聞我的和親對象是個殘疾皇子拄衰,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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