Published July 7, 2026 | Version v1.3.0

stefpeschel/NetCoMi: NetCoMi 1.3.0

Authors/Creators

Description

Major release with new functionalities and a few bug fixes.

New features

  • SpiecEasi is now available from Bioconductor and NetCoMi depends on SpiecEasi (>= 2.0.0). Users no longer need to install SpiecEasi from GitHub.

  • In netConstruct(): NetCoMi's zero replacement methods are now also applied when measure = "spieceasi". Normalization is still ignored by NetCoMi for this measure and should be controlled via SpiecEasi's own norm.params argument passed through measurePar.

  • In netConstruct(): The pseudo-count zero replacement method can now be configured via zeroPar. Set zerosOnly = TRUE to replace only zeros, and set random = TRUE together with zerosOnly = TRUE to replace zeros by random values sampled uniformly between zero and the pseudo count. The former zeroMethod = "pseudoZO" option is soft-deprecated and maps to zeroMethod = "pseudo", zeroPar = list(zerosOnly = TRUE). The legacy alias now uses the intended zeros-only behavior.

  • In netConstruct(): New association measure "rhoshrink" available. The method estimates proportionality using shrinkage covariance estimation as proposed by Badri et al. (2020), following code from the accompanying NormCorr manuscript repository.

  • In netConstruct(): New association measure "corshrink" available, which estimates correlations using the Schäfer-Strimmer shrinkage estimator implemented in corpcor::cor.shrink().

  • In netAnalyze(): The normEigen argument is active again. The default normEigen = TRUE keeps the current max-normalized eigenvector centrality, while normEigen = FALSE returns eigenvector centralities with Euclidean norm one, corresponding to igraph's former scale = FALSE behavior.

  • In netCompare() and diffnet(): Permutation p-values can now optionally be refined with the permApprox package by setting refinePermPvals = TRUE. Additional arguments for permApprox::perm_approx() can be passed via permApproxParams. In netCompare(), this also includes p-values from the adjusted Rand index test.

  • In diffnet(): New argument adjustNonzeroOnly can restrict multiple testing adjustment to taxa pairs with a non-zero sparsified association in at least one of the two networks. A new summary.diffnet() method summarizes association ranges, edge counts, differential associations, and p-values.

  • In diffnet(): New method "threshold" available for identifying differential associations by thresholding the absolute differences between association matrices. The threshold can be set via the new argument diffThresh.

  • In plot.diffnet(): Calling plot() for a differential network without differential correlations now returns invisibly with a message instead of throwing an error.

  • In plot.diffnet(): New arguments nodeFilter and nodeFilterPar allow plotting a named subset of taxa, including when reusing a named layout matrix containing only those taxa.

  • In plot.diffnet(): Differential association strengths are now rescaled for plotting so weaker non-zero edges respond visibly to edgeWidth.

  • In plot.diffnet(): New argument legendEdgeWidth controls the width of edge lines shown in the legend.

  • In plot.diffnet(): The default edge colors were changed to c("#33A02C", "#2CB7B0", "#56B4E9", "#E69F00", "#D55E00", "#CC79A7", "#B2DF8A", "gray30", "#B0E2FF"). The colors correspond to associations in group 1 and group 2 in the following order: +|+, +|0, +|-, -|+, -|0, -|-, 0|+, 0|0, 0|-. For the discordant method, only sign-changing classes are colored; same-sign classes are shown in neutral gray. The legend is reduced to the subset of cases relevant to the plotted network. To use the previous coloring for Fisher's z-test, permutation tests, or threshold-based differential networks, pass edgeCol = c("chartreuse2", "chartreuse4", "cyan", "magenta", "orange", "red", "blue", "black", "purple") to plot(). To use the previous discordant coloring, pass edgeCol = c("black", "green", "blue", "orange", "red", "black", "aquamarine", "black", "hotpink").

  • In plot.diffnet(): Layout matrices with row names are now matched to the plotted taxa by name. This makes it possible to reuse a layout returned by plot.microNetProps() even if the differential network contains only a subset of the nodes.

  • New function plotGCM() for plotting the Graphlet Correlation Matrix (GCM) heatmaps from objects returned by netAnalyze(), calcGCM(), and calcGCD(). The gcmHeat argument in netAnalyze() is kept for backward compatibility, but new code should call plotGCM() explicitly.

  • In plotHeat(): The title and legend text sizes can now be adjusted more directly using the new titleCex and legendCex arguments.

Further changes

  • In createAssoPerm(), netCompare(), diffnet(), and the internal bootstrap tests used for sparsification: Parallel workers now load only the packages required by the selected association/dissimilarity measure and preprocessing settings. Suggested packages are no longer required merely because permutation or bootstrap computations are run in parallel.

  • In summary.microNetComp(): Very small p-values are now shown in scientific notation instead of being rounded to zero in the printed summary output.

  • In plotHeat() and print.GCD(): Very small p-values are now shown in scientific notation when they are printed.

  • In summary.microNetComp(): Centrality results can now be sorted either by decreasing absolute group difference (sortCentr = "absDiff", default) or by increasing unadjusted p-value (sortCentr = "pvalue").

Bug fixes

  • In summary.microNetComp(): Unadjusted centrality p-values are now always shown when permutation p-values are available. If multiple testing adjustment was applied in netCompare(), adjusted p-values are shown in an additional column instead of replacing the unadjusted p-values.

References

Badri M, Kurtz ZD, Bonneau R, Mueller CL (2020). Shrinkage improves estimation of microbial associations under different normalization methods. NAR Genomics and Bioinformatics, 2(4), lqaa100. doi: 10.1093/nargab/lqaa100.

Files

stefpeschel/NetCoMi-v1.3.0.zip

Files (22.3 MB)

Name Size Download all
md5:67b23708093442ac933bec68404f9be9
22.3 MB Preview Download

Additional details

Related works