pylimma - attribution notice
============================

This file records the upstream projects whose code or algorithms pylimma
ports. Copyright and licence terms are in LICENSE. Citation guidance is
in README.md.

R limma upstream
----------------

  Project:    limma
  Maintainer: Gordon Smyth <smyth@wehi.edu.au>
  URL:        https://bioinf.wehi.edu.au/limma/
  Bioconductor: https://bioconductor.org/packages/limma/
  Licence:    GPL (>=2)

R limma contributors (as listed in the upstream DESCRIPTION file):

  Gordon Smyth (creator, maintainer)
  Yifang Hu, Matthew Ritchie, Jeremy Silver, James Wettenhall,
  Davis McCarthy, Di Wu, Wei Shi, Belinda Phipson, Aaron Lun,
  Natalie Thorne, Alicia Oshlack, Carolyn de Graaf, Yunshun Chen,
  Goknur Giner, Mette Langaas, Egil Ferkingstad, Marcus Davy,
  Francois Pepin, Dongseok Choi, Charity Law, Mengbo Li, Lizhong Chen.

Other R packages whose algorithms pylimma also ports
----------------------------------------------------

R limma calls into other CRAN/base R packages for some routines; pylimma
ports those algorithms directly rather than depending on a Python wrapper
for R. All are GPL-compatible with pylimma's GPL-3.0-or-later licence.

  MASS (https://CRAN.R-project.org/package=MASS)
    Used in:    pylimma/lmfit.py mrlm()  (IRLS / Huber M-estimation)
    Licence:    GPL-2 | GPL-3
    Copyright:  Brian Ripley [aut, cre, cph], Bill Venables [aut, cph]
    Reference:  Venables, W. N. & Ripley, B. D. (2002). Modern Applied
                Statistics with S, 4th ed., Springer.

  statmod (https://CRAN.R-project.org/package=statmod)
    Used in:    pylimma/dups.py duplicate_correlation() (mixedModel2Fit,
                                                         glmgam.fit)
                pylimma/utils.py logmdigamma()
    Licence:    GPL-2 | GPL-3
    Copyright:  Gordon Smyth [cre, aut], Lizhong Chen [aut]
    Reference:  Smyth, G. K. (2005). Numerical integration. In Encyclopedia
                of Biostatistics, 2nd ed.

  splines (base R, https://www.R-project.org/)
    Used in:    pylimma/squeeze_var.py _natural_spline_basis() - matches R's
                splines::ns() output (B-spline implementation re-derived
                from de Boor / Wood textbook treatment, not ported from R
                splines C source).
    Licence:    GPL-2 (part of R)
    Copyright:  R Core Team; original splines code by Douglas M. Bates and
                William N. Venables.

  affy (https://bioconductor.org/packages/affy)
    Used in:    pylimma/normalize.py normexp_fit(method="rma") ports
                affy::bg.parameters (kernel-density-based RMA background
                parameter estimation). For R-side fixture regeneration,
                the affy::bg.parameters function is vendored verbatim at
                tests/fixtures/affy_bg_parameters.R so the parity script
                can run without an affy install.
    Reference commit: b2e5a6675a642f692a54fcee94e7485bac03390c (affy 1.89.0)
    Licence:    LGPL (>= 2.0); see
                https://bioconductor.org/packages/release/bioc/html/affy.html.
    Copyright:  Rafael A. Irizarry, Laurent Gautier, Benjamin Milo Bolstad,
                Crispin Miller, and contributors.

  vsn (https://bioconductor.org/packages/vsn)
    Used in:    pylimma/normalize.py normalize_vsn() ports vsn::vsnMatrix
                (variance-stabilising normalisation via maximum profile
                likelihood with LTS robustification, single-stratum,
                affine-calibration matrix path) called by R limma's
                normalizeVSN.default. The L-BFGS-B optimisation in
                vsn/src/vsn2.c is reimplemented via
                scipy.optimize.minimize.
    Licence:    Artistic-2.0; see
                https://bioconductor.org/packages/release/bioc/html/vsn.html.
    Copyright:  Wolfgang Huber [aut, cre], Anja von Heydebreck [aut],
                Dennis Kostka, David Kreil, Hans-Ulrich Klein,
                Robert Gentleman, Deepayan Sarkar, Gordon Smyth (ctb).
    Reference:  Huber, W., von Heydebreck, A., Sueltmann, H., Poustka, A.,
                Vingron, M. (2002). Variance stabilization applied to
                microarray data calibration and to the quantification of
                differential expression. Bioinformatics 18, S96-S104.

Per-file attribution
--------------------

Each ported module under pylimma/pylimma/*.py carries a header that lists
the specific R source files from which it was ported and the contributors
named in those files' R header comments, with the year ranges from the
"Created" / "Last modified" comment lines. Where a module ports algorithms
from R packages other than limma (MASS, statmod, base R splines), that
upstream is also credited in the per-file header.

Bundled benchmark datasets
--------------------------

pylimma redistributes four publicly available biological datasets under
licences compatible with GPL-3.0-or-later in the ``data/`` directory.
See ``data/DATA_PROVENANCE.md`` for the full dataset table with upstream
papers, sources, and licences.
