单细胞|线粒体基因型和DNA可及性联合分析

简介: 单细胞|线粒体基因型和DNA可及性联合分析

引言

本研究分析了两组包含DNA可及性和线粒体突变信息的数据集,数据来自结直肠癌(CRC)患者的样本。

为了展示如何联合分析线粒体DNA变异和染色质可及性,将通过一个实例来说明,该实例涉及对来自原发性结直肠腺癌的细胞进行分析。这些细胞样本中包含了恶性上皮细胞和肿瘤内部浸润的免疫细胞。

导入 DNA 可及性数据

首先导入单细胞染色质可及性测序(scATAC-seq)数据,并按照scATAC-seq数据的标准分析流程,构建一个Seurat对象。

library(Signac)
library(Seurat)
library(ggplot2)
library(patchwork)
library(EnsDb.Hsapiens.v75)

# load counts and metadata from cellranger-atac
counts <- Read10X_h5(filename = "CRC_v12-mtMask_mgatk.filtered_peak_bc_matrix.h5")
metadata <- read.csv(
  file = "CRC_v12-mtMask_mgatk.singlecell.csv",
  header = TRUE,
  row.names = 1
)

# load gene annotations from Ensembl
annotations <- GetGRangesFromEnsDb(ensdb = EnsDb.Hsapiens.v75)

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

# create object
crc_assay <- CreateChromatinAssay(
  counts = counts,
  sep = c(":", "-"),
  annotation = annotations,
  min.cells = 10,
  fragments = 'CRC_v12-mtMask_mgatk.fragments.tsv.gz'
)
crc <- CreateSeuratObject(
  counts = crc_assay,
  assay = 'peaks',
  meta.data = metadata
)

crc[["peaks"]]

## ChromatinAssay data with 81787 features for 3535 cells
## Variable features: 0 
## Genome: 
## Annotation present: TRUE 
## Motifs present: FALSE 
## Fragment files: 1

质控流程

能够对单细胞ATAC-seq(scATAC-seq)数据进行标准的质量评估,并依据这些评估指标剔除质量不佳的细胞。

# Augment QC metrics that were computed by cellranger-atac
crc$pct_reads_in_peaks <- crc$peak_region_fragments / crc$passed_filters * 100
crc$pct_reads_in_DNase <- crc$DNase_sensitive_region_fragments / crc$passed_filters * 100
crc$blacklist_ratio <- crc$blacklist_region_fragments / crc$peak_region_fragments

# compute TSS enrichment score and nucleosome banding pattern
crc <- TSSEnrichment(crc)
crc <- NucleosomeSignal(crc)

# visualize QC metrics for each cell
VlnPlot(crc, c("TSS.enrichment", "nCount_peaks", "nucleosome_signal", "pct_reads_in_peaks", "pct_reads_in_DNase", "blacklist_ratio"), pt.size = 0, ncol = 3)

# remove low-quality cells
crc <- subset(
  x = crc,
  subset = nCount_peaks > 1000 &
    nCount_peaks < 50000 &
    pct_reads_in_DNase > 40 &
    blacklist_ratio < 0.05 &
    TSS.enrichment > 3 & 
    nucleosome_signal < 4
)
crc

## An object of class Seurat 
## 81787 features across 1861 samples within 1 assay 
## Active assay: peaks (81787 features, 0 variable features)
##  2 layers present: counts, data

线粒体变异数据导入

接下来,将导入这些细胞的线粒体DNA变异数据,这些数据是通过mgatk工具进行量化的。Signac包中的ReadMGATK()函数使得mgatk的输出能够直接以适合于Signac后续分析的格式读入R语言环境中。在此过程中,将这些数据加载进来,并将其作为一个新检测添加到Seurat对象中。

# load mgatk output
mito.data <- ReadMGATK(dir = "crc/")

# create an assay
mito <- CreateAssayObject(counts = mito.data$counts)

