KrishnaswamyLab / PHATE

PHATE (Potential of Heat-diffusion for Affinity-based Transition Embedding) is a tool for visualizing high dimensional data.
http://phate.readthedocs.io
GNU General Public License v2.0
464 stars 72 forks source link

Dependencies update #135

Closed dsm-72 closed 1 year ago

dsm-72 commented 1 year ago

Is your feature request related to a problem? Please describe. Here is an example yaml file. Everything up to phate==1.0.10 installs without conflicts. Adding phate causes the environment to fail due to conflicts. Relaxing the version restrictions on phate (to see which, if any, version is compatible) yields 0.4.5. This is likely due to a requirements issue in the setup.py file.

name: test_env
channels:
  - pytorch
  - conda-forge  
  - fastai  
  - bioconda
  # - nvidia  

dependencies:  
  - python>=3.10.9

  # Utilities
  - tqdm

  # Jupyter Notebook
  - conda-forge::notebook==6.5.3 
  - conda-forge::ipykernel==6.22.0
  - conda-forge::ipywidgets==8.0.4
  - conda-forge::jupyter_contrib_nbextensions==0.7.0

  # nbdev
  - fastai::nbdev==2.3.12

  # PyTorch
  - pytorch==2.0.0  
  - conda-forge::pytorch-lightning==2.0.0
  - conda-forge::torchdiffeq==0.2.2

  # Plotting
  - conda-forge::matplotlib=3.7.1
  - conda-forge::seaborn==0.12.2   

  # Data
  - conda-forge::scikit-learn=1.2.1
  - pandas==1.5.3
  - numpy==1.23.5
  - scipy

  # Single-Cell
  - conda-forge::scanpy==1.9.2
  - conda-forge::anndata==0.8.0

  # Krishnaswamy Lab
  - graphtools  
  - bioconda::scprep==1.2.2
  - bioconda::phate==0.4.5
  # - bioconda::phate==1.0.10

  # Pip / non-conda packages
  - pip
  - pip: 
    # PyTorch   
    - pot
    - torchdyn==1.0.3

    # Krishnaswamy Lab
    - magic-impute

Describe the solution you'd like Release a major version of phate (>=1.X.X) compatible with the above environment

scottgigante commented 1 year ago

Can you make a miminum working example? You'll need to figure out which of your dependencies is the culprit by eliminating them one by one, and then provide a single command conda install ... that replicates the issue.

dsm-72 commented 1 year ago

@scottgigante

Above is the MWE.conda create env -f env.yml and then as you said, removed packages one by one until I no longer had the error.... except:

dependencies:


and here we see

```sh
conda env create -f test_env2.yml
Collecting package metadata (repodata.json): done
Solving environment: \ 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                     
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                     

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package python conflicts for:
bioconda::phate==1.0.10 -> python[version='>=3.5']
bioconda::phate==1.0.10 -> deprecated -> python[version='>=2.7|>=3.8|>=3.9,<3.10.0a0|>=3.9,<3.10.0a0|>=3.10,<3.11.0a0|>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.8,<3.9.0a0|>=3.11,<3.12.0a0|>=3.11,<3.12.0a0|>=3.6',build=*_cpython]
python[version='>=3.10']
scottgigante commented 1 year ago

Deprecated doesn't look to have strict python requirements, nor does phate. Try installing with mamba?

Cf https://github.com/conda-forge/deprecated-feedstock/blob/main/recipe/meta.yaml

On Wed, 22 Mar 2023, 07:36 dsm-72, @.***> wrote:

@scottgigante https://github.com/scottgigante

Above is the MWE.conda create env -f env.yml and then as you said, removed packages one by one until I no longer had the error.... except:

-

Strangely this affects M1 and M2 Macs not Linux (Ubuntu 20+) or Windows systems. I could use the above file with 1.0.10 on Ubuntu 20.04TLS.

The issue is literally on the python version 😭

name: test_env_2channels:

  • pytorch
  • conda-forge
  • fastai
  • bioconda
  • dglteam

    - nvidia

    dependencies:

  • python>=3.10 # <----------- here 3.10.9 --> 3.10

    Utilities

    - tqdm

    Jupyter Notebook

    - conda-forge::notebook==6.5.3

    - conda-forge::ipykernel==6.22.0

    - conda-forge::ipywidgets==8.0.4

    - conda-forge::jupyter_contrib_nbextensions==0.7.0

    nbdev

    - fastai::nbdev==2.3.12

    PyTorch

    - pytorch==2.0.0

    - conda-forge::pytorch-lightning==2.0.0

    - conda-forge::torchdiffeq==0.2.2

    - dglteam::dgl==1.0.1

    Plotting

    - conda-forge::matplotlib=3.7.1

    - conda-forge::seaborn==0.12.2

    Data

    - conda-forge::scikit-learn=1.2.1

    - pandas==1.5.3

    - numpy==1.23.5

    - scipy

    Single-Cell

    - conda-forge::scanpy==1.9.2

    - conda-forge::anndata==0.8.0

    Krishnaswamy Lab

    - graphtools

    - bioconda::scprep==1.2.2

    - bioconda::phate==0.4.5

  • bioconda::phate==1.0.10

    Pip / non-conda packages

    - pip

    - pip:

    PyTorch

    - pot

    - torchdyn==1.0.3

    Krishnaswamy Lab

    - magic-impute

and here we see

conda env create -f test_env2.yml Collecting package metadata (repodata.json): done Solving environment: \ Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed Solving environment: / Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package python conflicts for: bioconda::phate==1.0.10 -> python[version='>=3.5'] bioconda::phate==1.0.10 -> deprecated -> python[version='>=2.7|>=3.8|>=3.9,<3.10.0a0|>=3.9,<3.10.0a0|>=3.10,<3.11.0a0|>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.8,<3.9.0a0|>=3.11,<3.12.0a0|>=3.11,<3.12.0a0|>=3.6',build=*_cpython] python[version='>=3.10']

— Reply to this email directly, view it on GitHub https://github.com/KrishnaswamyLab/PHATE/issues/135#issuecomment-1479400554, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACA3DXZCWG2OLBFTILDB6X3W5LP4VANCNFSM6AAAAAAWCPK53Y . You are receiving this because you were mentioned.Message ID: @.***>

dsm-72 commented 1 year ago

Tried with mamba @scottgigante


Could not solve for environment specs
Encountered problems while solving:
  - nothing provides s_gd2 >=1.5 needed by phate-1.0.10-pyhdfd78af_0
  - ```
