Releases: UCD-BDLab/BioNeuralNet
Releases · UCD-BDLab/BioNeuralNet
v1.3.0
[1.3.0] - 2026-04-01
Network Module (bioneuralnet.network)
- New dedicated module: Network construction and analysis moved from
bioneuralnet.utilstobioneuralnet.network. - Renamed construction functions:
gen_similarity_graph->similarity_network,gen_correlation_graph->correlation_network,gen_threshold_graph->threshold_network,gen_gaussian_knn_graph->gaussian_knn_network. NetworkAnalyzer: Moved tobioneuralnet.network; GPU-accelerated via PyTorch; addedhub_analysis,cross_omics_analysis,edge_weight_analysis,find_strongest_edges,degree_distribution,clustering_coefficient_gpu,connected_components.auto_pysmccnet: Phenotype-driven network construction via SmCCNet 2.0; supports CCA and PLS modes, now fully implemented in native Python, simplifying user experience and removing the R dependency.
Utils Module
impute_omics/impute_omics_knnrenamed: Nowimpute_simpleandimpute_knn.normalize_omicsrenamed: Nownormalize; supports"standard","minmax","log2".beta_to_mrenamed: Nowm_transform.- New
feature_selectionsubmodule:laplacian_score,mad_filter,pca_loadings,correlation_filter,importance_rf,variance_threshold,top_anova_f_features. - New
datafunctions:data_stats,sparse_filter,nan_summary,zero_summary. clean_internal: New cleaning function with configurable NaN threshold.
DPMON Enhancements
tune_trials: Already introduced in 1.2.2; now fully documented.ae_architecture: New parameter; supports"original"and"dynamic"autoencoder architectures.correlation_mode: New parameter; supports"abs_pearson"(default) and"adaptive"node feature computation.- Inner CV tuning: Ray Tune now performs epoch-synchronized inner k-fold cross-validation across all trials.
Datasets
- PAAD removed from built-in datasets.
- Dataset size reduction: BRCA, LGG, and KIPAN datasets significantly reduced from ~4,000 omics features per dataset to 700 (400 methylation, 200 mRNA, 100 miRNA) using Laplacian Score filtering, replacing the previous ANOVA-F & Random Forest intersection strategy. This standardization was necessary to stay within the PyPI 100 MB package size limit (v1.2.2 reached 97.9 MB) and results in substantially faster installs and downloads for users.
Documentation
- Data Decision Framework: New comprehensive stage-by-stage parameter reference (
quick_start/data_framework.rst). - Quick Start notebooks: New home for end-to-end
Quick_Start.ipynbandquick_start_bio.rst. - Subgraph page: Updated case studies from KIPAN to TCGA-LGG and ROSMAP with full algorithm documentation.
network.rst: New dedicated page for the network module.utils.rst,datasets.rst,index.rst,subgraph.rst: Major updates throughout.- README: GitHub readme updated to reflect all API changes, new images, and corrected function names.
Removed
gen_similarity_graph,gen_correlation_graph,gen_threshold_graph,gen_gaussian_knn_graphfrombioneuralnet.utils.graph_analysis,repair_graph_connectivity,find_optimal_graphfrombioneuralnet.utils(superseded byNetworkAnalyzerandnetwork_search).impute_omics,impute_omics_knn,normalize_omics,beta_to_m(renamed, see above).
Testing
- Test suite updated to align with new
networkmodule and renamed utils functions.
pasted from Changelog
BioNeuralNet v1.2.2
[1.2.2] - 2025-12-29
Documentation
- Updated Index: index now includes tables with examples for feature selection.
- Getting Started for Biologists: An updated page which leverages google colab for a more user friendly walkthrough of BioNeuralNet.
Ray Tune Patch
- Ray tune: Updated from
ray[tune,train]>=2.46.0toray[tune,train]>=2.46.0, <2.53.0due to an recent release on December 20, 2025 which breaks some functionality. This temporately fixes the issue.
New DPMON param: tune_trails
- This parameter gives users the ability to dictate how many ray tune trials to run. This works alongside the Dynamic Sampling from
v1.2.1.
copied from CHANGELOG.md
v1.2.1
BioNeuralNet v.1.2.1
Copied from CHANGELOG
Dependencies
- Strict Versioning: Enforced specific version requirements to avoid conflicts with external libraries.
-pandas>=2.2.3
-numpy>=1.26.4
-scipy>=1.13.1
-matplotlib>=3.10.3
-scikit-learn>=1.6.1
-statsmodels>=0.14.4
-networkx>=3.4.2
-python-louvain>=0.16
-pydantic>=2.5
-ray[tune,train]>=2.46.0
Improvements and Fixes
- DPMON Dynamic Sampling: Added support for dynamic sampling in Ray Tune trials.
- The system now automatically handles execution errors (e.g., Out of Memory (OOM), segmentation faults) by iteratively halvingnum_trials(starting at 50). It will attempt to recover up to 5 times before aborting.
Documentation
- Installation Guide: Significantly expanded the installation guide to include CUDA versioning details and specific instructions for different Operating Systems.
- System Requirements: Added a dedicated section outlining system prerequisites.
- General Updates: performed a major overhaul of the documentation to align with recent architectural changes.
- README: Updated
README.mdto synchronize withindex.rstand reflect the latest library state.
Testing
- Test Suite Restoration: Re-enabled and patched all unit tests to ensure compatibility with the new namespace hierarchy and utility structures.
API and Architecture Refactoring
[1.2.0] - 2025-11-23
API and Architecture Refactoring (copied from CHANGELOG.md
Namespace Hierarchy Overhaul: Transitioned from a flat namespace to a hybrid hierarchical structure to enhance modularity and prevent namespace pollution.
Core Classes: DPMON, GNNEmbedding, SubjectRepresentation, SmCCNet, and DatasetLoader remain accessible at the top level (e.g., bnn.DPMON).
Utilities and Metrics: Functional tools are now scoped to their respective submodules (e.g., bnn.metrics.plot_network, bnn.utils.preprocess_clinical).
Utils Module Restructuring: Decomposed the monolithic utils module into specialized submodules for improved maintainability:
utils.data: Contains summary statistics functions (e.g., variance_summary).
utils.preprocess: Contains data transformation functions (e.g., impute_omics, normalize_omics).
utils.reproducibility: Dedicated module for seeding functions (set_seed).
New Features
Graph Engineering Module (graph_tools): Introduced a new module for the diagnosis and repair of network topology issues.
repair_graph_connectivity: Implemented an algorithm to reconnect fragmented network components (islands) to the global network using eigenvector centrality hubs or omics-driven correlation.
find_optimal_graph: Added an AutoML-style search function that benchmarks various graph construction strategies (Gaussian, Correlation, Threshold) using a structural proxy task to optimize downstream stability.
graph_analysis: Added diagnostic utilities to log topological metrics (clustering coefficient, average degree) and identify isolated subgraphs broken down by omics modality.
DPMON Enhancements: Expanded the NeuralNetwork backbone to support multiple dimensionality reduction strategies beyond the standard AutoEncoder.
Linear Projection: Added ScalarProjection, utilizing a linear layer to map embeddings to feature weights.
MLP Projection: Added MLPProjection, utilizing a non-linear Multilayer Perceptron for complex feature weighting.
Dataset Loaders:
Implemented functional loaders (load_brca, load_kipan, load_lgg, load_paad, load_monet, load_example) to provide immediate access to data dictionaries, aligning with scikit-learn conventions.
Added __getitem__ support to the DatasetLoader class for direct key access (e.g., loader['rna']).
Data Standardization
BRCA Clinical Update: Removed 15 duplicated columns from the BRCA clinical dataset, reducing the feature dimensionality from 118 to 103 to ensure data uniqueness.
Dataset Renaming:
Renamed the synthetic dataset example1 to example.
Renamed gbmlgg to lgg (Brain Lower Grade Glioma).
Target Variable Update: Updated the target variable for the lgg dataset from 'histological type' to 'vital_status' to better align with prognostic prediction tasks.
Key Standardization: Removed redundant _data suffixes from dataset dictionary keys (e.g., monet['mirna_data'] is now monet['mirna']).
Dataset Specifications: Updated documentation to explicitly define the dimensions (samples × features) for all included datasets:
BRCA: miRNA (769, 503), Target (769, 1), Clinical (769, 103), RNA (769, 2500), Meth (769, 2203).
LGG: miRNA (511, 548), Target (511, 1), Clinical (511, 13), RNA (511, 2127), Meth (511, 1823).
PAAD: CNV (177, 1035), Target (177, 1), Clinical (177, 19), RNA (177, 1910), Meth (177, 1152).
KIPAN: miRNA (658, 472), Target (658, 1), Clinical (658, 19), RNA (658, 2284), Meth (658, 2102).
Monet: Gene (107, 5039), miRNA (107, 789), Phenotype (106, 1), RPPA (107, 175), Clinical (107, 5).
Example: X1 (358, 500), X2 (358, 100), Y (358, 1), Clinical (358, 6).
Improvements and Fixes
Documentation: Refactored all docstrings across the library to adhere to strict Google Style formatting (Args/Returns) to ensure consistent API documentation generation.
Clustering:
Hybrid Louvain: Corrected the parameter tuning logic for k3 and k4 weights and refined the iterative refinement loop for identifying phenotype-associated subgraphs.
Correlated PageRank: Enhanced input validation to ensure proper alignment between graph nodes and omics features.
Removed
Metrics Evaluation: Removed the metrics.evaluation module. Its functionality has been consolidated into the metrics module or deprecated in favor of external validation workflows.
Left to Do
Errors: Online docs will be updated. on v1.2.1, package tests should pass once datasets get posted to pypi
v1.1.4
v1.1.3 Sync
v1.1.3 is now synced with PIPY and Zenodo.
Archival release for Bioinformatics manuscript
No changes have been mode to the code base other than linking Zenodo to GitHub account. This release is to test