exprmat 0.1.35__tar.gz → 0.1.37__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 (212) hide show
  1. {exprmat-0.1.35 → exprmat-0.1.37}/PKG-INFO +10 -5
  2. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/__init__.py +49 -2
  3. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/finders.py +37 -0
  4. exprmat-0.1.37/exprmat/deseq/dataset.py +1485 -0
  5. exprmat-0.1.37/exprmat/deseq/gridsearch.py +317 -0
  6. exprmat-0.1.37/exprmat/deseq/inference.py +650 -0
  7. exprmat-0.1.37/exprmat/deseq/preprocessing.py +104 -0
  8. exprmat-0.1.37/exprmat/deseq/stats.py +616 -0
  9. exprmat-0.1.37/exprmat/deseq/utils.py +1361 -0
  10. exprmat-0.1.37/exprmat/peaks/callpeak.py +359 -0
  11. exprmat-0.1.37/exprmat/peaks/idr/constants.py +26 -0
  12. exprmat-0.1.37/exprmat/peaks/idr/idr.py +686 -0
  13. exprmat-0.1.37/exprmat/peaks/idr/invcdf.pyx +108 -0
  14. exprmat-0.1.37/exprmat/peaks/idr/optimization.py +293 -0
  15. exprmat-0.1.37/exprmat/peaks/idr/utils.py +159 -0
  16. exprmat-0.1.37/exprmat/peaks/sequence.py +29 -0
  17. exprmat-0.1.37/exprmat/plotting/data/A.pk +0 -0
  18. exprmat-0.1.37/exprmat/plotting/data/B.pk +0 -0
  19. exprmat-0.1.37/exprmat/plotting/data/C.pk +0 -0
  20. exprmat-0.1.37/exprmat/plotting/data/D.pk +0 -0
  21. exprmat-0.1.37/exprmat/plotting/data/E.pk +0 -0
  22. exprmat-0.1.37/exprmat/plotting/data/F.pk +0 -0
  23. exprmat-0.1.37/exprmat/plotting/data/G.pk +0 -0
  24. exprmat-0.1.37/exprmat/plotting/data/H.pk +0 -0
  25. exprmat-0.1.37/exprmat/plotting/data/I.pk +0 -0
  26. exprmat-0.1.37/exprmat/plotting/data/J.pk +0 -0
  27. exprmat-0.1.37/exprmat/plotting/data/K.pk +0 -0
  28. exprmat-0.1.37/exprmat/plotting/data/L.pk +0 -0
  29. exprmat-0.1.37/exprmat/plotting/data/M.pk +0 -0
  30. exprmat-0.1.37/exprmat/plotting/data/N.pk +0 -0
  31. exprmat-0.1.37/exprmat/plotting/data/O.pk +0 -0
  32. exprmat-0.1.37/exprmat/plotting/data/P.pk +0 -0
  33. exprmat-0.1.37/exprmat/plotting/data/Q.pk +0 -0
  34. exprmat-0.1.37/exprmat/plotting/data/R.pk +0 -0
  35. exprmat-0.1.37/exprmat/plotting/data/S.pk +0 -0
  36. exprmat-0.1.37/exprmat/plotting/data/T.pk +0 -0
  37. exprmat-0.1.37/exprmat/plotting/data/U.pk +0 -0
  38. exprmat-0.1.37/exprmat/plotting/data/V.pk +0 -0
  39. exprmat-0.1.37/exprmat/plotting/data/W.pk +0 -0
  40. exprmat-0.1.37/exprmat/plotting/data/X.pk +0 -0
  41. exprmat-0.1.37/exprmat/plotting/data/Y.pk +0 -0
  42. exprmat-0.1.37/exprmat/plotting/data/Z.pk +0 -0
  43. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/expression.py +21 -3
  44. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/palettes.py +193 -73
  45. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/sankey.py +1 -1
  46. exprmat-0.1.37/exprmat/plotting/sequence.py +291 -0
  47. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/track.py +48 -10
  48. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/utils.py +42 -0
  49. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/velocity.py +2 -3
  50. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/qc.py +6 -3
  51. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/experiment.py +336 -56
  52. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/matcher.py +61 -0
  53. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/spatial.py +30 -7
  54. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/static.py +385 -34
  55. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/plot.py +14 -23
  56. exprmat-0.1.37/exprmat/transfer/__init__.py +0 -0
  57. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/utils.py +13 -0
  58. exprmat-0.1.37/license +0 -0
  59. {exprmat-0.1.35 → exprmat-0.1.37}/pyproject.toml +14 -5
  60. {exprmat-0.1.35 → exprmat-0.1.37}/Cargo.lock +0 -0
  61. {exprmat-0.1.35 → exprmat-0.1.37}/Cargo.toml +0 -0
  62. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/ansi.py +0 -0
  63. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/__init__.py +0 -0
  64. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/cnmf.py +0 -0
  65. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/dbscan.py +0 -0
  66. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/kmeans.py +0 -0
  67. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/leiden.py +0 -0
  68. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/nmf.py +0 -0
  69. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/rogue.py +0 -0
  70. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/seriation.py +0 -0
  71. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/spectral.py +0 -0
  72. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/clustering/utils.py +0 -0
  73. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/cnv/__init__.py +0 -0
  74. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/cnv/cnvscore.py +0 -0
  75. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/cnv/infercnv.py +0 -0
  76. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/configuration.py +0 -0
  77. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/__init__.py +0 -0
  78. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/cistarget.py +0 -0
  79. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/delim.py +0 -0
  80. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/geneset.py +0 -0
  81. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/gff.py +0 -0
  82. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/io.py +0 -0
  83. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/lr.py +0 -0
  84. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/presets.py +0 -0
  85. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/private.py +0 -0
  86. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/ranges.py +0 -0
  87. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/signature.py +0 -0
  88. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/data/tf.py +0 -0
  89. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/__init__.py +0 -0
  90. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/aggregate.py +0 -0
  91. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/atac.py +0 -0
  92. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/aucell.py +0 -0
  93. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/de.py +0 -0
  94. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/gse.py +0 -0
  95. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/kde.py +0 -0
  96. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/recovery.py +0 -0
  97. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/summary.py +0 -0
  98. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/descriptive/tcr.py +0 -0
  99. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/__init__.py +0 -0
  100. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/generank.py +0 -0
  101. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/linreg.py +0 -0
  102. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/moments.py +0 -0
  103. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/optimization.py +0 -0
  104. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/parallel.py +0 -0
  105. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/preprocess.py +0 -0
  106. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/pseudotime.py +0 -0
  107. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/transition.py +0 -0
  108. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/utils.py +0 -0
  109. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/dynamics/velocity.py +0 -0
  110. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/__init__.py +0 -0
  111. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/infergrn.py +0 -0
  112. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/modules.py +0 -0
  113. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/prune.py +0 -0
  114. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/regressors.py +0 -0
  115. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/grn/utils.py +0 -0
  116. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/image/__init__.py +0 -0
  117. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/image/align.py +0 -0
  118. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/__init__.py +0 -0
  119. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/aggregate.py +0 -0
  120. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/method.py +0 -0
  121. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/__init__.py +0 -0
  122. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/cellchat.py +0 -0
  123. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/cellphonedb.py +0 -0
  124. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/connectome.py +0 -0
  125. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/geomean.py +0 -0
  126. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/logfc.py +0 -0
  127. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/natmi.py +0 -0
  128. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/rank_aggregate.py +0 -0
  129. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/scseqcomm.py +0 -0
  130. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/methods/singlecellsignalr.py +0 -0
  131. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/pipeline.py +0 -0
  132. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/preprocess.py +0 -0
  133. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/resources.py +0 -0
  134. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/lr/utils.py +0 -0
  135. {exprmat-0.1.35/exprmat/preprocessing/doublets → exprmat-0.1.37/exprmat/peaks}/__init__.py +0 -0
  136. {exprmat-0.1.35/exprmat/preprocessing/impute → exprmat-0.1.37/exprmat/peaks/idr}/__init__.py +0 -0
  137. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/__init__.py +0 -0
  138. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/atac.py +0 -0
  139. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/cnmf.py +0 -0
  140. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/cnv.py +0 -0
  141. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/de.py +0 -0
  142. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/gse.py +0 -0
  143. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/lr.py +0 -0
  144. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/plotting/summary.py +0 -0
  145. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/__init__.py +0 -0
  146. {exprmat-0.1.35/exprmat/preprocessing/sctransform → exprmat-0.1.37/exprmat/preprocessing/doublets}/__init__.py +0 -0
  147. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/doublets/composite.py +0 -0
  148. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/doublets/scrublet.py +0 -0
  149. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/emptydrops.py +0 -0
  150. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/filter.py +0 -0
  151. {exprmat-0.1.35/exprmat/transfer → exprmat-0.1.37/exprmat/preprocessing/impute}/__init__.py +0 -0
  152. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/impute/magic.py +0 -0
  153. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/integrate.py +0 -0
  154. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/linear.py +0 -0
  155. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/normal.py +0 -0
  156. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/plot.py +0 -0
  157. /exprmat-0.1.35/license → /exprmat-0.1.37/exprmat/preprocessing/sctransform/__init__.py +0 -0
  158. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/sctransform/estimate.py +0 -0
  159. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
  160. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/sctransform/residual.py +0 -0
  161. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/sctransform/transform.py +0 -0
  162. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/sparse.py +0 -0
  163. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/preprocessing/uniform.py +0 -0
  164. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/__init__.py +0 -0
  165. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/metadata.py +0 -0
  166. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reader/peaks.py +0 -0
  167. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/__init__.py +0 -0
  168. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/forceatlas.py +0 -0
  169. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/mde.py +0 -0
  170. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/nn.py +0 -0
  171. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/outliers.py +0 -0
  172. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/pca.py +0 -0
  173. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/spectral.py +0 -0
  174. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/tsne.py +0 -0
  175. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/reduction/umap.py +0 -0
  176. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/trajectory/pcurve.py +0 -0
  177. {exprmat-0.1.35 → exprmat-0.1.37}/exprmat/transfer/atlas.py +0 -0
  178. {exprmat-0.1.35 → exprmat-0.1.37}/readme.md +0 -0
  179. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/Cargo.toml +0 -0
  180. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/license +0 -0
  181. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/readme +0 -0
  182. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/call_peaks.rs +0 -0
  183. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/embedding.rs +0 -0
  184. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/export.rs +0 -0
  185. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/knn.rs +0 -0
  186. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/lib.rs +0 -0
  187. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/motif.rs +0 -0
  188. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/network.rs +0 -0
  189. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/preprocessing.rs +0 -0
  190. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/utils/anndata.rs +0 -0
  191. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2/src/utils.rs +0 -0
  192. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/Cargo.toml +0 -0
  193. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/embedding.rs +0 -0
  194. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/export.rs +0 -0
  195. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/feature_count/counter.rs +0 -0
  196. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
  197. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/feature_count/matrix.rs +0 -0
  198. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/feature_count/mod.rs +0 -0
  199. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/genome.rs +0 -0
  200. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/lib.rs +0 -0
  201. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/motif.rs +0 -0
  202. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/network.rs +0 -0
  203. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
  204. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
  205. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
  206. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/bam.rs +0 -0
  207. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/import.rs +0 -0
  208. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/mod.rs +0 -0
  209. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/preprocessing/qc.rs +0 -0
  210. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/utils/knn.rs +0 -0
  211. {exprmat-0.1.35 → exprmat-0.1.37}/snapatac2-core/src/utils/mod.rs +0 -0
  212. {exprmat-0.1.35 → exprmat-0.1.37}/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.35
