单细胞RNA“速率”分析:模型学习

简介: 单细胞RNA“速率”分析:模型学习

引言

本系列讲解 单细胞(scRNA-seq)中RNA“速率”分析教程,持续更新,欢迎关注,转发!

动态建模

我们采用广义动态模型来解析完整的转录动态过程。

通过这种方式,我们能够获得一些额外的发现,比如潜在时间以及潜在驱动基因的鉴定。

就像在之前的文章中一样,我们将这种方法应用于胰腺内分泌发育的研究。

# update to the latest version, if not done yet.
!pip install scvelo --upgrade --quiet

import scvelo as scv
scv.logging.print_version()

scv.settings.verbosity = 3  # show errors(0), warnings(1), info(2), hints(3)

scv.settings.presenter_view = True  # set max width size for presenter view

scv.settings.set_figure_params('scvelo')  # for beautified visualization
AI 代码解读

准备数据

数据处理过程涵盖基因选择、进行标准化、对值进行对数转换以及计算用于速率估计的矩。

adata = scv.datasets.pancreas()

scv.pp.filter_and_normalize(adata, min_shared_counts=20, n_top_genes=2000)

scv.pp.moments(adata, n_pcs=30, n_neighbors=30)
AI 代码解读

动态模型

我们运行动态模型,以学习剪接动力学的完整转录动态。

该模型在基于似然的期望最大化框架中求解,通过迭代估计反应速率参数和细胞特异性潜在变量(即转录状态和细胞内潜在时间),从而学习每个基因的未剪接/剪接相轨迹。

scv.tl.recover_dynamics(adata)

scv.tl.velocity(adata, mode='dynamical')

scv.tl.velocity_graph(adata)
AI 代码解读

运行动态模型可能耗时较长。因此,您可以考虑将结果存储起来以便后续重复使用,使用 adata.write('data/pancreas.h5ad') 进行存储,稍后可以用 adata = scv.read('data/pancreas.h5ad') 来读取。

#adata.write('data/pancreas.h5ad', compression='gzip')
#adata = scv.read('data/pancreas.h5ad')

scv.pl.velocity_embedding_stream(adata, basis='umap')
AI 代码解读

动力学速率参数

无需实验数据即可估算 RNA 转录、剪接和降解的速率。

这些参数有助于更好地理解细胞身份和表型异质性。

df = adata.var
df = df[(df['fit_likelihood'] > .1) & df['velocity_genes'] == True]

kwargs = dict(xscale='log', fontsize=16)
with scv.GridSpec(ncols=3) as pl:
    pl.hist(df['fit_alpha'], xlabel='transcription rate', **kwargs)
    pl.hist(df['fit_beta'] * df['fit_scaling'], xlabel='splicing rate', xticks=[.1, .4, 1], **kwargs)
    pl.hist(df['fit_gamma'], xlabel='degradation rate', xticks=[.1, .4, 1], **kwargs)

scv.get_df(adata, 'fit*', dropna=True).head()
AI 代码解读

基因特异性参数包括转录速率(fit_alpha)、剪接速率(fit_beta)、降解速率(fit_gamma)、切换时间点(fitt)、用于调整未剪接读数不足的缩放参数(fit_scaling)、未剪接和剪接读数的标准差(fit_std_u,fit_std_s)、基因似然度(fit_likelihood)、推断的稳态水平(fit_steady_u,fit_steady_s)及其相应的p值(fit_pval_steady_u,fit_pval_steady_s)、整体模型方差(fit_variance),以及用于将基因特异性的潜在时间对齐到一个通用的、基因共享的潜在时间的缩放因子(fit_alignment_scaling)。

潜在时间

动态模型可恢复潜在的细胞过程的潜在时间。这种潜在时间代表细胞的内部时钟,仅根据转录动态,近似细胞分化过程中经历的实际时间。

scv.tl.latent_time(adata)

scv.pl.scatter(adata, color='latent_time', color_map='gnuplot', size=80)
AI 代码解读

top_genes = adata.var['fit_likelihood'].sort_values(ascending=False).index[:300]

scv.pl.heatmap(adata, var_names=top_genes, sortby='latent_time', col_color='clusters', n_convolve=100)
AI 代码解读

Top-likelihood 基因

驱动基因表现出显著的动态行为,可通过在动态模型中以高似然度进行表征而被系统性地检测到。

top_genes = adata.var['fit_likelihood'].sort_values(ascending=False).index

