pertpy 0.11.1__py3-none-any.whl → 0.11.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.11.1"
5
+ __version__ = "0.11.3"
6
6
 
7
7
  import warnings
8
8
 
@@ -15,8 +15,8 @@ from rich.progress import Progress
15
15
 
16
16
  def _download( # pragma: no cover
17
17
  url: str,
18
- output_file_name: str = None,
19
- output_path: str | Path = None,
18
+ output_file_name: str | None = None,
19
+ output_path: str | Path | None = None,
20
20
  block_size: int = 1024,
21
21
  overwrite: bool = False,
22
22
  is_zip: bool = False,
@@ -215,7 +215,7 @@ class CellLine(MetaData):
215
215
  For each cell, we fetch cell line annotation from either the Dependency Map (DepMap) or The Genomics of Drug Sensitivity in Cancer Project (Cancerxgene).
216
216
 
217
217
  Args:
218
- adata: The data object to annotate.
218
+ adata: The AnnData object to annotate.
219
219
  query_id: The column of ``.obs`` with cell line information.
220
220
  reference_id: The type of cell line identifier in the metadata, e.g. ModelID, CellLineName or StrippedCellLineName.
221
221
  If fetching cell line metadata from Cancerrxgene, it is recommended to choose "stripped_cell_line_name".
@@ -311,11 +311,9 @@ class CellLine(MetaData):
311
311
 
312
312
  else:
313
313
  raise ValueError(
314
- f"The requested cell line type {reference_id} is currently unavailable in the database.\n"
315
- "Refer to the available reference identifier in the chosen database.\n"
316
- "DepMap_ID is compared by default.\n"
317
- "Alternatively, create a `CellLineMetaData.lookup()` object to "
318
- "obtain the available reference identifiers in the metadata."
314
+ f"The requested cell line type {reference_id} is unavailable."
315
+ "Refer to the available reference identifier in the chosen database."
316
+ "Alternatively, create a `CellLineMetaData.lookup()` object to obtain the available reference identifiers in the metadata."
319
317
  )
320
318
 
321
319
  return adata
@@ -362,11 +360,9 @@ class CellLine(MetaData):
362
360
  # then we can compare these keys and fetch the corresponding metadata.
363
361
  if query_id not in adata.obs.columns and query_id is not None:
364
362
  raise ValueError(
365
- f"The specified `query_id` {query_id} can't be found in the `adata.obs`. \n"
366
- "Ensure that you are using one of the available query IDs present in the adata.obs for the annotation."
367
- "If the desired query ID is not available, you can fetch the cell line metadata "
368
- "using the `annotate()` function before calling 'annotate_bulk_rna()'. "
369
- "This ensures that the required query ID is included in your data, e.g. stripped_cell_line_name, DepMap ID."
363
+ f"Specified `query_id` {query_id} can't be found in `adata.obs`. \n"
364
+ "If the desired query ID is not available, fetch the cell line metadata "
365
+ "using the `annotate()` function before calling 'annotate_bulk_rna()'."
370
366
  )
371
367
  if query_id is None:
372
368
  query_id = "cell_line_name" if cell_line_source == "sanger" else "DepMap_ID"
@@ -376,9 +372,8 @@ class CellLine(MetaData):
376
372
  if cell_line_source == "sanger":
377
373
  if query_id not in adata.obs.columns:
378
374
  raise ValueError(
379
- "To annotate bulk RNA data from Wellcome Sanger Institute, `cell_line_name` is used as default reference and query identifier if no `query_id` is given."
380
- "Ensure that you have column `cell_line_name` in `adata.obs` or specify column name in which cell line name is stored."
381
- "If cell line name isn't available in 'adata.obs', use `annotate()` to annotate the cell line first."
375
+ f"Missing '{query_id}' in `adata.obs`. For Sanger, need `cell_line_name` column "
376
+ f"or specify column with cell line names via `query_id` parameter."
382
377
  )
383
378
  if self.bulk_rna_sanger is None:
384
379
  self._download_bulk_rna(cell_line_source="sanger")
@@ -387,9 +382,8 @@ class CellLine(MetaData):
387
382
  else:
388
383
  if query_id not in adata.obs.columns:
389
384
  raise ValueError(
390
- "To annotate bulk RNA data from Broad Institue, `DepMap_ID` is used as default reference and query identifier if no `query_id` is given."
391
- "Ensure that you have column `DepMap_ID` in `adata.obs` or specify column name in which DepMap ID is stored."
392
- "If DepMap ID isn't available in 'adata.obs', use `annotate()` to annotate the cell line first."
385
+ f"Missing '{query_id}' in `adata.obs`. For Broad Institute data, need `DepMap_ID` column "
386
+ f"or specify column with DepMap IDs via `query_id` parameter."
393
387
  )
394
388
  reference_id = "DepMap_ID"
395
389
 
@@ -472,19 +466,16 @@ class CellLine(MetaData):
472
466
  # then we can compare these keys and fetch the corresponding metadata.
473
467
  if query_id not in adata.obs.columns:
474
468
  raise ValueError(
475
- f"The specified `query_id` {query_id} can't be found in `adata.obs`. \n"
476
- "If the desired query ID is not available, you can fetch the cell line metadata \n"
477
- "using the `annotate()` function before calling annotate_protein_expression(). \n"
478
- "This ensures that the required query ID is included in your data."
469
+ f"The specified `query_id` `{query_id}` not found in `adata.obs`. "
470
+ "Fetch cell line metadata with `annotate()` before calling `annotate_protein_expression()`."
479
471
  )
480
472
  # Lazily download the proteomics data
481
473
  if self.proteomics is None:
482
474
  self._download_proteomics()
483
475
  if reference_id not in self.proteomics.columns:
484
476
  raise ValueError(
485
- f"The specified `reference_id`{reference_id} can't be found in the protein expression data. \n"
486
- "To solve the issue, please use the reference identifier available in the metadata. \n"
487
- "Alternatively, create a `CellLineMetaData.lookup()` object to obtain the available reference identifiers in the metadata."
477
+ f"Specified `reference_id` `{reference_id}` not found in protein expression data. "
478
+ f"Use available reference identifiers in metadata or create `CellLineMetaData.lookup()` object."
488
479
  )
489
480
 
490
481
  identifier_num_all = len(adata.obs[query_id].unique())
@@ -551,11 +542,8 @@ class CellLine(MetaData):
551
542
  adata = adata.copy()
552
543
  if query_id not in adata.obs.columns:
553
544
  raise ValueError(
554
- f"The specified `query_id` {query_id} can't be found in the `adata.obs`. \n"
555
- "Ensure that you are using one of the available query IDs present in 'adata.obs' for the annotation.\n"
556
- "If the desired query ID is not available, you can fetch the cell line metadata "
557
- "using the `annotate()` function before calling `annotate_from_gdsc()`. "
558
- "This ensures that the required query ID is included in your data."
545
+ f"Specified `query_id` `{query_id}` not found in `adata.obs`. "
546
+ "Use an available ID or fetch cell line metadata with `annotate()` before calling `annotate_from_gdsc()`."
559
547
  )
560
548
  # Lazily download the GDSC data
561
549
  if gdsc_dataset == "gdsc_1":
@@ -626,11 +614,8 @@ class CellLine(MetaData):
626
614
  adata = adata.copy()
627
615
  if query_id not in adata.obs.columns:
628
616
  raise ValueError(
629
- f"The specified `query_id` {query_id} can't be found in the `adata.obs`. \n"
630
- "Ensure that you are using one of the available query IDs present in 'adata.obs' for the annotation.\n"
631
- "If the desired query ID is not available, you can fetch the cell line metadata "
632
- "using the `annotate()` function before calling `annotate_from_prism()`. "
633
- "This ensures that the required query ID is included in your data."
617
+ f"Specified `query_id` `{query_id}` not found in `adata.obs`. "
618
+ "Use an available ID or fetch cell line metadata with `annotate()` before calling `annotate_from_prism()`."
634
619
  )
635
620
  if self.drug_response_prism is None:
636
621
  self._download_prism()
@@ -700,7 +685,6 @@ class CellLine(MetaData):
700
685
  if self.drug_response_prism is None:
701
686
  self._download_prism()
702
687
 
703
- # Transfer the data
704
688
  return LookUp(
705
689
  type="cell_line",
706
690
  transfer_metadata=[
@@ -775,7 +759,7 @@ class CellLine(MetaData):
775
759
  and sum(adata.obsm[metadata_key].columns != adata.var.index.values) > 0
776
760
  ):
777
761
  raise ValueError(
778
- "Column name of metadata is not the same as the index of adata.var. Ensure that the genes are in the same order."
762
+ "Column name of metadata is not the same as the index of `adata.var`. Ensure that the genes are in the same order."
779
763
  )
780
764
 
781
765
  # Divide cell lines into those are present and not present in the metadata
@@ -832,7 +816,7 @@ class CellLine(MetaData):
832
816
  """
833
817
  if corr is None or pval is None:
834
818
  raise ValueError(
835
- "Missing required input parameter: 'corr' or 'pval'. Please call the function `pt.md.CellLine.correlate()` to generate these outputs before proceeding."
819
+ "Missing required input parameter: 'corr' or 'pval'. Call `pt.md.CellLine.correlate()` before proceeding."
836
820
  )
837
821
 
838
822
  if category == "cell line":
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING, Literal
4
4
 
5
5
  import pandas as pd
6
- import pubchempy as pcp
7
6
 
8
7
  from ._look_up import LookUp
9
8
  from ._metadata import MetaData
@@ -44,6 +43,8 @@ class Compound(MetaData):
44
43
  if query_id not in adata.obs.columns:
45
44
  raise ValueError(f"The requested query_id {query_id} is not in `adata.obs`.\n Please check again.")
46
45
 
46
+ import pubchempy as pcp
47
+
47
48
  query_dict = {}
48
49
  not_matched_identifiers = []
49
50
  for compound in adata.obs[query_id].dropna().astype(str).unique():
@@ -27,7 +27,7 @@ class LookUp:
27
27
  Args:
28
28
  type: Metadata type for annotation. One of 'cell_line', 'compound', 'moa' or 'drug.
29
29
  transfer_metadata: DataFrames used to generate Lookup object.
30
- This is currently set to None for CompoundMetaData which does not require any dataframes for transfer.
30
+ Currently set to None for CompoundMetaData which does not require any DataFrames for transfer.
31
31
  """
32
32
  self.type = type
33
33
  if type == "cell_line":
@@ -49,11 +49,8 @@ class MetaData:
49
49
  if metadata_type in ["protein expression", "bulk RNA", "drug response"]:
50
50
  hint = "Additionally, call the `CellLineMetaData.annotate()` function to acquire more possible query IDs that can be used for cell line annotation purposes."
51
51
  raise ValueError(
52
- f"Attempting to match the query id {query_id} in 'adata.obs' to the reference id {reference_id} in the metadata.\n"
53
- "However, none of the query IDs could be found in the {metadata_type} annotation data.\n"
54
- "To resolve this issue, call the `lookup()` function to create a LookUp object.\n"
55
- "This enables obtaining the count of matched identifiers in the AnnData object for different types of reference and query IDs.\n"
56
- f"{hint}"
52
+ f"No matches between `{query_id}` in adata.obs and `{reference_id}` in {metadata_type} data. "
53
+ f"Use `lookup()` to check compatible identifier types. {hint}"
57
54
  )
58
55
  if len(unmatched_identifiers) == 0:
59
56
  return
@@ -61,10 +58,8 @@ class MetaData:
61
58
  verbosity = min(verbosity, len(unmatched_identifiers))
62
59
  if verbosity > 0:
63
60
  logger.info(
64
- f"There are {total_identifiers} identifiers in `adata.obs`."
65
- f"However, {len(unmatched_identifiers)} identifiers can't be found in the {metadata_type} annotation, "
66
- "leading to the presence of NA values for their respective metadata.\n"
67
- f"Please check again: *unmatched_identifiers[:verbosity]..."
61
+ f"{total_identifiers} identifiers in `adata.obs`, {len(unmatched_identifiers)} not found in {metadata_type} data. "
62
+ f"NA values present. Unmatched: {unmatched_identifiers[:verbosity]}"
68
63
  )
69
64
  else:
70
65
  raise ValueError("Only 'all' or a non-negative value is accepted.")
pertpy/metadata/_moa.py CHANGED
@@ -110,8 +110,6 @@ class Moa(MetaData):
110
110
  """Generate LookUp object for Moa metadata.
111
111
 
112
112
  The LookUp object provides an overview of the metadata to annotate.
113
- annotate_moa function has a corresponding lookup function in the LookUp object,
114
- where users can search the query_ids and targets in the metadata.
115
113
 
116
114
  Returns:
117
115
  Returns a LookUp object specific for MoA annotation.
pertpy/tools/_augur.py CHANGED
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import random
4
4
  from collections import defaultdict
5
- from dataclasses import dataclass
6
5
  from math import floor, nan
7
6
  from typing import TYPE_CHECKING, Any, Literal
8
7
 
pertpy/tools/_mixscape.py CHANGED
@@ -26,11 +26,10 @@ if TYPE_CHECKING:
26
26
  from matplotlib.axes import Axes
27
27
  from matplotlib.colors import Colormap
28
28
  from matplotlib.pyplot import Figure
29
- from scipy import sparse
30
29
 
31
30
 
32
31
  class Mixscape:
33
- """Python implementation of Mixscape."""
32
+ """identify perturbation effects in CRISPR screens by separating cells into perturbation groups."""
34
33
 
35
34
  def __init__(self):
36
35
  pass
@@ -71,7 +70,7 @@ class Mixscape:
71
70
  use_rep: Use the indicated representation. `'X'` or any key for `.obsm` is valid.
72
71
  If `None`, the representation is chosen automatically:
73
72
  For `.n_vars` < 50, `.X` is used, otherwise 'X_pca' is used.
74
- If 'X_pca' is not present, its computed with default parameters.
73
+ If 'X_pca' is not present, it's computed with default parameters.
75
74
  n_dims: Number of dimensions to use from the representation to calculate the perturbation signature.
76
75
  If `None`, use all dimensions.
77
76
  n_pcs: If PCA representation is used, the number of principal components to compute.
@@ -1189,7 +1188,7 @@ class MixscapeGaussianMixture(GaussianMixture):
1189
1188
  n_components: Number of Gaussian components
1190
1189
  fixed_means: Means to fix (use None for those that should be estimated)
1191
1190
  fixed_covariances: Covariances to fix (use None for those that should be estimated)
1192
- kwargs: Additional arguments passed to scikit-learn's GaussianMixture
1191
+ **kwargs: Additional arguments passed to scikit-learn's GaussianMixture
1193
1192
  """
1194
1193
  super().__init__(n_components=n_components, **kwargs)
1195
1194
  self.fixed_means = fixed_means
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pertpy
3
- Version: 0.11.1
3
+ Version: 0.11.3
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
@@ -132,26 +132,54 @@ You can install _pertpy_ in less than a minute via [pip] from [PyPI]:
132
132
  pip install pertpy
133
133
  ```
134
134
 
135
+ ### Differential gene expression
136
+
137
+ If you want to use the differential gene expression interface, please install pertpy by running:
138
+
139
+ ```console
140
+ pip install 'pertpy[de]'
141
+ ```
142
+
143
+ ### tascCODA
144
+
135
145
  if you want to use tascCODA, please install pertpy as follows:
136
146
 
137
147
  ```console
138
148
  pip install 'pertpy[tcoda]'
139
149
  ```
140
150
 
141
- If you want to use the differential gene expression interface, please install pertpy by running:
151
+ ### milo
152
+
153
+ milo further requires edger, statmod, and rpy2 to be installed:
154
+
155
+ ```R
156
+ BiocManager::install("edgeR")
157
+ BiocManager::install("statmod")
158
+ ```
142
159
 
143
160
  ```console
144
- pip install 'pertpy[de]'
161
+ pip install rpy2
145
162
  ```
146
163
 
147
164
  ## Citation
148
165
 
149
- [Lukas Heumos, Yuge Ji, Lilly May, Tessa Green, Xinyue Zhang, Xichen Wu, Johannes Ostner, Stefan Peidli, Antonia Schumacher, Karin Hrovatin, Michaela Mueller, Faye Chong, Gregor Sturm, Alejandro Tejada, Emma Dann, Mingze Dong, Mojtaba Bahrami, Ilan Gold, Sergei Rybakov, Altana Namsaraeva, Amir Ali Moinfar, Zihe Zheng, Eljas Roellin, Isra Mekki, Chris Sander, Mohammad Lotfollahi, Herbert B. Schiller, Fabian J. Theis
150
- bioRxiv 2024.08.04.606516; doi: https://doi.org/10.1101/2024.08.04.606516](https://www.biorxiv.org/content/10.1101/2024.08.04.606516v1)
166
+ ```bibtex
167
+ @article {Heumos2024.08.04.606516,
168
+ author = {Heumos, Lukas and Ji, Yuge and May, Lilly and Green, Tessa and Zhang, Xinyue and Wu, Xichen and Ostner, Johannes and Peidli, Stefan and Schumacher, Antonia and Hrovatin, Karin and Müller, Michaela and Chong, Faye and Sturm, Gregor and Tejada, Alejandro and Dann, Emma and Dong, Mingze and Bahrami, Mojtaba and Gold, Ilan and Rybakov, Sergei and Namsaraeva, Altana and Moinfar, Amir and Zheng, Zihe and Roellin, Eljas and Mekki, Isra and Sander, Chris and Lotfollahi, Mohammad and Schiller, Herbert B. and Theis, Fabian J.},
169
+ title = {Pertpy: an end-to-end framework for perturbation analysis},
170
+ elocation-id = {2024.08.04.606516},
171
+ year = {2024},
172
+ doi = {10.1101/2024.08.04.606516},
173
+ publisher = {Cold Spring Harbor Laboratory},
174
+ URL = {https://www.biorxiv.org/content/early/2024/08/07/2024.08.04.606516},
175
+ eprint = {https://www.biorxiv.org/content/early/2024/08/07/2024.08.04.606516.full.pdf},
176
+ journal = {bioRxiv}
177
+ }
178
+ ```
151
179
 
152
180
  [pip]: https://pip.pypa.io/
153
181
  [pypi]: https://pypi.org/
154
- [api]: https://pertpy.readthedocs.io/en/latest/api/api.html
182
+ [api]: https://pertpy.readthedocs.io/en/latest/api.html
155
183
  [//]: # "numfocus-fiscal-sponsor-attribution"
156
184
 
157
185
  pertpy is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
@@ -1,28 +1,28 @@
1
- pertpy/__init__.py,sha256=4KCpjhbsKaAAYJjZIPbAi12NCBtGGThexdh3QaausRg,716
1
+ pertpy/__init__.py,sha256=nuIzUydNMtNnhu1E4ffxU9gCgIdLi3liUv7dylR-2_I,716
2
2
  pertpy/_doc.py,sha256=j5TMNC-DA9yIMqIIUNpjpcVgWfRqyBBfvbRjnCM_OLs,427
3
3
  pertpy/_types.py,sha256=IcHCojCUqx8CapibNkcYf2TUqjBFP2ujeELvn_IBSBQ,154
4
4
  pertpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  pertpy/data/__init__.py,sha256=ah3yvoxkgbdMUNAWxS3SyqcUuVamBOSeuWkF2QRAEwM,2703
6
- pertpy/data/_dataloader.py,sha256=ZWDDvx8KmqkvMcjXEmGNeDyCceDur_osb-o2dDTHeQU,4397
6
+ pertpy/data/_dataloader.py,sha256=Osml8irOaoL2n2MhKRKre70Poxiv6NfJBKaK8vRe07Q,4411
7
7
  pertpy/data/_datasets.py,sha256=4IceyYURpstZSFRrD6gBjoYg8uRbEPo1QLXTt-SwB5k,65507
8
8
  pertpy/metadata/__init__.py,sha256=wROPCXmJX2v5schJaBTPQtGW-FGCNWPfO_6bpnXwk-c,276
9
- pertpy/metadata/_cell_line.py,sha256=xzlJV_loGS5yA3QaB2xnp0mlEgCWdoG1VPCrfbJKtMw,44494
10
- pertpy/metadata/_compound.py,sha256=ywNNqtib0exHv0z8ctmTRf1Hk64tSGWSiUEffycxf6A,4755
9
+ pertpy/metadata/_cell_line.py,sha256=hKmaZvjIsQ3wHo__0aKo3JlWvsf8-4OD-gIBNQnW8_E,42716
10
+ pertpy/metadata/_compound.py,sha256=JsAv_KCcNkgVVrXTyhu-BeM8rBX8a93Wq5Z6avpxN7Y,4764
11
11
  pertpy/metadata/_drug.py,sha256=8QDSyxiFl25JdS80EQJC_krg6fEe5LIQEE6BsV1r8nY,9006
12
- pertpy/metadata/_look_up.py,sha256=4BuQlff_aAKFOKPojXDdxvH6uOkRlHzGeyxcjBc79OM,28682
13
- pertpy/metadata/_metadata.py,sha256=hV2LTFrExddLNU_RsDkZju6lQUSRoP4OIn_dumCyQao,3277
14
- pertpy/metadata/_moa.py,sha256=cSJimHZsPZ6tAXcl_aHOhyzUayf6fqtgAcJJ5KwRRsA,4698
12
+ pertpy/metadata/_look_up.py,sha256=0nrI_xy-qBZ3tyt4dwhEBwm0A9WP95ZaDiUQFf_88FU,28663
13
+ pertpy/metadata/_metadata.py,sha256=hzaLHRyf6YtEMdkZ7_fqTvnlYhSmjQINHz42FqVYrSU,2805
14
+ pertpy/metadata/_moa.py,sha256=kMpjqReu-WV_tbVJLrKe7gc-WyGkkEX-59V-ZUY3X5g,4536
15
15
  pertpy/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  pertpy/preprocessing/__init__.py,sha256=VAPFaeq2_qCvdFkQTCj_Hm460HC4Tersu8Rig_tnp_Y,71
17
17
  pertpy/preprocessing/_guide_rna.py,sha256=ijL-bjQ-9qn4r3DlhBxzsqk-bD4RqPsFlok-Otj4hg8,15872
18
18
  pertpy/preprocessing/_guide_rna_mixture.py,sha256=pT_YkjmN4iEJ-THBROu_dpbr8E6u8GJw36YoGseikD0,6422
19
19
  pertpy/tools/__init__.py,sha256=xjfw3Dd_KGytjjCID0uEs6Fz7DalH46fCjVL2Zf2kOo,2629
20
- pertpy/tools/_augur.py,sha256=7iB2_xq8knyxtmN0G_a0u37o8WPlMlJXZCwDqxGvoKQ,55296
20
+ pertpy/tools/_augur.py,sha256=tc1YKyc0BwzrEGgctsfyy7DsTNKxyvy7ZvWraTWCc1A,55262
21
21
  pertpy/tools/_cinemaot.py,sha256=54-rS0AEj31dMe7iU4kEmLoAunq3jNuhsBE3IEp9hrI,38071
22
22
  pertpy/tools/_dialogue.py,sha256=cCSwo9ge1pOLoA7QHTPb3b865juCFWUaKX5aD7UoSjo,52355
23
23
  pertpy/tools/_enrichment.py,sha256=55mwotLH9DXQOhl85MCkxXu-MX0RysLyrPheJysAnF0,21369
24
24
  pertpy/tools/_milo.py,sha256=r-kZcpAcoQuhi41AnVuzh-cMIcV3HB3-RGzynHyDc1A,43712
25
- pertpy/tools/_mixscape.py,sha256=ob22FI1hqUtaEZzCqrocy0-k8iUOChItc2tdCDeNDGY,57173
25
+ pertpy/tools/_mixscape.py,sha256=qjXGyH-oeBFte0efuHJfhVEbivnzUVWREwC40ef6Se8,57203
26
26
  pertpy/tools/decoupler_LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
27
27
  pertpy/tools/transferlearning_MMD_LICENSE,sha256=MUvDA-o_j9htRpI8fStVdCRuyLdPkQUuIH0a_EIc57w,1069
28
28
  pertpy/tools/_coda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,7 +52,7 @@ pertpy/tools/_scgen/_base_components.py,sha256=Qq8myRUm43q9XBrZ9gBggfa2cSV2wbz_K
52
52
  pertpy/tools/_scgen/_scgen.py,sha256=31T8ez0FxABIbunJHCk8xvGulHFb8RHXSsyM_z1WsPY,30850
53
53
  pertpy/tools/_scgen/_scgenvae.py,sha256=bPk4v7EdJc7ROdLuDitHiX_Pvwa7Flw2qHRUwBvjLJY,3889
54
54
  pertpy/tools/_scgen/_utils.py,sha256=qz5QUn_Bvk2NGyYVzp3jgjWTFOMt1YyHwUo6HWtoThY,2871
55
- pertpy-0.11.1.dist-info/METADATA,sha256=uLFTtFW3JuRShmdYTUR-byUMcRB3Zntu84xe_2BI3ZI,8051
56
- pertpy-0.11.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
- pertpy-0.11.1.dist-info/licenses/LICENSE,sha256=XuiT2hxeRInhquEIBKMZ5M21n5syhDQ4XbABoposIAg,1100
58
- pertpy-0.11.1.dist-info/RECORD,,
55
+ pertpy-0.11.3.dist-info/METADATA,sha256=PM1yN_AADeouMbFT9X2m4Qv4VfPJ2PFgAbC2FNScIXs,8726
56
+ pertpy-0.11.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ pertpy-0.11.3.dist-info/licenses/LICENSE,sha256=XuiT2hxeRInhquEIBKMZ5M21n5syhDQ4XbABoposIAg,1100
58
+ pertpy-0.11.3.dist-info/RECORD,,