exprmat 0.1.53__tar.gz → 0.1.57__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 (295) hide show
  1. {exprmat-0.1.53 → exprmat-0.1.57}/PKG-INFO +11 -22
  2. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/__init__.py +22 -17
  3. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/ansi.py +17 -8
  4. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/configuration.py +5 -2
  5. exprmat-0.1.57/exprmat/descriptive/composition.py +706 -0
  6. exprmat-0.1.57/exprmat/descriptive/covar.py +416 -0
  7. exprmat-0.1.57/exprmat/descriptive/sccoda.py +261 -0
  8. exprmat-0.1.57/exprmat/image/channel.py +45 -0
  9. exprmat-0.1.57/exprmat/image/equalize.py +19 -0
  10. exprmat-0.1.57/exprmat/nmf/__init__.py +2 -0
  11. exprmat-0.1.57/exprmat/nmf/methods/factorization/__init__.py +31 -0
  12. exprmat-0.1.57/exprmat/nmf/methods/factorization/bd.py +338 -0
  13. exprmat-0.1.57/exprmat/nmf/methods/factorization/bmf.py +301 -0
  14. exprmat-0.1.57/exprmat/nmf/methods/factorization/icm.py +290 -0
  15. exprmat-0.1.57/exprmat/nmf/methods/factorization/lfnmf.py +277 -0
  16. exprmat-0.1.57/exprmat/nmf/methods/factorization/lsnmf.py +368 -0
  17. exprmat-0.1.57/exprmat/nmf/methods/factorization/nmf.py +313 -0
  18. exprmat-0.1.57/exprmat/nmf/methods/factorization/nsnmf.py +242 -0
  19. exprmat-0.1.57/exprmat/nmf/methods/factorization/pmf.py +245 -0
  20. exprmat-0.1.57/exprmat/nmf/methods/factorization/pmfcc.py +247 -0
  21. exprmat-0.1.57/exprmat/nmf/methods/factorization/psmf.py +455 -0
  22. exprmat-0.1.57/exprmat/nmf/methods/factorization/sepnmf.py +321 -0
  23. exprmat-0.1.57/exprmat/nmf/methods/factorization/snmf.py +632 -0
  24. exprmat-0.1.57/exprmat/nmf/methods/factorization/snmnmf.py +318 -0
  25. exprmat-0.1.57/exprmat/nmf/methods/seeding/__init__.py +15 -0
  26. exprmat-0.1.57/exprmat/nmf/methods/seeding/fixed.py +49 -0
  27. exprmat-0.1.57/exprmat/nmf/methods/seeding/nndsvd.py +178 -0
  28. exprmat-0.1.57/exprmat/nmf/methods/seeding/random.py +80 -0
  29. exprmat-0.1.57/exprmat/nmf/methods/seeding/random_c.py +78 -0
  30. exprmat-0.1.57/exprmat/nmf/methods/seeding/random_vcol.py +58 -0
  31. exprmat-0.1.57/exprmat/nmf/models/__init__.py +8 -0
  32. exprmat-0.1.57/exprmat/nmf/models/mf_fit.py +139 -0
  33. exprmat-0.1.57/exprmat/nmf/models/mf_track.py +81 -0
  34. exprmat-0.1.57/exprmat/nmf/models/nmf.py +605 -0
  35. exprmat-0.1.57/exprmat/nmf/models/nmf_mm.py +144 -0
  36. exprmat-0.1.57/exprmat/nmf/models/nmf_ns.py +112 -0
  37. exprmat-0.1.57/exprmat/nmf/models/nmf_std.py +94 -0
  38. exprmat-0.1.57/exprmat/nmf/models/smf.py +131 -0
  39. exprmat-0.1.57/exprmat/nmf/utils/__init__.py +3 -0
  40. exprmat-0.1.57/exprmat/nmf/utils/linalg.py +856 -0
  41. exprmat-0.1.57/exprmat/nmf/utils/utils.py +20 -0
  42. exprmat-0.1.57/exprmat/parser/__init__.py +13 -0
  43. exprmat-0.1.57/exprmat/parser/converter.py +86 -0
  44. exprmat-0.1.57/exprmat/parser/rds.py +1108 -0
  45. exprmat-0.1.57/exprmat/parser/seurat.py +178 -0
  46. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/invcdf.pyx +1 -1
  47. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/de.py +3 -3
  48. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/expression.py +3 -3
  49. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/lr.py +51 -6
  50. exprmat-0.1.57/exprmat/plotting/matrix.py +91 -0
  51. exprmat-0.1.57/exprmat/plotting/network.py +37 -0
  52. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/palettes.py +8 -0
  53. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/utils.py +1 -1
  54. exprmat-0.1.57/exprmat/preprocessing/background/__init__.py +39 -0
  55. exprmat-0.1.57/exprmat/preprocessing/background/correction.py +542 -0
  56. exprmat-0.1.57/exprmat/preprocessing/background/emptydrops.py +349 -0
  57. exprmat-0.1.57/exprmat/preprocessing/background/estimation.py +457 -0
  58. exprmat-0.1.57/exprmat/preprocessing/background/knee.py +170 -0
  59. exprmat-0.1.57/exprmat/preprocessing/background/sgt.py +124 -0
  60. exprmat-0.1.57/exprmat/preprocessing/background/soupx.py +182 -0
  61. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/filter.py +1 -0
  62. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/integrate.py +3 -36
  63. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/qc.py +6 -1
  64. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/uniform.py +9 -1
  65. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/experiment.py +189 -39
  66. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/matcher.py +461 -21
  67. exprmat-0.1.57/exprmat/reader/ometiff.py +192 -0
  68. exprmat-0.1.57/exprmat/reader/qptiff.py +520 -0
  69. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/static.py +337 -113
  70. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/plot.py +14 -1
  71. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/trace.py +80 -1
  72. {exprmat-0.1.53 → exprmat-0.1.57}/pyproject.toml +6 -25
  73. {exprmat-0.1.53 → exprmat-0.1.57}/Cargo.lock +0 -0
  74. {exprmat-0.1.53 → exprmat-0.1.57}/Cargo.toml +0 -0
  75. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/__init__.py +0 -0
  76. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/cnmf.py +0 -0
  77. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/dbscan.py +0 -0
  78. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/gating.py +0 -0
  79. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/kmeans.py +0 -0
  80. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/leiden.py +0 -0
  81. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/nmf.py +0 -0
  82. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/rogue.py +0 -0
  83. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/sc3.py +0 -0
  84. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/seriation.py +0 -0
  85. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/spectral.py +0 -0
  86. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/clustering/utils.py +0 -0
  87. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/cnv/__init__.py +0 -0
  88. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/cnv/cnvscore.py +0 -0
  89. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/cnv/infercnv.py +0 -0
  90. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/__init__.py +0 -0
  91. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/cistarget.py +0 -0
  92. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/cre.py +0 -0
  93. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/finders.py +0 -0
  94. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/geneset.py +0 -0
  95. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/icnet.py +0 -0
  96. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/io.py +0 -0
  97. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/lr.py +0 -0
  98. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/orthologs.py +0 -0
  99. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/presets.py +0 -0
  100. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/signature.py +0 -0
  101. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/data/tf.py +0 -0
  102. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deconv/__init__.py +0 -0
  103. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deconv/deconv.py +0 -0
  104. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deconv/simulation.py +0 -0
  105. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/__init__.py +0 -0
  106. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/aggregate.py +0 -0
  107. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/atac.py +0 -0
  108. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/aucell.py +0 -0
  109. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/de.py +0 -0
  110. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/gse.py +0 -0
  111. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/kde.py +0 -0
  112. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/recovery.py +0 -0
  113. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/summary.py +0 -0
  114. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/descriptive/tcr.py +0 -0
  115. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/dataset.py +0 -0
  116. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/gridsearch.py +0 -0
  117. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/inference.py +0 -0
  118. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/preprocessing.py +0 -0
  119. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/stats.py +0 -0
  120. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/deseq/utils.py +0 -0
  121. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/__init__.py +0 -0
  122. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/generank.py +0 -0
  123. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/linreg.py +0 -0
  124. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/moments.py +0 -0
  125. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/optimization.py +0 -0
  126. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/parallel.py +0 -0
  127. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/preprocess.py +0 -0
  128. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/pseudotime.py +0 -0
  129. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/transition.py +0 -0
  130. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/utils.py +0 -0
  131. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/dynamics/velocity.py +0 -0
  132. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/__init__.py +0 -0
  133. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/infergrn.py +0 -0
  134. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/modules.py +0 -0
  135. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/prune.py +0 -0
  136. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/regressors.py +0 -0
  137. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/grn/utils.py +0 -0
  138. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/image/__init__.py +0 -0
  139. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/image/align.py +0 -0
  140. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/__init__.py +0 -0
  141. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/aggregate.py +0 -0
  142. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/__init__.py +0 -0
  143. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/construction.py +0 -0
  144. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/importance.py +0 -0
  145. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/ligand.py +0 -0
  146. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/metrics.py +0 -0
  147. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/icnet/pagerank.py +0 -0
  148. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/method.py +0 -0
  149. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/__init__.py +0 -0
  150. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/cellchat.py +0 -0
  151. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/cellphonedb.py +0 -0
  152. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/connectome.py +0 -0
  153. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/geomean.py +0 -0
  154. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/logfc.py +0 -0
  155. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/natmi.py +0 -0
  156. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/rank_aggregate.py +0 -0
  157. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/scseqcomm.py +0 -0
  158. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/methods/singlecellsignalr.py +0 -0
  159. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/pipeline.py +0 -0
  160. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/preprocess.py +0 -0
  161. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/resources.py +0 -0
  162. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/lr/utils.py +0 -0
  163. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/metacell/__init__.py +0 -0
  164. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/metacell/engine.py +0 -0
  165. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/metacell/model.py +0 -0
  166. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/metacell/utils.py +0 -0
  167. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/__init__.py +0 -0
  168. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/callpeak.py +0 -0
  169. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/common.py +0 -0
  170. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/coverage.py +0 -0
  171. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/footprint.py +0 -0
  172. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/__init__.py +0 -0
  173. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/constants.py +0 -0
  174. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/idr.py +0 -0
  175. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/optimization.py +0 -0
  176. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/idr/utils.py +0 -0
  177. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/linkage.py +0 -0
  178. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/motif.py +0 -0
  179. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/peaks/sequence.py +0 -0
  180. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/__init__.py +0 -0
  181. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/atac.py +0 -0
  182. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/cnmf.py +0 -0
  183. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/cnv.py +0 -0
  184. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/A.pk +0 -0
  185. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/B.pk +0 -0
  186. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/C.pk +0 -0
  187. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/D.pk +0 -0
  188. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/E.pk +0 -0
  189. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/F.pk +0 -0
  190. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/G.pk +0 -0
  191. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/H.pk +0 -0
  192. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/I.pk +0 -0
  193. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/J.pk +0 -0
  194. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/K.pk +0 -0
  195. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/L.pk +0 -0
  196. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/M.pk +0 -0
  197. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/N.pk +0 -0
  198. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/O.pk +0 -0
  199. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/P.pk +0 -0
  200. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/Q.pk +0 -0
  201. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/R.pk +0 -0
  202. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/S.pk +0 -0
  203. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/T.pk +0 -0
  204. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/U.pk +0 -0
  205. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/V.pk +0 -0
  206. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/W.pk +0 -0
  207. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/X.pk +0 -0
  208. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/Y.pk +0 -0
  209. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/data/Z.pk +0 -0
  210. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/gse.py +0 -0
  211. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/icnet.py +0 -0
  212. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/milestone.py +0 -0
  213. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/sankey.py +0 -0
  214. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/sequence.py +0 -0
  215. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/summary.py +0 -0
  216. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/track.py +0 -0
  217. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/trajectory.py +0 -0
  218. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/plotting/velocity.py +0 -0
  219. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/__init__.py +0 -0
  220. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/doublets/__init__.py +0 -0
  221. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/doublets/composite.py +0 -0
  222. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/doublets/scrublet.py +0 -0
  223. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/emptydrops.py +0 -0
  224. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/impute/__init__.py +0 -0
  225. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/impute/magic.py +0 -0
  226. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/linear.py +0 -0
  227. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/normal.py +0 -0
  228. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/plot.py +0 -0
  229. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sctransform/__init__.py +0 -0
  230. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sctransform/estimate.py +0 -0
  231. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
  232. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sctransform/residual.py +0 -0
  233. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sctransform/transform.py +0 -0
  234. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/preprocessing/sparse.py +0 -0
  235. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/__init__.py +0 -0
  236. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/conversions.py +0 -0
  237. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/metadata.py +0 -0
  238. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/spatial.py +0 -0
  239. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reader/updater.py +0 -0
  240. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/__init__.py +0 -0
  241. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/diffmap.py +0 -0
  242. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/forceatlas.py +0 -0
  243. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/mde.py +0 -0
  244. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/nn.py +0 -0
  245. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/outliers.py +0 -0
  246. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/pca.py +0 -0
  247. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/scvi.py +0 -0
  248. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/spectral.py +0 -0
  249. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/tsne.py +0 -0
  250. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/reduction/umap.py +0 -0
  251. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/__init__.py +0 -0
  252. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/cytotrace.py +0 -0
  253. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/elpi.py +0 -0
  254. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/pcurve.py +0 -0
  255. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/pseudotime.py +0 -0
  256. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/trajectory/root.py +0 -0
  257. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/transfer/__init__.py +0 -0
  258. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/transfer/atlas.py +0 -0
  259. {exprmat-0.1.53 → exprmat-0.1.57}/exprmat/utils.py +0 -0
  260. {exprmat-0.1.53 → exprmat-0.1.57}/license +0 -0
  261. {exprmat-0.1.53 → exprmat-0.1.57}/readme.md +0 -0
  262. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/Cargo.toml +0 -0
  263. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/license +0 -0
  264. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/readme +0 -0
  265. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/call_peaks.rs +0 -0
  266. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/embedding.rs +0 -0
  267. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/export.rs +0 -0
  268. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/knn.rs +0 -0
  269. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/lib.rs +0 -0
  270. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/motif.rs +0 -0
  271. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/network.rs +0 -0
  272. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/preprocessing.rs +0 -0
  273. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/utils/anndata.rs +0 -0
  274. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2/src/utils.rs +0 -0
  275. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/Cargo.toml +0 -0
  276. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/embedding.rs +0 -0
  277. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/export.rs +0 -0
  278. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/feature_count/counter.rs +0 -0
  279. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
  280. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/feature_count/matrix.rs +0 -0
  281. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/feature_count/mod.rs +0 -0
  282. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/genome.rs +0 -0
  283. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/lib.rs +0 -0
  284. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/motif.rs +0 -0
  285. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/network.rs +0 -0
  286. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
  287. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
  288. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
  289. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/bam.rs +0 -0
  290. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/import.rs +0 -0
  291. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/mod.rs +0 -0
  292. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/preprocessing/qc.rs +0 -0
  293. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/utils/knn.rs +0 -0
  294. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/utils/mod.rs +0 -0
  295. {exprmat-0.1.53 → exprmat-0.1.57}/snapatac2-core/src/utils/similarity.rs +0 -0
