EI-CoreBioinformatics / mikado

Mikado is a lightweight Python3 pipeline whose purpose is to facilitate the identification of expressed loci from RNA-Seq data * and to select the best models in each locus.
https://mikado.readthedocs.io/en/stable/
GNU Lesser General Public License v3.0
98 stars 18 forks source link

can't install Mikado by different ways #448

Open mezoderma opened 11 months ago

mezoderma commented 11 months ago

Hello,

I try to install Micado through conda and git, but usually refused with error related to scipy package. I followed installation instructions and installed all requirements without errors in differend environments. It could be installed under python 3.6, but tests executed with error at module 'asyncio':

FAILED tests/test_external_async.py::AsyncExternalTest::test_get_external - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_external_async.py::AsyncJunctionTest::test_retrieval - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_external_async.py::AsyncOrfLoading::test_load_orfs - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_lenient_split - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_lenient_split_twohits - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_no_hsps - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_no_splitting_by_source - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_permissive_split - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_permissive_split_twohits - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_simple_split - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_spanning_hit_lenient - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_spanning_hit_nocheck - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_stringent_split - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestSplitMonoexonic::test_stringent_split_twohits - AttributeError: module 'asyncio' has no attribute 'run'
FAILED tests/test_splitting.py::TestWithPhase::testNegative - AttributeError: module 'asyncio' has no attribute 'run'
========================================================================================= 15 failed, 509 passed, 46 deselected, 9 warnings in 31.71s =========================================================================================

Installation under python>=3.7 resulted in this error:

(mikado)` ilbor@ilbor-MS-7C91:~/soft/mikado-2.3.4$ pip wheel -w dist .
Processing /home/ilbor/soft/mikado-2.3.4
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [15 lines of output]
      Traceback (most recent call last):
        File "/home/ilbor/miniconda3/envs/mikado/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/ilbor/miniconda3/envs/mikado/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/ilbor/miniconda3/envs/mikado/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-gz7rjicd/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-gz7rjicd/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-gz7rjicd/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 15, in <module>
      ModuleNotFoundError: No module named 'scipy._build_utils'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

I checked issues #444 , #445 and related, but nothing is work for me (also that one way) Usual error is ModuleNotFoundError: No module named 'scipy._build_utils' Sure scipy is installed in environment.

Would be happy with any comments how to resolve it, Ilya

adamfreedman commented 9 months ago

A few years ago, I had a working installation of mikado ... but now I concur, none of the listed methods that were attempted in issue 448 worked for me either. There are two levels of issue: one with installers, and two, with underlying mikado code, the latter being things like the fact that build_utils is no longer part of scipy. And, building from source per the suggestions using pip won't work for me either, because it seems the *whl file that is generated for mikado is not compatible with rocky linux (which is what our cluster has migrated to). This all would have been a non-issue if a docker image had been put on dockerhub. The docs page said the developers were going to do that ... and they don't ever seemed to have done it.