#statistics #hypothesis-testing #bioinformatics #correlation #pca

no-std cyanea-stats

Statistical methods for the Cyanea bioinformatics ecosystem

1 unstable release

0.1.0 Feb 20, 2026

#509 in Biology


Used in 2 crates

MIT/Apache

455KB
10K SLoC

cyanea-stats

Statistical methods for life sciences: descriptive statistics, hypothesis testing, distributions, and domain-specific analysis.

What's Inside

  • Descriptive statistics -- mean, median, variance, std dev, quantiles, IQR, MAD, skewness, kurtosis
  • Correlation -- Pearson, Spearman rank, pairwise correlation matrices
  • Hypothesis testing -- t-tests (one-sample, two-sample/Welch's), Mann-Whitney U, Fisher's exact, chi-squared, ANOVA
  • Distributions -- Normal, Poisson, Binomial, ChiSquared, F, NegativeBinomial with PDF/CDF
  • Multiple testing correction -- Bonferroni, Benjamini-Hochberg FDR
  • Effect sizes -- Cohen's d, eta-squared, odds ratio, relative risk
  • PCA -- principal component analysis (with optional BLAS acceleration)
  • Bayesian conjugate priors -- Beta, Gamma, NormalConjugate, Dirichlet
  • Combinatorics -- factorial, binomial coefficients, permutations, multinomial (exact and log-space)
  • Population genetics -- allele frequencies, HWE, Fst (Weir-Cockerham/Hudson), nucleotide diversity, Tajima's D, linkage disequilibrium, genotype PCA
  • Expression normalization -- TPM, FPKM, CPM, DESeq2 size factors
  • Differential expression -- negative binomial Wald test, Wilcoxon, volcano plot data
  • Enrichment analysis -- ORA (hypergeometric), GSEA (preranked with permutations), GO enrichment
  • Ecological diversity -- Shannon, Simpson, Chao1, Bray-Curtis, rarefaction curves
  • Survival analysis -- Kaplan-Meier, log-rank test, Cox proportional hazards

Quick Start

[dependencies]
cyanea-stats = "0.1"
use cyanea_stats::{describe, pearson, t_test_two_sample};

let stats = describe(&[1.0, 2.0, 3.0, 4.0, 5.0]).unwrap();
println!("Mean: {}, Median: {}", stats.mean, stats.median);

let r = pearson(&[1.0, 2.0, 3.0], &[2.0, 4.0, 6.0]).unwrap();
println!("Pearson r: {}", r);

let test = t_test_two_sample(&[1.0, 2.0, 3.0], &[4.0, 5.0, 6.0], false).unwrap();
println!("p = {}", test.p_value);

Feature Flags

Flag Default Description
std Yes Standard library support
wasm No WASM target marker
serde No Serialize/Deserialize derives
parallel No Rayon parallelism
blas No BLAS-accelerated PCA via ndarray

Modules

Module Description
descriptive Mean, median, variance, quantiles, IQR, MAD
correlation Pearson, Spearman, correlation matrices
rank Rank computation with tie-breaking methods
testing t-tests, Mann-Whitney U, Fisher's exact, chi-squared, ANOVA
distribution Normal, Poisson, Binomial, ChiSquared, F, erf, ln_gamma, betai
correction Bonferroni, Benjamini-Hochberg
effect_size Cohen's d, eta-squared, odds ratio, relative risk
reduction PCA dimensionality reduction
bayesian Beta, Gamma, NormalConjugate, Dirichlet conjugate priors
combinatorics Factorial, binomial coefficients, permutations, combinations
popgen Allele frequencies, HWE, Fst, diversity, Tajima's D, LD
normalization TPM, FPKM, CPM, DESeq2 size factors
diffexpr Differential expression testing
enrichment ORA, GSEA, GO enrichment
diversity Alpha/beta diversity, rarefaction
survival Kaplan-Meier, log-rank, Cox PH

See Also

Dependencies

~0.7–2.1MB
~46K SLoC