# Subset to cell present in the scATAC-seq assat
mito <- subset(mito, cells = Cells(crc))

# add assay and metadata to the seurat object
crc[["mito"]] <- mito
crc <- AddMetaData(crc, metadata = mito.data$depth[Cells(mito), ], col.name = "mtDNA_depth")

可以查看每个细胞的线粒体测序深度,并根据线粒体测序深度进一步对细胞进行子集化。

VlnPlot(crc, "mtDNA_depth", pt.size = 0.1) + scale_y_log10()

# filter cells based on mitochondrial depth
crc <- subset(crc, mtDNA_depth >= 10)
crc

## An object of class Seurat 
## 214339 features across 1359 samples within 2 assays 
## Active assay: peaks (81787 features, 0 variable features)
##  2 layers present: counts, data
##  1 other assay present: mito

降维和聚类

接下来,将利用单细胞ATAC-seq(scATAC-seq)数据进行常规的降维和聚类分析,目的是识别不同的细胞群组。

crc <- RunTFIDF(crc)
crc <- FindTopFeatures(crc, min.cutoff = 10)
crc <- RunSVD(crc)
crc <- RunUMAP(crc, reduction = "lsi", dims = 2:50)
crc <- FindNeighbors(crc, reduction = "lsi", dims = 2:50)
crc <- FindClusters(crc, resolution = 0.7, algorithm = 3)

## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
## 
## Number of nodes: 1359
## Number of edges: 63301
## 
## Running smart local moving algorithm...
## Maximum modularity in 10 random starts: 0.7329
## Number of communities: 6
## Elapsed time: 0 seconds

DimPlot(crc, label = TRUE) + NoLegend()

基因得分计算

为了更好地理解这些细胞群的特征并确定它们的细胞类型,将计算基因的活性得分,方法是将基因本体区域和启动子区域的DNA可及性进行累加。

# compute gene accessibility
gene.activities <- GeneActivity(crc)

# add to the Seurat object as a new assay
crc[['RNA']] <- CreateAssayObject(counts = gene.activities)

crc <- NormalizeData(
  object = crc,
  assay = 'RNA',
  normalization.method = 'LogNormalize',
  scale.factor = median(crc$nCount_RNA)
)

展示特定基因活性得分

在CRC数据集中,识别了以下不同细胞类型的标志性基因:

  • EPCAM:上皮细胞的标志
  • TREM1:髓系细胞的标志
  • PTPRC(也称为CD45):泛免疫细胞的标志
  • IL1RL1:嗜碱性粒细胞的标志
  • GATA3:T细胞的标志
DefaultAssay(crc) <- 'RNA'

FeaturePlot(
  object = crc,
  features = c('TREM1', 'EPCAM', "PTPRC", "IL1RL1","GATA3", "KIT"),
  pt.size = 0.1,
  max.cutoff = 'q95',
  ncol = 2
)

使用这些基因评分值,可以分配簇标识:

crc <- RenameIdents(
  object = crc,
  '0' = 'Epithelial',
  '1' = 'Epithelial',
  '2' = 'Basophil',
  '3' = 'Myeloid_1',
  '4' = 'Myeloid_2',
  '5' = 'Tcell'
)

在髓系细胞群中,发现有一个亚群表现出较低的峰值区域片段比例,整体线粒体测序覆盖度也不高,并且其核小体的排列模式与其他亚群有所区别。

p1 <- FeatureScatter(crc, "mtDNA_depth", "pct_reads_in_peaks") + ggtitle("") + scale_x_log10()
p2 <- FeatureScatter(crc, "mtDNA_depth", "nucleosome_signal") + ggtitle("") + scale_x_log10()

p1 + p2 + plot_layout(guides = 'collect')

观察到,大多数FRIP值较低的细胞属于髓系1群。这些细胞很可能是肿瘤内的粒细胞,它们在染色质可及性方面的富集程度相对较低。与此相似,这种细胞类型的核染色质包装方式也较为特殊,导致其mtDNA覆盖度略低于髓系2群。

