聯(lián)合 RNA 和 ATAC 分析:SNARE-seq

引言

本文將帶您分析一個(gè)單細(xì)胞聯(lián)合檢測(cè)數(shù)據(jù)集呐萌,該數(shù)據(jù)集能夠同時(shí)測(cè)量細(xì)胞內(nèi)的基因表達(dá)水平和DNA的可及性酝惧。

這項(xiàng)數(shù)據(jù)集由Chen、Lake和Zhang在2019年發(fā)表,采用了一種名為SNARE-seq的技術(shù)惨奕。由于該數(shù)據(jù)集并未公開火架,我們已將原始數(shù)據(jù)重新映射至mm10基因組。您可以通過以下鏈接下載:

  1. 片段文件:https://signac-objects.s3.amazonaws.com/snareseq/fragments.sort.bed.gz
  2. 片段文件的索引文件:https://signac-objects.s3.amazonaws.com/snareseq/fragments.sort.bed.gz.tbi
  3. 用于從原始數(shù)據(jù)生成片段文件的代碼:https://github.com/timoast/SNARE-seq

數(shù)據(jù)加載

首先構(gòu)建了一個(gè)Seurat對(duì)象滞欠,它包含了兩種不同的檢測(cè)類型:一種是基因表達(dá)數(shù)據(jù)古胆,另一種是DNA的可及性數(shù)據(jù)。

在加載計(jì)數(shù)數(shù)據(jù)時(shí)筛璧,我們利用Seurat提供的Read10X()功能逸绎。使用這個(gè)功能之前惹恃,需要將barcodes.tsv.gz、matrix.mtx.gz和features.tsv.gz這些文件整理到一個(gè)單獨(dú)的文件夾中桶良。

library(Signac)
library(Seurat)
library(ggplot2)
library(EnsDb.Mmusculus.v79)

# load processed data matrices for each assay
rna <- Read10X("../vignette_data/snare-seq/GSE126074_AdBrainCortex_rna/", gene.column = 1)
atac <- Read10X("../vignette_data/snare-seq/GSE126074_AdBrainCortex_atac/", gene.column = 1)
fragments <- "../vignette_data/snare-seq/fragments.sort.bed.gz"

# create a Seurat object and add the assays
snare <- CreateSeuratObject(counts = rna)
snare[['ATAC']] <- CreateChromatinAssay(
  counts = atac,
  sep = c(":", "-"),
  genome = "mm10",
  fragments = fragments
)

# extract gene annotations from EnsDb
annotations <- GetGRangesFromEnsDb(ensdb = EnsDb.Mmusculus.v79)

# change to UCSC style since the data was mapped to mm10
seqlevels(annotations) <- paste0('chr', seqlevels(annotations))
genome(annotations) <- "mm10"

# add the gene information to the object
Annotation(snare[["ATAC"]]) <- annotations

數(shù)據(jù)質(zhì)控

DefaultAssay(snare) <- "ATAC"
snare <- TSSEnrichment(snare)
snare <- NucleosomeSignal(snare)
snare$blacklist_fraction <- FractionCountsInRegion(
  object = snare,
  assay = 'ATAC',
  regions = blacklist_mm10
)

Idents(snare) <- "all"  # group all cells together, rather than by replicate
VlnPlot(
  snare,
  features = c("nCount_RNA", "nCount_ATAC", "TSS.enrichment",
               "nucleosome_signal", "blacklist_fraction"),
  pt.size = 0.1,
  ncol = 5
)
snare <- subset(
  x = snare,
  subset = blacklist_fraction < 0.03 &
    TSS.enrichment < 20 &
    nCount_RNA > 800 &
    nCount_ATAC > 500
)
snare
## An object of class Seurat 
## 277704 features across 8055 samples within 2 assays 
## Active assay: ATAC (244544 features, 0 variable features)
##  2 layers present: counts, data
##  1 other assay present: RNA

基因表達(dá)數(shù)據(jù)處理

  • 使用 Seurat 處理基因表達(dá)數(shù)據(jù)
DefaultAssay(snare) <- "RNA"

snare <- FindVariableFeatures(snare, nfeatures = 3000)
snare <- NormalizeData(snare)
snare <- ScaleData(snare)
snare <- RunPCA(snare, npcs = 30)
snare <- RunUMAP(snare, dims = 1:30, reduction.name = "umap.rna")
snare <- FindNeighbors(snare, dims = 1:30)
snare <- FindClusters(snare, resolution = 0.5, algorithm = 3)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
## 
## Number of nodes: 8055
## Number of edges: 324240
## 
## Running smart local moving algorithm...
## Maximum modularity in 10 random starts: 0.8900
## Number of communities: 14
## Elapsed time: 4 seconds