@@ -1,9 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: exprmat
3
- Version: 0.1.53
3
+ Version: 0.1.57
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
7
+ Requires-Dist: leidenalg
7
8
  Requires-Dist: anndata>=0.8.0
8
9
  Requires-Dist: multiprocess
9
10
  Requires-Dist: macs3>=3.0,<3.1
@@ -32,7 +33,7 @@ Requires-Dist: scikit-image
32
33
  Requires-Dist: scikit-misc
33
34
  Requires-Dist: bbknn
34
35
  Requires-Dist: scanorama
35
- Requires-Dist: harmonypy
36
+ Requires-Dist: harmonypy>=0.2.0
36
37
  Requires-Dist: pymde
37
38
  Requires-Dist: datashader
38
39
  Requires-Dist: fa2-modified
@@ -52,7 +53,7 @@ Requires-Dist: multiprocessing-on-dill
52
53
  Requires-Dist: pysam
53
54
  Requires-Dist: hdbscan
54
55
  Requires-Dist: graphtools
55
- Requires-Dist: bincsync>=0.3.0
56
+ Requires-Dist: bincsync>=0.4.0
56
57
  Requires-Dist: pybigwig
57
58
  Requires-Dist: spatialdata
58
59
  Requires-Dist: loompy
@@ -79,10 +80,8 @@ Requires-Dist: simpleppt
79
80
  Requires-Dist: elpigraph-python