识别有意义的mtDNA变异

接下来,可以确定线粒体基因组中在不同细胞间存在差异的位点,并根据这些变异在细胞中的出现频率将细胞分为不同的克隆型。Signac在识别高质量变异时,采用了原始mtscATAC-seq研究中建立的原则。

variable.sites <- IdentifyVariants(crc, assay = "mito", refallele = mito.data$refallele)
VariantPlot(variants = variable.sites)

上图清晰地展示了一组变异,这些变异具有较高的变异等位基因比率(VMR)和链一致性。理论上,高链一致性减少了等位基因频率受测序错误影响的可能性(这种错误通常只发生在一个链上,而不是另一个链上,这是由于前导核苷酸的内容和mtDNA基因分型中的一个常见错误)。另一方面,具有高VMR的变异更可能是克隆变异,因为这些变异的替代等位基因倾向于在特定细胞中聚集,而不是均匀分布在所有细胞中,后者则可能表明其他一些技术问题。

注意到,那些具有极低VMR和极高链一致性的变异是这个样本的同源变异。虽然这些变异在某些情况下可能具有研究价值(例如,在供体样本的去复用过程中),但对于推断亚克隆结构,它们并没有太大的用处。

根据这些标准,可以筛选出一组在不同细胞中表现出差异的、具有信息价值的线粒体变异。

# Establish a filtered data frame of variants based on this processing
high.conf <- subset(
  variable.sites, subset = n_cells_conf_detected >= 5 &
    strand_correlation >= 0.65 &
    vmr > 0.01
)

high.conf[,c(1,2,5)]

##          position nucleotide      mean
## 1227G>A      1227        G>A 0.0090107
## 6081G>A      6081        G>A 0.0031485
## 9804G>A      9804        G>A 0.0035833
## 12889G>A    12889        G>A 0.0217851
## 9728C>T      9728        C>T 0.0150412
## 16147C>T    16147        C>T 0.6582835
## 824T>C        824        T>C 0.0050820
## 2285T>C      2285        T>C 0.0034535
## 16093T>C    16093        T>C 0.0093126

一些关键点值得注意。首先,在12个变异中,有10个在群体中的出现频率不到1%。但是,16147C>T的频率大约为62%。将会认识到这是一个标记上皮细胞的克隆变异。此外,所有检测到的变异都是转换类型(A - G 或 C - T),而不是颠换类型(A - T 或 C - G)。这与对线粒体基因组中这些突变产生方式的认知相吻合。

计算变异等位基因频率

目前拥有存储在mito检测中的每个链的信息,这使得可以评估链的一致性。现在,已经确定了一组高可信度的信息变异,可以使用AlleleFreq()函数,为这些变异创建一个新的检测,包含每个细胞的链折叠等位基因频率计数。

crc <- AlleleFreq(
  object = crc,
  variants = high.conf$variant,
  assay = "mito"
)
crc[["alleles"]]

## Assay data with 9 features for 1359 cells
## First 9 features:
##  1227G>A, 6081G>A, 9804G>A, 12889G>A, 9728C>T, 16147C>T, 824T>C,
## 2285T>C, 16093T>C

展示变异分布

随着等位基因频率被存储为额外的检测数据,可以利用Seurat的标准功能来展示这些频率如何在不同细胞间分布。在这里,通过FeaturePlot()和DoHeatmap()展示了变异的一个子集,以便直观地理解它们的分布情况。

DefaultAssay(crc) <- "alleles"
alleles.view <- c("12889G>A", "16147C>T", "9728C>T", "9804G>A")
FeaturePlot(
  object = crc,
  features = alleles.view,
  order = TRUE,
  cols = c("grey", "darkred"),
  ncol = 4
) & NoLegend()

DoHeatmap(crc, features = rownames(crc), slot = "data", disp.max = 1) +
  scale_fill_viridis_c()

