CellOracleのimport errorを解決する

Published Jan 13, 2025
Updated Nov 9, 2025
1 minutes read

##CellOracleのimport errorを解決する

###CellOracleとは

SingleCell RNA-seqデータを使って、Perturbation後のtranscriptome変化を予測することができる。単一のRNA-seqではなくscRNA-seqというところが特徴的で、遺伝子ノックアウトやPerturbationによる影響を、次元圧縮された空間でベクトルとして視覚化し、その変化を予測可能にしている。

チュートリアルより

###エラー

使ってみようと思ったらcelloracleをimportしようとしただけでエラーになってしまった。

>>> import celloracle as co
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ubuntu/Main/preturb_prediction/dev/CellOracle/celloracle/__init__.py", line 8, in <module>
    from . import utility, network, network_analysis, go_analysis, data, data_conversion, oracle_utility
  File "/home/ubuntu/Main/preturb_prediction/dev/CellOracle/celloracle/utility/__init__.py", line 18, in <module>
    from .load_hdf5 import load_hdf5
  File "/home/ubuntu/Main/preturb_prediction/dev/CellOracle/celloracle/utility/load_hdf5.py", line 8, in <module>
    from ..motif_analysis.tfinfo_core import load_TFinfo
  File "/home/ubuntu/Main/preturb_prediction/dev/CellOracle/celloracle/motif_analysis/__init__.py", line 11, in <module>
    from .motif_analysis_utility import is_genome_installed
  File "/home/ubuntu/Main/preturb_prediction/dev/CellOracle/celloracle/motif_analysis/motif_analysis_utility.py", line 22, in <module>
    from genomepy import Genome
  File "/home/ubuntu/mambaforge/envs/test_celloracle/lib/python3.10/site-packages/genomepy/__init__.py", line 10, in <module>
    from genomepy.annotation import Annotation, query_mygene
  File "/home/ubuntu/mambaforge/envs/test_celloracle/lib/python3.10/site-packages/genomepy/annotation/__init__.py", line 11, in <module>
    from genomepy.annotation.mygene import _map_genes, query_mygene
  File "/home/ubuntu/mambaforge/envs/test_celloracle/lib/python3.10/site-packages/genomepy/annotation/mygene.py", line 4, in <module>
    import mygene
  File "/home/ubuntu/mambaforge/envs/test_celloracle/lib/python3.10/site-packages/mygene/__init__.py", line 6, in <module>
    from biothings_client import alwayslist, get_client
ImportError: cannot import name 'alwayslist' from 'biothings_client' (/home/ubuntu/mambaforge/envs/test_celloracle/lib/python3.10/site-packages/biothings_client/__init__.py)

###解決方法

biothings_clientでalwayslistのimport errorが起きているようである。biothings_clientのimport文はbiothings/mygene.pyでimportされているらしく、biothings_clientは最近まで頻繁にアップデートされているのに対して、mygene.pyは四年くらい放置されている。

根本的解決は難しいので、biothings_clientのバージョン指定をすることで解決する。

celloracleのレポジトリ をcloneし、requirements.txtにて以下の編集をし、pip install .でいったん解決できる。

+ biothings_client==0.2.6

あるいは、

pip install biothings_client==0.2.6

でその場しのぎのwalkaroundでもOK。

一応プルリクも出したので、遅かれ早かれ解決すると思う。