80
81
  Requires-Dist: dask-expr>=2.0
81
82
  Requires-Dist: einops==0.8.1
82
- Requires-Dist: sphinx ; extra == 'dev'
83
- Requires-Dist: twine ; extra == 'dev'
84
- Requires-Dist: ipykernel ; extra == 'dev'
85
- Requires-Dist: ipytree ; extra == 'dev'
83
+ Requires-Dist: lxml
84
+ Requires-Dist: arviz>=0.23
86
85
  Requires-Dist: cudf-cu12==25.8.* ; extra == 'cuda12'
87
86
  Requires-Dist: dask-cudf-cu12==25.8.* ; extra == 'cuda12'
88
87
  Requires-Dist: cuml-cu12==25.8.* ; extra == 'cuda12'
@@ -96,22 +95,12 @@ Requires-Dist: cuvs-cu12==25.8.* ; extra == 'cuda12'
96
95
  Requires-Dist: nx-cugraph-cu12==25.8.* ; extra == 'cuda12'
97
96
  Requires-Dist: cupy-cuda12x ; extra == 'cuda12'
98
97
  Requires-Dist: rapids-singlecell ; extra == 'cuda12'
99
- Requires-Dist: cudf-cu13==25.12.* ; extra == 'cuda13'
100
- Requires-Dist: dask-cudf-cu13==25.12.* ; extra == 'cuda13'
101
- Requires-Dist: cuml-cu13==25.12.* ; extra == 'cuda13'
102
- Requires-Dist: cugraph-cu13==25.12.* ; extra == 'cuda13'
103
- Requires-Dist: nx-cugraph-cu13==25.12.* ; extra == 'cuda13'
104
- Requires-Dist: cuxfilter-cu13==25.12.* ; extra == 'cuda13'
105
- Requires-Dist: cucim-cu13==25.12.* ; extra == 'cuda13'
106
- Requires-Dist: pylibraft-cu13==25.12.* ; extra == 'cuda13'
107
- Requires-Dist: raft-dask-cu13==25.12.* ; extra == 'cuda13'
108
- Requires-Dist: cuvs-cu13==25.12.* ; extra == 'cuda13'
109
- Requires-Dist: nx-cugraph-cu13==25.12.* ; extra == 'cuda13'
110
- Requires-Dist: cupy-cuda13x ; extra == 'cuda13'
111
- Requires-Dist: rapids-singlecell ; extra == 'cuda13'
112
- Provides-Extra: dev
98
+ Requires-Dist: sphinx ; extra == 'dev'
99
+ Requires-Dist: twine ; extra == 'dev'
100
+ Requires-Dist: ipykernel ; extra == 'dev'
101
+ Requires-Dist: ipytree ; extra == 'dev'
113
102
  Provides-Extra: cuda12
