Skip to content

Releases: asalavaty/influential

v2.3.1 is released on CRAN

10 Jun 23:36

Choose a tag to compare

Major updates

  • Substantially updated and optimized the exir function for improved scalability, flexibility, and usability across bulk and single-cell omics datasets.

  • Updated exir to 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 exir to support the common omics layout, with features/genes in rows and samples/cells in columns. Internally, exir automatically converts the input to the required analysis format.

  • Replaced the previous Condition_colname workflow with the more flexible condition argument. The condition argument 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, condition can be the name of a metadata column.

  • Added Seurat object support to exir via the new assay and layer arguments.

  • Added the Exptl_data_type argument to specify whether the experimental data are "bulk" or "sc", enabling data-type-aware preprocessing, normalization, pseudo-sampling, and warnings.

  • Restored and redesigned the normalize argument. For bulk count-like data, normalize = TRUE now applies TMM normalization followed by logCPM transformation using edgeR. For single-cell data, normalization is applied after pseudo-bulk aggregation when pseudo-sampling is enabled.

  • Added pseudo-sampling/pseudo-bulking support to exir through the new pseudo_sample and pseudo_samples_per_group arguments. 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_check argument to optionally prompt users to consider pseudo-sampling when the number of samples/cells is large.

  • Added conservative feature filtering to exir through the new feature_filter, min_feature_prevalence, min_feature_total, min_feature_variance, and always_keep_diff_features arguments. This filter removes uninformative features with insufficient prevalence, total signal, or variance without performing highly variable gene selection. Features in Diff_data and Desired_list can be forced to remain in the analysis.

Performance improvements

  • Optimized exir data 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 exir by replacing full PCA with truncated PCA using irlba::prcomp_irlba for the first principal component.

  • Optimized the correlation table handling in exir to avoid unnecessary full-table duplication while preserving the original association analysis logic and output.

  • Optimized graph reconstruction in exir by removing unintended self-loops while preserving multiple edges.

  • Optimized neighbourhood score calculation in exir by replacing row-by-row igraph::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 clusterRank by avoiding repeated degree calculations and reducing redundant graph traversal.

  • Optimized lh_index and h_index by precomputing repeated neighbourhood-size and H-index components where possible.

  • Optimized neighborhood.connectivity by precomputing first-order neighbourhood sizes and reducing repeated calls to igraph::neighborhood.size.

  • Optimized collective.influence while preserving identical output.

Usability and documentation

  • Replaced older verbose output in exir with cleaner cli-based progress and stage reporting.

  • Updated error and warning messages in the exir workflow using cli for 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 exir documentation to clarify recommended input requirements for bulk and single-cell data.

  • Updated exir documentation 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, and feature_filter workflows.

Dependency updates

  • Added edgeR for TMM/logCPM normalization of count-like bulk data and pseudo-bulked single-cell data.

  • Added use of cli for improved messages and progress reporting.

  • Added use of Matrix utilities 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

15 Feb 22:55

Choose a tag to compare

  • 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
    the fcor function and consequently the association analysis module
    of the function exir, 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 function exir, including the supervised machine learning module.

  • The function exir is 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

16 May 13:02

Choose a tag to compare

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

09 Aug 02:57

Choose a tag to compare

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

26 Jul 07:16

Choose a tag to compare

Update the ExIR function.

v2.2.4 is released on CRAN

01 Nov 06:08

Choose a tag to compare

Update the ExIR vis figure.

v2.2.3 is released on CRAN

18 Jul 04:37

Choose a tag to compare

The ExIR shiny app is debugged and updated.

The ExIR function is debugged and updated.

v2.2.2 is released on CRAN

03 May 01:11

Choose a tag to compare

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

25 Apr 07:24

Choose a tag to compare

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

18 Apr 09:50

Choose a tag to compare

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.