dsm-72 commented 1 year ago

adding - conda-forge::s_gd2>=1.5 doesn't solve the issue

dsm-72 commented 1 year ago

using pip works... but bioconda fails

scottgigante commented 1 year ago

What command did you use? s_gd2 1.7 is provided by conda-forge https://anaconda.org/conda-forge/s_gd2

On Thu, 23 Mar 2023, 07:49 dsm-72, @.***> wrote:

using pip works... but bioconda fails

— Reply to this email directly, view it on GitHub https://github.com/KrishnaswamyLab/PHATE/issues/135#issuecomment-1481049886, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACA3DX7SYXOA3MU2MXV7VMTW5Q2FPANCNFSM6AAAAAAWCPK53Y . You are receiving this because you were mentioned.Message ID: @.***>

dsm-72 commented 1 year ago
# previously was using conda, now using mamba per your suggestion
# conda env update -n test_env_2 --file env.yml

mamba env update -n test_env_2 --file env.yml

Note the error is

Encountered problems while solving:
  - nothing provides s_gd2 >=1.5 needed by phate-1.0.10-pyhdfd78af_0

It isn't with s_gd2 it is with phate from bioconda

scottgigante commented 1 year ago

Once again, a minimum reproducible example is lacking.

mamba install -c conda-forge -c bioconda phate==1.0.10

This works in my environment.

dsm-72 commented 1 year ago

@scottgigante is your environment the environment shown above? because that environment is the MWE that produces the error.

scottgigante commented 1 year ago

Please run the command above and print the full output. I can't work with partial commands and files described as a combination of different comments.

dsm-72 commented 1 year ago

@scottgigante these are not partial commands and files that describe a combination of different comments. It is one file and one command.

 # phate_env.yml
name: phate_env
channels:
  - pytorch
  - conda-forge  
  - fastai  
  - bioconda
  - dglteam

dependencies:  
  - python>=3.10

  - bioconda::phate==1.0.10
$ mamba env create -f phate_env.yml 
pytorch/osx-arm64                                             No change
pytorch/noarch                                                No change
conda-forge/osx-arm64                                         No change
bioconda/noarch                                               No change
fastai/osx-arm64                                   141.0 B @ 456.0 B/s  0.3s
bioconda/osx-arm64                                            No change
dglteam/osx-arm64                                  136.0 B @ 378.0 B/s  0.2s
dglteam/noarch                                     135.0 B @ 286.0 B/s  0.3s
fastai/noarch                                      330.1kB @ 479.5kB/s  0.5s
conda-forge/noarch                                  11.6MB @   4.9MB/s  2.6s

Looking for: ["python[version='>=3.10']", 'bioconda::phate==1.0.10']

Could not solve for environment specs
Encountered problems while solving:
  - nothing provides s_gd2 >=1.5 needed by phate-1.0.10-pyhdfd78af_0

The environment can't be solved, aborting the operation
scottgigante commented 1 year ago

This issue is that s_gd2 is not built for ARM on conda-forge. Please open an issue there. Closing this.