exprmat 0.1.57__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.
Files changed (471) hide show
  1. {exprmat-0.1.57 → exprmat-0.2.73}/PKG-INFO +45 -97
  2. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/__init__.py +35 -32
  3. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/gating.py +0 -24
  4. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/sc3.py +12 -1
  5. exprmat-0.2.73/exprmat/deconv/__init__.py +5 -0
  6. exprmat-0.2.73/exprmat/deconv/tangram/__init__.py +36 -0
  7. exprmat-0.2.73/exprmat/deconv/tangram/mapping.py +333 -0
  8. exprmat-0.2.73/exprmat/deconv/tangram/optimizer.py +510 -0
  9. exprmat-0.2.73/exprmat/deconv/tangram/spatial.py +66 -0
  10. exprmat-0.2.73/exprmat/deconv/tangram/utils.py +101 -0
  11. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/aggregate.py +54 -3
  12. exprmat-0.2.73/exprmat/descriptive/geneset.py +782 -0
  13. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/gse.py +29 -85
  14. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/summary.py +1 -1
  15. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/tcr.py +5 -5
  16. exprmat-0.2.73/exprmat/domain/__init__.py +29 -0
  17. exprmat-0.2.73/exprmat/domain/deepst/__init__.py +21 -0
  18. exprmat-0.2.73/exprmat/domain/deepst/adjacency.py +197 -0
  19. exprmat-0.2.73/exprmat/domain/deepst/api.py +155 -0
  20. exprmat-0.2.73/exprmat/domain/deepst/augment.py +233 -0
  21. exprmat-0.2.73/exprmat/domain/deepst/image_features.py +168 -0
  22. exprmat-0.2.73/exprmat/domain/deepst/model.py +249 -0
  23. exprmat-0.2.73/exprmat/domain/deepst/runner.py +297 -0
  24. exprmat-0.2.73/exprmat/domain/deepst/trainer.py +243 -0
  25. exprmat-0.2.73/exprmat/domain/spagcn/__init__.py +23 -0
  26. exprmat-0.2.73/exprmat/domain/spagcn/adjacency.py +261 -0
  27. exprmat-0.2.73/exprmat/domain/spagcn/api.py +223 -0
  28. exprmat-0.2.73/exprmat/domain/spagcn/layers.py +45 -0
  29. exprmat-0.2.73/exprmat/domain/spagcn/models.py +320 -0
  30. exprmat-0.2.73/exprmat/domain/spagcn/morans.py +58 -0
  31. exprmat-0.2.73/exprmat/domain/spagcn/spagcn.py +211 -0
  32. exprmat-0.2.73/exprmat/domain/spagcn/svg.py +230 -0
  33. exprmat-0.2.73/exprmat/domain/spatialde/__init__.py +19 -0
  34. exprmat-0.2.73/exprmat/domain/spatialde/api.py +147 -0
  35. exprmat-0.2.73/exprmat/domain/spatialde/kernels.py +163 -0
  36. exprmat-0.2.73/exprmat/domain/spatialde/score_test.py +335 -0
  37. exprmat-0.2.73/exprmat/help.py +453 -0
  38. exprmat-0.2.73/exprmat/image/augment.py +227 -0
  39. exprmat-0.2.73/exprmat/image/axis.py +612 -0
  40. exprmat-0.2.73/exprmat/image/channel.py +342 -0
  41. exprmat-0.2.73/exprmat/image/compensation.py +371 -0
  42. exprmat-0.2.73/exprmat/image/density.py +779 -0
  43. exprmat-0.2.73/exprmat/image/segmentation.py +204 -0
  44. exprmat-0.2.73/exprmat/image/tissue.py +55 -0
  45. exprmat-0.2.73/exprmat/image/transform.py +230 -0
  46. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/__init__.py +8 -1
  47. exprmat-0.2.73/exprmat/lr/cellnest/__init__.py +47 -0
  48. exprmat-0.2.73/exprmat/lr/cellnest/api.py +248 -0
  49. exprmat-0.2.73/exprmat/lr/cellnest/gat.py +222 -0
  50. exprmat-0.2.73/exprmat/lr/cellnest/intra.py +259 -0
  51. exprmat-0.2.73/exprmat/lr/cellnest/model.py +118 -0
  52. exprmat-0.2.73/exprmat/lr/cellnest/plotting.py +263 -0
  53. exprmat-0.2.73/exprmat/lr/cellnest/postprocess.py +268 -0
  54. exprmat-0.2.73/exprmat/lr/cellnest/preprocess.py +347 -0
  55. exprmat-0.2.73/exprmat/lr/cellnest/relay.py +189 -0
  56. exprmat-0.2.73/exprmat/lr/cellnest/stats.py +174 -0
  57. exprmat-0.2.73/exprmat/lr/cellnest/train.py +276 -0
  58. exprmat-0.2.73/exprmat/lr/cellnest/utils.py +179 -0
  59. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/__init__.py +15 -6
  60. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/preprocess.py +1 -0
  61. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/de.py +2 -2
  62. exprmat-0.2.73/exprmat/plotting/expression.py +977 -0
  63. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/gse.py +3 -3
  64. exprmat-0.2.73/exprmat/plotting/knee.py +50 -0
  65. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/matrix.py +2 -2
  66. exprmat-0.2.73/exprmat/plotting/order.py +592 -0
  67. exprmat-0.2.73/exprmat/plotting/proximity.py +566 -0
  68. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/velocity.py +1 -1
  69. exprmat-0.2.73/exprmat/plotting/wgcna.py +264 -0
  70. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/background/__init__.py +9 -10
  71. exprmat-0.2.73/exprmat/preprocessing/background/dirichlet_multinomial.py +179 -0
  72. exprmat-0.2.73/exprmat/preprocessing/background/emptydrops.py +242 -0
  73. exprmat-0.2.73/exprmat/preprocessing/background/multinomial.py +108 -0
  74. exprmat-0.2.73/exprmat/preprocessing/background/sgt.py +127 -0
  75. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/filter.py +2 -2
  76. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/linear.py +1 -1
  77. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/plot.py +15 -0
  78. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/qc.py +134 -1
  79. exprmat-0.2.73/exprmat/reader/accessor.py +1320 -0
  80. exprmat-0.2.73/exprmat/reader/atac/__init__.py +208 -0
  81. exprmat-0.2.73/exprmat/reader/atac/derive.py +904 -0
  82. exprmat-0.2.73/exprmat/reader/atac/peaks.py +467 -0
  83. exprmat-0.2.73/exprmat/reader/atac/preprocessing.py +524 -0
  84. exprmat-0.2.73/exprmat/reader/cite/__init__.py +13 -0
  85. exprmat-0.2.73/exprmat/reader/cite/preprocessing.py +31 -0
  86. exprmat-0.2.73/exprmat/reader/data-structure.txt +57 -0
  87. exprmat-0.2.73/exprmat/reader/experiment.py +2028 -0
  88. exprmat-0.2.73/exprmat/reader/general/__init__.py +250 -0
  89. exprmat-0.2.73/exprmat/reader/history.py +340 -0
  90. exprmat-0.2.73/exprmat/reader/introspect.py +1416 -0
  91. exprmat-0.2.73/exprmat/reader/introspective.txt +245 -0
  92. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reader/matcher.py +11 -21
  93. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reader/metadata.py +1 -1
  94. exprmat-0.2.73/exprmat/reader/rna/__init__.py +527 -0
  95. exprmat-0.2.73/exprmat/reader/rna/atlas.py +378 -0
  96. exprmat-0.2.73/exprmat/reader/rna/bulk.py +579 -0
  97. exprmat-0.2.73/exprmat/reader/rna/cnv.py +161 -0
  98. exprmat-0.2.73/exprmat/reader/rna/geneset.py +929 -0
  99. exprmat-0.2.73/exprmat/reader/rna/getter.py +78 -0
  100. exprmat-0.2.73/exprmat/reader/rna/impute.py +248 -0
  101. exprmat-0.2.73/exprmat/reader/rna/interaction.py +706 -0
  102. exprmat-0.2.73/exprmat/reader/rna/markers.py +919 -0
  103. exprmat-0.2.73/exprmat/reader/rna/nmf.py +453 -0
  104. exprmat-0.2.73/exprmat/reader/rna/proportion.py +730 -0
  105. exprmat-0.2.73/exprmat/reader/rna/qc.py +238 -0
  106. exprmat-0.2.73/exprmat/reader/rna/reduction.py +1961 -0
  107. exprmat-0.2.73/exprmat/reader/rna/repertoire.py +510 -0
  108. exprmat-0.2.73/exprmat/reader/rna/summarize.py +433 -0
  109. exprmat-0.2.73/exprmat/reader/rna/trajectory.py +969 -0
  110. exprmat-0.2.73/exprmat/reader/schema.py +74 -0
  111. exprmat-0.2.73/exprmat/reader/spatial/__init__.py +905 -0
  112. exprmat-0.2.73/exprmat/reader/spatial/classifier.py +113 -0
  113. exprmat-0.2.73/exprmat/reader/spatial/coordinates.py +256 -0
  114. exprmat-0.2.73/exprmat/reader/spatial/deconv.py +195 -0
  115. exprmat-0.2.73/exprmat/reader/spatial/density.py +189 -0
  116. exprmat-0.2.73/exprmat/reader/spatial/domains.py +588 -0
  117. exprmat-0.2.73/exprmat/reader/spatial/getter.py +285 -0
  118. exprmat-0.2.73/exprmat/reader/spatial/graph.py +1024 -0
  119. exprmat-0.2.73/exprmat/reader/spatial/image.py +552 -0
  120. exprmat-0.2.73/exprmat/reader/spatial/lr.py +514 -0
  121. exprmat-0.2.73/exprmat/reader/spatial/proximity.py +422 -0
  122. exprmat-0.2.73/exprmat/reader/spatial/qc.py +93 -0
  123. exprmat-0.2.73/exprmat/reader/spatial/segmentation.py +605 -0
  124. exprmat-0.2.73/exprmat/reader/spatial/snn.py +703 -0
  125. exprmat-0.2.73/exprmat/reader/spatial/tmap.py +271 -0
  126. exprmat-0.2.73/exprmat/reader/spatial/transform.py +210 -0
  127. exprmat-0.2.73/exprmat/reader/static.py +60 -0
  128. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/plot.py +348 -78
  129. exprmat-0.2.73/exprmat/reduction/wnn/__init__.py +255 -0
  130. exprmat-0.2.73/exprmat/reduction/wnn/landmarks.py +72 -0
  131. exprmat-0.2.73/exprmat/reduction/wnn/plan.md +591 -0
  132. exprmat-0.2.73/exprmat/reduction/wnn/projection.py +70 -0
  133. exprmat-0.2.73/exprmat/reduction/wnn/refinement.py +471 -0
  134. exprmat-0.2.73/exprmat/reduction/wnn/sampling.py +84 -0
  135. exprmat-0.2.73/exprmat/reduction/wnn/umap_landmarks.py +43 -0
  136. exprmat-0.2.73/exprmat/signature/__init__.py +26 -0
  137. exprmat-0.2.73/exprmat/signature/datatype.py +5 -0
  138. exprmat-0.2.73/exprmat/signature/download.py +77 -0
  139. exprmat-0.2.73/exprmat/signature/log.py +10 -0
  140. exprmat-0.2.73/exprmat/signature/method.py +96 -0
  141. exprmat-0.2.73/exprmat/signature/methods/__init__.py +10 -0
  142. exprmat-0.2.73/exprmat/signature/methods/aucell.py +157 -0
  143. exprmat-0.2.73/exprmat/signature/methods/consensus.py +145 -0
  144. exprmat-0.2.73/exprmat/signature/methods/decouple.py +107 -0
  145. exprmat-0.2.73/exprmat/signature/methods/gsea.py +314 -0
  146. exprmat-0.2.73/exprmat/signature/methods/gsva.py +437 -0
  147. exprmat-0.2.73/exprmat/signature/methods/mdt.py +112 -0
  148. exprmat-0.2.73/exprmat/signature/methods/mlm.py +170 -0
  149. exprmat-0.2.73/exprmat/signature/methods/ora.py +327 -0
  150. exprmat-0.2.73/exprmat/signature/methods/pv.py +70 -0
  151. exprmat-0.2.73/exprmat/signature/methods/query_set.py +89 -0
  152. exprmat-0.2.73/exprmat/signature/methods/registry.py +25 -0
  153. exprmat-0.2.73/exprmat/signature/methods/run.py +123 -0
  154. exprmat-0.2.73/exprmat/signature/methods/udt.py +117 -0
  155. exprmat-0.2.73/exprmat/signature/methods/ulm.py +157 -0
  156. exprmat-0.2.73/exprmat/signature/methods/viper.py +366 -0
  157. exprmat-0.2.73/exprmat/signature/methods/waggr.py +290 -0
  158. exprmat-0.2.73/exprmat/signature/methods/zscore.py +128 -0
  159. exprmat-0.2.73/exprmat/signature/odeps.py +43 -0
  160. exprmat-0.2.73/exprmat/signature/plotter.py +58 -0
  161. exprmat-0.2.73/exprmat/signature/plotting/__init__.py +13 -0
  162. exprmat-0.2.73/exprmat/signature/plotting/barplot.py +141 -0
  163. exprmat-0.2.73/exprmat/signature/plotting/dotplot.py +155 -0
  164. exprmat-0.2.73/exprmat/signature/plotting/filter_by_expr.py +111 -0
  165. exprmat-0.2.73/exprmat/signature/plotting/filter_by_prop.py +73 -0
  166. exprmat-0.2.73/exprmat/signature/plotting/filter_samples.py +124 -0
  167. exprmat-0.2.73/exprmat/signature/plotting/leading_edge.py +165 -0
  168. exprmat-0.2.73/exprmat/signature/plotting/network.py +365 -0
  169. exprmat-0.2.73/exprmat/signature/plotting/obsbar.py +66 -0
  170. exprmat-0.2.73/exprmat/signature/plotting/obsm.py +208 -0
  171. exprmat-0.2.73/exprmat/signature/plotting/order.py +95 -0
  172. exprmat-0.2.73/exprmat/signature/plotting/order_targets.py +215 -0
  173. exprmat-0.2.73/exprmat/signature/plotting/source_targets.py +143 -0
  174. exprmat-0.2.73/exprmat/signature/plotting/volcano.py +162 -0
  175. exprmat-0.2.73/exprmat/signature/utils/__init__.py +49 -0
  176. exprmat-0.2.73/exprmat/signature/utils/anndata.py +609 -0
  177. exprmat-0.2.73/exprmat/signature/utils/data.py +202 -0
  178. exprmat-0.2.73/exprmat/signature/utils/net.py +399 -0
  179. exprmat-0.2.73/exprmat/signature/utils/rankby_group.py +121 -0
  180. exprmat-0.2.73/exprmat/signature/utils/rankby_obsm.py +110 -0
  181. exprmat-0.2.73/exprmat/signature/utils/rankby_order.py +98 -0
  182. exprmat-0.2.73/exprmat/spatial/__init__.py +30 -0
  183. exprmat-0.2.73/exprmat/spatial/classifier.py +149 -0
  184. exprmat-0.2.73/exprmat/spatial/hd.py +198 -0
  185. exprmat-0.2.73/exprmat/spatial/interac.py +597 -0
  186. exprmat-0.2.73/exprmat/spatial/ligrec.py +337 -0
  187. exprmat-0.2.73/exprmat/spatial/mif.py +93 -0
  188. exprmat-0.2.73/exprmat/spatial/nhood.py +339 -0
  189. exprmat-0.2.73/exprmat/spatial/niche.py +398 -0
  190. exprmat-0.2.73/exprmat/spatial/ometiff.py +309 -0
  191. exprmat-0.2.73/exprmat/spatial/pattern.py +419 -0
  192. exprmat-0.2.73/exprmat/spatial/ripley.py +251 -0
  193. exprmat-0.2.73/exprmat/spatial/snn.py +229 -0
  194. exprmat-0.2.73/exprmat/spatial/utils.py +45 -0
  195. exprmat-0.2.73/exprmat/spatial/visium.py +143 -0
  196. exprmat-0.2.73/exprmat/spatial/xenium.py +185 -0
  197. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/cytotrace.py +2 -1
  198. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/elpi.py +8 -8
  199. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/pseudotime.py +1 -1
  200. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/root.py +1 -0
  201. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/trace.py +27 -18
  202. exprmat-0.2.73/exprmat/transfer/__init__.py +0 -0
  203. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/utils.py +11 -0
  204. exprmat-0.2.73/exprmat/wgcna/__init__.py +273 -0
  205. exprmat-0.2.73/exprmat/wgcna/core.py +368 -0
  206. {exprmat-0.1.57 → exprmat-0.2.73}/pyproject.toml +10 -3
  207. {exprmat-0.1.57 → exprmat-0.2.73}/readme.md +36 -94
  208. exprmat-0.1.57/exprmat/data/__init__.py +0 -5
  209. exprmat-0.1.57/exprmat/data/cistarget.py +0 -697
  210. exprmat-0.1.57/exprmat/data/cre.py +0 -111
  211. exprmat-0.1.57/exprmat/data/finders.py +0 -291
  212. exprmat-0.1.57/exprmat/data/geneset.py +0 -99
  213. exprmat-0.1.57/exprmat/data/icnet.py +0 -74
  214. exprmat-0.1.57/exprmat/data/io.py +0 -8
  215. exprmat-0.1.57/exprmat/data/lr.py +0 -161
  216. exprmat-0.1.57/exprmat/data/orthologs.py +0 -107
  217. exprmat-0.1.57/exprmat/data/presets.py +0 -79
  218. exprmat-0.1.57/exprmat/data/signature.py +0 -325
  219. exprmat-0.1.57/exprmat/data/tf.py +0 -36
  220. exprmat-0.1.57/exprmat/image/align.py +0 -1021
  221. exprmat-0.1.57/exprmat/image/channel.py +0 -45
  222. exprmat-0.1.57/exprmat/image/equalize.py +0 -19
  223. exprmat-0.1.57/exprmat/plotting/__init__.py +0 -9
  224. exprmat-0.1.57/exprmat/plotting/data/A.pk +0 -0
  225. exprmat-0.1.57/exprmat/plotting/data/B.pk +0 -0
  226. exprmat-0.1.57/exprmat/plotting/data/C.pk +0 -0
  227. exprmat-0.1.57/exprmat/plotting/data/D.pk +0 -0
  228. exprmat-0.1.57/exprmat/plotting/data/E.pk +0 -0
  229. exprmat-0.1.57/exprmat/plotting/data/F.pk +0 -0
  230. exprmat-0.1.57/exprmat/plotting/data/G.pk +0 -0
  231. exprmat-0.1.57/exprmat/plotting/data/H.pk +0 -0
  232. exprmat-0.1.57/exprmat/plotting/data/I.pk +0 -0
  233. exprmat-0.1.57/exprmat/plotting/data/J.pk +0 -0
  234. exprmat-0.1.57/exprmat/plotting/data/K.pk +0 -0
  235. exprmat-0.1.57/exprmat/plotting/data/L.pk +0 -0
  236. exprmat-0.1.57/exprmat/plotting/data/M.pk +0 -0
  237. exprmat-0.1.57/exprmat/plotting/data/N.pk +0 -0
  238. exprmat-0.1.57/exprmat/plotting/data/O.pk +0 -0
  239. exprmat-0.1.57/exprmat/plotting/data/P.pk +0 -0
  240. exprmat-0.1.57/exprmat/plotting/data/Q.pk +0 -0
  241. exprmat-0.1.57/exprmat/plotting/data/R.pk +0 -0
  242. exprmat-0.1.57/exprmat/plotting/data/S.pk +0 -0
  243. exprmat-0.1.57/exprmat/plotting/data/T.pk +0 -0
  244. exprmat-0.1.57/exprmat/plotting/data/U.pk +0 -0
  245. exprmat-0.1.57/exprmat/plotting/data/V.pk +0 -0
  246. exprmat-0.1.57/exprmat/plotting/data/W.pk +0 -0
  247. exprmat-0.1.57/exprmat/plotting/data/X.pk +0 -0
  248. exprmat-0.1.57/exprmat/plotting/data/Y.pk +0 -0
  249. exprmat-0.1.57/exprmat/plotting/data/Z.pk +0 -0
  250. exprmat-0.1.57/exprmat/plotting/expression.py +0 -272
  251. exprmat-0.1.57/exprmat/preprocessing/background/emptydrops.py +0 -349
  252. exprmat-0.1.57/exprmat/preprocessing/background/knee.py +0 -170
  253. exprmat-0.1.57/exprmat/preprocessing/background/sgt.py +0 -124
  254. exprmat-0.1.57/exprmat/reader/experiment.py +0 -3070
  255. exprmat-0.1.57/exprmat/reader/ometiff.py +0 -192
  256. exprmat-0.1.57/exprmat/reader/qptiff.py +0 -520
  257. exprmat-0.1.57/exprmat/reader/spatial.py +0 -853
  258. exprmat-0.1.57/exprmat/reader/static.py +0 -2871
  259. {exprmat-0.1.57 → exprmat-0.2.73}/Cargo.lock +0 -0
  260. {exprmat-0.1.57 → exprmat-0.2.73}/Cargo.toml +0 -0
  261. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/ansi.py +0 -0
  262. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/__init__.py +0 -0
  263. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/cnmf.py +0 -0
  264. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/dbscan.py +0 -0
  265. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/kmeans.py +0 -0
  266. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/leiden.py +0 -0
  267. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/nmf.py +0 -0
  268. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/rogue.py +0 -0
  269. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/seriation.py +0 -0
  270. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/spectral.py +0 -0
  271. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/clustering/utils.py +0 -0
  272. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/cnv/__init__.py +0 -0
  273. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/cnv/cnvscore.py +0 -0
  274. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/cnv/infercnv.py +0 -0
  275. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/configuration.py +0 -0
  276. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deconv/deconv.py +0 -0
  277. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deconv/simulation.py +0 -0
  278. {exprmat-0.1.57/exprmat/deconv → exprmat-0.2.73/exprmat/descriptive}/__init__.py +0 -0
  279. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/atac.py +0 -0
  280. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/aucell.py +0 -0
  281. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/composition.py +0 -0
  282. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/covar.py +0 -0
  283. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/de.py +0 -0
  284. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/kde.py +0 -0
  285. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/recovery.py +0 -0
  286. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/descriptive/sccoda.py +0 -0
  287. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/dataset.py +0 -0
  288. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/gridsearch.py +0 -0
  289. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/inference.py +0 -0
  290. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/preprocessing.py +0 -0
  291. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/stats.py +0 -0
  292. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/deseq/utils.py +0 -0
  293. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/__init__.py +0 -0
  294. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/generank.py +0 -0
  295. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/linreg.py +0 -0
  296. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/moments.py +0 -0
  297. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/optimization.py +0 -0
  298. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/parallel.py +0 -0
  299. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/preprocess.py +0 -0
  300. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/pseudotime.py +0 -0
  301. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/transition.py +0 -0
  302. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/utils.py +0 -0
  303. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/dynamics/velocity.py +0 -0
  304. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/__init__.py +0 -0
  305. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/infergrn.py +0 -0
  306. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/modules.py +0 -0
  307. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/prune.py +0 -0
  308. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/regressors.py +0 -0
  309. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/grn/utils.py +0 -0
  310. {exprmat-0.1.57/exprmat/descriptive → exprmat-0.2.73/exprmat/image}/__init__.py +0 -0
  311. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/aggregate.py +0 -0
  312. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/construction.py +0 -0
  313. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/importance.py +0 -0
  314. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/ligand.py +0 -0
  315. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/metrics.py +0 -0
  316. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/icnet/pagerank.py +0 -0
  317. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/method.py +0 -0
  318. {exprmat-0.1.57/exprmat/image → exprmat-0.2.73/exprmat/lr/methods}/__init__.py +0 -0
  319. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/cellchat.py +0 -0
  320. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/cellphonedb.py +0 -0
  321. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/connectome.py +0 -0
  322. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/geomean.py +0 -0
  323. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/logfc.py +0 -0
  324. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/natmi.py +0 -0
  325. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/rank_aggregate.py +0 -0
  326. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/scseqcomm.py +0 -0
  327. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/methods/singlecellsignalr.py +0 -0
  328. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/pipeline.py +0 -0
  329. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/resources.py +0 -0
  330. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/lr/utils.py +0 -0
  331. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/metacell/__init__.py +0 -0
  332. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/metacell/engine.py +0 -0
  333. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/metacell/model.py +0 -0
  334. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/metacell/utils.py +0 -0
  335. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/__init__.py +0 -0
  336. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/__init__.py +0 -0
  337. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/bd.py +0 -0
  338. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/bmf.py +0 -0
  339. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/icm.py +0 -0
  340. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/lfnmf.py +0 -0
  341. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/lsnmf.py +0 -0
  342. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/nmf.py +0 -0
  343. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/nsnmf.py +0 -0
  344. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/pmf.py +0 -0
  345. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/pmfcc.py +0 -0
  346. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/psmf.py +0 -0
  347. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/sepnmf.py +0 -0
  348. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/snmf.py +0 -0
  349. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/factorization/snmnmf.py +0 -0
  350. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/__init__.py +0 -0
  351. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/fixed.py +0 -0
  352. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/nndsvd.py +0 -0
  353. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random.py +0 -0
  354. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random_c.py +0 -0
  355. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/methods/seeding/random_vcol.py +0 -0
  356. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/__init__.py +0 -0
  357. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/mf_fit.py +0 -0
  358. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/mf_track.py +0 -0
  359. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/nmf.py +0 -0
  360. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/nmf_mm.py +0 -0
  361. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/nmf_ns.py +0 -0
  362. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/nmf_std.py +0 -0
  363. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/models/smf.py +0 -0
  364. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/utils/__init__.py +0 -0
  365. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/utils/linalg.py +0 -0
  366. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/nmf/utils/utils.py +0 -0
  367. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/parser/__init__.py +0 -0
  368. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/parser/converter.py +0 -0
  369. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/parser/rds.py +0 -0
  370. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/parser/seurat.py +0 -0
  371. {exprmat-0.1.57/exprmat/lr/methods → exprmat-0.2.73/exprmat/peaks}/__init__.py +0 -0
  372. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/callpeak.py +0 -0
  373. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/common.py +0 -0
  374. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/coverage.py +0 -0
  375. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/footprint.py +0 -0
  376. {exprmat-0.1.57/exprmat/peaks → exprmat-0.2.73/exprmat/peaks/idr}/__init__.py +0 -0
  377. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/idr/constants.py +0 -0
  378. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/idr/idr.py +0 -0
  379. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/idr/invcdf.pyx +0 -0
  380. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/idr/optimization.py +0 -0
  381. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/idr/utils.py +0 -0
  382. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/linkage.py +0 -0
  383. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/motif.py +0 -0
  384. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/peaks/sequence.py +0 -0
  385. {exprmat-0.1.57/exprmat/peaks/idr → exprmat-0.2.73/exprmat/plotting}/__init__.py +0 -0
  386. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/atac.py +0 -0
  387. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/cnmf.py +0 -0
  388. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/cnv.py +0 -0
  389. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/icnet.py +0 -0
  390. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/lr.py +0 -0
  391. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/milestone.py +0 -0
  392. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/network.py +0 -0
  393. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/palettes.py +0 -0
  394. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/sankey.py +0 -0
  395. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/sequence.py +0 -0
  396. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/summary.py +0 -0
  397. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/track.py +0 -0
  398. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/trajectory.py +0 -0
  399. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/plotting/utils.py +0 -0
  400. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/__init__.py +0 -0
  401. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/background/correction.py +0 -0
  402. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/background/estimation.py +0 -0
  403. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/background/soupx.py +0 -0
  404. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/doublets/__init__.py +0 -0
  405. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/doublets/composite.py +0 -0
  406. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/doublets/scrublet.py +0 -0
  407. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/emptydrops.py +0 -0
  408. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/impute/__init__.py +0 -0
  409. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/impute/magic.py +0 -0
  410. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/integrate.py +0 -0
  411. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/normal.py +0 -0
  412. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/__init__.py +0 -0
  413. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/estimate.py +0 -0
  414. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
  415. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/residual.py +0 -0
  416. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sctransform/transform.py +0 -0
  417. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/sparse.py +0 -0
  418. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/preprocessing/uniform.py +0 -0
  419. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reader/__init__.py +0 -0
  420. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reader/conversions.py +0 -0
  421. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reader/updater.py +0 -0
  422. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/__init__.py +0 -0
  423. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/diffmap.py +0 -0
  424. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/forceatlas.py +0 -0
  425. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/mde.py +0 -0
  426. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/nn.py +0 -0
  427. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/outliers.py +0 -0
  428. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/pca.py +0 -0
  429. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/scvi.py +0 -0
  430. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/spectral.py +0 -0
  431. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/tsne.py +0 -0
  432. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/reduction/umap.py +0 -0
  433. /exprmat-0.1.57/exprmat/trajectory/__init__.py → /exprmat-0.2.73/exprmat/spatial/tmap.py +0 -0
  434. {exprmat-0.1.57/exprmat/transfer → exprmat-0.2.73/exprmat/trajectory}/__init__.py +0 -0
  435. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/trajectory/pcurve.py +0 -0
  436. {exprmat-0.1.57 → exprmat-0.2.73}/exprmat/transfer/atlas.py +0 -0
  437. {exprmat-0.1.57 → exprmat-0.2.73}/license +0 -0
  438. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/Cargo.toml +0 -0
  439. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/license +0 -0
  440. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/readme +0 -0
  441. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/call_peaks.rs +0 -0
  442. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/embedding.rs +0 -0
  443. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/export.rs +0 -0
  444. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/knn.rs +0 -0
  445. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/lib.rs +0 -0
  446. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/motif.rs +0 -0
  447. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/network.rs +0 -0
  448. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/preprocessing.rs +0 -0
  449. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/utils/anndata.rs +0 -0
  450. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2/src/utils.rs +0 -0
  451. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/Cargo.toml +0 -0
  452. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/embedding.rs +0 -0
  453. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/export.rs +0 -0
  454. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/feature_count/counter.rs +0 -0
  455. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
  456. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/feature_count/matrix.rs +0 -0
  457. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/feature_count/mod.rs +0 -0
  458. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/genome.rs +0 -0
  459. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/lib.rs +0 -0
  460. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/motif.rs +0 -0
  461. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/network.rs +0 -0
  462. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
  463. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
  464. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
  465. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/bam.rs +0 -0
  466. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/import.rs +0 -0
  467. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/mod.rs +0 -0
  468. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/preprocessing/qc.rs +0 -0
  469. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/utils/knn.rs +0 -0
  470. {exprmat-0.1.57 → exprmat-0.2.73}/snapatac2-core/src/utils/mod.rs +0 -0
  471. {exprmat-0.1.57 → 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.1.57
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
- # Exprmat
119
+ # exprmat
113
120
 
114
121
  ![wheels](https://img.shields.io/pypi/wheel/exprmat)
115
122
  ![version](https://img.shields.io/pypi/v/exprmat)
116
123
 
117
- Exprmat (short for **expr**ession **mat**rix) is a routine package for manipulation
118
- of single cell expression matrices. It is built based on commonly accepted python
119
- infrastructures for single cell data management (Scanpy, SnapAtac2, and MuData) and
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 (杨政) <xornent@outlook.com>
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
- parts of the source code under /preprocessing comes from the scanpy project.
199
-
200
- BSD 3-Clause License. For full text of the license, see
201
- <https://opensource.org/license/BSD-3-clause>
202
- Copyright (c) 2025 scverse®
203
- Copyright (c) 2017 F. Alexander Wolf, P. Angerer, Theis Lab
204
-
205
- function embedding_atlas (file /reduction/plot.py) comes from the omicverse project.
206
-
207
- GNU GPLv3. (same as this project)
208
- Copyright (c) 2024 112 Lab
209
-
210
- most of the code from /snapatac2 and /snapatac2-core comes from the SnapATAC
211
- project, including the rust build system and the compiled binaries.
212
-
213
- The MIT license. For full text of the license, see
214
- <https://opensource.org/license/MIT>
215
- Copyright (c) 2022-2024 Kai Zhang
216
-
217
- file /clustering/sc3.py comes from the sc3s project.
218
-
219
- GNU GPLv3. (same as this project)
220
- Copyright (c) Quah, F.X. and Hemberg, M. and contributors.
221
-
222
- file /clustering/nmf.py comes from cNMF project.
223
-
224
- The MIT license
225
- Copyright (c) 2019 Dylan Kotliar
226
-
227
- directory /cnv comes from infercnvpy project.
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
- os.environ['OPENBLAS_NUM_THREADS'] = '1'
14
- os.environ['GOTO_NUM_THREADS'] = '1'
15
- os.environ['OMP_NUM_THREADS'] = '1'
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 = os.getcwd()
47
- os.chdir(os.path.dirname(__file__))
48
- info(f'entering working directory: {os.getcwd()}')
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', os.path.join('peaks', 'idr', 'invcdf.pyx'))],
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
- os.chdir(cwd)
66
+ _os.chdir(cwd)
66
67
  # remove the autogenerated build directory. since we compile inplace.
67
- os.system(f'rm -r {os.path.join(os.path.dirname(__file__), "build")}')
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
- Image.MAX_IMAGE_PIXELS = config['max.image']
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
- os.path.join(str(pathlib.Path.home()), 'exprmat.config'),
109
- os.path.join(str(pathlib.Path.home()), '.exprmat.config'),
110
- os.path.join(str(pathlib.Path.home()), '.exprmatrc')
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 os.path.exists(finder):
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 setup_styles, savefig
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
- setup_styles()
135
+ _setup_styles()
135
136
 
136
137
 
137
138
  def version_db():
138
139
  dbpath = config['data']
139
- version_file = os.path.join(dbpath, '.bsync', 'current')
140
+ version_file = _os.path.join(dbpath, '.bsync', 'current')
140
141
 
141
- if not os.path.exists(version_file):
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'): os.system(
211
- cmd + ' "' + os.path.join(os.path.dirname(__file__), fpath) + '"'
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 = os.chdir
215
- getwd = os.getcwd
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
- tqdm.tqdm(disable = True, total = 0)
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 = os.open(os.path.join(basepath, '.license'), os.O_CREAT | os.O_EXCL | os.O_WRONLY)
228
- with os.fdopen(fd, "w") as f: f.write(ver_string)
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,5 @@
1
+ """
2
+ exprmat.deconv - cell-type deconvolution and cell-to-spot mapping methods.
3
+ """
4
+
5
+ from . import tangram
@@ -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
+ ]