Releases: asalavaty/influential
v2.3.1 is released on CRAN
Major updates
-
Substantially updated and optimized the
exirfunction for improved scalability, flexibility, and usability across bulk and single-cell omics datasets. -
Updated
exirto accept experimental data in multiple formats, including data frames, tibbles, matrices, sparse matrices, and Seurat objects. -
Updated the expected non-Seurat experimental data format for
exirto support the common omics layout, with features/genes in rows and samples/cells in columns. Internally,exirautomatically converts the input to the required analysis format. -
Replaced the previous
Condition_colnameworkflow with the more flexibleconditionargument. Theconditionargument can now be either a condition row/column name or a character/factor vector with the same order as the samples/cells in the input data. For Seurat objects,conditioncan be the name of a metadata column. -
Added Seurat object support to
exirvia the newassayandlayerarguments. -
Added the
Exptl_data_typeargument to specify whether the experimental data are"bulk"or"sc", enabling data-type-aware preprocessing, normalization, pseudo-sampling, and warnings. -
Restored and redesigned the
normalizeargument. For bulk count-like data,normalize = TRUEnow applies TMM normalization followed by logCPM transformation usingedgeR. For single-cell data, normalization is applied after pseudo-bulk aggregation when pseudo-sampling is enabled. -
Added pseudo-sampling/pseudo-bulking support to
exirthrough the newpseudo_sampleandpseudo_samples_per_grouparguments. This is particularly useful for large datasets and single-cell RNA-seq data. -
Implemented condition-stratified, non-overlapping pseudo-sampling. For bulk data, pseudo-samples are generated by averaging normalized expression values within condition-specific groups. For single-cell data, pseudo-bulk samples are generated by summing raw counts within condition-specific groups followed by TMM/logCPM normalization using
edgeR. -
Added the
Exptl_data_size_checkargument to optionally prompt users to consider pseudo-sampling when the number of samples/cells is large. -
Added conservative feature filtering to
exirthrough the newfeature_filter,min_feature_prevalence,min_feature_total,min_feature_variance, andalways_keep_diff_featuresarguments. This filter removes uninformative features with insufficient prevalence, total signal, or variance without performing highly variable gene selection. Features inDiff_dataandDesired_listcan be forced to remain in the analysis.
Performance improvements
-
Optimized
exirdata preparation to delay dense conversion of sparse input data until after optional pseudo-sampling and feature filtering, reducing memory pressure for large omics datasets. -
Optimized PCA in
exirby replacing full PCA with truncated PCA usingirlba::prcomp_irlbafor the first principal component. -
Optimized the correlation table handling in
exirto avoid unnecessary full-table duplication while preserving the original association analysis logic and output. -
Optimized graph reconstruction in
exirby removing unintended self-loops while preserving multiple edges. -
Optimized neighbourhood score calculation in
exirby replacing row-by-rowigraph::neighbors()calls with sparse adjacency matrix multiplication. -
Vectorized row-wise scoring and classification operations in
exir, including primitive driver score calculation and driver/biomarker type assignment. -
Optimized the extraction of first- and second-order associated drivers for mediator tables by replacing repeated regex-based
grep()searches with batched neighbourhood retrieval and set-based matching. -
Optimized several IVI-related routines while preserving output consistency with the original implementation.
-
Optimized
clusterRankby avoiding repeated degree calculations and reducing redundant graph traversal. -
Optimized
lh_indexandh_indexby precomputing repeated neighbourhood-size and H-index components where possible. -
Optimized
neighborhood.connectivityby precomputing first-order neighbourhood sizes and reducing repeated calls toigraph::neighborhood.size. -
Optimized
collective.influencewhile preserving identical output.
Usability and documentation
-
Replaced older verbose output in
exirwith cleanercli-based progress and stage reporting. -
Updated error and warning messages in the
exirworkflow usingclifor clearer user-facing feedback. -
Updated the ExIR vignette to document the new input formats, data orientation, condition handling, normalization options, pseudo-sampling workflow, Seurat support, and conservative feature filtering.
-
Updated
exirdocumentation to clarify recommended input requirements for bulk and single-cell data. -
Updated
exirdocumentation to clarify that TMM/logCPM normalization is appropriate for many bulk RNA-seq count datasets but may not be appropriate for all omics data modalities. -
Updated examples for the new
condition,Exptl_data_type,Exptl_data_orientation,normalize,pseudo_sample, andfeature_filterworkflows.
Dependency updates
-
Added
edgeRfor TMM/logCPM normalization of count-like bulk data and pseudo-bulked single-cell data. -
Added use of
clifor improved messages and progress reporting. -
Added use of
Matrixutilities for sparse matrix handling and efficient graph/neighbourhood calculations. -
Added optional Seurat object support through
SeuratObject.
Bug fixes and minor improvements
-
Improved handling of missing values in experimental data during preprocessing.
-
Improved detection of count-like, sparse, bulk-like, and single-cell-like input data characteristics.
-
Improved validation of Seurat assays, layers, and metadata-derived condition labels.
-
Improved validation of pseudo-sampling settings, including condition-specific sample/cell counts.
-
Improved memory cleanup after full correlation table reduction in
exir. -
Improved consistency of output table preparation after vectorized score/type calculations.
v2.3.0 is released on CRAN
-
Added first-order and second-order associated drivers of mediators to
the final mediator result tables. -
Implemented matrix-based linear algebra formulation and C++ code in
thefcorfunction and consequently the association analysis module
of the functionexir, resulting in a highly optimized and
significantly faster association analysis. -
Removed the data.table dependency, as it is no longer required.
-
Enabled parallel multi-core processing across multiple components of
the functionexir, including the supervised machine learning module. -
The function
exiris optimized. It now automatically handles NA
values of the input experimental data and convert them to zero. -
Debug the function
cent_network.vis.
v2.2.7 is released on CRAN Latest
The README file is updated.
DESCRIPTION of the package is updated.
New packages including foreach, and doParallel are added to the Imports section of the DESCRIPTION.
ExIR function, exir, is optimized by providing access to several cores. Also, its documentation is updated.
IVI function, IVI, is optimized by providing access to several cores. Also, its documentation is updated.
LH-index function, clusterRank, is optimized by providing access to several cores. This also significantly speeds up the ivi function. Also, its documentation is updated.
LH-index function, lh_index, is optimized by providing access to several cores. This also significantly speeds up the ivi function. Also, its documentation is updated.
A verbose argument is added all centrality measure functions and their corresponding documentations are updated as well.
The fcor function, fcor, as well as its documentation are optimized and updated.
The documentation of the SIRIR function, sirir, is updated.
Hubness score function, hubness.score, is debugged and optimized.
Spreading score function and its documentation, spreading.score, is debugged and optimized.
IVI function, ivi, is debugged and optimized.
IVI from indices function, ivi.from.indices, is debugged and optimized.
Collective Influence function, collective.influence, is optimized.
The documentation of the Collective Influence function, collective.influence, is updated.
v2.2.6 is released on CRAN
ExIR Shiny app is updated according to the ExIR function.
ExIR visualization function, exir.vis, is optimized.
The package vignettes are updated and the fcor function described and exemplified in the vignettes.
The ExIR function is optimized (corrected for proper Spearman correlation analysis and added Mutual rank as a measure for filtering top correlations) and speeded up (using the data.table package).
A function named fcor is added to the package for super-fast correlation analysis of large datasets and simultaneous P-value and Mutual Rank calculations.
v2.2.5 is released on CRAN
Update the ExIR function.
v2.2.4 is released on CRAN
Update the ExIR vis figure.
v2.2.3 is released on CRAN
The ExIR shiny app is debugged and updated.
The ExIR function is debugged and updated.
v2.2.2 is released on CRAN
The DESCRIPTION file is updated.
The function ExIR, as well as the ExIR shiny app, are debugged.
Documentations of some functions are updated.
v2.2.1 is released on CRAN
The DESCRIPTION file is updated.
The name of the function for running shiny apps is changed to runShinyApp.
Shiny apps are updated in the package for local use.
Documentations of several functions are updated.
The Vignettes are updated.
The Read Me file is updated.
v2.2.0 is released on CRAN
Update package vignettes.
Documentation on how to access ExIR shiny app is added to the Read Me file, vignettes, and the corresponding functions’ documentations.
The ExIR shiny app is added to the package.
A Shiny app is developed for the running the ExIR model and visualization of its output.
Add the comp_manipulate function for the simulation of gene knockout and up-regulation.
Debug the function IVI.
Debug the function ExIR.
Add dependence to R package janitor for the correction of illegal characters in feature names.
Documentation on how to access IVI shiny app is added to the Read Me file, vignettes, and the corresponding functions’ documentations.
The IVI shiny app is added to the package.
A Shiny app is developed for the calculation of IVI as well as IVI-based network visualization.
The dependence of the function ExIR on the package reshape2 is removed.
The function ExIR is debugged.