Omicverse单细胞分析框架初尝试

Omicverse 是一款由国内博士生开发的 Python 单细胞测序数据分析框架,具有高度集成性与模块化设计,覆盖了从数据预处理、降维、聚类到可视化等完整分析流程,功能强大且易于扩展。

ScanpySeurat 等主流工具相比,Omicverse 在易用性与可定制性方面表现更优,适合希望深入理解分析流程并进行二次开发的研究人员。其文档完善,学习资源持续更新,适合初学者入门与进阶。

环境搭建

Omicverse 基于 Python 构建,推荐使用虚拟环境(如 condavenv)进行依赖管理。本文采用 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

  1. 创建项目目录并初始化:
mkdir -p ~/Project && cd ~/Project/
uv init omicverse_env
cd omicverse_env
  1. 下载 requirements.txt 并配置虚拟环境:
python -m venv .venv
source .venv/bin/activate
  1. 设置镜像源(可选):
export PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
  1. 安装依赖:
uv pip install -r requirements.txt

支持的国内镜像源包括:

测试框架

安装完成后可进行简单测试:

uv pip install torch torchvision torchaudio torch_geometric torchdr pymde
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

验证 omicversescanpy 是否导入成功:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容