找回密码
 立即注册
首页 业界区 安全 GPU加速的单细胞一站式分析还能生成报告!他来了 ...

GPU加速的单细胞一站式分析还能生成报告!他来了

颜才 6 小时前
写在前面
最近在处理百万级别的单细胞数据,由于默认的CPU跑地太慢了,转头去折腾rapid_singlecell,但发现,这包是真难装。于是,我就打算在OmicVerse里用Pytorch重写单细胞预处理的部分函数。如果有现成的就直接调用,例如torchdr就可以进行PCA的GPU加速。
此外,作为大版本更新,从1.6->1.7,也意味着功能种类的突破。新增了传统转录组分析的limma,edgeR的Python实现,空间转录组学算法如空间梯度GASTON,空间通讯COMMOT[GPU加速]+flowsig,空间聚类算法BINARY,CAST的一键批量调用和评估。
值得一提的是,多种模型的扰动预测,懒人函数lazy一键完成注释前所有预处理,并生成报告。这些功能在新版本都有所体现。由于功能较多,因此特意撰写一篇推文来向大家引路。
Steorra
0. 更简单的安装方法

考虑到不同人的计算机能力,因此在OmicVerse新版本中,我们提供了中文安装教程,以及懒人版自动检测安装命令:

  • 中文安装教程:https://omicverse.readthedocs.io/en/latest/Installation_guide_zh/
  • 懒人版自动检测安装命令:
  1. #仅适用于Linux
  2. curl -sSL https://raw.githubusercontent.com/Starlitnightly/omicverse/refs/heads/master/install.sh | bash -s
复制代码
该脚本会自动: - 设置适当的环境 - 为您的系统安装正确的 PyTorch 版本 - 安装所有必需的依赖项 - 为您的硬件优化配置 OmicVerse
如果你在国内,那么可以换一个源可能会更快一些
  1. #仅适用于Linux(国内加速)
  2. curl -sSL https://starlit.oss-cn-beijing.aliyuncs.com/single/install.sh | bash -s
复制代码
1. GPU-CPU混合预处理

在OmicVerse 1.7以后的版本中,我们提供了一个很有趣的模式:GPU-CPU混合处理模式ov.settings.cpu_gpu_mixed_init()。在该模式下,对CPU计算耗时高的方法,将会采用GPU进行计算,极大降低了等待时间。并且,不需要安装rapid_singlecell这个相当难装的包。具体来说:

  • scrublet: 这是传统的双细胞过滤算法,但是在运行该算法的时候,我们需要在整个矩阵上计算PCA,传统的scanpy采用sklearn库调用PCA,我们在新版OmicVerse中,使用torchdr库来调用PCA,在大型数据上,运算时间缩短将近100倍
  • pca,tsne: 我们使用torchdr库来调用PCA和TSNE,在大型数据上,运算时间缩短将近100倍。
  • umap: 我们经过对比研究发现,torchdr的UMAP并不能很好地保留细胞的流形。因此,我们优化了pymde的neighbors,我们使用scanpy计算的neighbors作为输入,使得我们可以实现GPU加速的umap可视化。同时,我们也可以使用ov.pp.mde直接计算neighbors。
CPU-GPU混合预处理的教程在,如果你希望有更多的方法也进行GPU加速,欢迎在Github上提issue:https://omicverse.readthedocs.io/en/latest/Tutorials-single/t_preprocess_cpu/
1.png

2. 传统转录组学的Python全分析

在2024年初,Bioinformatics上发表了pyDEseq2和pyWGCNA两个算法,在2025年,inmoose包也包括了limma,edgepy两个算法。自此,传统转录组分析可以完全在Python上进行了。我们很高兴地告诉大家,现在这些方法都可以在OmicVerse里通过一个函数进行直接调用。
  1. dds=ov.bulk.pyDEG(data)
  2. dds.drop_duplicates_index()
  3. dds.normalize()
  4. #最传统的ttest检验p值
  5. result_ttest=dds.deg_analysis(treatment_groups,control_groups,method='ttest')
  6. #使用edgepy
  7. result_edgepy=dds.deg_analysis(treatment_groups,control_groups,method='edgepy')
  8. #使用limma
  9. result_limma=dds.deg_analysis(treatment_groups,control_groups,method='limma')
  10. #使用DEseq2
  11. result=dds.deg_analysis(treatment_groups,control_groups,method='DEseq2')
