scverse / pertpy

Perturbation Analysis in the scverse ecosystem.
https://pertpy.readthedocs.io/en/latest/
MIT License
139 stars 21 forks source link

Conda package #294

Open Nusob888 opened 1 year ago

Nusob888 commented 1 year ago

Description of feature

Dear authors,

Please can you look into submitting pertpy for a conda implementation. I have tried multiple times to install this within a virtual environment and it causes numerous errors. I have never had an issue with any of the theis lab's conda packages in the past and pip is not conducive when you need an environment that has packages of different dependencies.

It would likely save everyone a whole lot of time and probably make this package more widely used.

Thanks for your consideration.

Zethson commented 1 year ago

Hi,

  1. Yes. It's on our TODO list. Don't expect it anytime soon though.
  2. What installation issues are you running into?

Thanks

Nusob888 commented 1 year ago

Thanks,

well one example is installing pertpy with python v 3.10.6 in a venv goes fine, but when you load it, it tells you to use sccoda you have to install ete3 and rpy2. Installing those then gives this error (below) when you attempt to import it. If I do not install those I seem to be able to import fine.


SystemError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import pertpy

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/init.py:13 10 pertpy_pypi_latest = PypiLatest("pertpy", version) 11 pertpy_pypi_latest.check_latest() ---> 13 from . import data as dt 14 from . import plot as pl 15 from . import preprocessing as pp

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/data/init.py:1 ----> 1 from pertpy.data._datasets import ( 2 adamson_2016_pilot, 3 adamson_2016_upr_epistasis, 4 adamson_2016_upr_perturb_seq, 5 aissa_2021, 6 bhattacherjee, 7 burczynski_crohn, 8 chang_2021, 9 datlinger_2017, 10 datlinger_2021, 11 dialogue_example, 12 distance_example_data, 13 dixit_2016, 14 dixit_2016_raw, 15 dixit_2016_scperturb, 16 frangieh_2021, 17 frangieh_2021_protein, 18 frangieh_2021_raw, 19 frangieh_2021_rna, 20 gasperini_2019_atscale, 21 gasperini_2019_highmoi, 22 gasperini_2019_lowmoi, 23 gehring_2019, 24 haber_2017_regions, 25 kang_2018, 26 mcfarland_2020, 27 norman_2019, 28 norman_2019_raw, 29 papalexi_2021, 30 replogle_2022_k562_essential, 31 replogle_2022_k562_gwps, 32 replogle_2022_rpe1, 33 sc_sim_augur, 34 schiebinger_2019_16day, 35 schiebinger_2019_18day, 36 schraivogel_2020_tap_screen_chr8, 37 schraivogel_2020_tap_screen_chr11, 38 sciplex3_raw, 39 shifrut_2018, 40 smillie, 41 srivatsan_2020_sciplex2, 42 srivatsan_2020_sciplex3, 43 srivatsan_2020_sciplex4, 44 stephenson_2021_subsampled, 45 tian_2019_day7neuron, 46 tian_2019_ipsc, 47 tian_2021_crispra, 48 tian_2021_crispri, 49 weinreb_2020, 50 xie_2017, 51 zhao_2021, 52 )

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/data/_datasets.py:3 1 from pathlib import Path ----> 3 import muon as mu 4 import scanpy as sc 5 from anndata import AnnData

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/muon/init.py:6 3 from mudata import MuData 4 from mudata._core.io import * ----> 6 from ._core import preproc as pp 7 from ._core import tools as tl 8 from ._core import plot as pl

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/muon/_core/preproc.py:13 10 from sklearn.utils import check_random_state 12 from anndata import AnnData ---> 13 from scanpy import logging 14 from scanpy.tools._utils import _choose_representation 15 from scanpy.neighbors import _compute_connectivities_umap

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/init.py:6 3 from ._metadata import version, within_flit 5 if not within_flit(): # see function docstring on why this is there ----> 6 from ._utils import check_versions 8 check_versions() 9 del check_versions, within_flit

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/_utils/init.py:29 26 from .._compat import Literal 27 from .. import logging as logg ---> 29 from .compute.is_constant import is_constant 32 class Empty(Enum): 33 token = 0

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/_utils/compute/is_constant.py:5 2 from numbers import Integral 4 import numpy as np ----> 5 from numba import njit 6 from scipy import sparse 9 @singledispatch 10 def is_constant(a, axis=None) -> np.ndarray:

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/init.py:42 38 from numba.core.decorators import (cfunc, generated_jit, jit, njit, stencil, 39 jit_module) 41 # Re-export vectorize decorators and the thread layer querying function ---> 42 from numba.np.ufunc import (vectorize, guvectorize, threading_layer, 43 get_num_threads, set_num_threads, 44 set_parallel_chunksize, get_parallel_chunksize, 45 get_thread_id) 47 # Re-export Numpy helpers 48 from numba.np.numpy_support import carray, farray, from_dtype

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/np/ufunc/init.py:3 1 # -- coding: utf-8 -- ----> 3 from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize 4 from numba.np.ufunc._internal import PyUFunc_None, PyUFunc_Zero, PyUFunc_One 5 from numba.np.ufunc import _internal, array_exprs

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/np/ufunc/decorators.py:3 1 import inspect ----> 3 from numba.np.ufunc import _internal 4 from numba.np.ufunc.parallel import ParallelUFuncBuilder, ParallelGUFuncBuilder 6 from numba.core.registry import DelayedRegistry

SystemError: initialization of _internal failed without raising an exception

Zethson commented 1 year ago

On which OS are you and are you in a fresh venv?

