limma-rust 0.1.0

Pure-Rust port of the Bioconductor limma differential-expression package
Documentation
//! `limma` — a pure-Rust port of the Bioconductor **limma** package
//! (Linear Models for Microarray and RNA-seq Data), validated function by
//! function against limma 3.68.3 running on R 4.6.0.
//!
//! The crate has no BLAS/LAPACK, Python or R dependency at runtime: all linear
//! algebra and special functions are implemented in pure Rust (see [`linalg`]
//! and [`special`]), with distribution functions from `statrs`.
//!
//! The current scope is the statistical core of limma — `lmFit` (least
//! squares) -> `contrasts.fit` -> `eBayes` -> `topTable`/`topTableF` — with
//! further functions ported incrementally. See `README.md` for the per-function
//! status table. Microarray IO readers, plotting and annotation helpers are out
//! of scope for a pure-Rust port.

pub mod arrayweights;
pub mod auroc;
pub mod avereps;
pub mod batch;
pub mod beadcountweights;
pub mod bwss;
pub mod classifytestsf;
pub mod combine;
pub mod contrasts;
pub mod cumoverlap;
pub mod decidetests;
pub mod detectionpvalues;
pub mod diffsplice;
pub mod dups;
pub mod ebayes;
pub mod fit;
pub mod fitgamma;
pub mod fitmixture;
pub mod genas;
pub mod geneset;
pub mod glsseries;
pub mod io;
pub mod linalg;
pub mod logsumexp;
pub mod lowess;
pub mod ma3x3;
pub mod modelmatrix;
pub mod mrlm;
pub mod neqc;
pub mod norm;
pub mod normexp;
pub mod normwithin;
pub mod optim;
pub mod poolvar;
pub mod predfcm;
pub mod printtipweights;
pub mod propexpr;
pub mod proptruenull;
pub mod qqt;
pub mod rng;
pub mod selectmodel;
pub mod sepchannel;
pub mod special;
pub mod splines;
pub mod toptable;
pub mod treat;
pub mod tricube;
pub mod voom;
pub mod weightedmedian;
pub mod weights;
pub mod wsva;
pub mod zscore;
pub mod zscorehyper;

pub use arrayweights::{
    array_weights, array_weights_gene_by_gene, array_weights_prwts_reml, array_weights_quick,
};
pub use auroc::auroc;
pub use avereps::{avearrays, avereps};
pub use batch::remove_batch_effect;
pub use beadcountweights::{bead_count_weights, BeadCountWeights, BeadDispersion};
pub use bwss::{bwss, bwss_matrix, Bwss};
pub use classifytestsf::{classify_tests_f, classify_tests_fstat};
pub use combine::make_unique;
pub use contrasts::{contrasts_fit, make_contrasts};
pub use cumoverlap::{cum_overlap, CumOverlap};
pub use decidetests::{
    classify_tests_p, decide_tests, decide_tests_pvalues, p_adjust, Adjust, DecideMethod,
    TestResults, TestResultsSummary,
};
pub use detectionpvalues::detection_p_values;
pub use diffsplice::{diff_splice, top_splice, DiffSplice, SpliceSort, SpliceTest, TopSpliceRow};
pub use dups::{avedups, duplicate_correlation, uniquegenelist, unwrapdups, DupCorOutput};
pub use ebayes::ebayes;
pub use fit::{is_fullrank, lmfit, lmfit_weighted, non_estimable, MArrayLM};
pub use fitgamma::fit_gamma_intercept;
pub use fitmixture::{fitmixture, FitMixture};
pub use genas::{genas, Genas, GenasSubset};
pub use geneset::{
    camera, camera_pr, contrast_as_coef, fry, gene_set_test, ids2indices, inter_gene_correlation,
    mroast, rank_sum_test_with_correlation, roast, romer, top_romer, wilcox_gst, Alternative,
    CameraResult, ContrastAsCoef, Direction, FryResult, FrySort, MroastRow, Roast,
    RomerAlternative, RomerRow, RomerStatistic,
};
pub use glsseries::gls_series;
pub use linalg::block_diag;
pub use logsumexp::{logcosh, logsumexp};
pub use lowess::{loess_fit, weighted_lowess, LoessFit, WeightedLowess};
pub use ma3x3::{ma3x3_matrix, ma3x3_spottedarray, Ma3x3Fun};
pub use modelmatrix::{model_matrix, unique_targets, ModelMatrix, ModelParam};
pub use mrlm::mrlm;
pub use neqc::{nec, neqc, normexp_fit_control, normexp_fit_detection_p};
pub use norm::{
    normalize_between_arrays, normalize_cyclic_loess, normalize_median_abs_values,
    normalize_median_values, normalize_quantiles, CyclicMethod, NormalizeMethod,
};
pub use normexp::{
    background_correct_matrix, normexp_fit_saddle, normexp_signal, BackgroundMethod, NormexpFit,
};
pub use normwithin::{
    ma_from_rg, normalize_within_arrays, rg_from_ma, PrinterLayout, WithinArrayMethod,
};
pub use optim::{nelder_mead, nelder_mead_with, NelderMead};
pub use poolvar::{pool_var, PoolVar};
pub use predfcm::pred_fcm;
pub use printtipweights::printtip_weights;
pub use propexpr::propexpr;
pub use proptruenull::{convest, prop_true_null, PropTrueNullMethod};
pub use qqt::{qqf, qqt};
pub use rng::{qnorm, RRng};
pub use selectmodel::{select_model, SelectCriterion, SelectModelResult};
pub use sepchannel::{design_i2a, design_i2m, exprs_ma, lmsc_fit};
pub use toptable::{p_adjust_bh, top_table, top_table_f, top_treat, SortBy, TopRow, TopRowF};
pub use treat::treat;
pub use tricube::tricube_moving_average;
pub use voom::{
    choose_lowess_span, voom, voom_with_quality_weights, vooma, vooma_by_group, vooma_lm_fit,
    VoomOutput, VoomQualityWeights, VoomaByGroupOutput, VoomaLmFit, VoomaOutput,
};
pub use weightedmedian::weighted_median;
pub use weights::{as_matrix_weights, modify_weights};
pub use wsva::wsva;
pub use zscore::{t_zscore, zscore_from_log_tails, zscore_gamma, zscore_t, ZscoreTMethod};
pub use zscorehyper::zscore_hyper;