You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+41-4Lines changed: 41 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,35 +7,72 @@ The companion algebra library for single-rust, providing powerful matrix operati
7
7
- Efficient operations on sparse and dense matrices
8
8
- Dimensionality reduction techniques
9
9
- Clustering algorithms including Louvain community detection
10
+
- Batch processing utilities with masking support
11
+
- Statistical analysis and inference
10
12
- More features planned!
11
13
12
14
## Matrix Operations 📊
13
15
14
16
- SVD decomposition with parallel and LAPACK implementations
15
17
- Matrix convenience functions for statistical operations
16
18
- Support for both CSR and CSC sparse matrix formats
19
+
- Masked operations for selective data processing
20
+
- Batch-wise statistics (mean, variance) with flexible batch identifiers
17
21
18
22
## Clustering 🔍
19
23
20
24
- Louvain community detection
21
25
- Similarity network construction
22
26
- K-nearest neighbors graph building
23
27
- Local moving algorithm for community refinement
28
+
- Leiden clustering implementation (work in progress)
24
29
25
30
## Dimensionality Reduction ⬇️
26
31
27
32
- Incremental PCA implementation
28
33
- Support for sparse matrices in dimensionality reduction
34
+
- SVD-based compression and analysis
29
35
30
-
## Acknowledgments 🙏
36
+
## Statistical Analysis 📈
31
37
32
-
The Louvain clustering implementation was adapted from [louvain-rs](https://github.com/graphext/louvain-rs/tree/master) written by Juan Morales (crispamares@gmail.com). The original implementation has been modified to better suit the needs of single-algebra.
38
+
- Multiple testing correction methods
39
+
- Parametric and non-parametric hypothesis testing
40
+
- Effect size calculations
41
+
- Batch-wise statistical comparisons
33
42
34
43
## Installation
35
44
36
45
Add this to your `Cargo.toml`:
37
46
38
47
```toml
39
48
[dependencies]
40
-
single-algebra = "0.2.0-alpha.0"
41
-
```
49
+
single-algebra = "0.2.2-alpha.0"
50
+
```
51
+
52
+
## Batch Processing
53
+
54
+
The library now includes flexible batch processing capabilities with the `BatchIdentifier` trait, which supports common identifier types:
55
+
56
+
- String and string slices
57
+
- Integer types (i32, u32, usize)
58
+
- Custom types (by implementing the trait)
59
+
60
+
```rust
61
+
// Example of batch-wise statistics
62
+
letbatches=vec!["batch1", "batch2", "batch3"];
63
+
letbatch_means=matrix.mean_batch_col(&batches)?;
64
+
```
65
+
66
+
## Masked Operations
67
+
68
+
Selective processing is now available through masked operations:
69
+
70
+
```rust
71
+
// Only process selected columns
72
+
letmask=vec![true, false, true, true, false];
73
+
letmasked_sums=matrix.sum_col_masked(&mask)?;
74
+
```
75
+
76
+
## Acknowledgments 🙏
77
+
78
+
The Louvain clustering implementation was adapted from [louvain-rs](https://github.com/graphext/louvain-rs/tree/master) written by Juan Morales (crispamares@gmail.com). The original implementation has been modified to better suit the needs of single-algebra.
0 commit comments