Jun 20, 2023 5:10:00 PM Bo Sun @.***>:

Thanks,

well one example is installing pertpy with python v 3.10.6 in a venv goes fine, but when you load it, it tells you to use sccoda you have to install ete3 and rpy2. Installing those then gives this error (below) when you attempt to import it. If I do not install those I seem to be able to import fine.


SystemError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import pertpy

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/init.py:13 10 pertpy_pypi_latest = PypiLatest("pertpy", version) 11 pertpy_pypi_latest.check_latest() ---> 13 from . import data as dt 14 from . import plot as pl 15 from . import preprocessing as pp

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/data/init.py:1 ----> 1 from pertpy.data._datasets import ( 2 adamson_2016_pilot, 3 adamson_2016_upr_epistasis, 4 adamson_2016_upr_perturb_seq, 5 aissa_2021, 6 bhattacherjee, 7 burczynski_crohn, 8 chang_2021, 9 datlinger_2017, 10 datlinger_2021, 11 dialogue_example, 12 distance_example_data, 13 dixit_2016, 14 dixit_2016_raw, 15 dixit_2016_scperturb, 16 frangieh_2021, 17 frangieh_2021_protein, 18 frangieh_2021_raw, 19 frangieh_2021_rna, 20 gasperini_2019_atscale, 21 gasperini_2019_highmoi, 22 gasperini_2019_lowmoi, 23 gehring_2019, 24 haber_2017_regions, 25 kang_2018, 26 mcfarland_2020, 27 norman_2019, 28 norman_2019_raw, 29 papalexi_2021, 30 replogle_2022_k562_essential, 31 replogle_2022_k562_gwps, 32 replogle_2022_rpe1, 33 sc_sim_augur, 34 schiebinger_2019_16day, 35 schiebinger_2019_18day, 36 schraivogel_2020_tap_screen_chr8, 37 schraivogel_2020_tap_screen_chr11, 38 sciplex3_raw, 39 shifrut_2018, 40 smillie, 41 srivatsan_2020_sciplex2, 42 srivatsan_2020_sciplex3, 43 srivatsan_2020_sciplex4, 44 stephenson_2021_subsampled, 45 tian_2019_day7neuron, 46 tian_2019_ipsc, 47 tian_2021_crispra, 48 tian_2021_crispri, 49 weinreb_2020, 50 xie_2017, 51 zhao_2021, 52 )

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/pertpy/data/_datasets.py:3 1 from pathlib import Path ----> 3 import muon as mu 4 import scanpy as sc 5 from anndata import AnnData

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/muon/init.py:6 3 from mudata import MuData 4 from mudata._core.io import * ----> 6 from ._core import preproc as pp 7 from ._core import tools as tl 8 from ._core import plot as pl

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/muon/_core/preproc.py:13 10 from sklearn.utils import check_random_state 12 from anndata import AnnData ---> 13 from scanpy import logging 14 from scanpy.tools._utils import _choose_representation 15 from scanpy.neighbors import _compute_connectivities_umap

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/init.py:6 3 from ._metadata import version, within_flit 5 if not within_flit(): # see function docstring on why this is there ----> 6 from ._utils import check_versions 8 check_versions() 9 del check_versions, within_flit

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/_utils/init.py:29 26 from .._compat import Literal 27 from .. import logging as logg ---> 29 from .compute.is_constant import is_constant 32 class Empty(Enum): 33 token = 0

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/scanpy/_utils/compute/is_constant.py:5 2 from numbers import Integral 4 import numpy as np ----> 5 from numba import njit 6 from scipy import sparse 9 @singledispatch 10 def is_constant(a, axis=None) -> np.ndarray:

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/init.py:42 38 from numba.core.decorators import (cfunc, generated_jit, jit, njit, stencil, 39 jit_module) 41 # Re-export vectorize decorators and the thread layer querying function ---> 42 from numba.np.ufunc import (vectorize, guvectorize, threading_layer, 43 get_num_threads, set_num_threads, 44 set_parallel_chunksize, get_parallel_chunksize, 45 get_thread_id) 47 # Re-export Numpy helpers 48 from numba.np.numpy_support import carray, farray, from_dtype

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/np/ufunc/init.py:3 1 # -/- coding: utf-8 -/- ----> 3 from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize 4 from numba.np.ufunc._internal import PyUFunc_None, PyUFunc_Zero, PyUFunc_One 5 from numba.np.ufunc import _internal, array_exprs

File /well/immune-rep/users/vbw431/conda/ivybridge/envs/sccoda/lib/python3.10/site-packages/numba/np/ufunc/decorators.py:3 1 import inspect ----> 3 from numba.np.ufunc import _internal 4 from numba.np.ufunc.parallel import ParallelUFuncBuilder, ParallelGUFuncBuilder 6 from numba.core.registry import DelayedRegistry

SystemError: initialization of _internal failed without raising an exception

— Reply to this email directly, view it on GitHub[https://github.com/theislab/pertpy/issues/294#issuecomment-1598983142], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AFHQA2BKXXMFKLP42HBPDPLXMG4MLANCNFSM6AAAAAAZNMJ5GQ]. You are receiving this because you commented.[Tracking image][https://github.com/notifications/beacon/AFHQA2CYSVR4WZCKXR7YPGTXMG4MLA5CNFSM6AAAAAAZNMJ5GSWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS7J2F6M.gif]

Nusob888 commented 1 year ago

Yes, fresh venv and OS is:

NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"

Zethson commented 1 year ago

The error that you're getting actually runs when trying to import scanpy and in turn numba. centos7 is really old.