3
+ Version: 0.1.37
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -16,8 +16,8 @@ Requires-Dist: igraph>=0.10.3
16
16
  Requires-Dist: pyarrow
17
17
  Requires-Dist: pyfaidx>=0.7.0,<0.8.0
18
18
  Requires-Dist: rustworkx
19
- Requires-Dist: scipy>=1.4,<2.0.0
20
- Requires-Dist: scikit-learn>=1.0,<2.0.0
19
+ Requires-Dist: scipy>=1.11,<2.0.0
20
+ Requires-Dist: scikit-learn>=1.1,<2.0.0
21
21
  Requires-Dist: tqdm>=4.62
22
22
  Requires-Dist: typeguard>=4.0
23
23
  Requires-Dist: umap-learn>=0.5.0
@@ -55,6 +55,7 @@ Requires-Dist: hdbscan
55
55
  Requires-Dist: graphtools
56
56
  Requires-Dist: bincsync>=0.3.0
57
57
  Requires-Dist: pybigwig
58
+ Requires-Dist: pybedgraph
58
59
  Requires-Dist: loompy
59
60
  Requires-Dist: squidpy
60
61
  Requires-Dist: zarr
@@ -68,6 +69,12 @@ Requires-Dist: pyogrio>=0.7.2
68
69
  Requires-Dist: pyproj>=3.3.0
