exprmat 0.1.58__tar.gz → 0.2.73__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.58 → exprmat-0.2.73}/PKG-INFO +45 -97
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/__init__.py +35 -32
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/gating.py +0 -24
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/sc3.py +12 -1
- exprmat-0.2.73/exprmat/deconv/__init__.py +5 -0
- exprmat-0.2.73/exprmat/deconv/tangram/__init__.py +36 -0
- exprmat-0.2.73/exprmat/deconv/tangram/mapping.py +333 -0
- exprmat-0.2.73/exprmat/deconv/tangram/optimizer.py +510 -0
- exprmat-0.2.73/exprmat/deconv/tangram/spatial.py +66 -0
- exprmat-0.2.73/exprmat/deconv/tangram/utils.py +101 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/aggregate.py +54 -3
- exprmat-0.2.73/exprmat/descriptive/geneset.py +782 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/gse.py +29 -85
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/summary.py +1 -1
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/tcr.py +5 -5
- exprmat-0.2.73/exprmat/domain/__init__.py +29 -0
- exprmat-0.2.73/exprmat/domain/deepst/__init__.py +21 -0
- exprmat-0.2.73/exprmat/domain/deepst/adjacency.py +197 -0
- exprmat-0.2.73/exprmat/domain/deepst/api.py +155 -0
- exprmat-0.2.73/exprmat/domain/deepst/augment.py +233 -0
- exprmat-0.2.73/exprmat/domain/deepst/image_features.py +168 -0
- exprmat-0.2.73/exprmat/domain/deepst/model.py +249 -0
- exprmat-0.2.73/exprmat/domain/deepst/runner.py +297 -0
- exprmat-0.2.73/exprmat/domain/deepst/trainer.py +243 -0
- exprmat-0.2.73/exprmat/domain/spagcn/__init__.py +23 -0
- exprmat-0.2.73/exprmat/domain/spagcn/adjacency.py +261 -0
- exprmat-0.2.73/exprmat/domain/spagcn/api.py +223 -0
- exprmat-0.2.73/exprmat/domain/spagcn/layers.py +45 -0
- exprmat-0.2.73/exprmat/domain/spagcn/models.py +320 -0
- exprmat-0.2.73/exprmat/domain/spagcn/morans.py +58 -0
- exprmat-0.2.73/exprmat/domain/spagcn/spagcn.py +211 -0
- exprmat-0.2.73/exprmat/domain/spagcn/svg.py +230 -0
- exprmat-0.2.73/exprmat/domain/spatialde/__init__.py +19 -0
- exprmat-0.2.73/exprmat/domain/spatialde/api.py +147 -0
- exprmat-0.2.73/exprmat/domain/spatialde/kernels.py +163 -0
- exprmat-0.2.73/exprmat/domain/spatialde/score_test.py +335 -0
- exprmat-0.2.73/exprmat/help.py +453 -0
- exprmat-0.2.73/exprmat/image/augment.py +227 -0
- exprmat-0.2.73/exprmat/image/axis.py +612 -0
- exprmat-0.2.73/exprmat/image/channel.py +342 -0
- exprmat-0.2.73/exprmat/image/compensation.py +371 -0
- exprmat-0.2.73/exprmat/image/density.py +779 -0
- exprmat-0.2.73/exprmat/image/segmentation.py +204 -0
- exprmat-0.2.73/exprmat/image/tissue.py +55 -0
- exprmat-0.2.73/exprmat/image/transform.py +230 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/__init__.py +8 -1
- exprmat-0.2.73/exprmat/lr/cellnest/__init__.py +47 -0
- exprmat-0.2.73/exprmat/lr/cellnest/api.py +248 -0
- exprmat-0.2.73/exprmat/lr/cellnest/gat.py +222 -0
- exprmat-0.2.73/exprmat/lr/cellnest/intra.py +259 -0
- exprmat-0.2.73/exprmat/lr/cellnest/model.py +118 -0
- exprmat-0.2.73/exprmat/lr/cellnest/plotting.py +263 -0
- exprmat-0.2.73/exprmat/lr/cellnest/postprocess.py +268 -0
- exprmat-0.2.73/exprmat/lr/cellnest/preprocess.py +347 -0
- exprmat-0.2.73/exprmat/lr/cellnest/relay.py +189 -0
- exprmat-0.2.73/exprmat/lr/cellnest/stats.py +174 -0
- exprmat-0.2.73/exprmat/lr/cellnest/train.py +276 -0
- exprmat-0.2.73/exprmat/lr/cellnest/utils.py +179 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/__init__.py +15 -6
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/preprocess.py +1 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/de.py +2 -2
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/expression.py +160 -36
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/matrix.py +2 -2
- exprmat-0.2.73/exprmat/plotting/order.py +592 -0
- exprmat-0.2.73/exprmat/plotting/proximity.py +566 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/velocity.py +1 -1
- exprmat-0.2.73/exprmat/plotting/wgcna.py +264 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/__init__.py +8 -6
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/filter.py +2 -2
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/linear.py +1 -1
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/plot.py +15 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/qc.py +134 -1
- exprmat-0.2.73/exprmat/reader/accessor.py +1320 -0
- exprmat-0.2.73/exprmat/reader/atac/__init__.py +208 -0
- exprmat-0.2.73/exprmat/reader/atac/derive.py +904 -0
- exprmat-0.2.73/exprmat/reader/atac/peaks.py +467 -0
- exprmat-0.2.73/exprmat/reader/atac/preprocessing.py +524 -0
- exprmat-0.2.73/exprmat/reader/cite/__init__.py +13 -0
- exprmat-0.2.73/exprmat/reader/cite/preprocessing.py +31 -0
- exprmat-0.2.73/exprmat/reader/data-structure.txt +57 -0
- exprmat-0.2.73/exprmat/reader/experiment.py +2028 -0
- exprmat-0.2.73/exprmat/reader/general/__init__.py +250 -0
- exprmat-0.2.73/exprmat/reader/history.py +340 -0
- exprmat-0.2.73/exprmat/reader/introspect.py +1416 -0
- exprmat-0.2.73/exprmat/reader/introspective.txt +245 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reader/matcher.py +6 -7
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reader/metadata.py +1 -1
- exprmat-0.2.73/exprmat/reader/rna/__init__.py +527 -0
- exprmat-0.2.73/exprmat/reader/rna/atlas.py +378 -0
- exprmat-0.2.73/exprmat/reader/rna/bulk.py +579 -0
- exprmat-0.2.73/exprmat/reader/rna/cnv.py +161 -0
- exprmat-0.2.73/exprmat/reader/rna/geneset.py +929 -0
- exprmat-0.2.73/exprmat/reader/rna/getter.py +78 -0
- exprmat-0.2.73/exprmat/reader/rna/impute.py +248 -0
- exprmat-0.2.73/exprmat/reader/rna/interaction.py +706 -0
- exprmat-0.2.73/exprmat/reader/rna/markers.py +919 -0
- exprmat-0.2.73/exprmat/reader/rna/nmf.py +453 -0
- exprmat-0.2.73/exprmat/reader/rna/proportion.py +730 -0
- exprmat-0.2.73/exprmat/reader/rna/qc.py +238 -0
- exprmat-0.2.73/exprmat/reader/rna/reduction.py +1961 -0
- exprmat-0.2.73/exprmat/reader/rna/repertoire.py +510 -0
- exprmat-0.2.73/exprmat/reader/rna/summarize.py +433 -0
- exprmat-0.2.73/exprmat/reader/rna/trajectory.py +969 -0
- exprmat-0.2.73/exprmat/reader/schema.py +74 -0
- exprmat-0.2.73/exprmat/reader/spatial/__init__.py +905 -0
- exprmat-0.2.73/exprmat/reader/spatial/classifier.py +113 -0
- exprmat-0.2.73/exprmat/reader/spatial/coordinates.py +256 -0
- exprmat-0.2.73/exprmat/reader/spatial/deconv.py +195 -0
- exprmat-0.2.73/exprmat/reader/spatial/density.py +189 -0
- exprmat-0.2.73/exprmat/reader/spatial/domains.py +588 -0
- exprmat-0.2.73/exprmat/reader/spatial/getter.py +285 -0
- exprmat-0.2.73/exprmat/reader/spatial/graph.py +1024 -0
- exprmat-0.2.73/exprmat/reader/spatial/image.py +552 -0
- exprmat-0.2.73/exprmat/reader/spatial/lr.py +514 -0
- exprmat-0.2.73/exprmat/reader/spatial/proximity.py +422 -0
- exprmat-0.2.73/exprmat/reader/spatial/qc.py +93 -0
- exprmat-0.2.73/exprmat/reader/spatial/segmentation.py +605 -0
- exprmat-0.2.73/exprmat/reader/spatial/snn.py +703 -0
- exprmat-0.2.73/exprmat/reader/spatial/tmap.py +271 -0
- exprmat-0.2.73/exprmat/reader/spatial/transform.py +210 -0
- exprmat-0.2.73/exprmat/reader/static.py +60 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/plot.py +348 -78
- exprmat-0.2.73/exprmat/reduction/wnn/__init__.py +255 -0
- exprmat-0.2.73/exprmat/reduction/wnn/landmarks.py +72 -0
- exprmat-0.2.73/exprmat/reduction/wnn/plan.md +591 -0
- exprmat-0.2.73/exprmat/reduction/wnn/projection.py +70 -0
- exprmat-0.2.73/exprmat/reduction/wnn/refinement.py +471 -0
- exprmat-0.2.73/exprmat/reduction/wnn/sampling.py +84 -0
- exprmat-0.2.73/exprmat/reduction/wnn/umap_landmarks.py +43 -0
- exprmat-0.2.73/exprmat/signature/__init__.py +26 -0
- exprmat-0.2.73/exprmat/signature/datatype.py +5 -0
- exprmat-0.2.73/exprmat/signature/download.py +77 -0
- exprmat-0.2.73/exprmat/signature/log.py +10 -0
- exprmat-0.2.73/exprmat/signature/method.py +96 -0
- exprmat-0.2.73/exprmat/signature/methods/__init__.py +10 -0
- exprmat-0.2.73/exprmat/signature/methods/aucell.py +157 -0
- exprmat-0.2.73/exprmat/signature/methods/consensus.py +145 -0
- exprmat-0.2.73/exprmat/signature/methods/decouple.py +107 -0
- exprmat-0.2.73/exprmat/signature/methods/gsea.py +314 -0
- exprmat-0.2.73/exprmat/signature/methods/gsva.py +437 -0
- exprmat-0.2.73/exprmat/signature/methods/mdt.py +112 -0
- exprmat-0.2.73/exprmat/signature/methods/mlm.py +170 -0
- exprmat-0.2.73/exprmat/signature/methods/ora.py +327 -0
- exprmat-0.2.73/exprmat/signature/methods/pv.py +70 -0
- exprmat-0.2.73/exprmat/signature/methods/query_set.py +89 -0
- exprmat-0.2.73/exprmat/signature/methods/registry.py +25 -0
- exprmat-0.2.73/exprmat/signature/methods/run.py +123 -0
- exprmat-0.2.73/exprmat/signature/methods/udt.py +117 -0
- exprmat-0.2.73/exprmat/signature/methods/ulm.py +157 -0
- exprmat-0.2.73/exprmat/signature/methods/viper.py +366 -0
- exprmat-0.2.73/exprmat/signature/methods/waggr.py +290 -0
- exprmat-0.2.73/exprmat/signature/methods/zscore.py +128 -0
- exprmat-0.2.73/exprmat/signature/odeps.py +43 -0
- exprmat-0.2.73/exprmat/signature/plotter.py +58 -0
- exprmat-0.2.73/exprmat/signature/plotting/__init__.py +13 -0
- exprmat-0.2.73/exprmat/signature/plotting/barplot.py +141 -0
- exprmat-0.2.73/exprmat/signature/plotting/dotplot.py +155 -0
- exprmat-0.2.73/exprmat/signature/plotting/filter_by_expr.py +111 -0
- exprmat-0.2.73/exprmat/signature/plotting/filter_by_prop.py +73 -0
- exprmat-0.2.73/exprmat/signature/plotting/filter_samples.py +124 -0
- exprmat-0.2.73/exprmat/signature/plotting/leading_edge.py +165 -0
- exprmat-0.2.73/exprmat/signature/plotting/network.py +365 -0
- exprmat-0.2.73/exprmat/signature/plotting/obsbar.py +66 -0
- exprmat-0.2.73/exprmat/signature/plotting/obsm.py +208 -0
- exprmat-0.2.73/exprmat/signature/plotting/order.py +95 -0
- exprmat-0.2.73/exprmat/signature/plotting/order_targets.py +215 -0
- exprmat-0.2.73/exprmat/signature/plotting/source_targets.py +143 -0
- exprmat-0.2.73/exprmat/signature/plotting/volcano.py +162 -0
- exprmat-0.2.73/exprmat/signature/utils/__init__.py +49 -0
- exprmat-0.2.73/exprmat/signature/utils/anndata.py +609 -0
- exprmat-0.2.73/exprmat/signature/utils/data.py +202 -0
- exprmat-0.2.73/exprmat/signature/utils/net.py +399 -0
- exprmat-0.2.73/exprmat/signature/utils/rankby_group.py +121 -0
- exprmat-0.2.73/exprmat/signature/utils/rankby_obsm.py +110 -0
- exprmat-0.2.73/exprmat/signature/utils/rankby_order.py +98 -0
- exprmat-0.2.73/exprmat/spatial/__init__.py +30 -0
- exprmat-0.2.73/exprmat/spatial/classifier.py +149 -0
- exprmat-0.2.73/exprmat/spatial/hd.py +198 -0
- exprmat-0.2.73/exprmat/spatial/interac.py +597 -0
- exprmat-0.2.73/exprmat/spatial/ligrec.py +337 -0
- exprmat-0.2.73/exprmat/spatial/mif.py +93 -0
- exprmat-0.2.73/exprmat/spatial/nhood.py +339 -0
- exprmat-0.2.73/exprmat/spatial/niche.py +398 -0
- exprmat-0.2.73/exprmat/spatial/ometiff.py +309 -0
- exprmat-0.2.73/exprmat/spatial/pattern.py +419 -0
- exprmat-0.2.73/exprmat/spatial/ripley.py +251 -0
- exprmat-0.2.73/exprmat/spatial/snn.py +229 -0
- exprmat-0.2.73/exprmat/spatial/utils.py +45 -0
- exprmat-0.2.73/exprmat/spatial/visium.py +143 -0
- exprmat-0.2.73/exprmat/spatial/xenium.py +185 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/cytotrace.py +2 -1
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/elpi.py +8 -8
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/pseudotime.py +1 -1
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/root.py +1 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/trace.py +27 -18
- exprmat-0.2.73/exprmat/transfer/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/utils.py +11 -0
- exprmat-0.2.73/exprmat/wgcna/__init__.py +273 -0
- exprmat-0.2.73/exprmat/wgcna/core.py +368 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/pyproject.toml +10 -3
- {exprmat-0.1.58 → exprmat-0.2.73}/readme.md +36 -94
- exprmat-0.1.58/exprmat/data/__init__.py +0 -5
- exprmat-0.1.58/exprmat/data/cistarget.py +0 -697
- exprmat-0.1.58/exprmat/data/cre.py +0 -111
- exprmat-0.1.58/exprmat/data/finders.py +0 -291
- exprmat-0.1.58/exprmat/data/geneset.py +0 -99
- exprmat-0.1.58/exprmat/data/icnet.py +0 -74
- exprmat-0.1.58/exprmat/data/io.py +0 -8
- exprmat-0.1.58/exprmat/data/lr.py +0 -161
- exprmat-0.1.58/exprmat/data/orthologs.py +0 -107
- exprmat-0.1.58/exprmat/data/presets.py +0 -79
- exprmat-0.1.58/exprmat/data/signature.py +0 -325
- exprmat-0.1.58/exprmat/data/tf.py +0 -36
- exprmat-0.1.58/exprmat/image/align.py +0 -1021
- exprmat-0.1.58/exprmat/image/channel.py +0 -45
- exprmat-0.1.58/exprmat/image/equalize.py +0 -19
- exprmat-0.1.58/exprmat/plotting/__init__.py +0 -9
- exprmat-0.1.58/exprmat/plotting/data/A.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/B.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/C.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/D.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/E.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/F.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/G.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/H.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/I.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/J.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/K.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/L.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/M.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/N.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/O.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/P.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/Q.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/R.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/S.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/T.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/U.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/V.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/W.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/X.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/Y.pk +0 -0
- exprmat-0.1.58/exprmat/plotting/data/Z.pk +0 -0
- exprmat-0.1.58/exprmat/reader/experiment.py +0 -7806
- exprmat-0.1.58/exprmat/reader/ometiff.py +0 -192
- exprmat-0.1.58/exprmat/reader/qptiff.py +0 -520
- exprmat-0.1.58/exprmat/reader/spatial.py +0 -853
- exprmat-0.1.58/exprmat/reader/static.py +0 -2878
- {exprmat-0.1.58 → exprmat-0.2.73}/Cargo.lock +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/Cargo.toml +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/ansi.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/cnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/dbscan.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/kmeans.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/leiden.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/nmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/rogue.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/seriation.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/spectral.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/clustering/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/cnv/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/cnv/cnvscore.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/cnv/infercnv.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/configuration.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deconv/deconv.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deconv/simulation.py +0 -0
- {exprmat-0.1.58/exprmat/deconv → exprmat-0.2.73/exprmat/descriptive}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/atac.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/aucell.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/composition.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/covar.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/de.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/kde.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/recovery.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/descriptive/sccoda.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/dataset.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/gridsearch.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/inference.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/preprocessing.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/stats.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/deseq/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/generank.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/linreg.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/moments.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/optimization.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/parallel.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/preprocess.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/pseudotime.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/transition.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/dynamics/velocity.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/infergrn.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/modules.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/prune.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/regressors.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/grn/utils.py +0 -0
- {exprmat-0.1.58/exprmat/descriptive → exprmat-0.2.73/exprmat/image}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/aggregate.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/construction.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/importance.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/ligand.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/metrics.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/icnet/pagerank.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/method.py +0 -0
- {exprmat-0.1.58/exprmat/image → exprmat-0.2.73/exprmat/lr/methods}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/cellchat.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/cellphonedb.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/connectome.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/geomean.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/logfc.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/natmi.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/rank_aggregate.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/scseqcomm.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/methods/singlecellsignalr.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/pipeline.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/resources.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/lr/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/metacell/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/metacell/engine.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/metacell/model.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/metacell/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/bd.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/bmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/icm.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/lfnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/lsnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/nmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/nsnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/pmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/pmfcc.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/psmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/sepnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/snmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/snmnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/fixed.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/nndsvd.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random_c.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random_vcol.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/mf_fit.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/mf_track.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/nmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/nmf_mm.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/nmf_ns.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/nmf_std.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/models/smf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/utils/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/utils/linalg.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/nmf/utils/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/parser/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/parser/converter.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/parser/rds.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/parser/seurat.py +0 -0
- {exprmat-0.1.58/exprmat/lr/methods → exprmat-0.2.73/exprmat/peaks}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/callpeak.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/common.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/coverage.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/footprint.py +0 -0
- {exprmat-0.1.58/exprmat/peaks → exprmat-0.2.73/exprmat/peaks/idr}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/idr/constants.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/idr/idr.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/idr/invcdf.pyx +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/idr/optimization.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/idr/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/linkage.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/motif.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/peaks/sequence.py +0 -0
- {exprmat-0.1.58/exprmat/peaks/idr → exprmat-0.2.73/exprmat/plotting}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/atac.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/cnmf.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/cnv.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/gse.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/icnet.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/knee.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/lr.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/milestone.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/network.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/palettes.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/sankey.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/sequence.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/summary.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/track.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/trajectory.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/plotting/utils.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/correction.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/dirichlet_multinomial.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/emptydrops.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/estimation.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/multinomial.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/sgt.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/background/soupx.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/doublets/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/doublets/composite.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/doublets/scrublet.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/emptydrops.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/impute/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/impute/magic.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/integrate.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/normal.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/estimate.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/residual.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/transform.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/sparse.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/preprocessing/uniform.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reader/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reader/conversions.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reader/updater.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/diffmap.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/forceatlas.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/mde.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/nn.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/outliers.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/pca.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/scvi.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/spectral.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/tsne.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/reduction/umap.py +0 -0
- /exprmat-0.1.58/exprmat/trajectory/__init__.py → /exprmat-0.2.73/exprmat/spatial/tmap.py +0 -0
- {exprmat-0.1.58/exprmat/transfer → exprmat-0.2.73/exprmat/trajectory}/__init__.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/trajectory/pcurve.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/exprmat/transfer/atlas.py +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/license +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/Cargo.toml +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/license +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/readme +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/call_peaks.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/embedding.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/export.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/knn.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/lib.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/motif.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/network.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/preprocessing.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/utils/anndata.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2/src/utils.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/Cargo.toml +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/embedding.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/export.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/feature_count/counter.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/feature_count/matrix.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/feature_count/mod.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/genome.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/lib.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/motif.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/network.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/import.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/mod.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/qc.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/utils/knn.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/utils/mod.rs +0 -0
- {exprmat-0.1.58 → exprmat-0.2.73}/snapatac2-core/src/utils/similarity.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: exprmat
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.73
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -57,7 +57,7 @@ Requires-Dist: bincsync>=0.4.0
|
|
|
57
57
|
Requires-Dist: pybigwig
|
|
58
58
|
Requires-Dist: spatialdata
|
|
59
59
|
Requires-Dist: loompy
|
|
60
|
-
Requires-Dist: zarr
|
|
60
|
+
Requires-Dist: zarr<3
|
|
61
61
|
Requires-Dist: scikit-image
|
|
62
62
|
Requires-Dist: spatial-image
|
|
63
63
|
Requires-Dist: multiscale-spatial-image
|
|
@@ -82,6 +82,13 @@ Requires-Dist: dask-expr>=2.0
|
|
|
82
82
|
Requires-Dist: einops==0.8.1
|
|
83
83
|
Requires-Dist: lxml
|
|
84
84
|
Requires-Dist: arviz>=0.23
|
|
85
|
+
Requires-Dist: pyvips
|
|
86
|
+
Requires-Dist: openslide-python
|
|
87
|
+
Requires-Dist: tissuumaps<4
|
|
88
|
+
Requires-Dist: opencv-python
|
|
89
|
+
Requires-Dist: marsilea
|
|
90
|
+
Requires-Dist: qnorm
|
|
91
|
+
Requires-Dist: torch-geometric
|
|
85
92
|
Requires-Dist: cudf-cu12==25.8.* ; extra == 'cuda12'
|
|
86
93
|
Requires-Dist: dask-cudf-cu12==25.8.* ; extra == 'cuda12'
|
|
87
94
|
Requires-Dist: cuml-cu12==25.8.* ; extra == 'cuda12'
|
|
@@ -109,16 +116,14 @@ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
|
109
116
|
Project-URL: Repository, https://github.com/yang-z-03/exprmat
|
|
110
117
|
|
|
111
118
|
|
|
112
|
-
#
|
|
119
|
+
# exprmat
|
|
113
120
|
|
|
114
121
|

