- Composite index unified to the |PCC| convention.
cDNB()andtDNB()now score modules with mean absolute correlation, matching the original DNB definition of Chen et al. (2012):CI = mean(SD_in) * mean(|PCC_in|) / mean(|PCC_out|). The previous signed implementation could return negative, unstable CI values. Numerical results fromcDNB()/tDNB()will differ from 2.0.0 (and are more stable);tDNB()is unaffected in practice because its TOM is non-negative.
- Module scoring in
cDNB()/tDNB()rewritten with a complement identity (sum|PCC(in,out)| = sum(rowSums|A|[in]) - sum|A[in,in]|) and one-time precomputation of|A|and its row sums, giving ~19x speedup on realistic loads (3000 genes x 6000 modules: 34s -> 1.8s).
- Large gene sets that overflow the C stack during hierarchical clustering now raise an actionable message (pre-filter to the top variable/DE genes) instead of a cryptic "C stack usage ... too close to the limit".
- Unified, actionable input validation across all methods: empty states,
a missing
"ref"state, and empty PPI/case sets are reported clearly. nCoresdefault no longer goes negative on machines with few cores (SSPN1/SSPN2/SLE/sNMB): nowmax(1, detectCores() - 1).- Progress messages unified to
message()so they can be silenced withsuppressMessages(). - All methods now expose unified
DNB.genesandDNB.scorefields (existing method-specific field names are kept as aliases). - TOM construction (
calSFNetforCorMatrix) now follows the standard Zhang & Horvath form with a guarded denominator, clamping to[0, 1]and unit self-overlap; numerical results fortDNB()are unchanged. - Removed the unused, inefficient
fast_module_score_cppC++ kernel. - Fixed a crash in
SSPN1()/SSPN2()whenref.sampleswas passed as numeric indices. - Aligned the C++ fast paths with the R implementations and original
references: the SSPN Z-score divides by
(1 - r^2)/(n - 1)(without the spurious square root), andfast_cor_pval_cppuses the Student t distribution rather than a normal approximation.
- Added
tDNB()function implementing topological DNB analysis using scale-free network topology - Implemented C++ acceleration for correlation analysis and module scoring via Rcpp (2-20x speedup)
- Added built-in protein-protein interaction networks for human (
ppi_h) and mouse (ppi_m) from STRING database - New helper functions:
fast_cor_cpp(),fast_cor_pval_cpp(),fast_module_score_cpp(),fast_bh_adjust()
- Unified API across all seven DNB methods
- Enhanced documentation with comprehensive vignette
- Added support for single-cell RNA-seq and spatial transcriptomics data
- Improved memory efficiency for large-scale datasets
- Fixed correlation calculation for samples with zero variance
- Resolved edge cases in module detection with small sample sizes
- Implemented six DNB methods: cDNB, LcDNB, LDNB, MDNB, TSNMB, TSLE
- Support for bulk RNA-seq data analysis
- Basic documentation and examples