exprmat 0.1.27__tar.gz → 0.1.28__tar.gz
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.
- {exprmat-0.1.27 → exprmat-0.1.28}/PKG-INFO +1 -1
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/__init__.py +43 -26
- {exprmat-0.1.27 → exprmat-0.1.28}/pyproject.toml +1 -1
- {exprmat-0.1.27 → exprmat-0.1.28}/Cargo.lock +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/Cargo.toml +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/ansi.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/cnmf.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/dbscan.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/kmeans.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/leiden.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/nmf.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/rogue.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/seriation.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/spectral.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/clustering/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/cnv/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/cnv/cnvscore.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/cnv/infercnv.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/configuration.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/cistarget.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/delim.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/finders.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/geneset.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/gff.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/io.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/lr.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/presets.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/private.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/ranges.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/signature.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/data/tf.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/aggregate.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/atac.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/aucell.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/de.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/gse.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/kde.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/recovery.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/summary.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/descriptive/tcr.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/generank.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/linreg.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/moments.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/optimization.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/parallel.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/preprocess.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/pseudotime.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/transition.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/dynamics/velocity.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/infergrn.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/modules.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/prune.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/regressors.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/grn/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/aggregate.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/method.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/cellchat.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/cellphonedb.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/connectome.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/geomean.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/logfc.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/natmi.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/rank_aggregate.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/scseqcomm.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/methods/singlecellsignalr.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/pipeline.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/preprocess.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/resources.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/lr/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/atac.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/cnmf.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/cnv.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/de.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/expression.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/gse.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/lr.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/palettes.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/sankey.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/summary.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/track.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/plotting/velocity.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/doublets/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/doublets/composite.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/doublets/scrublet.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/emptydrops.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/filter.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/impute/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/impute/magic.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/integrate.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/linear.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/normal.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/plot.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/qc.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/estimate.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/residual.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/transform.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/sparse.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/preprocessing/uniform.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/experiment.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/matcher.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/metadata.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/peaks.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reader/static.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/forceatlas.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/mde.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/nn.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/outliers.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/pca.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/plot.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/spectral.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/tsne.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/reduction/umap.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/trajectory/pcurve.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/transfer/__init__.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/transfer/atlas.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/exprmat/utils.py +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/license +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/readme.md +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/Cargo.toml +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/license +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/readme +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/call_peaks.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/embedding.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/export.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/knn.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/lib.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/motif.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/network.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/preprocessing.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/utils/anndata.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2/src/utils.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/Cargo.toml +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/embedding.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/export.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/feature_count/counter.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/feature_count/matrix.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/feature_count/mod.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/genome.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/lib.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/motif.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/network.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/import.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/mod.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/qc.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/utils/knn.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/utils/mod.rs +0 -0
- {exprmat-0.1.27 → exprmat-0.1.28}/snapatac2-core/src/utils/similarity.rs +0 -0
|
@@ -8,22 +8,24 @@ import importlib.metadata
|
|
|
8
8
|
import mudata as mu
|
|
9
9
|
import anndata as ad
|
|
10
10
|
import scanpy as sc
|
|
11
|
+
import pathlib
|
|
11
12
|
|
|
12
13
|
# core method exports
|
|
13
14
|
from exprmat.utils import setup_styles
|
|
14
15
|
from exprmat.reader.experiment import experiment, load_experiment
|
|
15
16
|
from exprmat.reader.metadata import metadata, load_metadata
|
|
16
|
-
|
|
17
|
-
from exprmat.ansi import warning
|
|
17
|
+
from exprmat.configuration import default as config
|
|
18
|
+
from exprmat.ansi import warning, info
|
|
18
19
|
|
|
19
20
|
mu.set_options(pull_on_update = False)
|
|
20
21
|
setup_styles()
|
|
21
22
|
|
|
23
|
+
|
|
22
24
|
DATABASE_SETUP_MESSAGE = """
|
|
23
25
|
The exprmat package do not come with a included database after version 0.1.25,
|
|
24
26
|
due to the extensive size of the reference data. You need to setup the database
|
|
25
|
-
and configure it properly with configuration file `
|
|
26
|
-
current working directory
|
|
27
|
+
and configure it properly with configuration file `.exprmatrc` under your
|
|
28
|
+
user root or current working directory
|
|
27
29
|
|
|
28
30
|
For more guide on how to setup the database folder, and more information about
|
|
29
31
|
what the database includes, see <https://github.com/yang-z-03/exprmat>
|
|
@@ -31,31 +33,44 @@ what the database includes, see <https://github.com/yang-z-03/exprmat>
|
|
|
31
33
|
|
|
32
34
|
# load configuration
|
|
33
35
|
PERFORM_DATABASE_CHECK = True
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
default_finders = [
|
|
37
|
+
'exprmat.config',
|
|
38
|
+
'.exprmat.config',
|
|
39
|
+
'.exprmatrc',
|
|
40
|
+
os.path.join(str(pathlib.Path.home()), 'exprmat.config'),
|
|
41
|
+
os.path.join(str(pathlib.Path.home()), '.exprmat.config'),
|
|
42
|
+
os.path.join(str(pathlib.Path.home()), '.exprmatrc')
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
for finder in default_finders:
|
|
46
|
+
if os.path.exists(finder):
|
|
47
|
+
info(f'load configuration from {finder}.')
|
|
48
|
+
with open(finder, 'r') as f:
|
|
49
|
+
import json
|
|
50
|
+
workspace_config = json.load(f)
|
|
51
|
+
config.update(workspace_config)
|
|
52
|
+
|
|
53
|
+
def version_db():
|
|
54
|
+
dbpath = config['data']
|
|
44
55
|
version_file = os.path.join(dbpath, '.bsync', 'current')
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
|
|
57
|
+
if not os.path.exists(version_file):
|
|
58
|
+
db_ver = None
|
|
48
59
|
else:
|
|
49
60
|
with open(version_file, 'r') as vf:
|
|
50
61
|
db_ver = vf.read().strip()
|
|
51
|
-
if db_ver != importlib.metadata.version("exprmat"):
|
|
52
|
-
pkg_ver = importlib.metadata.version("exprmat")
|
|
53
|
-
warning('the exprmat database version ({db_ver}) is not compatible with package version ({pkg_ver})')
|
|
54
|
-
db_setup = False
|
|
55
62
|
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
return db_ver
|
|
64
|
+
|
|
65
|
+
# perform database integrity check.
|
|
66
|
+
if PERFORM_DATABASE_CHECK:
|
|
67
|
+
db_ver = version_db()
|
|
68
|
+
if db_ver is None:
|
|
69
|
+
warning('the database is not installed.')
|
|
58
70
|
print(DATABASE_SETUP_MESSAGE)
|
|
71
|
+
elif db_ver != importlib.metadata.version("exprmat"):
|
|
72
|
+
warning('the database version do not match the package version')
|
|
73
|
+
warning(f'db version: {db_ver} package version: {importlib.metadata.version("exprmat")}')
|
|
59
74
|
|
|
60
75
|
|
|
61
76
|
def version():
|
|
@@ -65,11 +80,13 @@ def version():
|
|
|
65
80
|
from exprmat.ansi import info, error, format_file_size
|
|
66
81
|
|
|
67
82
|
ver_string = importlib.metadata.version("exprmat")
|
|
83
|
+
db_ver = version_db()
|
|
84
|
+
|
|
68
85
|
MAJOR, MINOR, REVISION = [int(x) for x in ver_string.split('.')]
|
|
69
|
-
info(f'exprmat {MAJOR}.{MINOR}.{REVISION}')
|
|
86
|
+
info(f'exprmat {MAJOR}.{MINOR}.{REVISION} / exprmat-db {db_ver if db_ver is not None else "(Not installed)"}')
|
|
70
87
|
info(f'os: {os.name} ({sys.platform}) platform version: {platform.release()}')
|
|
71
88
|
info(f'current working directory: {os.getcwd()}')
|
|
72
|
-
info(f'current database directory: {config
|
|
89
|
+
info(f'current database directory: {config["data"]} ({db_ver if db_ver is not None else "(Not found)"})')
|
|
73
90
|
memory()
|
|
74
91
|
return (MAJOR, MINOR, REVISION)
|
|
75
92
|
|
|
@@ -86,7 +103,7 @@ def memory():
|
|
|
86
103
|
|
|
87
104
|
setwd = os.chdir
|
|
88
105
|
getwd = os.getcwd
|
|
89
|
-
def locate_data(dir): config.
|
|
106
|
+
def locate_data(dir): config.update_config('data', dir)
|
|
90
107
|
|
|
91
108
|
|
|
92
109
|
__all__ = [
|
|
@@ -18,7 +18,7 @@ description = "exprmat: Routines for expression matrices"
|
|
|
18
18
|
readme = "readme.md"
|
|
19
19
|
license = {file = "license"}
|
|
20
20
|
requires-python = ">=3.9, <3.13"
|
|
21
|
-
version = "0.1.
|
|
21
|
+
version = "0.1.28"
|
|
22
22
|
authors = [
|
|
23
23
|
{name = "Zheng Yang", email = "xornent@outlook.com"}
|
|
24
24
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|