|
|
115
122
|

|
|
116
123
|
|
|
117
|
-
|
|
118
|
-
of
|
|
119
|
-
|
|
120
|
-
provides integration and wrappers of common routines for preprocessing, annotating,
|
|
121
|
-
clustering, visualizations, and downstream analyses with a common interface.
|
|
124
|
+
exprmat (short for **expr**ession **mat**rix) is a routine package for manipulation
|
|
125
|
+
of sparse expression matrices. It provides a ***structured***, ***introspective***
|
|
126
|
+
mudular interface for man and machine.
|
|
122
127
|
|
|
123
128
|
You may refer to these places:
|
|
124
129
|
|
|
@@ -180,7 +185,7 @@ for re-distribution.
|
|
|
180
185
|
|
|
181
186
|
```
|
|
182
187
|
exprmat - Routines to manipulate expression matrices
|
|
183
|
-
Copyright (C) 2025 - 2026 Zheng Yang
|
|
188
|
+
Copyright (C) 2025 - 2026 Zheng Yang <xornent@outlook.com>
|
|
184
189
|
|
|
185
190
|
exprmat is free software and comes with ABSOLUTELY NO WARRANTY.
|
|
186
191
|
You are welcome to redistribute it under certain conditions.
|
|
@@ -194,91 +199,34 @@ your program into proprietary programs.
|
|
|
194
199
|
I acknowledge the following author(s) for modifying and integrating their work
|
|
195
200
|
in the form of source code to this package.
|
|
196
201
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
BSD 3-Clause License
|
|
230
|
-
Copyright (c) 2022, Gregor Sturm
|
|
231
|
-
|
|
232
|
-
directory /deconv comes from the TAPE project.
|
|
233
|
-
|
|
234
|
-
GNU GPLv3. (same as this project)
|
|
235
|
-
Copyright (c) The contributors.
|
|
236
|
-
|
|
237
|
-
directory /metacell comes from the MetaQ project.
|
|
238
|
-
|
|
239
|
-
MIT License
|
|
240
|
-
Copyright (c) 2024 XLearning Group
|
|
241
|
-
|
|
242
|
-
directory /grn comes from the scenicplus project.
|
|
243
|
-
|
|
244
|
-
Academic Non-commercial Software License Agreement.
|
|
245
|
-
For full text of the license, see <https://github.com/aertslab/scenicplus>
|
|
246
|
-
Copyright (c) The contributors.
|
|
247
|
-
|
|
248
|
-
directory /lr (but not /lr/icnet) comes from the lianapy project
|
|
249
|
-
|
|
250
|
-
BSD 3-Clause License
|
|
251
|
-
Copyright (c) 2025, Daniel Dimitrov
|
|
252
|
-
|
|
253
|
-
directory /peaks/idr.py comes from the idr project
|
|
254
|
-
|
|
255
|
-
GNU GPLv2. For copyright details, see <https://github.com/nboley/idr>
|
|
256
|
-
Copyright (c) The contributors
|
|
257
|
-
|
|
258
|
-
function diffmap comes from the pydiffmap project
|
|
259
|
-
|
|
260
|
-
MIT License
|
|
261
|
-
Copyright (c) 2018 Ralf Banisch, Erik Henning Thiede, Zofia Trstanova
|
|
262
|
-
|
|
263
|
-
principle tree fitting and trajectory analysis comes from the scFates project
|
|
264
|
-
|
|
265
|
-
BSD 3-Clause License
|
|
266
|
-
Copyright (c) 2020, Louis Faure
|
|
267
|
-
|
|
268
|
-
file /trajectory/cytotrace.py comes from the CytoTRACE2 project
|
|
269
|
-
|
|
270
|
-
Stanford Non-commercial Software License Agreement
|
|
271
|
-
Copyright (c) The contributors.
|
|
272
|
-
|
|
273
|
-
rna velocity fitting comes from the scvelo project
|
|
274
|
-
|
|
275
|
-
BSD 3-Clause License
|
|
276
|
-
Copyright (c) 2018, Theis Lab
|
|
277
|
-
|
|
278
|
-
directory /deseq comes from the pyDEseq2 project
|
|
279
|
-
|
|
280
|
-
MIT License
|
|
281
|
-
Copyright (c) 2022 Owkin
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
|
|
202
|
+
- **scanpy**, BSD 3-Clause, Copyright (c) 2017 F. Alexander Wolf, P. Angerer, Theis Lab
|
|
203
|
+
- **snapatac2**, MIT, Copyright (c) 2022-2024 Kai Zhang
|
|
204
|
+
- **sc3s**, GNU GPLv3, Copyright (c) Quah, F.X. and Hemberg, M. and contributors.
|
|
205
|
+
- **cnmf**, MIT, Copyright (c) 2019 Dylan Kotliar
|
|
206
|
+
- **infercnvpy**, BSD 3-Clause, Copyright (c) 2022, Gregor Sturm
|
|
207
|
+
- **tape**, GNU GPLv3, Copyright (c) The contributors.
|
|
208
|
+
- **metaq**, MIT, Copyright (c) 2024 XLearning Group
|
|
209
|
+
- **scenicplus**, Academic Non-commercial Software License Agreement, Copyright (c) The contributors.
|
|
210
|
+
- **lianapy**, BSD 3-Clause, Copyright (c) 2025, Daniel Dimitrov
|
|
211
|
+
- **idr**, GNU GPLv2, Copyright (c) The contributors
|
|
212
|
+
- **omicverse**, GNU GPLv3, Copyright (c) 2024 112 Lab
|
|
213
|
+
- **pydiffmap**, MIT, Copyright (c) 2018 Ralf Banisch, Erik Henning Thiede, Zofia Trstanova
|
|
214
|
+
- **scfates**, BSD 3-Clause, Copyright (c) 2020, Louis Faure
|
|
215
|
+
- **cytotrace2**, Stanford Non-commercial Software License Agreement, Copyright (c) The contributors.
|
|
216
|
+
- **scvelo**, BSD 3-Clause, Copyright (c) 2018, Theis Lab
|
|
217
|
+
- **pydeseq2**, MIT, Copyright (c) 2022 Owkin
|
|
218
|
+
- **decoupler**, GNU GPLv3, Copyright (c) The contributors.
|
|
219
|
+
- **scvitools**, BSD 3-Clause, Copyright (c) 2026, Yosef Lab, Weizmann Institute of Science
|
|
220
|
+
- **spacec**, Academic Software License Agreement, Copyright (c) The contributors.
|
|
221
|
+
- **squidpy**, BSD 3-Clause, Copyright (c) 2021, Theis Lab
|
|
222
|
+
- **sctransformpy**, GNU GPLv3, Copyright (c) David DeTomaso
|
|
223
|
+
- **magic**, GNU GPLv2, Copyright (c) The contributors.
|
|
224
|
+
- **scrublet**, MIT, Copyright (c) 2018 Samuel Wolock
|
|
225
|
+
- **py8rds**, MIT, Copyright (c) 2024 Cellular Genetics Informatics
|
|
226
|
+
- **nimfa**, New BSD, Copyright (c) 2016 The Nimfa developers.
|
|
227
|
+
- **cellnest**, GNU GPLv3, Copyright (c) The contributors.
|
|
228
|
+
- **tangram**, BSD 3-Clause, Copyright (c) 2020, Broad Institute All rights reserved.
|
|
229
|
+
- **deepst**, MIT, Copyright (c) 2022 spatial-Transcriptomics
|
|
230
|
+
- **spagcn**, MIT, Copyright (c) 2020 JianHu
|
|
231
|
+
- **spatialde**, MIT, Copyright (c) 2018 Teichmann Group
|
|
232
|
+
- **omnipathdb**, See source licenses and permissions.
|
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
# continuous. historically taken [1, 39]
|
|
5
5
|
|
|
6
6
|
SPECIFICATION = 39
|
|
7
|
+
ENABLE_AGENT_PROMPT = True
|
|
7
8
|
|
|
8
9
|
import importlib.metadata
|
|
9
10
|
ver_string = importlib.metadata.version("exprmat")
|
|
10
11
|
MAJOR, MINOR, REVISION = [int(x) for x in ver_string.split('.')]
|
|
11
12
|
|
|
12
|
-
import os
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
import os as _os
|
|
14
|
+
_os.environ['OPENBLAS_NUM_THREADS'] = '1'
|
|
15
|
+
_os.environ['GOTO_NUM_THREADS'] = '1'
|
|
16
|
+
_os.environ['OMP_NUM_THREADS'] = '1'
|
|
16
17
|
|
|
17
18
|
# public expose references
|
|
18
19
|
import mudata as mu
|
|
@@ -21,8 +22,8 @@ import scanpy as sc
|
|
|
21
22
|
import pandas as pd
|
|
22
23
|
import numpy as np
|
|
23
24
|
|
|
24
|
-
import pathlib
|
|
25
|
-
from PIL import Image
|
|
25
|
+
import pathlib as _pathlib
|
|
26
|
+
from PIL import Image as _image
|
|
26
27
|
|
|
27
28
|
# build cython package
|
|
28
29
|
|
|
@@ -43,14 +44,14 @@ except ImportError:
|
|
|
43
44
|
# change to the project source directory
|
|
44
45
|
# thus we can build the extension in the source directory.
|
|
45
46
|
sys.argv = ['', 'build_ext', '--inplace']
|
|
46
|
-
cwd =
|
|
47
|
-
|
|
48
|
-
info(f'entering working directory: {
|
|
47
|
+
cwd = _os.getcwd()
|
|
48
|
+
_os.chdir(_os.path.dirname(__file__))
|
|
49
|
+
info(f'entering working directory: {_os.getcwd()}')
|
|
49
50
|
|
|
50
51
|
extensions = [
|
|
51
52
|
Extension(
|
|
52
53
|
'peaks.idr.invcdf',
|
|
53
|
-
[__file__.replace('__init__.py',
|
|
54
|
+
[__file__.replace('__init__.py', _os.path.join('peaks', 'idr', 'invcdf.pyx'))],
|
|
54
55
|
include_dirs = [numpy.get_include()],
|
|
55
56
|
define_macros = [('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')]
|
|
56
57
|
)
|
|
@@ -62,9 +63,9 @@ except ImportError:
|
|
|
62
63
|
ext_modules = cythonize(extensions, language_level = 3, quiet = True)
|
|
63
64
|
)
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
_os.chdir(cwd)
|
|
66
67
|
# remove the autogenerated build directory. since we compile inplace.
|
|
67
|
-
|
|
68
|
+
_os.system(f'rm -r {_os.path.join(_os.path.dirname(__file__), "build")}')
|
|
68
69
|
info('compilation finished.')
|
|
69
70
|
|
|
70
71
|
|
|
@@ -74,7 +75,7 @@ from exprmat.ansi import warning, info
|
|
|
74
75
|
config = configuration()
|
|
75
76
|
|
|
76
77
|
mu.set_options(pull_on_update = False)
|
|
77
|
-
|
|
78
|
+
_image.MAX_IMAGE_PIXELS = config['max.image']
|
|
78
79
|
|
|
79
80
|
DATABASE_SETUP_MESSAGE = """
|
|
80
81
|
The exprmat package do not come with an included database after version 0.1.25,
|
|
@@ -105,14 +106,14 @@ default_finders = [
|
|
|
105
106
|
'exprmat.config',
|
|
106
107
|
'.exprmat.config',
|
|
107
108
|
'.exprmatrc',
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
_os.path.join(str(_pathlib.Path.home()), 'exprmat.config'),
|
|
110
|
+
_os.path.join(str(_pathlib.Path.home()), '.exprmat.config'),
|
|
111
|
+
_os.path.join(str(_pathlib.Path.home()), '.exprmatrc')
|
|
111
112
|
]
|
|
112
113
|
|
|
113
114
|
DEFAULT_CONFIG = '[internals]'
|
|
114
115
|
for finder in default_finders:
|
|
115
|
-
if
|
|
116
|
+
if _os.path.exists(finder):
|
|
116
117
|
DEFAULT_CONFIG = finder
|
|
117
118
|
if False: info(f'load configuration from {finder}')
|
|
118
119
|
with open(finder, 'r') as f:
|
|
@@ -124,21 +125,21 @@ for finder in default_finders:
|
|
|
124
125
|
basepath = config['data']
|
|
125
126
|
|
|
126
127
|
# core method exports
|
|
127
|
-
from exprmat.utils import
|
|
128
|
+
from exprmat.utils import savefig
|
|
129
|
+
from exprmat.utils import setup_styles as _setup_styles
|
|
128
130
|
from exprmat.ansi import pprog, pproga, info, error, warning, default_logger, logger
|
|
129
131
|
from exprmat.reader.experiment import experiment, load_experiment
|
|
130
132
|
from exprmat.reader.metadata import metadata, load_metadata
|
|
131
|
-
import exprmat.reader.static as st
|
|
132
133
|
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
_setup_styles()
|
|
135
136
|
|
|
136
137
|
|
|
137
138
|
def version_db():
|
|
138
139
|
dbpath = config['data']
|
|
139
|
-
version_file =
|
|
140
|
+
version_file = _os.path.join(dbpath, '.bsync', 'current')
|
|
140
141
|
|
|
141
|
-
if not
|
|
142
|
+
if not _os.path.exists(version_file):
|
|
142
143
|
db_ver = None
|
|
143
144
|
else:
|
|
144
145
|
with open(version_file, 'r') as vf:
|
|
@@ -207,25 +208,26 @@ def memory():
|
|
|
207
208
|
|
|
208
209
|
def license(): print(LICENSE_MESSAGE)
|
|
209
210
|
|
|
210
|
-
def view(fpath, cmd = 'less -S'):
|
|
211
|
-
cmd + ' "' +
|
|
211
|
+
def view(fpath, cmd = 'less -S'): _os.system(
|
|
212
|
+
cmd + ' "' + _os.path.join(_os.path.dirname(__file__), fpath) + '"'
|
|
212
213
|
)
|
|
213
214
|
|
|
214
|
-
setwd =
|
|
215
|
-
getwd =
|
|
215
|
+
setwd = _os.chdir
|
|
216
|
+
getwd = _os.getcwd
|
|
216
217
|
|
|
218
|
+
from .help import help
|
|
217
219
|
|
|
218
|
-
import tqdm
|
|
220
|
+
import tqdm as _tqdm
|
|
219
221
|
# https://github.com/tqdm/tqdm/issues/457
|
|
220
|
-
|
|
222
|
+
_tqdm.tqdm(disable = True, total = 0)
|
|
221
223
|
|
|
222
224
|
|
|
223
225
|
# show version info after any install or update of the database.
|
|
224
226
|
# this always synchronizes with the package update.
|
|
225
227
|
|
|
226
228
|
try:
|
|
227
|
-
fd =
|
|
228
|
-
with
|
|
229
|
+
fd = _os.open(_os.path.join(basepath, '.license'), _os.O_CREAT | _os.O_EXCL | _os.O_WRONLY)
|
|
230
|
+
with _os.fdopen(fd, "w") as f: f.write(ver_string)
|
|
229
231
|
license()
|
|
230
232
|
|
|
231
233
|
except FileExistsError:
|
|
@@ -237,7 +239,7 @@ __all__ = [
|
|
|
237
239
|
'np', 'mu', 'ad', 'sc', 'pd',
|
|
238
240
|
|
|
239
241
|
# exposed internal namespace
|
|
240
|
-
'st',
|
|
242
|
+
# 'st',
|
|
241
243
|
|
|
242
244
|
# expose classes
|
|
243
245
|
'experiment',
|
|
@@ -259,5 +261,6 @@ __all__ = [
|
|
|
259
261
|
'savefig',
|
|
260
262
|
|
|
261
263
|
# constants
|
|
262
|
-
'SPECIFICATION'
|
|
264
|
+
'SPECIFICATION',
|
|
265
|
+
'ENABLE_AGENT_PROMPT'
|
|
263
266
|
]
|
|
@@ -6,10 +6,6 @@ from shapely import Point, Polygon
|
|
|
6
6
|
def polygon_gate(
|
|
7
7
|
adata, gene_x, gene_y,
|
|
8
8
|
layer = 'X',
|
|
9
|
-
|
|
10
|
-
remove_zero_expression = False,
|
|
11
|
-
scale = 'asis', arcsinh_divider = None,
|
|
12
|
-
|
|
13
9
|
polygon = [(0, 0), (1, 0), (1, 1), (0, 1)],
|
|
14
10
|
key_added = 'gate'
|
|
15
11
|
):
|
|
@@ -33,26 +29,6 @@ def polygon_gate(
|
|
|
33
29
|
'y': gy
|
|
34
30
|
})
|
|
35
31
|
|
|
36
|
-
if remove_zero_expression:
|
|
37
|
-
df = df.loc[(df['x'] > 0) & (df['y'] > 0), :].copy()
|
|
38
|
-
|
|
39
|
-
if scale == 'asis': pass
|
|
40
|
-
elif scale == 'log':
|
|
41
|
-
df['x'] = np.log1p(df['x'])
|
|
42
|
-
df['y'] = np.log1p(df['y'])
|
|
43
|
-
elif scale == 'expm1':
|
|
44
|
-
df['x'] = np.expm1(df['x'])
|
|
45
|
-
df['y'] = np.expm1(df['y'])
|
|
46
|
-
elif scale == 'arcsinh':
|
|
47
|
-
lx = np.expm1(df['x']).loc[df['x'] > 0]
|
|
48
|
-
ly = np.expm1(df['y']).loc[df['x'] > 0]
|
|
49
|
-
df['x'] = np.arcsinh(np.expm1(df['x']) / (
|
|
50
|
-
arcsinh_divider if arcsinh_divider is not None
|
|
51
|
-
else (np.median(lx) / 20)))
|
|
52
|
-
df['y'] = np.arcsinh(np.expm1(df['y']) / (
|
|
53
|
-
arcsinh_divider if arcsinh_divider is not None
|
|
54
|
-
else (np.median(ly) / 20)))
|
|
55
|
-
|
|
56
32
|
poly = Polygon(polygon)
|
|
57
33
|
df['gate'] = [
|
|
58
34
|
poly.contains(Point(x, y))
|
|
@@ -405,8 +405,15 @@ def consensus(
|
|
|
405
405
|
random_state = random_state
|
|
406
406
|
)
|
|
407
407
|
|
|
408
|
+
from exprmat.reader.introspect import fill_automatic_slots
|
|
409
|
+
from exprmat.reader.introspect import output_obs, output_uns
|
|
410
|
+
outputs = []
|
|
411
|
+
|
|
408
412
|
# write the individual trials into AnnData object
|
|
409
|
-
adata.uns[f'{key_added}.trials'] = trials_dict
|
|
413
|
+
# adata.uns[f'{key_added}.trials'] = trials_dict
|
|
414
|
+
# outputs.append(output_uns(
|
|
415
|
+
# ['sc3-trials'], f'{key_added}.trials', desc = 'Dictionary of individual clustering trials for SC3 consensus clustering'
|
|
416
|
+
# ))
|
|
410
417
|
|
|
411
418
|
# run different number of clusters
|
|
412
419
|
for K in n_clusters:
|
|
@@ -434,5 +441,9 @@ def consensus(
|
|
|
434
441
|
# write results into AnnData object
|
|
435
442
|
adata.obs[f'{key_added}.{K}'] = cell_labels
|
|
436
443
|
adata.obs[f'{key_added}.{K}'] = adata.obs[f'{key_added}.{K}'].astype('str').astype('category')
|
|
444
|
+
outputs.append(output_obs(
|
|
445
|
+
['category'], f'{key_added}.{K}', desc = f'SC3 clustering, K = {K}'
|
|
446
|
+
))
|
|
437
447
|
|
|
448
|
+
fill_automatic_slots(adata, manual = outputs)
|
|
438
449
|
return adata
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""
|
|
2
|
+
tangram - mapping single-cell expression onto spatial transcriptomics. ported
|
|
3
|
+
from https://github.com/broadinstitute/Tangram.
|
|
4
|
+
|
|
5
|
+
the upstream gene-selection / highly-variable-gene helpers and plotting
|
|
6
|
+
modules are not ported here; users are expected to supply their own training
|
|
7
|
+
gene list (or rely on the intersection of shared genes computed by
|
|
8
|
+
`pp_adatas`).
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from .mapping import (
|
|
12
|
+
pp_adatas,
|
|
13
|
+
adata_to_cluster_expression,
|
|
14
|
+
map_cells_to_space,
|
|
15
|
+
)
|
|
16
|
+
from .utils import (
|
|
17
|
+
annotate_gene_sparsity,
|
|
18
|
+
one_hot_encoding,
|
|
19
|
+
project_cell_annotations,
|
|
20
|
+
project_genes,
|
|
21
|
+
)
|
|
22
|
+
from .spatial import spatial_weights
|
|
23
|
+
from .optimizer import mapper, mapper_constrained
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
'pp_adatas',
|
|
27
|
+
'adata_to_cluster_expression',
|
|
28
|
+
'map_cells_to_space',
|
|
29
|
+
'annotate_gene_sparsity',
|
|
30
|
+
'one_hot_encoding',
|
|
31
|
+
'project_cell_annotations',
|
|
32
|
+
'project_genes',
|
|
33
|
+
'spatial_weights',
|
|
34
|
+
'mapper',
|
|
35
|
+
'mapper_constrained',
|
|
36
|
+
]
|