单细胞转录组学分析:从数据处理到功能注释
在单细胞转录组学研究中,我们可以通过高通量测序技术解析单个细胞的基因表达谱,从而揭示细胞异质性和潜在的生物学功能。本文将介绍如何从数据预处理开始,逐步进行细胞类型注释、差异表达分析以及功能富集分析,最终揭示不同细胞群体的生物学特性。
数据预处理与整合
首先,我们从多个样本中读取单细胞转录组数据,并使用Scanpy
库进行数据预处理和整合。通过去除低质量细胞和基因、归一化表达矩阵以及选择高变基因,我们得到了一个高质量的数据集。随后,利用Harmony
工具去除批次效应,确保不同样本之间的细胞可以准确比较。
Python复制
import scanpy as sc
import omicverse as ov
import os
# 定义样本文件夹路径列表
sample_folders = [
r'D:\迅雷云盘\GSE190453_RAW\GSM5724024_TLE_1',
r'D:\迅雷云盘\GSE190453_RAW\GSM5724025_TLE_2',
r'D:\迅雷云盘\GSE190453_RAW\GSM5724026_TLE_3',
r'D:\迅雷云盘\GSE190453_RAW\GSM6893725_TLE_4'
]
# 初始化一个空的 AnnData 列表
adata_list = []
# 循环读取每个样本的数据
for folder in sample_folders:
# 读取 10x Genomics 格式的数据
adata = sc.read_10x_mtx(
folder,
var_names='gene_symbols',
cache=True
)
# 为每个样本添加样本名称信息
adata.obs['sample'] = os.path.basename(folder)
adata_list.append(adata)
# 合并所有样本的数据
combined_adata = sc.concat(adata_list, join='outer', label='sample')
# 使变量名和观测值名唯一化
combined_adata.var_names_make_unique()
combined_adata.obs_names_make_unique()
数据过滤与归一化
接下来,我们对合并后的数据进行过滤,去除低质量细胞和基因,并进行归一化处理。
Python复制
# 计算线粒体基因比例
combined_adata.var['mt'] = combined_adata.var_names.str.startswith('MT-')
sc.pp.calculate_qc_metrics(combined_adata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True)
# 过滤低质量细胞
combined_adata = combined_adata[combined_adata.obs.n_genes_by_counts < 2500, :]
combined_adata = combined_adata[comb