p1 <- DimPlot(snare, label = TRUE) + NoLegend() + ggtitle("RNA UMAP")

DNA可及性數(shù)據(jù)處理

  • 使用 Signac 處理 DNA 可及性數(shù)據(jù)
DefaultAssay(snare) <- 'ATAC'

snare <- FindTopFeatures(snare, min.cutoff = 10)
snare <- RunTFIDF(snare)
snare <- RunSVD(snare)
snare <- RunUMAP(snare, reduction = 'lsi', dims = 2:30, reduction.name = 'umap.atac')
p2 <- DimPlot(snare, reduction = 'umap.atac', label = TRUE) + NoLegend() + ggtitle("ATAC UMAP")

p1 + p2

與 scRNA-seq 整合

接下來座舍,可以通過成人小鼠大腦的單細(xì)胞RNA測(cè)序(scRNA-seq)數(shù)據(jù)集的標(biāo)簽,來對(duì)當(dāng)前數(shù)據(jù)集中的細(xì)胞類型進(jìn)行分類標(biāo)注陨帆。

# label transfer from Allen brain
allen <- readRDS("../vignette_data/allen_brain.rds")
allen <- UpdateSeuratObject(allen)

# use the RNA assay in the SNARE-seq data for integration with scRNA-seq
DefaultAssay(snare) <- 'RNA'

transfer.anchors <- FindTransferAnchors(
  reference = allen,
  query = snare,
  dims = 1:30,
  reduction = 'cca'
)

predicted.labels <- TransferData(
  anchorset = transfer.anchors,
  refdata = allen$subclass,
  weight.reduction = snare[['pca']],
  dims = 1:30
)

snare <- AddMetaData(object = snare, metadata = predicted.labels)

# label clusters based on predicted ID
new.cluster.ids <- c(
  "L2/3 IT",
  "L4",
  "L6 IT",
  "L5 CT",
  "L4",
  "L5 PT",
  "Pvalb",
  "Sst",
  "Astro",
  "Oligo",
  "Vip/Lamp5",
  "L6 IT.2",
  "L6b",
  "NP"
)
names(x = new.cluster.ids) <- levels(x = snare)
snare <- RenameIdents(object = snare, new.cluster.ids)
snare$celltype <- Idents(snare)
DimPlot(snare, group.by = 'celltype', label = TRUE, reduction = 'umap.rna')

同時(shí)展示基因表達(dá)和DNA開放性

利用CoveragePlot()功能曲秉,我們可以同時(shí)觀察基因表達(dá)和DNA可及性數(shù)據(jù)。這種方式便于對(duì)不同細(xì)胞類型在特定區(qū)域內(nèi)的DNA開放性進(jìn)行比較疲牵,并且能夠?qū)⒉煌虻谋磉_(dá)情況疊加顯示承二,以便于分析。

DefaultAssay(snare) <- "ATAC"
CoveragePlot(snare, region = "chr2-22620000-22660000", features = "Gad2")

本文由mdnice多平臺(tái)發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纲爸,一起剝皮案震驚了整個(gè)濱河市亥鸠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌识啦,老刑警劉巖负蚊,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異颓哮,居然都是意外死亡家妆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門冕茅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伤极,“玉大人,你說我怎么就攤上這事姨伤∩谄海” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵乍楚,是天一觀的道長(zhǎng)当编。 經(jīng)常有香客問我,道長(zhǎng)炊豪,這世上最難降的妖魔是什么凌箕? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮词渤,結(jié)果婚禮上牵舱,老公的妹妹穿的比我還像新娘。我一直安慰自己缺虐,他們只是感情好芜壁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般慧妄。 火紅的嫁衣襯著肌膚如雪顷牌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天塞淹,我揣著相機(jī)與錄音窟蓝,去河邊找鬼。 笑死饱普,一個(gè)胖子當(dāng)著我的面吹牛运挫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播套耕,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼谁帕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了冯袍?” 一聲冷哼從身側(cè)響起匈挖,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎康愤,沒想到半個(gè)月后儡循,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡征冷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年贮折,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片资盅。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖踊赠,靈堂內(nèi)的尸體忽然破棺而出呵扛,到底是詐尸還是另有隱情,我是刑警寧澤筐带,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布今穿,位于F島的核電站,受9級(jí)特大地震影響伦籍,放射性物質(zhì)發(fā)生泄漏蓝晒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一帖鸦、第九天 我趴在偏房一處隱蔽的房頂上張望芝薇。 院中可真熱鬧,春花似錦作儿、人聲如沸洛二。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晾嘶。三九已至妓雾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垒迂,已是汗流浹背械姻。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留机断,地道東北人楷拳。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像毫缆,于是被迫代替她去往敵國(guó)和親唯竹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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