scv.pl.scatter(adata, basis=top_genes[:15], ncols=5, frameon=False)
AI 代码解读

var_names = ['Actn4', 'Ppp3ca', 'Cpe', 'Nnat']

scv.pl.scatter(adata, var_names, frameon=False)

scv.pl.scatter(adata, x='latent_time', y=var_names, frameon=False)
AI 代码解读

聚类特异性Top-likelihood基因

此外,可为每个细胞聚类计算部分基因似然度,以实现聚类特异性的潜在驱动因子的鉴定。

scv.tl.rank_dynamical_genes(adata, groupby='clusters')

df = scv.get_df(adata, 'rank_dynamical_genes/names')

df.head(5)
AI 代码解读

for cluster in ['Ductal', 'Ngn3 high EP', 'Pre-endocrine', 'Beta']:
    scv.pl.scatter(adata, df[cluster][:5], ylabel=cluster, frameon=False)
AI 代码解读

相关文章
利用matlab提取出频域和时域信号的29个特征
利用matlab提取出频域和时域信号的29个特征
阿里云百炼xWaytoAGI共学课 DAY4 - 小白也能在阿里云百炼手搓Qwen3,构建Qwen3赋能的英语学习智能体“妮娜”
本次课程通过构建"英语老师妮娜"AI应用,教授Qwen3系列模型特性及阿里云百炼平台的MCP服务、工作流集成技术。重点学习模型选择、智能体开发流程,涵盖单词卡片生成、结构化分析、Notion存档及二维码分享功能,适合开发者、产品经理等人群掌握AI应用落地方法。
767 42
AI 零成本搭建个人网站,小白 3 步搞定!通义灵码智能体+MCP 新玩法
通过AI技术,即使不编写代码也能高效开发项目。从生成诗朗诵网页到3D游戏创建,这些令人惊叹的操作如今触手可及。经过摸索,我利用AI成功上线了个人站点:https://koi0101-max.github.io/web。无需一行代码,借助强大的工具即可实现创意,让开发变得简单快捷!
1115 70
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 新增了 API 认证功能,为 AI 连接提供安全保障。主要更新包括:1) 客户端到 MCP Server 的认证,支持 Key Auth、JWT Auth 和 OAuth2;2) MCP Server 到后端 API 的认证,增强第二阶段的安全性。新增功能如可重用认证方案、工具特定后端认证、透明凭证透传及灵活凭证管理,确保安全集成更多后端服务。通过 openapi-to-mcp 工具简化配置,减少手动工作量。企业版提供更高可用性保障,详情参见文档链接。
442 42
ACK AI Profiling:从黑箱到透明的问题剖析
本文从一个通用的客户问题出发,描述了一个问题如何从前置排查到使用AI Profiling进行详细的排查,最后到问题定位与解决、业务执行过程的分析,从而展现一个从黑箱到透明的精细化的剖析过程。
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
加一个JVM参数,让系统可用率从95%提高到99.995%
本文针对一个高并发(10W+ QPS)、低延迟(毫秒级返回)的系统因内存索引切换导致的不稳定问题,深入分析并优化了JVM参数配置。通过定位问题根源为GC压力大,尝试了多种优化手段:调整MaxTenuringThreshold、InitialTenuringThreshold、AlwaysTenure等参数让索引尽早晋升到老年代;探索PretenureSizeThreshold和G1HeapRegionSize实现索引直接分配到老年代;加速索引复制过程以及升级至JDK11使用ZGC。
418 82
加一个JVM参数,让系统可用率从95%提高到99.995%
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
232 67
MiMo-7B:从预训练到强化学习,解锁语言模型的推理潜能
目前,大多数成功的 强化学习 工作,包括开源研究,都依赖于相对较大的基础模型,例如 32B 模型,特别是在增强代码推理能力方面。业内普遍认为在一个小模型中同时提升数学和代码能力是具有挑战性的。然而,小米MiMo研究团队相信 RL 训练的推理模型的有效性取决于基础模型固有的推理潜力。为了完全解锁语言模型的推理潜力,不仅需要关注后训练,还需要针对推理定制预训练策略。
286 43
B站开源SOTA动画视频生成模型 Index-AniSora!
B站升级动画视频生成模型Index-AniSora技术并开源,支持番剧、国创、漫改动画、VTuber、动画PV、鬼畜动画等多种二次元风格视频镜头一键生成!
330 32
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问