69
70
  Requires-Dist: geopandas
70
71
  Requires-Dist: packaging
72
+ Requires-Dist: lightmotif
73
+ Requires-Dist: pymemesuite
74
+ Requires-Dist: formulaic>=1.0.2
75
+ Requires-Dist: formulaic-contrasts>=0.2.0
76
+ Requires-Dist: cython
77
+ Requires-Dist: pyfastx
71
78
  Requires-Dist: sphinx ; extra == 'dev'
72
79
  Requires-Dist: twine ; extra == 'dev'
73
80
  Requires-Dist: ipykernel ; extra == 'dev'
@@ -75,9 +82,7 @@ Requires-Dist: ipytree ; extra == 'dev'
75
82
  Provides-Extra: dev
76
83
  License-File: license
77
84
  Summary: exprmat: Routines for expression matrices
78
- Author: Kai Zhang <kai@kzhang.org>
79
85
  Author-email: Zheng Yang <xornent@outlook.com>
80
- License: MIT
81
86
  Requires-Python: >=3.9, <3.13
82
87
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
83
88
  Project-URL: Repository, https://github.com/yang-z-03/exprmat
@@ -12,6 +12,50 @@ import pandas as pd
12
12
  import pathlib
13
13
  from PIL import Image
14
14
 
15
+ # build cython package
16
+
17
+ try: import exprmat.peaks.idr.invcdf
18
+ except ImportError:
19
+
20
+ from exprmat.ansi import info
21
+ info('seems to be your first use of exprmat. the C modules are not compiled yet.')
22
+ info('compiling cython extension modules ...')
23
+
24
+ from distutils.core import setup
25
+ from distutils.extension import Extension
26
+ from Cython.Distutils import build_ext
27
+ from Cython.Build import cythonize
28
+ import numpy
29
+ import sys
30
+
31
+ # change to the project source directory
32
+ # thus we can build the extension in the source directory.
33
+ sys.argv = ['', 'build_ext', '--inplace']
34
+ cwd = os.getcwd()
35
+ os.chdir(os.path.dirname(__file__))
36
+ info(f'entering working directory: {os.getcwd()}')
37
+
38
+ extensions = [
39
+ Extension(
40
+ 'peaks.idr.invcdf',
41
+ [__file__.replace('__init__.py', os.path.join('peaks', 'idr', 'invcdf.pyx'))],
42
+ include_dirs = [numpy.get_include()],
43
+ define_macros = [('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')]
44
+ )
45
+ ]
46
+
47
+ setup(
48
+ name = 'peaks.idr.invcdf',
49
+ cmdclass = { 'build_ext': build_ext },
50
+ ext_modules = cythonize(extensions, language_level = 3, quiet = True)
51
+ )
52
+
53
+ os.chdir(cwd)
54
+ # remove the autogenerated build directory. since we compile inplace.
55
+ os.system(f'rm -r {os.path.join(os.path.dirname(__file__), "build")}')
56
+ info('compilation finished.')
57
+
58
+
15
59
  from exprmat.configuration import default as config
