pertpy 0.9.1__py3-none-any.whl → 0.9.4__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
pertpy/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  __author__ = "Lukas Heumos"
4
4
  __email__ = "lukas.heumos@posteo.net"
5
- __version__ = "0.9.1"
5
+ __version__ = "0.9.4"
6
6
 
7
7
  import warnings
8
8
 
@@ -23,10 +23,10 @@ def _download( # pragma: no cover
23
23
  Args:
24
24
  url: URL to download
25
25
  output_file_name: Name of the downloaded file
26
- output_path: Path to download/extract the files to (default: OS tmpdir)
27
- block_size: Block size for downloads in bytes (default: 1024)
28
- overwrite: Whether to overwrite existing files (default: False)
29
- is_zip: Whether the downloaded file needs to be unzipped (default: False)
26
+ output_path: Path to download/extract the files to.
27
+ block_size: Block size for downloads in bytes.
28
+ overwrite: Whether to overwrite existing files.
29
+ is_zip: Whether the downloaded file needs to be unzipped.
30
30
  """
31
31
  if output_file_name is None:
32
32
  letters = ascii_lowercase
pertpy/data/_datasets.py CHANGED
@@ -1100,7 +1100,7 @@ def shifrut_2018() -> AnnData: # pragma: no cover
1100
1100
  output_file_path = settings.datasetdir / output_file_name
1101
1101
  if not Path(output_file_path).exists():
1102
1102
  _download(
1103
- url="https://zenodo.org/record/10044268/files/ShifrutMarson2018.h5ad?download=1",
1103
+ url="https://zenodo.org/record/13350497/files/ShifrutMarson2018.h5ad?download=1",
1104
1104
  output_file_name=output_file_name,
1105
1105
  output_path=settings.datasetdir,
1106
1106
  is_zip=False,
@@ -1160,7 +1160,7 @@ def srivatsan_2020_sciplex3() -> AnnData: # pragma: no cover
1160
1160
  output_file_path = settings.datasetdir / output_file_name
1161
1161
  if not Path(output_file_path).exists():
1162
1162
  _download(
1163
- url="https://zenodo.org/records/10044268/files/SrivatsanTrapnell2020_sciplex3.h5ad?download=1",
1163
+ url="https://zenodo.org/records/13350497/files/SrivatsanTrapnell2020_sciplex3.h5ad?download=1",
1164
1164
  output_file_name=output_file_name,
1165
1165
  output_path=settings.datasetdir,
1166
1166
  is_zip=False,
pertpy/tools/__init__.py CHANGED
@@ -2,19 +2,21 @@ from importlib import import_module
2
2
 
3
3
 
4
4
  def lazy_import(module_path, class_name, extras):
5
- def _import():
6
- try:
7
- for extra in extras:
8
- import_module(extra)
9
- except ImportError as e:
10
- raise ImportError(
11
- f"Extra dependencies required: {', '.join(extras)}. "
12
- f"Please install with: pip install {' '.join(extras)}"
13
- ) from e
5
+ try:
6
+ for extra in extras:
7
+ import_module(extra)
14
8
  module = import_module(module_path)
15
9
  return getattr(module, class_name)
10
+ except ImportError:
16
11
 
17
- return _import
12
+ class Placeholder:
13
+ def __init__(self, *args, **kwargs):
14
+ raise ImportError(
15
+ f"Extra dependencies required: {', '.join(extras)}. "
16
+ f"Please install with: pip install {' '.join(extras)}"
17
+ )
18
+
19
+ return Placeholder
18
20
 
19
21
 
20
22
  from pertpy.tools._augur import Augur
@@ -39,14 +41,12 @@ from pertpy.tools._perturbation_space._simple import (
39
41
  )
40
42
  from pertpy.tools._scgen import Scgen
41
43
 
42
- # from pertpy.tools._differential_gene_expression import DGEEVAL
43
-
44
44
  CODA_EXTRAS = ["toytree", "arviz", "ete3"] # also pyqt5 technically
45
45
  Sccoda = lazy_import("pertpy.tools._coda._sccoda", "Sccoda", CODA_EXTRAS)
46
46
  Tasccoda = lazy_import("pertpy.tools._coda._tasccoda", "Tasccoda", CODA_EXTRAS)
47
47
 
48
48
  DE_EXTRAS = ["formulaic", "pydeseq2"]
49
- EdgeR = lazy_import("pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS + ["edger"])
49
+ EdgeR = lazy_import("pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS) # edgeR will be imported via rpy2
50
50
  PyDESeq2 = lazy_import("pertpy.tools._differential_gene_expression", "PyDESeq2", DE_EXTRAS)
51
51
  Statsmodels = lazy_import("pertpy.tools._differential_gene_expression", "Statsmodels", DE_EXTRAS + ["statsmodels"])
52
52
  TTest = lazy_import("pertpy.tools._differential_gene_expression", "TTest", DE_EXTRAS)
@@ -76,5 +76,4 @@ __all__ = [
76
76
  "KMeansSpace",
77
77
  "PseudobulkSpace",
78
78
  "Scgen",
79
- "DGEEVAL",
80
79
  ]
pertpy/tools/_cinemaot.py CHANGED
@@ -190,7 +190,7 @@ class Cinemaot:
190
190
  TE.obsm["X_embedding"] = embedding
191
191
 
192
192
  if return_matching:
193
- TE.obsm["ot"] = ot_sink.matrix.T
193
+ TE.obsm["ot"] = np.asarray(ot_sink.matrix.T)
194
194
  return TE
195
195
  else:
196
196
  return TE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pertpy
3
- Version: 0.9.1
3
+ Version: 0.9.4
4
4
  Summary: Perturbation Analysis in the scverse ecosystem.
5
5
  Project-URL: Documentation, https://pertpy.readthedocs.io
6
6
  Project-URL: Source, https://github.com/scverse/pertpy
@@ -46,6 +46,7 @@ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
46
46
  Classifier: Topic :: Scientific/Engineering :: Visualization
47
47
  Requires-Python: >=3.10
48
48
  Requires-Dist: adjusttext
49
+ Requires-Dist: anndata<0.10.9
49
50
  Requires-Dist: blitzgsea
50
51
  Requires-Dist: decoupler
51
52
  Requires-Dist: lamin-utils
@@ -129,13 +130,13 @@ pip install pertpy
129
130
  if you want to use scCODA or tascCODA, please install pertpy as follows:
130
131
 
131
132
  ```console
132
- pip install pertpy[coda]
133
+ pip install 'pertpy[coda]'
133
134
  ```
134
135
 
135
136
  If you want to use the differential gene expression interface, please install pertpy by running:
136
137
 
137
138
  ```console
138
- pip install pertpy[de]
139
+ pip install 'pertpy[de]'
139
140
  ```
140
141
 
141
142
  ## Citation
@@ -1,8 +1,8 @@
1
- pertpy/__init__.py,sha256=OaiANyTVOegBAYDyD4004b7LXIWFpN2HkvQpKLC8P3I,658
1
+ pertpy/__init__.py,sha256=k0tPuH0DdvQraT7I-zYrI1TwJHK3GnBx-Nvi-cMobvM,658
2
2
  pertpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  pertpy/data/__init__.py,sha256=ah3yvoxkgbdMUNAWxS3SyqcUuVamBOSeuWkF2QRAEwM,2703
4
- pertpy/data/_dataloader.py,sha256=fl16n82nun01gGiP7qhr5sShfcDchp0szzZp7aXkfBI,2495
5
- pertpy/data/_datasets.py,sha256=I-keaJSTsRBySCPjiVonKmC9rRIM0AEgo0_0UlEX804,65616
4
+ pertpy/data/_dataloader.py,sha256=ENbk1T3w3N6tVI11V4FVUxuWFEwOHP8_kIB-ehiMlVQ,2428
5
+ pertpy/data/_datasets.py,sha256=OwI0HSSXnUPnUw_lAG9w5jNMILjLnPZS2Wj_LfrXSoI,65616
6
6
  pertpy/metadata/__init__.py,sha256=zoE_VXNyuKa4nlXlUk2nTgsHRW3jSQSpDEulcCnzOT0,222
7
7
  pertpy/metadata/_cell_line.py,sha256=-8KSqmP5XjmLEmNX3TavxSM_MtIHwLWS_x3MVkk6JEw,38595
8
8
  pertpy/metadata/_compound.py,sha256=JEFwP_TOTyMzfd2qFMb2VkJJvPhCVIvu6gs9Bq_stgs,4756
@@ -13,9 +13,9 @@ pertpy/metadata/_moa.py,sha256=u_OcMonjOeeoW5P9xOltquVSoTH3Vs80ztHsXf-X1DY,4701
13
13
  pertpy/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  pertpy/preprocessing/__init__.py,sha256=VAPFaeq2_qCvdFkQTCj_Hm460HC4Tersu8Rig_tnp_Y,71
15
15
  pertpy/preprocessing/_guide_rna.py,sha256=IgKhXEyfRwEA7ccKJNLA_aIxKHm09QJINM09KaIwn68,7644
16
- pertpy/tools/__init__.py,sha256=laoRUOIjnjR4D41miOg6tISC_8pNJsu79785_CxMbSE,2603
16
+ pertpy/tools/__init__.py,sha256=guh4QL8ac_CKP8S2nFHmxWJ6epCFB_Jfga4eK9HYGnE,2598
17
17
  pertpy/tools/_augur.py,sha256=UWro1nIEZe_rWtjlQCBv4ucqeh3Vt1m8IRzKlux72Z8,55683
18
- pertpy/tools/_cinemaot.py,sha256=BD_oYC1TktbFMX7fpp0A57QAF6frLEgNQ_2wFUpxjyo,39509
18
+ pertpy/tools/_cinemaot.py,sha256=vMm9oTNW6pb8HBe993-BvkVKjSHbfbqlZY1SSCvj12Y,39521
19
19
  pertpy/tools/_dialogue.py,sha256=f2fbhKWdm4Co79ZzVgtVq9xYwjYWFLdGNDeGFOO_pfM,51990
20
20
  pertpy/tools/_enrichment.py,sha256=rjPHK9YBCJZfpa5Rvfxo3Ii7W5Mvm5dOdolAD7QazVg,21440
21
21
  pertpy/tools/_kernel_pca.py,sha256=_EJ9WlBLjHOafF34sZGdyBgZL6Fj0WiJ1elVT1XMmo4,1579
@@ -51,7 +51,7 @@ pertpy/tools/_scgen/_base_components.py,sha256=Qq8myRUm43q9XBrZ9gBggfa2cSV2wbz_K
51
51
  pertpy/tools/_scgen/_scgen.py,sha256=HPvFVjY9SS9bGqgTkCDuPYjmA4QHW7rKgHnI2yuI_Q4,30608
52
52
  pertpy/tools/_scgen/_scgenvae.py,sha256=v_6tZ4wY-JjdMH1QVd_wG4_N0PoaqB-FM8zC2JsDu1o,3935
53
53
  pertpy/tools/_scgen/_utils.py,sha256=1upgOt1FpadfvNG05YpMjYYG-IAlxrC3l_ZxczmIczo,2841
54
- pertpy-0.9.1.dist-info/METADATA,sha256=JrAJR7n35TG8BZ30XmTdsrkaI6ADaz1PQE_DGLHT1TM,6848
55
- pertpy-0.9.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
56
- pertpy-0.9.1.dist-info/licenses/LICENSE,sha256=OZ-ZkXM5CmExJiEMM90b_7dGNNvRpj7kdE-49AnrLuI,1070
57
- pertpy-0.9.1.dist-info/RECORD,,
54
+ pertpy-0.9.4.dist-info/METADATA,sha256=0gKL9NKX-_hyYAGZvXqTNZySfUSG-VuJdOL_zNCBDrs,6882
55
+ pertpy-0.9.4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
56
+ pertpy-0.9.4.dist-info/licenses/LICENSE,sha256=OZ-ZkXM5CmExJiEMM90b_7dGNNvRpj7kdE-49AnrLuI,1070
57
+ pertpy-0.9.4.dist-info/RECORD,,
File without changes