Omicverse 是一款由国内博士生开发的 Python 单细胞测序数据分析框架,具有高度集成性与模块化设计,覆盖了从数据预处理、降维、聚类到可视化等完整分析流程,功能强大且易于扩展。
与 Scanpy、Seurat 等主流工具相比,Omicverse 在易用性与可定制性方面表现更优,适合希望深入理解分析流程并进行二次开发的研究人员。其文档完善,学习资源持续更新,适合初学者入门与进阶。
环境搭建
Omicverse 基于 Python 构建,推荐使用虚拟环境(如 conda 或 venv)进行依赖管理。本文采用 UV(Rust 编写的 Python 工具)进行环境搭建,其优势包括:
- 快速依赖解析
- 跨平台支持
- 与现代工具链兼容
- 可替代
pip提升效率
安装 UV
# macOS / Linux
wget -qO- https://astral.sh/uv/install.sh | sh
# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
验证安装:
uv --version
安装 Omicverse
- 创建项目目录并初始化:
mkdir -p ~/Project && cd ~/Project/
uv init omicverse_env
cd omicverse_env
- 下载
requirements.txt并配置虚拟环境:
python -m venv .venv
source .venv/bin/activate
- 设置镜像源(可选):
export PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
- 安装依赖:
uv pip install -r requirements.txt
支持的国内镜像源包括:
- 阿里云:https://mirrors.aliyun.com/pypi/simple/
- 中科大:https://pypi.mirrors.ustc.edu.cn/simple/
- 华为云:https://mirrors.huaweicloud.com/repository/pypi/simple/
- 腾讯云:https://mirrors.cloud.tencent.com/pypi/simple/
测试框架
安装完成后可进行简单测试:
uv pip install torch torchvision torchaudio torch_geometric torchdr pymde
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
验证 omicverse 与 scanpy 是否导入成功:
import omicverse
print(omicverse.__file__)
import scanpy
print(scanpy.__file__)
下载并解压测试数据:
mkdir data
wget http://cf.10xgenomics.com/samples/cell-exp/1.1.0/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz -O data/pbmc3k_filtered_gene_bc_matrices.tar.gz
cd data && tar -xzf pbmc3k_filtered_gene_bc_matrices.tar.gz
运行示例代码:
import scanpy as sc
import omicverse as ov
import matplotlib.pyplot as plt
ov.plot_set()
ov.settings.cpu_gpu_mixed_init()
adata = sc.read_10x_mtx('data/filtered_gene_bc_matrices/hg19/', var_names='gene_symbols', cache=True)
adata.var_names_make_unique()
adata.obs_names_make_unique()
adata = ov.pp.qc(adata, tresh={'mito_perc': 0.2, 'nUMIs': 500, 'detected_genes': 250}, doublets_method='scrublet')
adata = ov.pp.preprocess(adata, mode='shiftlog|pearson', n_HVGs=2000, target_sum=50e4)
ov.pp.scale(adata)
ov.pp.pca(adata, layer='scaled', n_pcs=50)
ov.pl.embedding(adata, basis='X_pca', color='CST3')
ov.pp.neighbors(adata, n_neighbors=15, n_pcs=50, use_rep='scaled|original|X_pca')
ov.pp.umap(adata)
ov.pl.embedding(adata, basis='X_umap', color='CST3')
plt.savefig("FeaturePlot.png", dpi=300, bbox_inches="tight", pad_inches=0.5)
完整教程可参考:Omicverse 官方教程,很nice的一个单细胞分析框架,值得学习。

FeaturePlot.png