Conditional Independence Testing with Cumulative Distribution Functions
Overview
Complex hypothesis testing through conditional cumulative distribution function estimation. Method is detailed in: Gauthier M, Agniel D, Thiébaut R & Hejblum BP (2021). "Distribution-free complex hypothesis testing for single-cell RNA-seq differential expression analysis", bioRxiv doi:10.1101/2021.05.21.445165.
perm_cont():- now draws **without replacement**, so the conditional permutation
X_star is a genuine permutation of X (rather than a re-sample) and
preserves X's empirical marginal distribution.
Because this changes both the RNG stream and the null distribution, permutation
p-values from cit_perm(),cit_multi() and cit_gsa() will differ from
previous versions. Of note, previous scheme could be anti-conservative, and
some limiting cases were badly handled.
- now uses QR decomposition through
.lm.fit()to be robust to badly scaled
covariates (eg library sizes).
- now weights draws with a **Gaussian kernel** on the fitted
values (bandwidth sd(fit) * n^(-1/3)) rather than previous
Show all changes in 1.1.0Hide the rest of the changes in 1.1.0
1/(difference in fitted values)^2 (each observation effectively drew
from its two nearest neighbours whatever the sample size, leading to bad
calibration of the test with too many false positives). This also changes
the null distribution.
space_y = TRUEnow uses the same y-threshold grid across all tests:
cit_asymp(), and cit_gsa() adopt cit_perm()'s upper endpoint max(Y)
instead of the second-largest observation. Asymptotic results will be different
than previously with defaults, although calibration remains unchanged.
- similarly,
ccdf()now uses the same y-threshold grid as the tests when
space_y = TRUE (starting at the smallest non-zero observation rather than
the second smallest). CCDF values from ccdf(space_y = TRUE) therefore differ
from previous versions (the default space_y = FALSE is unaffected). It also
no longer errors when all Y are equal.
- first CRAN release
From NEWS.md in the release
Install
Health
- OK13 OKNow
- OK7 OK2026-08-22
Documentation
- Help pages
- 11 (1 internal)includes a package overview page
- Examples that run
- 100%10 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 89%
- Return-value docs
- 100%
- Help pages citing references
- 55%
Downloads
Repository
- PRs merged (all time)
- 50%
- Median days to close, 50 most recently updated closed issues
- not measured
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Releases over time
Issues over time
Commits over time
7 development-tooling and community-health practices detected across 3 families in the upstream repository
Checks run against github.com/sistm/citcdf on 2026-10-18.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-10-09 · The repository has a site deploy workflow
pkgdown site last built 2026-10-09
Dependencies
Code & Tests
People & History
- 1.1.0Latest2026-08-21 · current release
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-08-21
- Total releases
- 1 / 1 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.1
- Download size
- 539 KB
Cite
Cite this package
Run in R for the authors' entry:
citation("citcdf")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.1101/2021.05.21.445165.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.