Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/).

## [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.0` to `ray[tune,train]>=2.46.0, <2.53.0` due 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`.

## [1.2.1] - 2025-11-30

### Dependencies
Expand Down Expand Up @@ -227,4 +239,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- **Bug Fixes**:
  - Resolved incorrect handling of `tune=True` in Hybrid Louvain.
  - Addressed inconsistencies in `GraphEmbedding` parameter parsing.
  - Fixed dataset loading issues in example scripts.
  - Fixed dataset loading issues in example scripts.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![Documentation](https://img.shields.io/badge/docs-read%20the%20docs-blue.svg)](https://bioneuralnet.readthedocs.io/en/latest/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17503083.svg)](https://doi.org/10.5281/zenodo.17503083)

## Welcome to BioNeuralNet 1.2.1
## Welcome to BioNeuralNet 1.2.2

![BioNeuralNet Logo](assets/LOGO_TB.png)

Expand Down
2 changes: 1 addition & 1 deletion bioneuralnet/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
* `utils`: Utilities for logging, reproducibility, graph generation, and data processing.
"""

__version__ = "1.2.1"
__version__ = "1.2.2"

# submodules to enable direct imports such as `from bioneuralnet import utils`
from . import utils
Expand Down
9 changes: 7 additions & 2 deletions bioneuralnet/downstream_task/dpmon.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class DPMON:
lr (float): Learning rate for the optimizer.
weight_decay (float): L2 weight decay (regularization) coefficient.
tune (bool): If True, perform hyperparameter tuning before final training.
tune_trails (int): Number of trials to perform if tune=True.
gpu (bool): If True, use GPU if available.
cv (bool): If True, use K-fold cross-validation; otherwise use repeated train/test splits.
cuda (int): CUDA device index to use when gpu=True.
Expand Down Expand Up @@ -98,6 +99,7 @@ def __init__(
lr: float = 1e-1,
weight_decay: float = 1e-4,
tune: bool = False,
tune_trails: int = 10,
gpu: bool = False,
cv: bool = False,
cuda: int = 0,
Expand Down Expand Up @@ -156,6 +158,7 @@ def __init__(
self.lr = lr
self.weight_decay = weight_decay
self.tune = tune
self.tune_trails = tune_trails
self.gpu = gpu
self.cuda = cuda
self.seed = seed
Expand Down Expand Up @@ -205,6 +208,7 @@ def run(self) -> Tuple[pd.DataFrame, object, torch.Tensor | None]:
"gpu": self.gpu,
"cuda": self.cuda,
"tune": self.tune,
"tune_trials": self.tune_trails,
"seed": self.seed,
"seed_trials": self.seed_trials,
"cv": self.cv,
Expand Down Expand Up @@ -892,8 +896,8 @@ def short_dirname_creator(trial):

gpu_per_trial = 0.05 if use_gpu else 0.0

num_samples = 50
max_retries = 5
num_samples = dpmon_params['tune_trials']
max_retries = 4

seed_trials = dpmon_params.get("seed_trials", False)

Expand All @@ -916,6 +920,7 @@ def short_dirname_creator(trial):
config=pipeline_configs,
num_samples=num_samples,
verbose=0,
log_to_file=True,
scheduler=scheduler,
stop=stopper,
name="tune_dp",
Expand Down
158 changes: 33 additions & 125 deletions docs/source/Quick_Start.ipynb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ bioneuralnet.clustering.correlated\_louvain
.. autosummary::

ASHAScheduler
Any
CLIReporter
CorrelatedLouvain
PCA
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ bioneuralnet.clustering.correlated\_pagerank
.. autosummary::

ASHAScheduler
Any
CLIReporter
CorrelatedPageRank
PCA
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ bioneuralnet.downstream\_task.subject\_representation
.. autosummary::

ASHAScheduler
Any
AutoEncoder
CLIReporter
PCA
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ bioneuralnet.external\_tools.smccnet

.. autosummary::

Any
Path
SmCCNet

Binary file added docs/source/_static/getting_started_bio1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/getting_started_bio9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
try:
release = metadata.version("bioneuralnet")
except metadata.PackageNotFoundError:
release = "1.2.1"
release = "1.2.2"

project = "BioNeuralNet"
version = release
Expand Down
60 changes: 56 additions & 4 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Quick Start Examples
Get started quickly with these end-to-end examples demonstrating the BioNeuralNet workflow:

- :doc:`Quick_Start`
- :doc:`quick_start_bio`
- :doc:`notebooks/index`

**BioNeuralNet Workflow Overview**
Expand All @@ -57,9 +58,9 @@ BioNeuralNet is a flexible and modular Python framework tailored for **end-to-en

**Core Analytical Modules:**

- **Network Construction**: Build informative networks from raw tabular data using strategies like **Similarity**, **Correlation**, **Neighborhood-based**, or **Phenotype-driven** (e.g., SmCCNet) approaches.
- **Network Construction**: Build informative networks from raw tabular data using strategies like **Similarity**, **Correlation**, **Neighborhood-based**, or **Phenotype-driven** (e.g., SmCCNet) approaches. [1]_
- **Biomarker Discovery**: Identify biological modules and key molecular interactions that drive disease phenotypes.
- **Disease Prediction**: Implement end-to-end supervised disease classification using the **DPMON** (Disease Prediction using Multi-Omics Networks) module.
- **Disease Prediction**: Implement end-to-end supervised disease classification using the **DPMON** (Disease Prediction using Multi-Omics Networks) module. [2]_
- **Subject Representation**: Generate enhanced subject-level embeddings for stratification and clustering.

**Visualizing Multi-Omics Networks**
Expand All @@ -71,7 +72,7 @@ BioNeuralNet allows you to inspect the topology of your constructed networks. Th
:alt: Multi-Omics Network Visualization
:width: 100%

*Network visualization of a highly connected gene module identified in the KIPAN dataset.* `Full Size Image <https://bioneuralnet.readthedocs.io/en/latest/_images/kipan_net.png>`_
*Network visualization of a highly connected gene module identified in the KIPAN dataset.* `See Network Full Size <https://bioneuralnet.readthedocs.io/en/latest/_images/kipan_net.png>`_

**Top Identified Biomarkers (Hub Omics)**

Expand Down Expand Up @@ -133,7 +134,7 @@ By projecting high-dimensional omics networks into latent spaces, BioNeuralNet d
:alt: t-SNE visualization of Network Embeddings
:width: 100%

*2D projection of Network Embeddings showing distinct separation between omics modalities.* `Full Size Image <https://bioneuralnet.readthedocs.io/en/latest/_images/emb_kipan.png>`_
*2D projection of Network Embeddings showing distinct separation between omics modalities.* `See Embeddings Full Size <https://bioneuralnet.readthedocs.io/en/latest/_images/emb_kipan.png>`_

For detailed explanations of BioNeuralNet's supported GNN architectures, see :doc:`gnns`.

Expand All @@ -148,12 +149,63 @@ To ensure scientific rigor and optimal performance when using BioNeuralNet, user
* **Computational Scalability**: While optimized for standard omics datasets, extremely large networks may require aggressive feature reduction or subgraph detection strategies to maintain computational efficiency.
* **Interpretability Scope**: BioNeuralNet provides network-level interpretability (identifying key modules and hub features). However, full node-level explainability remains an active area of research.

**Feature Selection Examples**

The following feature set were determined by the intersection of features identified via the **ANOVA F-test** and **Random Forest Importance**. This approach offers comprehensive filtering by balancing class-based relevance (ANOVA) with non-linear model importance (Random Forest).

.. list-table:: TCGA-BRCA Feature Selection
:widths: 25 20 20 20 15
:header-rows: 1
:align: center

* - Omics Data Type
- ANOVA-F & Variance
- RF & Variance
- ANOVA-F & Random Forest (Selected)
- All Three Agree
* - **Methylation**
- 2,092 features
- 1,870 features
- **2,203 features**
- 814 features
* - **RNA**
- 2,359 features
- 2,191 features
- **2,500 features**
- 1,124 features

.. list-table:: TCGA-LGG Feature Selection
:widths: 25 20 20 20 15
:header-rows: 1
:align: center

* - Omics Data Type
- ANOVA-F & Variance
- RF & Variance
- ANOVA-F & Random Forest (Selected)
- All Three Agree
* - **Methylation**
- 2,704 features
- 1,768 features
- **1,823 features**
- 809 features
* - **RNA**
- 2,183 features
- 1,977 features
- **2,127 features**
- 763 features

For a full list of *BioNeuralNet* preprocessing utilties see: `Preprocessing Utilities <https://bioneuralnet.readthedocs.io/en/latest/utils.html#preprocessing-utilities>`_.

The full analysis and implementation details for the tables above can be found in the :doc:`notebooks/index`.

Explore BioNeuralNet's Documentation
------------------------------------

For detailed examples and tutorials, visit:

- :doc:`Quick_Start`: A quick walkthrough demonstrating the BioNeuralNet workflow from start to finish.
- :doc:`quick_start_bio`: A user-frienfly walkthrough for members of the community without a developer background.
- :doc:`notebooks/index`: A collection of demonstration notebooks showcasing end-to-end analyses on TCGA datasets.

**Documentation Sections:**
Expand Down
2 changes: 1 addition & 1 deletion docs/source/notebooks/TCGA-Biomarkers.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"\n",
"**Data Source:** [Broad Institute FireHose](http://firebrowse.org/?cohort=KIPAN)\n",
"\n",
"*For the end-to-end analysis see TCGA-KIPAN Analysis*"
"*For the end-to-end analysis inclusind data preprocessing*: [TCGA-KIPAN Full Notebook](https://github.com/UCD-BDLab/BioNeuralNet/blob/main/TCGA-Notebooks/TCGA-KIPAN.ipynb)"
]
},
{
Expand Down
Loading