exprmat 0.1.50__tar.gz → 0.1.52__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.50 → exprmat-0.1.52}/PKG-INFO +114 -2
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/__init__.py +1 -1
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/ansi.py +45 -21
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/experiment.py +335 -278
- {exprmat-0.1.50 → exprmat-0.1.52}/pyproject.toml +2 -2
- exprmat-0.1.52/readme.md +173 -0
- exprmat-0.1.50/readme.md +0 -62
- {exprmat-0.1.50 → exprmat-0.1.52}/Cargo.lock +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/Cargo.toml +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/cnmf.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/dbscan.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/gating.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/kmeans.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/leiden.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/nmf.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/rogue.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/sc3.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/seriation.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/spectral.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/clustering/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/cnv/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/cnv/cnvscore.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/cnv/infercnv.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/configuration.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/cistarget.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/cre.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/finders.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/geneset.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/icnet.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/io.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/lr.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/orthologs.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/presets.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/signature.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/data/tf.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deconv/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deconv/deconv.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deconv/simulation.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/aggregate.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/atac.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/aucell.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/de.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/gse.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/kde.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/recovery.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/summary.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/descriptive/tcr.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/dataset.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/gridsearch.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/inference.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/preprocessing.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/stats.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/deseq/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/generank.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/linreg.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/moments.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/optimization.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/parallel.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/preprocess.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/pseudotime.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/transition.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/dynamics/velocity.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/infergrn.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/modules.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/prune.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/regressors.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/grn/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/image/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/image/align.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/aggregate.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/construction.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/importance.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/ligand.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/metrics.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/icnet/pagerank.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/method.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/cellchat.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/cellphonedb.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/connectome.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/geomean.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/logfc.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/natmi.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/rank_aggregate.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/scseqcomm.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/methods/singlecellsignalr.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/pipeline.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/preprocess.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/resources.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/lr/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/metacell/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/metacell/engine.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/metacell/model.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/metacell/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/callpeak.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/common.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/coverage.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/footprint.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/constants.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/idr.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/invcdf.pyx +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/optimization.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/idr/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/linkage.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/motif.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/peaks/sequence.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/atac.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/cnmf.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/cnv.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/A.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/B.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/C.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/D.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/E.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/F.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/G.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/H.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/I.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/J.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/K.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/L.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/M.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/N.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/O.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/P.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/Q.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/R.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/S.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/T.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/U.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/V.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/W.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/X.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/Y.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/data/Z.pk +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/de.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/expression.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/gse.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/icnet.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/lr.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/milestone.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/palettes.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/sankey.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/sequence.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/summary.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/track.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/trajectory.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/plotting/velocity.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/doublets/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/doublets/composite.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/doublets/scrublet.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/emptydrops.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/filter.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/impute/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/impute/magic.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/integrate.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/linear.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/normal.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/plot.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/qc.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sctransform/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sctransform/estimate.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sctransform/residual.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sctransform/transform.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/sparse.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/preprocessing/uniform.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/conversions.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/matcher.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/metadata.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/spatial.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/static.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reader/updater.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/diffmap.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/forceatlas.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/mde.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/nn.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/outliers.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/pca.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/plot.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/scvi.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/spectral.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/tsne.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/reduction/umap.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/cytotrace.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/elpi.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/pcurve.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/pseudotime.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/root.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/trajectory/trace.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/transfer/__init__.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/transfer/atlas.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/exprmat/utils.py +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/license +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/Cargo.toml +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/license +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/readme +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/call_peaks.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/embedding.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/export.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/knn.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/lib.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/motif.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/network.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/preprocessing.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/utils/anndata.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2/src/utils.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/Cargo.toml +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/embedding.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/export.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/feature_count/counter.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/feature_count/matrix.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/feature_count/mod.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/genome.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/lib.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/motif.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/network.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/bam.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/import.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/mod.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/preprocessing/qc.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/utils/knn.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/snapatac2-core/src/utils/mod.rs +0 -0
- {exprmat-0.1.50 → exprmat-0.1.52}/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.1.
|
|
3
|
+
Version: 0.1.52
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -101,7 +101,7 @@ Provides-Extra: cuda12
|
|
|
101
101
|
License-File: license
|
|
102
102
|
Summary: exprmat: Routines for expression matrices
|
|
103
103
|
Author-email: Zheng Yang <xornent@outlook.com>
|
|
104
|
-
Requires-Python: >=3.10, <3.
|
|
104
|
+
Requires-Python: >=3.10, <3.14
|
|
105
105
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
106
106
|
Project-URL: Repository, https://github.com/yang-z-03/exprmat
|
|
107
107
|
|
|
@@ -167,3 +167,115 @@ bsync-fetch --id <your-id> --secret <your-api-secret> \
|
|
|
167
167
|
The authentication tokens passed to `--id` and `--secret` is provided by the
|
|
168
168
|
Alibaba Cloud service (See the [Documentation](https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair)
|
|
169
169
|
for details)
|
|
170
|
+
|
|
171
|
+
### Licensing
|
|
172
|
+
|
|
173
|
+
The original part of the source code is licensed under GNU GPLv3.
|
|
174
|
+
The database download tool bsync-fetch (developed as a dependency package for
|
|
175
|
+
exprmat, in python package `bincsync`) is only allowed for internal use and not
|
|
176
|
+
for re-distribution.
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
exprmat - Routines to manipulate expression matrices
|
|
180
|
+
Copyright (C) 2025 - 2026 Zheng Yang (杨政) <xornent@outlook.com>
|
|
181
|
+
|
|
182
|
+
exprmat is free software and comes with ABSOLUTELY NO WARRANTY.
|
|
183
|
+
You are welcome to redistribute it under certain conditions.
|
|
184
|
+
You should have received a copy of the GNU General Public License
|
|
185
|
+
version 3 along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
186
|
+
|
|
187
|
+
The GNU General Public License does not permit incorporating
|
|
188
|
+
your program into proprietary programs.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
I acknowledge the following author(s) for modifying and integrating their work
|
|
192
|
+
in the form of source code to this package.
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
parts of the source code under /preprocessing comes from the scanpy project.
|
|
196
|
+
|
|
197
|
+
BSD 3-Clause License. For full text of the license, see
|
|
198
|
+
<https://opensource.org/license/BSD-3-clause>
|
|
199
|
+
Copyright (c) 2025 scverse®
|
|
200
|
+
Copyright (c) 2017 F. Alexander Wolf, P. Angerer, Theis Lab
|
|
201
|
+
|
|
202
|
+
function embedding_atlas (file /reduction/plot.py) comes from the omicverse project.
|
|
203
|
+
|
|
204
|
+
GNU GPLv3. (same as this project)
|
|
205
|
+
Copyright (c) 2024 112 Lab
|
|
206
|
+
|
|
207
|
+
most of the code from /snapatac2 and /snapatac2-core comes from the SnapATAC
|
|
208
|
+
project, including the rust build system and the compiled binaries.
|
|
209
|
+
|
|
210
|
+
The MIT license. For full text of the license, see
|
|
211
|
+
<https://opensource.org/license/MIT>
|
|
212
|
+
Copyright (c) 2022-2024 Kai Zhang
|
|
213
|
+
|
|
214
|
+
file /clustering/sc3.py comes from the sc3s project.
|
|
215
|
+
|
|
216
|
+
GNU GPLv3. (same as this project)
|
|
217
|
+
Copyright (c) Quah, F.X. and Hemberg, M. and contributors.
|
|
218
|
+
|
|
219
|
+
file /clustering/nmf.py comes from cNMF project.
|
|
220
|
+
|
|
221
|
+
The MIT license
|
|
222
|
+
Copyright (c) 2019 Dylan Kotliar
|
|
223
|
+
|
|
224
|
+
directory /cnv comes from infercnvpy project.
|
|
225
|
+
|
|
226
|
+
BSD 3-Clause License
|
|
227
|
+
Copyright (c) 2022, Gregor Sturm
|
|
228
|
+
|
|
229
|
+
directory /deconv comes from the TAPE project.
|
|
230
|
+
|
|
231
|
+
GNU GPLv3. (same as this project)
|
|
232
|
+
Copyright (c) The contributors.
|
|
233
|
+
|
|
234
|
+
directory /metacell comes from the MetaQ project.
|
|
235
|
+
|
|
236
|
+
MIT License
|
|
237
|
+
Copyright (c) 2024 XLearning Group
|
|
238
|
+
|
|
239
|
+
directory /grn comes from the scenicplus project.
|
|
240
|
+
|
|
241
|
+
Academic Non-commercial Software License Agreement.
|
|
242
|
+
For full text of the license, see <https://github.com/aertslab/scenicplus>
|
|
243
|
+
Copyright (c) The contributors.
|
|
244
|
+
|
|
245
|
+
directory /lr (but not /lr/icnet) comes from the lianapy project
|
|
246
|
+
|
|
247
|
+
BSD 3-Clause License
|
|
248
|
+
Copyright (c) 2025, Daniel Dimitrov
|
|
249
|
+
|
|
250
|
+
directory /peaks/idr.py comes from the idr project
|
|
251
|
+
|
|
252
|
+
GNU GPLv2. For copyright details, see <https://github.com/nboley/idr>
|
|
253
|
+
Copyright (c) The contributors
|
|
254
|
+
|
|
255
|
+
function diffmap comes from the pydiffmap project
|
|
256
|
+
|
|
257
|
+
MIT License
|
|
258
|
+
Copyright (c) 2018 Ralf Banisch, Erik Henning Thiede, Zofia Trstanova
|
|
259
|
+
|
|
260
|
+
principle tree fitting and trajectory analysis comes from the scFates project
|
|
261
|
+
|
|
262
|
+
BSD 3-Clause License
|
|
263
|
+
Copyright (c) 2020, Louis Faure
|
|
264
|
+
|
|
265
|
+
file /trajectory/cytotrace.py comes from the CytoTRACE2 project
|
|
266
|
+
|
|
267
|
+
Stanford Non-commercial Software License Agreement
|
|
268
|
+
Copyright (c) The contributors.
|
|
269
|
+
|
|
270
|
+
rna velocity fitting comes from the scvelo project
|
|
271
|
+
|
|
272
|
+
BSD 3-Clause License
|
|
273
|
+
Copyright (c) 2018, Theis Lab
|
|
274
|
+
|
|
275
|
+
directory /deseq comes from the pyDEseq2 project
|
|
276
|
+
|
|
277
|
+
MIT License
|
|
278
|
+
Copyright (c) 2022 Owkin
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
|
|
@@ -112,7 +112,7 @@ basepath = config['data']
|
|
|
112
112
|
|
|
113
113
|
# core method exports
|
|
114
114
|
from exprmat.utils import setup_styles, savefig
|
|
115
|
-
from exprmat.ansi import pprog, pproga, info, error, warning
|
|
115
|
+
from exprmat.ansi import pprog, pproga, info, error, warning, default_logger, logger
|
|
116
116
|
from exprmat.reader.experiment import experiment, load_experiment
|
|
117
117
|
from exprmat.reader.metadata import metadata, load_metadata
|
|
118
118
|
import exprmat.reader.static as st
|
|
@@ -7,7 +7,48 @@ from functools import partial
|
|
|
7
7
|
from tqdm import tqdm
|
|
8
8
|
from tqdm.auto import tqdm as tqdma
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
class logger:
|
|
12
|
+
|
|
13
|
+
silent = False
|
|
14
|
+
|
|
15
|
+
def __init__(self, silent: bool = False) -> None:
|
|
16
|
+
self.silent = silent
|
|
17
|
+
|
|
18
|
+
def error(self, text: str, error = None) -> None:
|
|
19
|
+
|
|
20
|
+
if self.silent:
|
|
21
|
+
if error: raise Exception(text) from error
|
|
22
|
+
else: raise Exception(text)
|
|
23
|
+
|
|
24
|
+
fore_red()
|
|
25
|
+
print('[error]', end = ' ')
|
|
26
|
+
ansi_reset()
|
|
27
|
+
print(text)
|
|
28
|
+
|
|
29
|
+
if error is None: raise Exception(text)
|
|
30
|
+
else: raise Exception(text) from error
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def warning(self, text: str) -> None:
|
|
34
|
+
if self.silent: return
|
|
35
|
+
fore_yellow()
|
|
36
|
+
print('[!]', end = ' ')
|
|
37
|
+
ansi_reset()
|
|
38
|
+
print(text)
|
|
39
|
+
ansi_reset()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def info(self, text: str) -> None:
|
|
43
|
+
if self.silent: return
|
|
44
|
+
fore_cyan()
|
|
45
|
+
print('[i]', end = ' ')
|
|
46
|
+
ansi_reset()
|
|
47
|
+
print(text)
|
|
48
|
+
ansi_reset()
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
default_logger = logger()
|
|
11
52
|
|
|
12
53
|
|
|
13
54
|
def fore_black() -> None:
|
|
@@ -114,32 +155,15 @@ def format_file_size(size):
|
|
|
114
155
|
|
|
115
156
|
|
|
116
157
|
def error(text: str, error = None) -> None:
|
|
117
|
-
|
|
118
|
-
fore_red()
|
|
119
|
-
print('[error]', end = ' ')
|
|
120
|
-
ansi_reset()
|
|
121
|
-
print(text)
|
|
122
|
-
|
|
123
|
-
if error is None: raise Exception(text)
|
|
124
|
-
else: raise Exception(text) from error
|
|
158
|
+
default_logger.error(text, error)
|
|
125
159
|
|
|
126
160
|
|
|
127
161
|
def warning(text: str) -> None:
|
|
128
|
-
|
|
129
|
-
fore_yellow()
|
|
130
|
-
print('[!]', end = ' ')
|
|
131
|
-
ansi_reset()
|
|
132
|
-
print(text)
|
|
133
|
-
ansi_reset()
|
|
162
|
+
default_logger.warning(text)
|
|
134
163
|
|
|
135
164
|
|
|
136
165
|
def info(text: str) -> None:
|
|
137
|
-
|
|
138
|
-
fore_cyan()
|
|
139
|
-
print('[i]', end = ' ')
|
|
140
|
-
ansi_reset()
|
|
141
|
-
print(text)
|
|
142
|
-
ansi_reset()
|
|
166
|
+
default_logger.info(text)
|
|
143
167
|
|
|
144
168
|
|
|
145
169
|
def clear():
|