在这些选定的变异中,可以观察到一些有趣的分布模式。变异16147C>T几乎存在于所有的上皮细胞中,而且基本上只出现在上皮细胞内(少数例外情况也对应着UMAP和聚类结果不一致的案例)。这个变异的等位基因频率达到了100%,这强烈表明肿瘤的原始细胞在发生突变后进行了克隆性扩增。接着,至少发现了3个变异——1227G>A、12889G>A和9728C>T,它们主要特定于定义亚克隆的上皮细胞中。另外,包括3244G>A、9804G>A和824T>C在内的其他变异,特别在免疫细胞群体中被发现,这暗示这些变异可能源自一个共同的造血祖细胞(很可能位于骨髓中)。

相关文章
|
7月前
|
算法 数据挖掘 Go
文献速读|5分生信+免疫组化单细胞联合bulk转录组肿瘤预后模型
研究摘要: 在《Cancer Immunology Immunotherapy》上发表的一篇文章,通过整合Bulk和单细胞RNA-seq数据,探讨了非小细胞肺癌(NSCLC)中癌相关纤维细胞(CAF)的作用。研究者识别出CAF的预后标志物,构建了一个基于CAF的模型,该模型在四个独立队列中区分了预后良好的和较差的患者。WGCNA分析鉴定出CAF标记基因,而CAF分数与免疫微环境和免疫治疗反应相关。高CAF分数关联较差的免疫治疗反应,FBLIM1被发现为CAF的主要来源,其高表达预测了免疫疗法的不良反应。该研究揭示了CAF在NSCLC免疫抑制和治疗策略中的重要地位。
188 1
|
4月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
95 2
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
网络协议 大数据 数据挖掘
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控(二)
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控(二)
|
6月前
|
人工智能 安全 搜索推荐
1.8B参数,阿里云首个联合DNA、RNA、蛋白质的生物大模型,涵盖16.9W物种
【6月更文挑战第14天】阿里云发布首个集成DNA、RNA和蛋白质数据的生物大模型LucaOne,拥有1.8B参数,涉及16.9万物种。LucaOne通过few-shot learning技术和streamlined downstream architecture实现多生物语言统一处理,提升生物系统理解与分析能力。该模型将加速生物信息学研究,推动生物医学应用,但同时也引发生物数据安全、预测偏差及AI伦理法律等问题的讨论。[论文链接](https://www.biorxiv.org/content/10.1101/2024.05.10.592927v1)
352 3
|
7月前
|
搜索推荐 数据挖掘 Java
文献速读|7分的干湿结合胃癌单细胞联合bulk转录组+线粒体自噬
研究人员通过单细胞和bulk RNA测序,鉴定出18个线粒体自噬相关基因(MRGs),在胃癌中的预后作用。这些基因可能成为新的生物标志物和治疗靶点。分析显示GABARAPL2和CDC37在上皮细胞中高度表达,与免疫浸润和预后相关。构建的风险模型在多个独立队列中验证有效,表明MRGs可改善预后预测,并提示免疫治疗潜力。研究强调了单细胞分析在理解疾病复杂性和指导个性化治疗中的价值。
161 3
|
数据可视化 大数据 数据挖掘
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控(三)
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控(三)
|
大数据 数据挖掘 Go
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控(一)
文献丨多组学大数据构建小麦穗发育转录调控网络,TRN+GWAS挖掘关键转录调控
|
数据可视化 关系型数据库 数据挖掘
scRNA分析|一(尽)文(力)解决你的单细胞火山图问题
scRNA分析|一(尽)文(力)解决你的单细胞火山图问题
782 0
|
算法 芯片
DNA测序原理:illumina和Pacbio对比介绍
DNA测序原理:illumina和Pacbio对比介绍
|
存储 数据可视化 数据挖掘
文献丨转录组表达数据的生信挖掘研究
文献丨转录组表达数据的生信挖掘研究
下一篇
DataWorks