114
- Provides-Extra: cuda13
103
+ Provides-Extra: dev
115
104
  License-File: license
116
105
  Summary: exprmat: Routines for expression matrices
117
106
  Author-email: Zheng Yang <xornent@outlook.com>
@@ -86,6 +86,19 @@ For more guide on how to install the database, and more information about
86
86
  what the database includes, see <https://github.com/yang-z-03/exprmat>
87
87
  """
88
88
 
89
+ LICENSE_MESSAGE = f'''
90
+ exprmat {ver_string} - Routines to manipulate expression matrices
91
+ Copyright (C) 2025 - 2026 Zheng Yang <xornent@outlook.com>
92
+
93
+ exprmat is free software and comes with ABSOLUTELY NO WARRANTY.
94
+ You are welcome to redistribute it under certain conditions.
95
+ You should have received a copy of the GNU General Public License
96
+ version 3 along with this program. If not, see <http://www.gnu.org/licenses/>.
97
+
98
+ The GNU General Public License does not permit incorporating
99
+ your program into proprietary programs.
100
+ '''
101
+
89
102
  # load configuration
90
103
  PERFORM_DATABASE_CHECK = True
91
104
  default_finders = [
@@ -192,25 +205,16 @@ def memory():
192
205
  info(f'virtual memory: {format_file_size(virtual)}')
193
206
 
194
207
 
195
- def license():
196
- print(f'''
197
- exprmat {ver_string} - Routines to manipulate expression matrices
198
- Copyright (C) 2025 - 2026 Zheng Yang (杨政) <xornent@outlook.com>
199
-
200
- exprmat is free software and comes with ABSOLUTELY NO WARRANTY.
201
- You are welcome to redistribute it under certain conditions.
202
- You should have received a copy of the GNU General Public License
203
- version 3 along with this program. If not, see <http://www.gnu.org/licenses/>.
204
-
205
- The GNU General Public License does not permit incorporating
206
- your program into proprietary programs.
207
- ''')
208
-
209
-
208
+ def license(): print(LICENSE_MESSAGE)
210
209
 
210
+ def view(fpath, cmd = 'less -S'): os.system(
211
+ cmd + ' "' + os.path.join(os.path.dirname(__file__), fpath) + '"'
212
+ )
213
+
211
214
  setwd = os.chdir
212
215
  getwd = os.getcwd
213
216
 
217
+
214
218
  import tqdm
215
219
  # https://github.com/tqdm/tqdm/issues/457
216
220
  tqdm.tqdm(disable = True, total = 0)
@@ -221,10 +225,11 @@ tqdm.tqdm(disable = True, total = 0)
221
225
 
222
226
  try:
223
227
  fd = os.open(os.path.join(basepath, '.license'), os.O_CREAT | os.O_EXCL | os.O_WRONLY)
224
- with os.fdopen(fd, "w") as f: f.write("shown")
228
+ with os.fdopen(fd, "w") as f: f.write(ver_string)
225
229
  license()
226
230
 
227
- except FileExistsError: pass
231
+ except FileExistsError:
232
+ pass
228
233
 
229
234
 
230
235
  __all__ = [
@@ -15,9 +15,9 @@ class logger:
15
15
  def __init__(self, silent: bool = False) -> None:
16
16
  self.silent = silent
17
17
 
18
- def error(self, text: str, error = None) -> None:
18
+ def error(self, text: str, error = None, raise_error = True) -> None:
19
19
 
20
- if self.silent:
20
+ if self.silent and raise_error:
21
21
  if error: raise Exception(text) from error
22
22
  else: raise Exception(text)
23
23
 
@@ -26,8 +26,11 @@ class logger:
26
26
  ansi_reset()
27
27
  print(text)
28
28
 
29
- if error is None: raise Exception(text)
30
- else: raise Exception(text) from error
29
+ if raise_error:
30
+ if error is None: raise Exception(text)
31
+ else: raise Exception(text) from error
32
+
33
+ raise KeyboardInterrupt('Execution stopped due to error.') from None
31
34
 
32
35
 
33
36
  def warning(self, text: str) -> None:
@@ -118,7 +121,7 @@ def ansi_move_cursor(line: int, col: int) -> None:
118
121
  elif col < 0: print('\033[{0}D'.format(str(-col)), end = '', flush = True) # moves left
119
122
 
120
123
 
121
- def common_length(string: str, limit: int) -> str:
124
+ def common_length(string: str, limit: int, right = False) -> str:
122
125
 
123
126
  cn_re = '[\u201c-\u201d\u3001-\u3011\uff08-\uff1f\u4e00-\u9fa5]'
124
127
  cn = re.findall(cn_re, string)
@@ -130,7 +133,8 @@ def common_length(string: str, limit: int) -> str:
130
133
  while cn + len(x_str) > limit:
131
134
  x_str = x_str[1:]
132
135
  cn = len(re.findall(cn_re, x_str))
133
- return x_str
136
+ if right: return ' ' * (limit - (cn + len(x_str))) + x_str
137
+ else: return x_str + ' ' * (limit - (cn + len(x_str)))
134
138
 
135
139
  elif len(string) + cn_length > limit:
136
140
  x_str = string[-(limit - 3):]
@@ -140,7 +144,9 @@ def common_length(string: str, limit: int) -> str:
140
144
  cn = len(re.findall(cn_re, x_str))
141
145
  return '.. ' + x_str
142
146
 
143
- else: return ('{:<' + str(limit - cn_length) + '}').format(string)
147
+ else:
148
+ if right: return ('{:>' + str(limit - cn_length) + '}').format(string)
149
+ else: return ('{:<' + str(limit - cn_length) + '}').format(string)
144
150
 
145
151
 
146
152
  def fill_blank(blanks: int, string: str) -> None:
@@ -262,7 +268,10 @@ progress_styles = {
262
268
 
263
269
  class pprog(tqdm):
264
270
  def __init__(self, iterable = None, **kwargs):
265
- super().__init__(iterable, **progress_styles, **kwargs)
271
+ non_set = {}
272
+ for k in progress_styles.keys():
273
+ if k not in kwargs.keys(): non_set[k] = progress_styles[k]
274
+ super().__init__(iterable, **non_set, **kwargs)
266
275
 
267
276
 
268
277
  class pproga(tqdma):
@@ -33,13 +33,16 @@ class Configuration:
33
33
  'grch37': 'hsa',
34
34
  'grch38': 'hsa',
35
35
 
36
- 'dm6': 'dme'
36
+ 'dm6': 'dme',
37
+
38
+ 'nc-007605': 'v-hhv4',
37
39
  }
38
40
 
39
41
  self.config['default.assembly'] = {
40
42
  'mmu': 'grcm39',
41
43
  'hsa': 'grch38',
42
- 'dme': 'dm6'
44
+ 'dme': 'dm6',
45
+ 'v-hhv4': 'nc-007605'
43
46
  }
44
47
 
45
48
  self.config['max.image'] = int(10000 * 50000)