前言
最近分析单细胞数据,发现自己环境中的scanpy 版本落后太多了,所以更新了一下……然后在做 RNA Velocity分析的时候遇见了报错: Error: Neighbors.compute_neighbors() got an unexpected keyword argument 'write_knn_indices'
,记录一下解决过程。
报错场景
工具版本:Scanpy Version:1.10.1、ScVelo Version:0.3.2
代码:
import scvelo as scv
...
...
scv.pp.moments(adata, n_pcs=30, n_neighbors=30)
报错: TypeError: Neighbors.compute_neighbors() got an unexpected keyword argument 'write_knn_indices'
解决过程
和以前一样,直接Google搜索报错信息,找到:
解决方法,上图所示,把参数设置从n_pcs=30
改为n_pcs=None
Bug fixed
scVelo的作者已经在最近把 bug 修复了, 所以只要安装一下develop的版本应该就可以了:
pip install git+https://github.com/theislab/scvelo@main
,或者
git clone https://github.com/theislab/scvelo && cd scvelo
git checkout --track origin/main
pip install -e .
其他方案
如果根据上述步骤,修改参数后仍然报错,那么还有一种解决方案可以参考。
工具版本:
numba 0.53.1
scanpy 1.7.2
scvelo 0.2.3
umap-learn 0.4.6
此时,需要将 numba 版本降到 0.52.0,即 pip install numba==0.52.0
但是,我估计很少会有人需要这样……因为已经是**“相对古早”**的版本了
总结
我遇到的报错,应该之前会有人遇到过,多搜一搜,总会找到解决方案,提高信息检索筛选的能力,会明显减少解决问题所需时间。