Scanpy 分析 scRNA-seq:降维与聚类

简介: Scanpy 分析 scRNA-seq:降维与聚类

引言

本系列讲解 使用Scanpy分析单细胞(scRNA-seq)数据 教程,持续更新,欢迎关注,转发!

归一化

接下来的预处理步骤是归一化。一种常用的方法是先进行计数深度缩放,然后进行对数加一(log1p)转换。计数深度缩放是将数据标准化到一个“尺寸因子”,比如数据集中所有样本的中位数计数深度、每万(CP10k)或每百万(CPM)计数。通过调整 pp.normalize_total 中的 target_sum 参数,可以控制计数深度缩放的尺寸因子。采用中位数计数深度进行归一化,并结合 log1p 转换(也就是 log1PF)来处理数据。

# Saving count data
adata.layers["counts"] = adata.X.copy()

# Normalizing to median total counts
sc.pp.normalize_total(adata)
# Logarithmize the data
sc.pp.log1p(adata)

特征选择

接下来,希望减少数据集的复杂性,只保留那些最有信息量的基因。这个过程通常被称为特征选择。scanpy 的 pp.highly_variable_genes 函数会根据所选的方法,来识别出高变基因。

sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="sample")

sc.pl.highly_variable_genes(adata)

降维

通过主成分分析(PCA)来降低数据的维度。PCA 可以揭示数据中主要的变化方向,并去除噪声。

sc.tl.pca(adata)

可以检查每个主成分对数据总方差的贡献,从而判断在计算细胞之间的相似性(例如用于聚类分析的 leiden() 或 tsne() 函数)时,应该考虑多少主成分。根据的经验,即使多选一些主成分,也不会有明显的负面影响。

sc.pl.pca_variance_ratio(adata, n_pcs=50, log=True)

此外,还可以绘制主成分图,看看是否有某些不期望的因素(比如批次效应或质量控制指标)在数据中导致了显著的变异。虽然在这个案例中没有发现特别严重的问题,但进行这样的探索还是很有必要的。

sc.pl.pca(
    adata,
    color=["sample", "sample", "pct_counts_mt", "pct_counts_mt"],
    dimensions=[(0, 1), (2, 3), (0, 1), (2, 3)],
    ncols=2,
    size=2,
)

最近邻图的构建和可视化

利用数据矩阵的主成分分析(PCA)结果来构建细胞的邻域图。

sc.pp.neighbors(adata)

接着,通过 UMAP,将该图映射到二维空间中,以便进行可视化展示:

sc.tl.umap(adata)

现在,可以根据样本类型对 UMAP 图进行可视化处理。

sc.pl.umap(
    adata,
    color="sample",
    # Setting a smaller point size to get prevent overlap
    size=2,
)

虽然本教程涉及的数据包含了两个不同的样本,但发现它们之间的批次效应非常小,因此可以继续对数据进行聚类分析和注释。

如果你在 UMAP 图中发现了批次效应,那么进行跨样本整合以及批次校正或整合可能会有所帮助。建议你可以参考 scanoramascvi-tools 这两个工具来进行批次整合。

聚类

Seurat 以及其他许多分析框架一样,推荐使用 Leiden 图聚类方法。需要注意的是,Leiden 聚类是直接对细胞的邻域图进行操作的,而这个邻域图已经在前面的步骤中计算完成了。

# Using the igraph implementation and a fixed number of iterations can be significantly faster, especially for larger datasets
sc.tl.leiden(adata, flavor="igraph", n_iterations=2)

sc.pl.umap(adata, color=["leiden"])

相关文章
|
4月前
|
编解码 算法 数据可视化
Scanpy 分析 scRNA-seq:细胞类型注释
Scanpy 分析 scRNA-seq:细胞类型注释
Scanpy 分析 scRNA-seq:细胞类型注释
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
570 87
|
4月前
|
存储 人工智能 API
RAG-MCP:基于检索增强生成的大模型工具选择优化框架
RAG-MCP是一种通过检索增强生成技术解决大型语言模型(LLM)工具选择困境的创新框架。它针对提示词膨胀和决策效率低的问题,利用语义检索动态筛选相关工具,显著减少提示词规模并提升准确率。本文深入解析其技术原理,包括外部工具索引构建、查询时检索处理等核心步骤,以及实验评估结果。RAG-MCP不仅优化了LLM的工具使用能力,还为AI代理的发展提供了重要支持,未来可在极端规模检索、多工具工作流等方面进一步探索。
359 16
RAG-MCP:基于检索增强生成的大模型工具选择优化框架
|
4月前
|
存储 监控 安全
攻击者是如何利用安全支持提供程序(SSP)来转储凭据的
本文探讨了攻击者如何利用安全支持提供程序(SSP)动态链接库(DLL)窃取Windows系统中的登录凭据。通过修改注册表项或内存注入技术,攻击者可加载恶意SSP至本地安全机构(LSA)进程中,提取加密或明文密码。文章详细分析了两种方法:注册SSP DLL和内存中更新SSP,并展示了Mimikatz工具的应用。为防范此类攻击,建议使用监控解决方案检测域控制器上的异常修改,确保系统安全。
142 8
|
4月前
|
存储 数据可视化 C#
三维基因组:multiHiCcompare 差异分析
三维基因组:multiHiCcompare 差异分析
115 13
三维基因组:multiHiCcompare 差异分析
|
4月前
|
机器学习/深度学习 人工智能 数据库
RAG 2.0 深入解读
本文从RAG 2.0 面临的主要挑战和部分关键技术来展开叙事,还包括了RAG的技术升级和关键技术等。
778 85
|
4月前
|
人工智能 资源调度 监控
LangChain脚本如何调度及提效?
本文介绍了通过任务调度系统SchedulerX管理LangChain脚本的方法。LangChain是开源的大模型开发框架,支持快速构建AI应用,而SchedulerX可托管AI任务,提供脚本版本管理、定时调度、资源优化等功能。文章重点讲解了脚本管理和调度、Prompt管理、资源利用率提升、限流控制、失败重试、依赖编排及企业级可观测性等内容。同时展望了AI任务调度的未来需求,如模型Failover、Tokens限流等,并提供了相关参考链接。
263 28
LangChain脚本如何调度及提效?
|
4月前
|
JSON 安全 Serverless
MCP Server On FC之旅2: 从0到1-MCP Server市场构建与存量OpenAPI转MCP Server
本文介绍了将社区主流STDIO MCP Server一键转为企业内可插拔Remote MCP Server的方法,以及存量API智能化重生的解决方案。通过FunctionAI平台模板实现STDIO MCP Server到SSE MCP Server的快速部署,并可通过“npx”或“uvx”命令调试。同时,文章还探讨了如何将OpenAPI规范数据转化为MCP Server实例,支持API Key、HTTP Basic和OAuth 2.0三种鉴权配置。该方案联合阿里云百练、魔搭社区等平台,提供低成本、高效率的企业级MCP Server服务化路径,助力AI应用生态繁荣。
721 42
|
4月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
148 3
|
4月前
|
数据采集 人工智能 自然语言处理
阶跃星辰联合光影焕像开源 3D 大模型 Step1X-3D,高保真+可控!
阶跃星辰联合光影焕像开源 3D 大模型 Step1X-3D,高保真+可控!
174 4

热门文章

最新文章