复制代码
详细的传统转录组学分析教程可以在OmicVerse的官方教程页找到:

  • 在标准化后的数据上的差异表达分析:https://omicverse.readthedocs.io/en/latest/Tutorials-bulk/t_deg/
  • 在原始数据上的差异表达分析:https://omicverse.readthedocs.io/en/latest/Tutorials-bulk/t_deseq2/
当然,你也可以在OmicVerse中调用pycombat或者是ERgene去除数据的批次效应。
3. 最前沿的空间转录组学算法的一键调用

由于我本人最近在开发一系列的空转算法,并且做很多跟空转相关的数据分析。因此,为了保证论文的新颖性,我在分析的时候采用的都是最前沿的算法,不过由于每个作者的代码风格不同,不同的算法之间的依赖冲突严重等问题,所以我在OmicVerse新版本的更新中,将我认为比较有趣的空转算法,都纳入了space模块中方便调用。

  • 10x的空间转录组学数据裁剪和旋转:这是一个很有趣的事情,目前的包大都没有这个实用的功能,于是我们在OmicVerse中实现了这件事。但其实这个函数很早就有了,只是最近才把教程写出来:https://omicverse.readthedocs.io/en/latest/Tutorials-space/t_crop_rotate/
2.png


  • 空间通讯分析commot与flowsig: 我用过很多空间通讯分析的算法,例如今年新发的NicheCompass,但这些算法,或多或少在运行中会出现各种意想不到的bug,除此之外,最后的可视化效果,也并不一定是分析所需要的。但是commot与flowsig不同,第一个算法,可以看到信号的流向,第二个算法,可以揭示信号背后的调控基因。并且在新版本的更新中,我对commot进行了GPU加速优化,将原来几个小时的分析,缩短到了几分钟,同时添加了更多的进度条以便观察分析进度。
  • 空间通讯分析commot与flowsig教程:https://omicverse.readthedocs.io/en/latest/Tutorials-space/t_commot_flowsig/
3.png


  • 空间梯度算法GASTON:这是一个我很喜欢的新算法,落脚于单切片,画出来的图很像山峦图,爬山一样的更高线,可以看见基因变化的趋势,于是在OmicVerse的新版本中,也被引入了进来
  • 空间梯度算法GASTON教程:https://omicverse.readthedocs.io/en/latest/Tutorials-space/t_gaston/
4.png

4. 单细胞分析报告一键生成

我觉得人大部分时候都是懒的,单细胞分析的预处理是很繁琐且无聊的事情,在OmicVerse未来的开发中,我们将会逐步引入agent,逐步将分析变成全自动的过程。在1.7.0的版本中,我们已经可以实现数据预处理的全自动化,预期在下一个版本,会实现细胞注释的自动化。
教程地址:https://omicverse.readthedocs.io/en/latest/Tutorials-single/t_lazy/

  • 我们提供了一个函数omicverse.single.lazy,该函数可以自动预处理单细胞数据,其中自动处理的参数可调
  • 我们提供了一个分析报告生成函数omicverse.single.generate_scRNA_report,该函数类似MultiQC,可以可视化我们的预处理分析结果。
  • 除此之外,对于在omicverse中调用的所有分析,注意是所有,我们现在都可以通过ov.generate_reference_table来生成参考文献以及doi
5.png

该报告目前仅能展示基础预处理,也就是直到注释前的所有步骤。并且物种暂时只支持human和mouse,在未来我们会添加更多自动化的分析功能进入。如果有更多建议也欢迎在Github上提交issue:https://github.com/Starlitnightly/omicverse/issues
5. 写在最后

今天距离OmicVerse被Nature Communication接收刚好一周年,感谢大家这一年的陪伴与使用,希望OmicVerse在未来,能撑起国产分析单细胞/空间转录组学的一片天,让人人都能上手单细胞多组学分析!最后,我们创建了一个交流群,欢迎大家有什么提问在群里进行。
群可以在Github的Issue上找到:https://github.com/Starlitnightly/omicverse/issues/294

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册