Skip to main content

cyanea_stats/
lib.rs

1//! Statistical methods for the Cyanea bioinformatics ecosystem.
2//!
3//! `cyanea-stats` provides pure-Rust implementations of common statistical
4//! methods used in bioinformatics workflows:
5//!
6//! - **Descriptive statistics** — [`descriptive::describe`], [`descriptive::mean`],
7//!   [`descriptive::variance`], quantiles, IQR, MAD
8//! - **Ranking** — [`rank::rank`] with multiple tie-breaking strategies
9//! - **Correlation** — [`correlation::pearson`], [`correlation::spearman`],
10//!   [`correlation::CorrelationMatrix`]
11//! - **Hypothesis testing** — [`testing::t_test_one_sample`],
12//!   [`testing::t_test_two_sample`], [`testing::mann_whitney_u`]
13//! - **Multiple testing correction** — [`correction::bonferroni`],
14//!   [`correction::benjamini_hochberg`]
15//! - **Distributions** — [`distribution::Normal`], [`distribution::Poisson`],
16//!   plus numerical helpers [`distribution::erf`], [`distribution::ln_gamma`],
17//!   [`distribution::betai`]
18//!
19//! # Example
20//!
21//! ```
22//! use cyanea_stats::descriptive::describe;
23//!
24//! let data = [2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0];
25//! let stats = describe(&data).unwrap();
26//! assert_eq!(stats.count, 8);
27//! assert!((stats.mean - 5.0).abs() < 1e-10);
28//! ```
29
30pub mod bayesian;
31pub mod combinatorics;
32pub mod correction;
33pub mod correlation;
34pub mod descriptive;
35pub mod diffexpr;
36pub mod distribution;
37pub mod diversity;
38pub mod enrichment;
39pub mod effect_size;
40pub mod multivariate;
41pub mod normalization;
42pub mod null_model;
43pub mod ordination;
44pub mod popgen;
45pub mod rank;
46pub mod reduction;
47pub mod survival;
48pub mod testing;
49
50pub use bayesian::{Beta, Dirichlet, Gamma, NormalConjugate};
51pub use combinatorics::{
52    binomial, combinations, factorial, ln_binomial, ln_factorial, ln_multinomial, ln_permutations,
53    multinomial, permutations, Combinations,
54};
55pub use correction::CorrectionMethod;
56pub use correlation::CorrelationMatrix;
57pub use descriptive::DescriptiveStats;
58pub use diffexpr::{DeGeneResult, DeMethod, DeResults, VolcanoPoint};
59pub use enrichment::{
60    GeneSet, GoAnnotation, GoEnrichmentConfig, GoEnrichmentResult, GoNamespace, GoTerm, GseaResult,
61    OraResult,
62};
63pub use distribution::{
64    Binomial, ChiSquared, Distribution, FDistribution, NegativeBinomial, Normal, Poisson,
65};
66pub use popgen::{
67    AlleleFrequencies, DiversityStats, FstMethod, FstResult, HweResult, LdResult, TajimaD,
68};
69pub use rank::RankMethod;
70pub use survival::{CoxPhResult, KmResult, KmStep, LogRankResult};
71pub use testing::TestResult;
72pub use diversity::{
73    alpha_diversity, alpha_rarefaction, bray_curtis, bray_curtis_matrix, chao1, hill_numbers,
74    jaccard, jaccard_matrix, rarefaction_curve, shannon_index, simpson_index, weighted_jaccard,
75    AlphaDiversity,
76};
77pub use multivariate::{
78    amova, anosim, bioenv, mantel_test, permanova, AmovaResult, AnosimResult, BioenvResult,
79    MantelResult, PermanovaResult,
80};
81pub use ordination::{
82    cca, nmds, pcoa, procrustes, rda, ConstrainedOrdinationResult, NmdsConfig, NmdsResult,
83    PcoaResult, ProcrustesResult,
84};