All Articles
    Search by

    CellOracleのimport errorを解決する

    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。

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

    Published Jan 13, 2025

    © 2020-2024 Hiroyuki Odake