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 +1 -1
- pertpy/data/_dataloader.py +2 -2
- pertpy/metadata/_cell_line.py +21 -37
- pertpy/metadata/_compound.py +2 -1
- pertpy/metadata/_look_up.py +1 -1
- pertpy/metadata/_metadata.py +4 -9
- pertpy/metadata/_moa.py +0 -2
- pertpy/tools/_augur.py +0 -1
- pertpy/tools/_mixscape.py +3 -4
- {pertpy-0.11.1.dist-info → pertpy-0.11.3.dist-info}/METADATA +34 -6
- {pertpy-0.11.1.dist-info → pertpy-0.11.3.dist-info}/RECORD +13 -13
- {pertpy-0.11.1.dist-info → pertpy-0.11.3.dist-info}/WHEEL +0 -0
- {pertpy-0.11.1.dist-info → pertpy-0.11.3.dist-info}/licenses/LICENSE +0 -0
pertpy/__init__.py
CHANGED
pertpy/data/_dataloader.py
CHANGED
@@ -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,
|
pertpy/metadata/_cell_line.py
CHANGED
@@ -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
|
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
|
315
|
-
"Refer to the available reference identifier in the chosen database
|
316
|
-
"
|
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"
|
366
|
-
"
|
367
|
-
"
|
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
|
-
"
|
380
|
-
"
|
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
|
-
"
|
391
|
-
"
|
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}
|
476
|
-
"
|
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"
|
486
|
-
"
|
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"
|
555
|
-
"
|
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"
|
630
|
-
"
|
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
|
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'.
|
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":
|
pertpy/metadata/_compound.py
CHANGED
@@ -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():
|
pertpy/metadata/_look_up.py
CHANGED
@@ -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
|
-
|
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":
|
pertpy/metadata/_metadata.py
CHANGED
@@ -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"
|
53
|
-
"
|
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"
|
65
|
-
f"
|
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
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
|
-
"""
|
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, it
|
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.
|
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
|
-
|
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
|
161
|
+
pip install rpy2
|
145
162
|
```
|
146
163
|
|
147
164
|
## Citation
|
148
165
|
|
149
|
-
|
150
|
-
|
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
|
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=
|
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=
|
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=
|
10
|
-
pertpy/metadata/_compound.py,sha256=
|
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=
|
13
|
-
pertpy/metadata/_metadata.py,sha256=
|
14
|
-
pertpy/metadata/_moa.py,sha256=
|
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=
|
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=
|
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.
|
56
|
-
pertpy-0.11.
|
57
|
-
pertpy-0.11.
|
58
|
-
pertpy-0.11.
|
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,,
|
File without changes
|
File without changes
|