aertslab / scenicplus

SCENIC+ is a python package to build gene regulatory networks (GRNs) using combined or separate single-cell gene expression (scRNA-seq) and single-cell chromatin accessibility (scATAC-seq) data.
Other
163 stars 27 forks source link

scenicplus installation #352

Closed ktroule closed 2 months ago

ktroule commented 2 months ago

Describe the bug Hi! Thanks for providing this package and all the documentation. I'm not sure if this falls within the bug category.

I'm trying to install scenicplus on a linux based shared server as follows:

conda create --name scenicplus python=3.11
conda activate scenicplus
git clone https://github.com/aertslab/scenicplus
cd scenicplus

module load Rust/1.75.0-GCCcore-10.3.0
git checkout development
pip install .

Error output Just showing the last bits of the message.

Collecting pybigtools (from scenicplus==1.0a1)
  Using cached pybigtools-0.1.3.tar.gz (140 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
          Updating crates.io index
      warning: spurious network error (3 tries remaining): [28] Timeout was reached (Failed to connect to index.crates.io port 443 after 30019 ms: Timeout was reached)
      warning: spurious network error (2 tries remaining): [28] Timeout was reached (Failed to connect to index.crates.io port 443 after 30010 ms: Timeout was reached)
      warning: spurious network error (1 tries remaining): [28] Timeout was reached (Failed to connect to index.crates.io port 443 after 30020 ms: Timeout was reached)
      error: failed to get `bigtools` as a dependency of package `pybigtools v0.1.3 (/wscratch/pip-install-2vg0wj7y/pybigtools_4f5299bb443945cbaa092ce148fa5438/pybigtools)`

      Caused by:
        failed to query replaced source registry `crates-io`

      Caused by:
        download of config.json failed

      Caused by:
        failed to download from `https://index.crates.io/config.json`

      Caused by:
        [28] Timeout was reached (Failed to connect to index.crates.io port 443 after 30020 ms: Timeout was reached)
      💥 maturin failed
        Caused by: Cargo metadata failed. Does your crate compile with `cargo build`?
        Caused by: `cargo metadata` exited with an error:
      Error running maturin: Command '['maturin', 'pep517', 'write-dist-info', '--metadata-directory', '/wscratch/pip-modern-metadata-2l9fzta5', '--interpreter', '/projects/ngs_eco/users/conda_envs/scenicplus/bin/python3.11']' returned non-zero exit status 1.
      Checking for Rust toolchain....
      Running `maturin pep517 write-dist-info --metadata-directory /wscratch/pip-modern-metadata-2l9fzta5 --interpreter /projects/ngs_eco/users/conda_envs/scenicplus/bin/python3.11`
      [end of output]

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

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

To me it seems related to big tools/pybigtools installation. I've tried to install these packages independently and a similar error pops. Do you have any hint to solve this?

If I do cargo 1.75.0-nightly I get cargo 1.75.0-nightly Thanks for your time and help.

ktroule commented 2 months ago

I also find many packages for which I have to remove the version on requirements.txt I'm removing the version of each of failing packages to see if I can install it. Example:

ERROR: Could not find a version that satisfies the requirement scikit-image==0.22.0 (from scenicplus) (from versions: 0.7.2, 0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.9.1, 0.9.3, 0.10.0, 0.10.1, 0.11.2, 0.11.3, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.5, 0.15.0, 0.16.2, 0.17.1, 0.17.2, 0.18.0, 0.18.1, 0.18.2, 0.18.3, 0.19.0rc0, 0.19.0, 0.19.1, 0.19.2, 0.19.3, 0.20.0.dev0, 0.20.0rc2, 0.20.0rc3, 0.20.0rc4, 0.20.0rc5, 0.20.0rc6, 0.20.0rc7, 0.20.0rc8, 0.20.0, 0.21.0rc0, 0.21.0rc1, 0.21.0)
ERROR: No matching distribution found for scikit-image==0.22.0
SeppeDeWinter commented 2 months ago

Hi @ktroule

Unfortunately I was not able to replicate your issue. I'm using a different Rust version though.


mamba create scenicplus_test python=3.11
mamba activate scenicplus_test

git clone https://github.com/aertslab/scenicplus
cd scenicplus
git checkout development

module load Rust/1.73.0-GCCcore-12.2.0

pip install . --no-cache-dir

Installs everything fine for me.

All the best,

Seppe

irepansalvador commented 2 months ago

Hi @SeppeDeWinter and @ktroule,

I found the exact same error as ktroule when trying to install scenicplus in a cluster. In my case with the rust version: Rust/1.65.0-GCCcore-12.2.0

conda create --name scenicplus python=3.11
conda activate scenicplus
git clone https://github.com/aertslab/scenicplus
cd scenicplus

module load Rust/1.65.0-GCCcore-12.2.0
git checkout development
pip install .

@SeppeDeWinter I suppose this is then related to the specific version of Rust used? I will try to use the same as you show.

best, Irepan

irepansalvador commented 2 months ago

Hi again,

I have managed to install scenicplus. First I installed the same rust version as mentioned by @SeppeDeWinter

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh -s -- --default-toolchain=1.73.0

But I ran into another error that seemed to be related with the GCC version used by default ERROR: Could not build wheels for annoy

So I loaded a newer version of GCC available and tried to install again, and this time it finished without error.

module load GCC/12.2.0
pip install . --no-cache-dir

This last part is also mentioned in here:

best, Irepan

ktroule commented 2 months ago

Hi.

Somehow I also managed to install it, not really sure how.

Kind regards.