OmicVerse·Bulk+scRNA-seq的综合转录组分析框架

OmicVerse 是一个集成的 Python 框架,旨在简化和增强批量 RNA 测序(Bulk RNA-seq)和单细胞 RNA 测序(scRNA-seq)的分析。它通过整合多种分析工具,为用户提供一致且用户友好的界面,使得在一个编程环境中即可进行全面的转录组分析。

OmicVerse 为批量 RNA-seq 数据提供全面的分析平台 

OmicVerse 为单细胞 RNA-Seq 分析提供了一个多功能的多方面框架

OmicVerse 利用 MOFA 和 GLUE 集成多组学数据分析 

主要功能

1. Bulk RNA-seq 分析

• 提供多样本集成、批量效应校正、差异基因表达分析、基因集富集分析、蛋白质相互作用网络构建、基因共表达模块识别以及 TCGA 数据库预处理等全面功能。

2. 单细胞 RNA-seq 分析

• 支持多样本质量控制、批量效应去除与集成、自动化细胞类型注释(支持多个数据库)、迁移注释、细胞类型和基因集富集分析、发育轨迹重建、元细胞识别、细胞相互作用网络分析以及药物反应预测。

• 提供 scATAC-seq 集成和多组学分析功能,与 RNA-seq 密切关联。

3. Bulk RNA-seq 到 scRNA-seq 转换

• 增强了 Bulk RNA-seq 的去卷积、细胞比例估计、scRNA-seq 数据插值以及恢复单细胞数据中的发育轨迹,成为从批量到单细胞 RNA-seq 转换的关键桥梁。

OmicVerse 独特地结合了变分自编码器和图神经网络,以 BulkTrajBlend 框架来解决单细胞数据中的“遗漏”问题,通过从 Bulk RNA-seq 中去卷单细胞数据,精确重构细胞发育轨迹。此外,OmicVerse 通过一个专门的分析对象来简化每个组学层次的分析,确保用户体验的直观性。

 参考文献:Nature Communications volume 15, Article number: 5983 (2024)

GitHub - Starlitnightly/omicverse: A python library for multi omics included bulk, single cell and spatial RNA-seq analysis.

### 单细胞RNA测序数据分析Python实现 #### 数据预处理 为了有效处理和分析单细胞RNA测序(scRNA-seq)数据,在Python中通常会使用`scanpy`库,这是一个专门用于单细胞基因表达数据分析的强大工具。下面是一个典型的数据预处理过程: ```python import scanpy as sc import pandas as pd # 加载AnnData对象中的scRNA-seq数据集 adata = sc.read_10x_h5('filtered_gene_bc_matrices.h5') # 进行基本的质量控制过滤操作 sc.pp.filter_cells(adata, min_genes=200) sc.pp.filter_genes(adata, min_cells=3) # 计算质量度量指标并可视化QC结果 adata.var['mt'] = adata.var_names.str.startswith('MT-') sc.pp.calculate_qc_metrics(adata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True) sc.pl.violin(adata, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt'], jitter=0.4, multi_panel=True) # 基于总计数和线粒体比例去除低质量单元格 adata = adata[adata.obs.pct_counts_mt < 10, :] ``` 上述代码展示了加载数据、执行初步筛选以及计算质量评估参数的过程[^1]。 #### 细胞注释自动化 对于自动化的细胞类型标注任务,可以依赖预先训练好的模型或是通过降维后的特征空间来进行聚类分类。这里展示了一个简单的K-means聚类例子作为概念证明: ```python from sklearn.cluster import KMeans # 对原始矩阵标准化并对高变基因进行PCA变换 sc.pp.normalize_total(adata, target_sum=1e4) sc.pp.log1p(adata) sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5) adata.raw = adata adata = adata[:, adata.var.highly_variable] sc.tl.pca(adata, svd_solver='arpack') # 应用kmeans算法完成无监督学习下的初始分群 km = KMeans(n_clusters=8).fit(adata.obsm['X_pca']) adata.obs['cell_type_kmeans'] = km.labels_.astype(str) ``` 此部分实现了对细胞类型的初步划分,并将其存储到观测属性表内以便后续访问。 #### 差异表达分析 考虑到scRNA-seq特有的零膨胀现象(`dropout`),采用伪批量(pseudo-bulk)策略能够提高统计检验效能。以下是基于Scanpy框架下的一种实践方式: ```python def pseudo_bulk_aggregation(groupby_col): """Aggregate single-cell data into pseudo-bulks.""" agg_df = (adata.to_df() .groupby([groupby_col]) .mean()) return ann.AnnData(X=agg_df.values, obs=pd.DataFrame(index=agg_df.index), var=adata.var.copy()) pb_data = pseudo_bulk_aggregation('cell_type_kmeans') sc.tl.rank_genes_groups(pb_data, groupby='cell_type_kmeans', method='wilcoxon') results = pb_data.uns['rank_genes_groups'] markers = [results['names'][i][0] for i in range(len(results['names']))] print(f'Top marker genes per cluster:\n{markers}') ``` 这段脚本定义了一种函数用来创建伪批量样本集合,并运用Wilcoxon秩和测试找出各簇间显著差异表达的标记物[^2]。 #### 动态变化建模 最后介绍一种描绘转录组随时间演变趋势的技术——RNA速率估计及其延伸应用。借助`scvelo`包可轻松获取这一信息: ```python import scvelo as scv scv.pp.moments(adata, n_neighbors=30, use_rep="X_pca") scv.tl.velocity(adata, mode='stochastic') scv.tl.velocity_graph(adata) # 可视化动态路径预测图谱 scv.pl.velocity_embedding_stream(adata, basis='umap') ``` 以上命令序列完成了从准备输入至最终绘图整个流程的操作指南[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值