【Scanpy】单细胞转录组分析思路之细胞分类

本文详细介绍了单细胞转录组分析的步骤,包括数据预处理、归一化、降维(PCA)、聚类和细胞分类。通过PCA和UMAP进行数据可视化,并利用louvain算法进行细胞聚类。同时,确定了高变基因并进行了标记基因的检索,最终将细胞分为兴奋神经元、抑制神经元和非神经元三大类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文将详细讲述单细胞转录组分析的步骤。

一、文章信息

     题目:ClusterMap for multi-scale clustering analysis of spatial gene expression

     链接:https://doi.org/10.1038/s41467-021-26044-x

     期刊:Nature

二、数据集

     数据集:小鼠初级视觉皮层V1_1020

     转录组技术:STARmap

     基因数:1020

     细胞数:1650

     总表达数:471295

     细胞类型:16种

三、单细胞测序工作

        关于这一部分,这篇文章没有讲解,我在了解生物背景的时候,查阅了一些资料,关于单细胞最初的制备工作。

        对于这篇文章,在作者给的公开代码和数据中,数据已经是处理好的有关所有基因点的三维位置坐标。

四、细胞分类

        进行细胞分类的关键是得到有细胞位置的数据集。

1、输入文件

        文件由三部分组成,X,obs,var。三者的位置关系如下图所示:

 输入文件,得到adata数据格式,但是下文的操作都在细胞层面,所以对应查看adata.obs文件。

expr_path = os.path.join(out_path, 'expr_BY1.csv')    # 里面全是0 1 2 3 的数字
var_path = os.path.join(out_path, 'var_BY1.csv')      # 基因的名称
obs_path = os.path.join(out_path, 'obs_BY1.csv')      # 二维行列坐标

# add expression data to the AnnData object   添加表达式数据到AnnData对象
expr_x = np.loadtxt(expr_path, delimiter=',')     # delimiter表示分隔符,加载文件的分隔符

var = pd.read_csv(var_path, header=None)  #header=None(文件中不包含列名的行)
var = pd.DataFrame(index=var.iloc[:,0].to_list())
obs = pd.read_csv(obs_path, index_col=0)

adata = AnnData(X=expr_x, var=var, obs=obs)

2、预处理

(1)可视化高表达基因

sc.pl.highest_expr_genes(adata, n_top=20) 

        可视化所有细胞中表达量最多的20个基因,展示的方法采用的是箱线图。箱线图是对每个基因在所有细胞中表达量分布的更详细描述。箱子的宽度,反应了数据的波动程度,箱子越窄,数据分布越集中。

        箱线图的查看以下图为例:中位线表示的是MALAT1在单个细胞表达量的中位数;中位数对应的是该基因表达量占该细胞总基因表达量的17%。可见,MALAT1基因在大部分细胞中的表达量占比约在10%~20%之间。

### 单细胞转录组数据分析方法与工具 #### 数据预处理 在单细胞转录组数据的分析过程中,数据预处理是一个至关重要的环节。这一步骤通常涉及质量控制、过滤低质量细胞以及标准化表达矩阵等操作。为了确保后续分析的有效性和准确性,多种软件包提供了强大的功能来完成这些任务[^1]。 ```r library(Seurat) # 创建 Seurat 对象并加载原始计数数据 sce <- CreateSeuratObject(counts = raw_counts, project = "scRNAseq") ``` #### 维度约减与聚类 通过降维技术可以减少高维度特征空间带来的计算复杂度问题,并有助于发现潜在结构。t-SNE 和 UMAP 是两种广泛使用的非线性嵌入算法,在保持局部邻近关系的同时能够很好地分离不同类型的细胞群落。此外,基于图论的方法如 Louvain 社区检测也被应用于构建细胞间的相似网络进而实现高效聚类[^2]。 ```python import scanpy as sc adata = sc.read_10x_h5('filtered_gene_bc_matrices.h5') sc.pp.neighbors(adata, n_neighbors=15) sc.tl.umap(adata) sc.pl.umap(adata, color=' louvain', legend_loc='on data') ``` #### 差异基因表达分析 识别差异表达基因对于理解特定条件下哪些生物过程被激活具有重要意义。DESeq2 或 edgeR 这样的统计模型常用于比较两组或多组样本之间的平均表达水平变化情况;而 SCDE 则专注于捕捉稀有事件下的微弱信号,适用于探索罕见亚型特性[^3]。 ```bash # 使用 DESeq2 执行差异表达测试 $ Rscript run_DESeq2.R --input_matrix file.txt \ --condition_file conditions.csv \ --output_results results.tsv ``` #### 调控元件结合基序比较分析 结合调控区域内的序列保守性和转录因子表达信息来进行共定位模式挖掘,可以帮助揭示正常生理活动及疾病发生发展背后的分子机制。例如,利用 HOMER 可以预测新的顺式作用元件并与已知数据库对比找出可能参与关键路径调节的新成员。 ```perl use homer; findMotifs.pl peaks.bed mm10 knownResults/ -size 1000 annotatePeaks.pl peaks.bed mm10 > annotations.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值