16
60
  from exprmat.ansi import warning, info
17
61
 
@@ -19,7 +63,7 @@ mu.set_options(pull_on_update = False)
19
63
  Image.MAX_IMAGE_PIXELS = config['max.image']
20
64
 
21
65
  DATABASE_SETUP_MESSAGE = """
22
- The exprmat package do not come with a included database after version 0.1.25,
66
+ The exprmat package do not come with an included database after version 0.1.25,
23
67
  due to the extensive size of the reference data. You need to setup the database
24
68
  and configure it properly with configuration file `.exprmatrc` under your
25
69
  user root or current working directory
@@ -39,9 +83,11 @@ default_finders = [
39
83
  os.path.join(str(pathlib.Path.home()), '.exprmatrc')
40
84
  ]
41
85
 
86
+ DEFAULT_CONFIG = '[internals]'
42
87
  for finder in default_finders:
43
88
  if os.path.exists(finder):
44
- info(f'load configuration from {finder}')
89
+ DEFAULT_CONFIG = finder
90
+ if False: info(f'load configuration from {finder}')
45
91
  with open(finder, 'r') as f:
46
92
  import json
47
93
  workspace_config = json.load(f)
@@ -94,6 +140,7 @@ def version():
94
140
  MAJOR, MINOR, REVISION = [int(x) for x in ver_string.split('.')]
95
141
  info(f'exprmat {MAJOR}.{MINOR}.{REVISION} / exprmat-db {db_ver if db_ver is not None else "(Not installed)"}')
96
142
  info(f'os: {os.name} ({sys.platform}) platform version: {platform.release()}')
143
+ info(f'loaded configuration from {finder}')
97
144
  info(f'current working directory: {os.getcwd()}')
98
145
  info(f'current database directory: {config["data"]} ({db_ver if db_ver is not None else "(Not found)"})')
99
146
  memory()
@@ -75,6 +75,43 @@ def get_genome_model(assembly):
75
75
  return pandas.read_feather(path)
76
76
 
77
77
 
78
+ def get_genome_ranges(assembly, fname, as_grange = False):
79
+
80
+ taxa = cfg['taxa.reference'][assembly.lower()]
81
+ path = os.path.join(basepath, taxa, 'assemblies', assembly.lower(), f'{fname}.feather')
82
+ feather = pandas.read_feather(path)
83
+
84
+ if as_grange:
85
+ import genomicranges
86
+ return genomicranges.GenomicRanges.from_pandas(
87
+ feather[['ucsc', 'start', 'end', 'strand', 'gene']].rename(
88
+ columns = {'ucsc': 'seqnames', 'start': 'starts', 'end': 'ends'}
89
+ ))
90
+ else: return feather
91
+
92
+
93
+ def get_genome_first_exonic(assembly, as_grange = False):
94
+ return get_genome_ranges(assembly, 'first-exonic', as_grange = as_grange)
95
+
96
+ def get_genome_other_exonic(assembly, as_grange = False):
97
+ return get_genome_ranges(assembly, 'other-exonic', as_grange = as_grange)
98
+
99
+ def get_genome_first_intronic(assembly, as_grange = False):
100
+ return get_genome_ranges(assembly, 'first-intronic', as_grange = as_grange)
101
+
102
+ def get_genome_transcript(assembly, as_grange = False):
103
+ return get_genome_ranges(assembly, 'genebody', as_grange = as_grange)
104
+
105
+ def get_genome_promoters(assembly, as_grange = False):
106
+ return get_genome_ranges(assembly, 'promoters', as_grange = as_grange)
107
+
108
+ def get_genome_utr3(assembly, as_grange = False):
109
+ return get_genome_ranges(assembly, 'utr3', as_grange = as_grange)
110
+
111
+ def get_genome_utr5(assembly, as_grange = False):
112
+ return get_genome_ranges(assembly, 'utr5', as_grange = as_grange)
113
+
114
+
78
115
  def get_mapper_name(taxa):
79
116
  '''
80
117
  Return a name mapper mapping from gene names to universal gene id across species.