diff --git a/CHANGELOG.md b/CHANGELOG.md index 89d4202..48d5a8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,199 +5,226 @@ 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/). -## [0.2.0b2] - 2025-02-16 +## [1.2.1] - 2025-11-30 + +### 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` -### **Added** -- **Hybrid Louvain Clustering**: New iterative Louvain clustering method with PageRank refinement. -- **DatasetLoader Integration**: Standardized dataset loading for examples & tutorials. -- **GNNEmbedding Improvements**: Enhanced tuning capabilities for better model selection. -- **New Example Workflows**: - - **SmCCNet + GNN Embeddings + Subject Representation** - - **SmCCNet + DPMON for Disease Prediction** - - **Hybrid Louvain Clustering Example** -- **Updated Tutorials**: Expanded documentation with `nbsphinx` support for `.ipynb` notebooks. +### 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 halving `num_trials` (starting at 50). It will attempt to recover up to 5 times before aborting. -### **Changed** -- **FAQ Overhaul**: Simplified and updated FAQs based on new features. -- **Improved Documentation**: Rewrote and updated multiple sections for better clarity. -- **Updated README.md**: - - Improved feature descriptions. - - New **quick-start example** for SmCCNet + DPMON. - - Cleaner installation instructions. -- **Refactored Examples**: - - Updated **clustering** and **embedding** workflows to match the latest API changes. +### 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.md` to synchronize with `index.rst` and reflect the latest library state. -### **Fixed** -- **Bug Fixes**: - - Resolved incorrect handling of `tune=True` in Hybrid Louvain. - - Addressed inconsistencies in `GraphEmbedding` parameter parsing. - - Fixed dataset loading issues in example scripts. +### Testing +- **Test Suite Restoration**: Re-enabled and patched all unit tests to ensure compatibility with the new namespace hierarchy and utility structures. -## **[Unreleased]** -- Multi-Modal Integration +## [1.2.0] - 2025-11-23 -## [1.0] - 2025-03-06 +### API and Architecture Refactoring +- **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`). -### **Added** -- **Simplified requirements**: Requirements.txt was severely simplified. Addtionally removed unnecessary imports from core package -- **New Metrics**: New correlation, evaluations and plot python files - - **Plotting Functions**: - - plot_variance_distribution - - plot_variance_by_feature - - plot_performance - - plot_embeddings - - plot_network - - compare_clusters - - **Correlation Functions** - - omics_correlation - - cluster_correlation - - louvain_to_adjacency - - **Evaluation** - - evaluate_rf -- **New Utilities**: Added files to convert RData (Networks as adjency matrix) files to Pandas Dataframes Adjancy matrix. - - **Variance Functions**: - - remove_variance - - remove_fraction - - network_remove_low_variance - - network_remove_high_zero_fraction - - network_filter - - omics_data_filter +### 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']`). -- **Updated Tutorials and Documentation**: New end to end jupiter notebook example. -- **Updated Test**: All test have been updated and new ones have been added. +### 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). -## [1.1.1] - 2025-07-12 +### 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 +- **(DONE)Test Suite Completion**: Refactor remaining tests (`gnn_embedding`, `subject_representation`, `hybrid_louvain`) to align with new `utils` imports and other major changes. +- **(DONE)Documentation**: Update ReadTheDocs API reference and `README.md` to reflect the split `utils` submodules and new `graph_tools`. All jupyter notebook examples will need to be updates. +- **(DONE)Release Prep**: Bump version to `1.2.0` in `setup.py`. +- **(DONE)Errors**: Errors with tests and doc-build are expected. They will be addresed in following smaller versions `1.2.1` and so on. + +## [1.1.4] - 2025-11-08 ### **Added** -- **New Embedding Integration Utility** - - `_integrate_embeddings(reduced, method="multiply", alpha=2.0, beta=0.5)`: - - Integrates reduced embeddings with raw omics features via a multiplicative scheme: - - `enhanced = beta * raw + (1 - beta) * (alpha * normalized_weight * raw)` - - (default ensures ≥ 50 % of each feature’s final value is influenced by the learned weights). +- **New Utility Functions and Global Seed** -- **Graph-Generation Algorithms** - - `gen_similarity_graph`: k-NN Cosine / Gaussian RBF similarity graph - - `gen_correlation_graph`: Pearson / Spearman co-expression graph - - `gen_threshold_graph`: soft-threshold (WGCNA-style) correlation graph - - `gen_gaussian_knn_graph`: Gaussian kernel k-NN graph - - `gen_mutual_info_graph`: mutual-information graph +  - **Imputation**: +    - `impute_omics`: Imputes missing values (NaNs) using `mean`, `median`, or `zero` strategies. -- **Preprocessing Utilities** - - Clinical data pipeline `preprocess_clinical` - - Inf/NaN cleaning: `clean_inf_nan` - - Variance selection: `select_top_k_variance` - - Correlation selection (supervised / unsupervised): `select_top_k_correlation` - - RandomForest importance: `select_top_randomforest` - - ANOVA F-test selection: `top_anova_f_features` - - Network-pruning helpers: - - `prune_network`, `prune_network_by_quantile`, - - `network_remove_low_variance`, `network_remove_high_zero_fraction` +    - `impute_omics_knn`: Implements **K-Nearest Neighbors (KNN)** imputation for missing values in omics data. -- **Continuous-Deployment Workflow** - Added `.github/workflows/publish.yml` to auto-publish releases to PyPI when a Git tag is pushed. +  - **Normalization/Scaling**: +    - `normalize_omics`: Scales feature data using `Z-score`, `MinMax` scaling, or `Log2` transformation. -- **Updated Homepage Image** - Replaced the index-page illustration to depict the full BioNeuralNet workflow. +  - **Methylation Data Transformation**: +      - `beta_to_m`: Converts methylation `Beta-values to M-values` (log2 transformation). -### **Changed** -- **Comprehensive Documentation Update** - - Rebuilt ReadTheDocs site with a new workflow diagram on the landing page. - - Synced API reference to include all new graph-generation, preprocessing, and embedding-integration functions. - - Added quick-start guide, expanded tutorials, and refreshed examples/notebooks. - - Updated narrative docs, docstrings, and licencing info for consistency. +  - **Reproducibility Utility**: +    - `set_seed`: Sets global random seeds across Python, NumPy, and PyTorch, including configuration for deterministic CUDA operations to ensure maximum experimental reproducibility. -- **License**: Project is now distributed under the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0)](https://creativecommons.org/licenses/by-nc-nd/4.0/). +- **New TCGA Datasets** -### **Fixed** -- **Packaging Bug**: Missing `.csv` datasets and `.R` scripts in source distribution; `MANIFEST.in` updated to include all requisite data files. +  - **TCGA-KIPAN**: Added the Pan-Kidney cohort (KIRC, KIRP, KICH) to **DatasetLoader**. -## [1.1.2] - 2025-11-01 +  - **TCGA-GBMLGG**: Added the combined Glioblastoma Multiforme and Lower-Grade Glioma cohort to **DatasetLoader**. -- **Linked Zenodo DOI to GitHub repository** +### **Changed** + +  - **Documentation Update**: Updated the online documentation (Read the Docs/API Reference) to include the new TCGA datasets and their respective classification results using the **DPMON**. ## [1.1.3] - 2025-11-01 - **Tag update to Sync Zenodo and PIPY** -## [1.1.4] - 2025-11-08 - -### **Added** -- **New Utility Functions and Global Seed** - - - **Imputation**: - - `impute_omics`: Imputes missing values (NaNs) using `mean`, `median`, or `zero` strategies. +## [1.1.2] - 2025-11-01 - - `impute_omics_knn`: Implements **K-Nearest Neighbors (KNN)** imputation for missing values in omics data. +- **Linked Zenodo DOI to GitHub repository** - - **Normalization/Scaling**: - - `normalize_omics`: Scales feature data using `Z-score`, `MinMax` scaling, or `Log2` transformation. +## [1.1.1] - 2025-07-12 - - **Methylation Data Transformation**: - - `beta_to_m`: Converts methylation `Beta-values to M-values` (log2 transformation). +### **Added** +- **New Embedding Integration Utility** +  - `_integrate_embeddings(reduced, method="multiply", alpha=2.0, beta=0.5)`: +    - Integrates reduced embeddings with raw omics features via a multiplicative scheme: +    - `enhanced = beta * raw + (1 - beta) * (alpha * normalized_weight * raw)` +    - (default ensures ≥ 50 % of each feature’s final value is influenced by the learned weights). - - **Reproducibility Utility**: - - `set_seed`: Sets global random seeds across Python, NumPy, and PyTorch, including configuration for deterministic CUDA operations to ensure maximum experimental reproducibility. +- **Graph-Generation Algorithms** +  - `gen_similarity_graph`: k-NN Cosine / Gaussian RBF similarity graph +  - `gen_correlation_graph`: Pearson / Spearman co-expression graph +  - `gen_threshold_graph`: soft-threshold (WGCNA-style) correlation graph +  - `gen_gaussian_knn_graph`: Gaussian kernel k-NN graph +  - `gen_mutual_info_graph`: mutual-information graph -- **New TCGA Datasets** +- **Preprocessing Utilities** +  - Clinical data pipeline `preprocess_clinical` +  - Inf/NaN cleaning: `clean_inf_nan` +  - Variance selection: `select_top_k_variance` +  - Correlation selection (supervised / unsupervised): `select_top_k_correlation` +  - RandomForest importance: `select_top_randomforest` +  - ANOVA F-test selection: `top_anova_f_features` +  - Network-pruning helpers: +      - `prune_network`, `prune_network_by_quantile`, +      - `network_remove_low_variance`, `network_remove_high_zero_fraction` - - **TCGA-KIPAN**: Added the Pan-Kidney cohort (KIRC, KIRP, KICH) to **DatasetLoader**. +- **Continuous-Deployment Workflow** +  Added `.github/workflows/publish.yml` to auto-publish releases to PyPI when a Git tag is pushed. - - **TCGA-GBMLGG**: Added the combined Glioblastoma Multiforme and Lower-Grade Glioma cohort to **DatasetLoader**. +- **Updated Homepage Image** +  Replaced the index-page illustration to depict the full BioNeuralNet workflow. ### **Changed** +- **Comprehensive Documentation Update** +  - Rebuilt ReadTheDocs site with a new workflow diagram on the landing page. +  - Synced API reference to include all new graph-generation, preprocessing, and embedding-integration functions. +  - Added quick-start guide, expanded tutorials, and refreshed examples/notebooks. +  - Updated narrative docs, docstrings, and licencing info for consistency. - - **Documentation Update**: Updated the online documentation (Read the Docs/API Reference) to include the new TCGA datasets and their respective classification results using the **DPMON**. +- **License**: Project is now distributed under the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0)](https://creativecommons.org/licenses/by-nc-nd/4.0/). -## [1.2.0] - 2025-11-23 +### **Fixed** +- **Packaging Bug**: Missing `.csv` datasets and `.R` scripts in source distribution; `MANIFEST.in` updated to include all requisite data files. -### API and Architecture Refactoring -- **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`). +## [1.0] - 2025-03-06 -### 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']`). +### **Added** +- **Simplified requirements**: Requirements.txt was severely simplified. Addtionally removed unnecessary imports from core package +- **New Metrics**: New correlation, evaluations and plot python files +  - **Plotting Functions**: +    - plot_variance_distribution +    - plot_variance_by_feature +    - plot_performance +    - plot_embeddings +    - plot_network +    - compare_clusters +  - **Correlation Functions** +    - omics_correlation +    - cluster_correlation +    - louvain_to_adjacency +  - **Evaluation** +    - evaluate_rf +- **New Utilities**: Added files to convert RData (Networks as adjency matrix) files to Pandas Dataframes Adjancy matrix. +  - **Variance Functions**: +    - remove_variance +    - remove_fraction +    - network_remove_low_variance +    - network_remove_high_zero_fraction +    - network_filter +    - omics_data_filter -### 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). +- **Updated Tutorials and Documentation**: New end to end jupiter notebook example. +- **Updated Test**: All test have been updated and new ones have been added. -### 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. +## **[Unreleased]** +- Multi-Modal Integration -### 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. +## [0.2.0b2] - 2025-02-16 -### Left to Do -- **(DONE)Test Suite Completion**: Refactor remaining tests (`gnn_embedding`, `subject_representation`, `hybrid_louvain`) to align with new `utils` imports and other major changes. -- **(DONE)Documentation**: Update ReadTheDocs API reference and `README.md` to reflect the split `utils` submodules and new `graph_tools`. All jupyter notebook examples will need to be updates. -- **(DONE)Release Prep**: Bump version to `1.2.0` in `setup.py`. -- **(DONE)Errors**: Errors with tests and doc-build are expected. They will be addresed in following smaller versions `1.2.1` and so on. +### **Added** +- **Hybrid Louvain Clustering**: New iterative Louvain clustering method with PageRank refinement. +- **DatasetLoader Integration**: Standardized dataset loading for examples & tutorials. +- **GNNEmbedding Improvements**: Enhanced tuning capabilities for better model selection. +- **New Example Workflows**: +  - **SmCCNet + GNN Embeddings + Subject Representation** +  - **SmCCNet + DPMON for Disease Prediction** +  - **Hybrid Louvain Clustering Example** +- **Updated Tutorials**: Expanded documentation with `nbsphinx` support for `.ipynb` notebooks. +### **Changed** +- **FAQ Overhaul**: Simplified and updated FAQs based on new features. +- **Improved Documentation**: Rewrote and updated multiple sections for better clarity. +- **Updated README.md**: +  - Improved feature descriptions. +  - New **quick-start example** for SmCCNet + DPMON. +  - Cleaner installation instructions. +- **Refactored Examples**: +  - Updated **clustering** and **embedding** workflows to match the latest API changes. + +### **Fixed** +- **Bug Fixes**: +  - Resolved incorrect handling of `tune=True` in Hybrid Louvain. +  - Addressed inconsistencies in `GraphEmbedding` parameter parsing. +  - Fixed dataset loading issues in example scripts. \ No newline at end of file diff --git a/README.md b/README.md index 141be00..d3224c6 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,11 @@ [![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.0 +## Welcome to BioNeuralNet 1.2.1 -![BioNeuralNet Logo](assets/LOGO_WB.png) - -**BioNeuralNet** is a flexible, modular Python framework developed to facilitate end-to-end network-based multi-omics analysis using **Graph Neural Networks (GNNs)**. It addresses the complexities associated with multi-omics data, such as high dimensionality, sparsity, and intricate molecular interactions, by converting biological networks into meaningful, low-dimensional embeddings suitable for downstream tasks. +![BioNeuralNet Logo](assets/LOGO_TB.png) +**BioNeuralNet** is a flexible and modular Python framework tailored for **end-to-end network-based multi-omics data analysis**. It leverages **Graph Neural Networks (GNNs)** to learn biologically meaningful low-dimensional representations from multi-omics networks, converting complex molecular interactions into versatile embeddings suitable for downstream tasks. ![BioNeuralNet Workflow](assets/BioNeuralNet.png) @@ -64,72 +63,172 @@ For complete documentation, tutorials, and examples, please visit our Read the D - [8. License](#9-License) - [9. Contact](#10-Contact) - [10. References](#11-References) +- [11. Citation](#11-Citation) ## 1. Installation -BioNeuralNet is available as a package on the Python Package Index (PyPI), making it easy to install and integrate into your workflows. +BioNeuralNet is available as a package on the Python Package Index (PyPI), making it easy to install and integrate into your workflows. BioNeuralNet is tested with Python `3.10`, `3.11`, and `3.12` and supports Linux, macOS, and Windows. + +For detailed, up-to-date system requirements (including recommended CPU/GPU configurations, CUDA/PyG compatibility tables, and troubleshooting), see the **Installation Guide** in the documentation: +**[https://bioneuralnet.readthedocs.io/en/latest/installation.html](https://bioneuralnet.readthedocs.io/en/latest/installation.html)** ### 1.1. Install BioNeuralNet + +Install the core BioNeuralNet package (including graph embeddings, DPMON, and clustering): + ```bash pip install bioneuralnet ``` + **PyPI Project Page:** [https://pypi.org/project/bioneuralnet/](https://pypi.org/project/bioneuralnet/) ->**Requirements:** BioNeuralNet is tested and supported on Python versions `3.10`, `3.11`, and `3.12`. Functionality on other versions is not guaranteed. -## 1.2. Install PyTorch and PyTorch Geometric -BioNeuralNet relies on PyTorch for GNN computations. Install PyTorch separately: +> **Requirements:** BioNeuralNet is tested and supported on Python versions `3.10`, `3.11`, and `3.12`. Functionality on other versions is not guaranteed. + +A typical environment includes: + + - Linux, macOS, or Windows + - At least 8 GB RAM (16 GB+ recommended for moderate datasets) + - Optional GPU (e.g., NVIDIA with ≥ 6 GB VRAM or Apple Silicon using Metal/MPS) for faster GNN and DPMON training + +For advanced setups (multi-GPU, clusters, external R tools like SmCCNet), please refer to the [installation documentation](https://bioneuralnet.readthedocs.io/en/latest/installation.html). -- **PyTorch (CPU):** - ```bash - pip install torch torchvision torchaudio - ``` +### 1.2. Install PyTorch and PyTorch Geometric -- **PyTorch Geometric:** - ```bash - pip install torch_geometric - ``` +BioNeuralNet relies on PyTorch and PyTorch Geometric for GNN computations (embeddings and DPMON). These are **not automatically pinned** because CPU/GPU builds and CUDA versions vary by system, so you should install them separately. -For GPU acceleration, please refer to: -- [PyTorch Installation Guide](https://pytorch.org/get-started/locally/) -- [PyTorch Geometric Installation Guide](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html) + - **Basic installation (CPU-only or simple environments):** + ```bash + pip install torch + pip install torch_geometric + ``` + +For GPU acceleration and environment-specific wheels: + + - [PyTorch Installation Guide](https://pytorch.org/get-started/locally/) + - [PyTorch Geometric Installation Guide](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html) + +On Apple Silicon (M1/M2/M3), PyTorch can use the **Metal (MPS)** backend instead of CUDA (see the official PyTorch/Apple guides). + +For example tested configurations, CUDA/PyG compatibility matrices, Ray installation for hyperparameter tuning, and troubleshooting steps, see the **Installation** section of the documentation: +**[https://bioneuralnet.readthedocs.io/en/latest/installation.html](https://bioneuralnet.readthedocs.io/en/latest/installation.html)** ## 2. BioNeuralNet Core Features -BioNeuralNet is a flexible, modular Python framework developed to facilitate end-to-end network-based multi-omics analysis using **Graph Neural Networks (GNNs)**. It addresses the complexities associated with multi-omics data, such as high dimensionality, sparsity, and intricate molecular interactions, by converting biological networks into meaningful, low-dimensional embeddings suitable for downstream tasks. +BioNeuralNet is a flexible and modular Python framework tailored for **end-to-end network-based multi-omics data analysis**. It leverages **Graph Neural Networks (GNNs)** to learn biologically meaningful low-dimensional representations from multi-omics networks, converting complex molecular interactions into versatile embeddings suitable for downstream tasks. **BioNeuralNet Provides:** -- **[Graph construction](https://bioneuralnet.readthedocs.io/en/latest/utils.html#graph-generation):** + - **[Graph construction](https://bioneuralnet.readthedocs.io/en/latest/utils.html#graph-generation):** + + - **Similarity graphs:** k-NN (cosine/Euclidean), RBF, mutual information. + - **Correlation graphs:** Pearson, Spearman; optional soft-thresholding. + - **Phenotype-aware graphs:** SmCCNet integration (R) for sparse multiple canonical-correlation networks. + - **Gaussian kNN graphs:** kNN-based graphs with Gaussian kernel weighting. + + **Example: constructing multiple network types and running basic graph analysis** + + ```python + import pandas as pd + from bioneuralnet.utils import ( + gen_threshold_graph, + gen_correlation_graph, + gen_similarity_graph, + gen_gaussian_knn_graph, + ) + from bioneuralnet.utils import graph_analysis + + # dna_meth, rna, and mirna are preprocessed omics DataFrames with matching samples + omics_brca = pd.concat([dna_meth, rna, mirna], axis=1) - - **Similarity graphs:** k-NN (cosine/Euclidean), RBF, mutual information. + # Threshold-based graph + threshold_10 = gen_threshold_graph(omics_brca, b=6.2, k=10) - - **Correlation graphs:** Pearson, Spearman; optional soft-thresholding. + # Correlation graph (unsigned Pearson) + correlation_10 = gen_correlation_graph( + omics_brca, + k=10, + method="pearson", + signed=False, + ) - - **Phenotype-aware graphs:** SmCCNet integration (R) for sparse multiple canonical-correlation networks. + # Similarity graph (cosine-based kNN) + similarity_10 = gen_similarity_graph( + omics_brca, + k=10, + metric="cosine", + ) -- **[Preprocessing Utilities](https://bioneuralnet.readthedocs.io/en/latest/utils.html#graph-generation):** + # Gaussian kNN graph + gaussian_15 = gen_gaussian_knn_graph( + omics_brca, + k=15, + sigma=None, + ) - - **RData conversion to pandas DataFrame:** Converts an RData file to CSV and loads it into a pandas DataFrame. + # Network-level summary statistics + graph_analysis(threshold_10, name="threshold_10") + graph_analysis(correlation_10, name="correlation_10") + graph_analysis(similarity_10, name="similarity_10") + graph_analysis(gaussian_15, name="gaussian_15") + ``` - - **Top‑k variance‑based filtering:** Cleans data and selects the top‑k numeric features by variance. + - **[Preprocessing Utilities](https://bioneuralnet.readthedocs.io/en/latest/utils.html#graph-generation):** - - **Random forest feature selection:** Fits a RandomForest and returns the top‑k features by importance. + - **RData conversion to pandas DataFrame:** Converts an RData file to CSV and loads it into a pandas DataFrame. + - **Top-k variance-based filtering:** Cleans data and selects the top-k numeric features by variance. + - **Random forest feature selection:** Fits a RandomForest and returns the top-k features by importance. + - **ANOVA F-test feature selection:** Runs an ANOVA F-test with FDR correction and selects significant features. + - **Network pruning by edge-weight threshold:** Removes edges below a weight threshold and drops isolated nodes. + - **Missing data handling:** Utilities such as `impute_omics` and `impute_omics_knn` for incomplete multi-omics matrices. - - **ANOVA F‑test feature selection:** Runs an ANOVA F‑test with FDR correction and selects significant features. + - **[GNN Embeddings](https://bioneuralnet.readthedocs.io/en/latest/gnns.html):** - - **Network pruning by edge‑weight threshold:** Removes edges below a weight threshold and drops isolated nodes. + - Transform complex biological networks into versatile embeddings, capturing both structural relationships and molecular interactions. + - **[Downstream Tasks](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html):** -- **[GNN Embeddings](https://bioneuralnet.readthedocs.io/en/latest/gnns.html):** Transform complex biological networks into versatile embeddings, capturing both structural relationships and molecular interactions. + - **[Subject representation](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html#enhanced-subject-representation):** Integrate phenotype or clinical variables to enhance the biological relevance of the embeddings. + - **[Disease Prediction](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html#enhanced-subject-representation):** Utilize network-derived embeddings for accurate and scalable predictive modeling of diseases and phenotypes (e.g., via DPMON). -- **[Downstream Tasks](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html):** + - **Interoperability:** - - **[Subject representation](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html#enhanced-subject-representation):** Integrate phenotype or clinical variables to enhance the biological relevance of the embeddings. + - Outputs structured as **Pandas DataFrames**, ensuring compatibility with common Python tools and seamless integration into existing bioinformatics pipelines. - - **[Disease Prediction](https://bioneuralnet.readthedocs.io/en/latest/downstream_tasks.html#enhanced-subject-representation):** Utilize network-derived embeddings for accurate and scalable predictive modeling of diseases and phenotypes. +**Visualizing Multi-Omics Networks** -- **Interoperability:** Outputs structured as **Pandas DataFrames**, ensuring compatibility with common Python tools and seamless integration into existing bioinformatics pipelines. +BioNeuralNet allows you to inspect the topology of your constructed networks. The visualization below, from our **TCGA Kidney Cancer (KIPAN)** analysis, highlights a module of highly interacting genes and proteins. + +![Network visualization](assets/kipan_net.png) +*Network visualization of a highly connected gene module identified in the KIPAN dataset.* + +**Top Identified Biomarkers (Hub Omics)** + +The top hub features (by degree centrality) in the network above include: + +| Feature Name (Omic) | Index | Degree | Source | +| :--- | :---: | :---: | :---: | +| INPP5J_27124 | 5 | 12 | RNA | +| SLC26A7_115111 | 26 | 9 | RNA | +| HEPACAM2_253012 | 12 | 7 | RNA | +| CLNK_116449 | 16 | 7 | RNA | +| RHCG_51458 | 27 | 6 | RNA | +| CLCNKB_1188 | 3 | 6 | RNA | + +**Network Embeddings** + +By projecting high-dimensional omics networks into latent spaces, BioNeuralNet distills complex, nonlinear molecular relationships into compact vectorized representations. The t-SNE projection below reveals distinct clusters corresponding to different omics modalities (e.g., DNA methylation, RNA, miRNA). + +![Network embedding](assets/emb_kipan.png) +*2D projection of network embeddings showing distinct separation between omics modalities.* + +**Key Considerations for Robust Analysis** + + - **Network topology sensitivity:** Performance is inherently tied to the quality of the constructed network. Compare multiple strategies (e.g., correlation vs similarity vs Gaussian kNN). + - **Feature selection impact:** Results depend heavily on input features. Different preselection strategies (Top-k variance, ANOVA-F, Random Forest) can reveal complementary biology. + - **Handling missing data:** Incomplete multi-omics data are common; use built-in imputation utilities where appropriate. + - **Computational scalability:** Extremely large networks may require more aggressive feature reduction or subgraph detection to stay efficient. + - **Interpretability scope:** BioNeuralNet emphasizes network-level interpretability (key modules and hub features); fine-grained node-level explanations remain an active research area. BioNeuralNet emphasizes usability, reproducibility, and adaptability, making advanced network-based multi-omics analyses accessible to researchers working in precision medicine and systems biology. @@ -139,32 +238,34 @@ Traditional machine learning methods often struggle with the complexity and high BioNeuralNet supports several state-of-the-art GNN architectures optimized for biological applications: -- **Graph Convolutional Networks (GCN):** Aggregate biological signals from neighboring molecules, effectively modeling local interactions such as gene co-expression or regulatory relationships. - -- **Graph Attention Networks (GAT):** Use attention mechanisms to dynamically prioritize important molecular interactions, highlighting the most biologically relevant connections. + - **Graph Convolutional Networks (GCN):** Aggregate biological signals from neighboring molecules, effectively modeling local interactions such as gene co-expression or regulatory relationships. + - **Graph Attention Networks (GAT):** Use attention mechanisms to dynamically prioritize important molecular interactions, highlighting the most biologically relevant connections. + - **GraphSAGE:** Facilitate inductive learning, enabling the model to generalize embeddings to previously unseen molecular data, thereby enhancing predictive power and scalability. + - **Graph Isomorphism Networks (GIN):** Provide powerful and expressive graph embeddings, accurately distinguishing subtle differences in molecular interaction patterns. -- **GraphSAGE:** Facilitate inductive learning, enabling the model to generalize embeddings to previously unseen molecular data, thereby enhancing predictive power and scalability. - -- **Graph Isomorphism Networks (GIN):** Provide powerful and expressive graph embeddings, accurately distinguishing subtle differences in molecular interaction patterns. +By projecting high-dimensional omics networks into latent spaces, BioNeuralNet distills complex, nonlinear molecular relationships into compact vectorized representations that can be used for visualization, clustering, and predictive modeling. For detailed explanations of BioNeuralNet's supported GNN architectures and their biological relevance, see [GNN Embeddings](https://bioneuralnet.readthedocs.io/en/latest/gnns.html) ## 4. Example: Network-Based Multi-Omics Analysis for Disease Prediction -- **Data Preparation:** - - Load your multi-omics data (e.g., transcriptomics, proteomics) along with phenotype and clinical covariates. + - **Data Preparation:** + + - Load your multi-omics data (e.g., transcriptomics, proteomics) along with phenotype and clinical covariates. -- **Network Construction:** - - Here, we construct the multi-omics network using an external R package, **SmCCNet** [1](1) - - BioNeuralNet provides convenient wrappers for external tools (like SmCCNet) through `bioneuralnet.external_tools`. Note: R must be installed for these wrappers. + - **Network Construction:** -- **Disease Prediction with DPMON:** - - **DPMON** [2](2) integrates omics data and network structures to predict disease phenotypes. - - It provides an end-to-end pipeline, complete with built-in hyperparameter tuning, and outputs predictions directly as pandas DataFrames for easy interoperability. + - Here, we construct the multi-omics network using an external R package, **SmCCNet** + - BioNeuralNet provides convenient wrappers for external tools (like SmCCNet) through `bioneuralnet.external_tools`. Note: R must be installed for these wrappers. + + - **Disease Prediction with DPMON:** + + - **DPMON** integrates omics data and network structures to predict disease phenotypes. + - It provides an end-to-end pipeline, complete with built-in hyperparameter tuning, and outputs predictions directly as pandas DataFrames for easy interoperability. **Example Usage:** -```Python +```python import pandas as pd from bioneuralnet.external_tools import SmCCNet @@ -212,8 +313,7 @@ print("Disease phenotype predictions:\n", predictions) For detailed examples and tutorials, visit: - [Quick Start](https://bioneuralnet.readthedocs.io/en/latest/Quick_Start.html): A quick walkthrough demonstrating the BioNeuralNet workflow from start to finish. - -- [TCGA-BRCA Demo](https://bioneuralnet.readthedocs.io/en/latest/TCGA-BRCA_Dataset.html): A detailed real-world example applying BioNeuralNet to breast cancer subtype prediction. +- [Code Examples](https://bioneuralnet.readthedocs.io/en/latest/notebooks/index.html): Real-world examples of applying BioNeuralNet to different cancer types ## 6. Acknowledgments @@ -232,7 +332,7 @@ BioNeuralNet integrates multiple open-source libraries. We acknowledge key depen We also acknowledge R-based tools for external network construction: -- [**SmCCNet**](https://github.com/UCD-BDLab/BioNeuralNet/tree/main/bioneuralnet/external_tools/smccnet): Sparse multiple canonical correlation network. + - [**SmCCNet**](https://github.com/UCD-BDLab/BioNeuralNet/tree/main/bioneuralnet/external_tools/smccnet): Sparse multiple canonical correlation network. ## 7. Contributing @@ -245,7 +345,7 @@ We welcome issues and pull requests! Please: **Developer setup:** ```bash -git clone https://github.com/UCD-BDLab/BioNeuralNet.git +git clone [https://github.com/UCD-BDLab/BioNeuralNet.git](https://github.com/UCD-BDLab/BioNeuralNet.git) cd BioNeuralNet pip install -r requirements-dev.txt pre-commit install diff --git a/TCGA-Notebooks/TCGA-KIPAN.ipynb b/TCGA-Notebooks/TCGA-KIPAN.ipynb index ba7fa9d..4de1c59 100644 --- a/TCGA-Notebooks/TCGA-KIPAN.ipynb +++ b/TCGA-Notebooks/TCGA-KIPAN.ipynb @@ -15,7 +15,7 @@ "- **Goal**: Perform histological subtype classification.\n", "- **Prediction Target**: Predict the specific kidney cancer subtype (`KIRC`, `KIRP`, or `KICH`) from its multi-omics profile.\n", "\n", - "**Data Source:** Broad Institute FireHose (`http://firebrowse.org/?cohort=KIPAN`)" + "**Data Source:** Broad Institute FireHose(`http://firebrowse.org/?cohort=KIPAN`)" ] }, { diff --git a/assets/BioNeuralNet.png b/assets/BioNeuralNet.png index 342e99a..2e6f133 100644 Binary files a/assets/BioNeuralNet.png and b/assets/BioNeuralNet.png differ diff --git a/assets/BioNeuralNet1-0.png b/assets/BioNeuralNet1-0.png new file mode 100644 index 0000000..342e99a Binary files /dev/null and b/assets/BioNeuralNet1-0.png differ diff --git a/assets/bioneuralnet_api.png b/assets/bioneuralnet_api.png new file mode 100644 index 0000000..5266a9e Binary files /dev/null and b/assets/bioneuralnet_api.png differ diff --git a/assets/clusters.png b/assets/clusters.png new file mode 100644 index 0000000..17eff50 Binary files /dev/null and b/assets/clusters.png differ diff --git a/assets/emb_kipan.png b/assets/emb_kipan.png new file mode 100644 index 0000000..67de27d Binary files /dev/null and b/assets/emb_kipan.png differ diff --git a/assets/embeddings.png b/assets/embeddings.png new file mode 100644 index 0000000..d3082bd Binary files /dev/null and b/assets/embeddings.png differ diff --git a/assets/kipan_net.png b/assets/kipan_net.png new file mode 100644 index 0000000..280faca Binary files /dev/null and b/assets/kipan_net.png differ diff --git a/assets/metrics_plot_1.png b/assets/metrics_plot_1.png new file mode 100644 index 0000000..e364a39 Binary files /dev/null and b/assets/metrics_plot_1.png differ diff --git a/assets/metrics_plot_2.png b/assets/metrics_plot_2.png new file mode 100644 index 0000000..ad01342 Binary files /dev/null and b/assets/metrics_plot_2.png differ diff --git a/assets/performance.png b/assets/performance.png new file mode 100644 index 0000000..a39c63e Binary files /dev/null and b/assets/performance.png differ diff --git a/assets/plot_network.png b/assets/plot_network.png index 4fff6e4..18148df 100644 Binary files a/assets/plot_network.png and b/assets/plot_network.png differ diff --git a/assets/plot_network2.png b/assets/plot_network2.png new file mode 100644 index 0000000..f6f12a8 Binary files /dev/null and b/assets/plot_network2.png differ diff --git a/assets/rosmap_net1.png b/assets/rosmap_net1.png new file mode 100644 index 0000000..17e21c6 Binary files /dev/null and b/assets/rosmap_net1.png differ diff --git a/assets/rosmap_net2.png b/assets/rosmap_net2.png new file mode 100644 index 0000000..324b627 Binary files /dev/null and b/assets/rosmap_net2.png differ diff --git a/bioneuralnet/__init__.py b/bioneuralnet/__init__.py index ca652bd..f1657cf 100644 --- a/bioneuralnet/__init__.py +++ b/bioneuralnet/__init__.py @@ -23,7 +23,7 @@ * `utils`: Utilities for logging, reproducibility, graph generation, and data processing. """ -__version__ = "1.2.0" +__version__ = "1.2.1" # submodules to enable direct imports such as `from bioneuralnet import utils` from . import utils diff --git a/bioneuralnet/clustering/hybrid_louvain.py b/bioneuralnet/clustering/hybrid_louvain.py index ebeff04..9ba8192 100644 --- a/bioneuralnet/clustering/hybrid_louvain.py +++ b/bioneuralnet/clustering/hybrid_louvain.py @@ -20,7 +20,7 @@ class HybridLouvain: k4 (float): Weight for Correlated Louvain. max_iter (int): Maximum number of iterations. weight (str): Edge weight parameter name. - tune (bool): Flag to enable tuning of parameters + tune (bool): Flag to enable tuning of parameters """ def __init__( self, diff --git a/bioneuralnet/downstream_task/dpmon.py b/bioneuralnet/downstream_task/dpmon.py index 27904b2..3654b31 100644 --- a/bioneuralnet/downstream_task/dpmon.py +++ b/bioneuralnet/downstream_task/dpmon.py @@ -26,7 +26,6 @@ from ray import train from ray import tune from ray.tune import Checkpoint -#from bioneuralnet.utils.ray_compatability import train, tune, Checkpoint from ray.tune import CLIReporter from ray.tune.error import TuneError from ray.tune.stopper import TrialPlateauStopper @@ -803,7 +802,7 @@ def run_hyperparameter_tuning(X_train, y_train, adjacency_matrix, clinical_data, grace_period=30, reduction_factor=2 ) - + best_configs = [] omics_data = omics_dataset[0] diff --git a/bioneuralnet/metrics/plot.py b/bioneuralnet/metrics/plot.py index 207bbed..5d43196 100644 --- a/bioneuralnet/metrics/plot.py +++ b/bioneuralnet/metrics/plot.py @@ -345,7 +345,7 @@ def plot_network(adjacency_matrix, weight_threshold=0.0, show_labels=False, show def find_omics_modality(mapping_df, dfs, source_names=None): """ Maps features in the mapping DataFrame to their omics source based on provided dataframes. - + Args: mapping_df (pd.DataFrame): DataFrame with an "Omic" column listing feature names. @@ -354,7 +354,7 @@ def find_omics_modality(mapping_df, dfs, source_names=None): Returns: pd.DataFrame: Updated mapping DataFrame with an additional "Source" column. - + """ if not source_names: source_names = [] diff --git a/docs/source/conf.py b/docs/source/conf.py index 66cfbf7..b1376b8 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,7 +12,7 @@ try: release = metadata.version("bioneuralnet") except metadata.PackageNotFoundError: - release = "1.2.0" + release = "1.2.1" project = "BioNeuralNet" version = release diff --git a/docs/source/datasets.rst b/docs/source/datasets.rst index c2c715f..75c9ef4 100644 --- a/docs/source/datasets.rst +++ b/docs/source/datasets.rst @@ -121,7 +121,7 @@ Valid ``dataset_name`` values (case-insensitive): - ``"kipan"`` - ``"paad"`` -The :pyattr:`DatasetLoader.shape ` property returns a mapping from table name to ``(n_rows, n_cols)`` for each loaded table. +The `.shape` property returns a mapping from table name to ``(n_rows, n_cols)`` for each loaded table. Built-in Datasets ----------------- diff --git a/docs/source/index.rst b/docs/source/index.rst index a1f19ec..0ff89fb 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -69,33 +69,47 @@ BioNeuralNet allows you to inspect the topology of your constructed networks. Th .. figure:: _static/kipan_net.png :align: center :alt: Multi-Omics Network Visualization - :width: 90% + :width: 100% - *Network visualization of a highly connected gene module identified in the KIPAN dataset.* + *Network visualization of a highly connected gene module identified in the KIPAN dataset.* `Full Size Image `_ **Top Identified Biomarkers (Hub Omics)** The table below lists the top hub features identified in the network above, ranked by their degree centrality. .. list-table:: Omics with high degree - :widths: 50 25 + :widths: 40 10 10 10 :header-rows: 1 :align: center * - Feature Name (Omic) + - Index - Degree + - Source * - INPP5J_27124 + - 5 - 12 + - RNA * - SLC26A7_115111 + - 26 - 9 + - RNA * - HEPACAM2_253012 + - 12 - 7 + - RNA * - CLNK_116449 + - 16 - 7 + - RNA * - RHCG_51458 + - 27 - 6 + - RNA * - CLCNKB_1188 + - 3 - 6 + - RNA Why Graph Neural Networks for Multi-Omics? @@ -117,9 +131,9 @@ By projecting high-dimensional omics networks into latent spaces, BioNeuralNet d .. figure:: _static/emb_kipan.png :align: center :alt: t-SNE visualization of Network Embeddings - :width: 90% + :width: 100% - *2D projection of Network Embeddings showing distinct separation between omics modalities.* + *2D projection of Network Embeddings showing distinct separation between omics modalities.* `Full Size Image `_ For detailed explanations of BioNeuralNet's supported GNN architectures, see :doc:`gnns`. diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 5679c19..680f465 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -1,7 +1,7 @@ Installation ============ -BioNeuralNet is fully compatible with Python 3.10, 3.11 and 3.12 and supports Windows, macOS, and Linux platforms. Follow these steps to install BioNeuralNet along with necessary dependencies. +BioNeuralNet is tested with Python 3.10, 3.11, and 3.12 and supports Windows, macOS, and Linux platforms. Follow these steps to install BioNeuralNet along with the necessary dependencies. Recommended System Requirements ------------------------------- @@ -22,10 +22,11 @@ Recommended System Requirements * - Storage - Minimum 64GB for system and software; SSD recommended; 500GB+ for large datasets * - GPU (Optional but recommended) - - NVIDIA GPU with `>=` 6GB VRAM or Intel Arc GPU for faster training; ensure drivers and CUDA/cuDNN versions match PyTorch + - NVIDIA GPU with >= 6GB VRAM or Intel Arc GPU for faster training; ensure drivers and CUDA/cuDNN versions match PyTorch * - Notes - - GPU acceleration significantly improves training speed; hardware requirements increase with model and dataset size - + - GPU acceleration significantly improves training speed; hardware requirements increase with model and dataset size. + If you have an NVIDIA graphics card or an M-series Mac chip, please see the respective installation instructions below. + 1. **Install BioNeuralNet via pip** The core modules, including graph embeddings, disease prediction (DPMON), and clustering, can be installed directly: @@ -34,30 +35,39 @@ Recommended System Requirements pip install bioneuralnet - This will also install the required Ray components for hyperparameter tuning (Ray Tune and Ray Train) if your environment honors package extras. + This will also install the required Ray components for hyperparameter tuning (Ray Tune and Ray Train). 2. **Install PyTorch and PyTorch Geometric (Required for GNNs and DPMON)** BioNeuralNet utilizes PyTorch and PyTorch Geometric for graph neural network computations (e.g., GNN embeddings and the DPMON model). These are **not** pinned automatically because GPU/CPU builds and CUDA versions vary by system, so you should install them separately. - Basic installation (CPU-only or default build): + Basic installation (CPU-only or simple environments): .. code-block:: bash pip install torch pip install torch_geometric - We recommend the following tested versions for DPMON and GNN-based workflows: + If this fails or you need a GPU-enabled build, please follow the official installation guides to select the correct wheels for your OS, Python version, and CUDA: - .. code-block:: bash + - `PyTorch Installation Guide `_ + - `PyTorch Geometric Installation Guide `_ - pip install "torch==2.7.0+cu118" - pip install "torch_geometric==2.6.1" + .. note:: - For GPU-enabled installations or advanced configurations, please refer to the official documentation and choose the appropriate build based on your system and GPU availability: + On Apple Silicon (M1/M2/M3) Macs, PyTorch can use the Metal (MPS) backend instead of CUDA. + For details and recommended installation commands, see the official guide: - - `PyTorch Installation Guide `_ - - `PyTorch Geometric Installation Guide `_ + - `PyTorch on Metal (Apple Developer) `_ + + **Example tested GPU configuration (Windows/Linux + CUDA 11.8)** + + The following versions have been tested with DPMON and GNN-based workflows: + + .. code-block:: bash + + pip install "torch==2.7.0+cu118" --index-url https://download.pytorch.org/whl/cu118 + pip install "torch_geometric==2.6.1" .. figure:: _static/pytorch.png :align: center @@ -67,11 +77,43 @@ Recommended System Requirements :align: center :alt: PyTorch Geometric Installation Guide Example + .. note:: + + If you are working on Windows, we recommend installing Git Bash so that all shell commands in this documentation work as written. + You can install Git for Windows (which includes Git Bash) from: + + - `Git for Windows Installer `_ + + **Troubleshooting: CUDA / PyG compatibility** + + If you are using an NVIDIA graphics card, you must ensure that the CUDA version used by PyTorch and the wheels for PyTorch Geometric (and its extensions) match. When they do not, you may encounter segmentation faults during import. + + The following block uninstalls all relevant torch and PyTorch Geometric libraries and reinstalls a known-working combination (Linux + CUDA 11.8). You can copy and paste this block into your terminal. If it fails, try running each line one by one: + + .. code-block:: bash + + pip uninstall pyg-lib torch torchvision torchaudio torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -y + + pip install --no-cache-dir "torch==2.7.0+cu118" --index-url https://download.pytorch.org/whl/cu118 + pip install --no-cache-dir pyg-lib -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + + pip install --no-cache-dir torch-scatter -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + pip install --no-cache-dir torch-sparse -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + pip install --no-cache-dir torch-cluster -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + pip install --no-cache-dir torch-spline-conv -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + pip install --no-cache-dir torch-geometric -f https://data.pyg.org/whl/torch-2.7.0+cu118.html + + After running the above, you can verify your installation with: + + .. code-block:: bash + + python -c "import torch_geometric; from torch_scatter import scatter_add; print('OK')" + 3. **Ray for Hyperparameter Tuning (DPMON and Other HPO Workflows)** - BioNeuralNet uses `Ray Tune` and `Ray Train` for hyperparameter optimization and checkpointing in components such as DPMON. + BioNeuralNet uses :mod:`Ray Tune` and :mod:`Ray Train` for hyperparameter optimization and checkpointing in components such as DPMON. - If you installed BioNeuralNet via pip in a standard environment, Ray with the necessary extras should be installed automatically. For reproducibility or if your environment strips extras, you can explicitly install the tested Ray version: + If you installed BioNeuralNet via pip in a standard environment, Ray with the necessary extras should be installed automatically. For reproducibility, or if your environment strips extras, you can explicitly install the tested Ray version: .. code-block:: bash @@ -96,7 +138,7 @@ Recommended System Requirements pydantic >= 2.5 ray[tune,train] = 2.46.0 - *Note: The installer is flexible. It will attempt to install these tested versions (or compatible newer releases) to ensure stability, but will not strictly force them if your environment requires slight deviations.* + Our packaging specifies minimum versions for these dependencies; pip may install newer compatible releases depending on your environment. 5. **Optional: Install R and External Tools (e.g., SmCCNet)** @@ -109,7 +151,7 @@ Recommended System Requirements if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") - + install.packages(c("dplyr", "jsonlite")) BiocManager::install(c("impute", "preprocessCore", "GO.db", "AnnotationDbi")) install.packages("SmCCNet") @@ -117,7 +159,6 @@ Recommended System Requirements See :doc:`external_tools/index` for further details on external tools. - Next Steps ---------- diff --git a/docs/source/metrics.rst b/docs/source/metrics.rst index 8edcb07..1bedbb0 100644 --- a/docs/source/metrics.rst +++ b/docs/source/metrics.rst @@ -5,10 +5,6 @@ The ``metrics`` module provides a suite of tools for statistical analysis, quali To see the full code used to generate the plots below (specifically for the Kidney Cancer analysis), refer to our **TCGA KIPAN Biomarker Discovery** tutorial in :doc:`notebooks/index`. -.. contents:: Table of Contents - :local: - :depth: 2 - Performance Evaluation ---------------------- @@ -47,14 +43,9 @@ The example below shows embeddings from the **TCGA KIPAN** dataset, revealing di from bioneuralnet.metrics import plot_embeddings - # Retrieve embeddings from the trained GNN model - embeddings_array = embeddings.values - - # Prepare labels (e.g., Omics Type or Phenotype) for coloring - node_labels = gnn._prepare_node_labels() - - # Generate t-SNE projection - plot_embeddings(embeddings_array, node_labels, title="Embeddings in 2D space") + # feature(omics) embeddings colored by omics type. + print(f"Plotting Feature Embeddings for graph:") + plot_embeddings(GAT_embeddings_array, node_labels, legend_labels=["DNA_Methylation", "RNA", "miRNA"]) Network Visualization & Clustering ---------------------------------- diff --git a/docs/source/notebooks/TCGA-Biomarkers.ipynb b/docs/source/notebooks/TCGA-Biomarkers.ipynb index 8ff2add..7285798 100644 --- a/docs/source/notebooks/TCGA-Biomarkers.ipynb +++ b/docs/source/notebooks/TCGA-Biomarkers.ipynb @@ -19,7 +19,7 @@ "\n", "- We will also leverage BioNeuralNet visualization tools to explore the discovered communities further.\n", "\n", - "**Data Source:** [Broad Institute FireHose](`http://firebrowse.org/?cohort=KIPAN`)\n", + "**Data Source:** [Broad Institute FireHose](http://firebrowse.org/?cohort=KIPAN)\n", "\n", "*For the end-to-end analysis see TCGA-KIPAN Analysis*" ] diff --git a/docs/source/notebooks/TCGA-KIPAN.ipynb b/docs/source/notebooks/TCGA-KIPAN.ipynb index 68b9ef2..9192d74 100644 --- a/docs/source/notebooks/TCGA-KIPAN.ipynb +++ b/docs/source/notebooks/TCGA-KIPAN.ipynb @@ -15,7 +15,7 @@ "- **Goal**: Perform histological subtype classification.\n", "- **Prediction Target**: Predict the specific kidney cancer subtype (`KIRC`, `KIRP`, or `KICH`) from its multi-omics profile.\n", "\n", - "**Data Source:** Broad Institute FireHose (`http://firebrowse.org/?cohort=KIPAN`)" + "**Data Source:** [Broad Institute FireHose](http://firebrowse.org/?cohort=KIPAN)" ] }, { @@ -1010,531 +1010,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "4906eda5", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-11-26 00:57:20,716 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/threshold_10\n", - "2025-11-26 00:57:20,717 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GAT\n", - "2025-11-26 00:57:20,717 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 00:57:20,718 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 00:57:20,718 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 00:57:20,719 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 00:57:20,726 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:57:20,727 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 00:57:20,728 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 00:57:20,729 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 00:57:20,731 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:57:20,739 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:57:24,910 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:57:24,922 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 00:57:24,926\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:57:36,598\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0077s.\n", - "2025-11-26 00:57:36,759 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.002995945702914729, 'weight_decay': 7.542726756559785e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 32, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 00:57:36,760 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 00:57:36,765 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:57:40,906 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:57:45,459 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 00:57:45,470 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 00:57:45,470 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9394\n", - "2025-11-26 00:57:45,470 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9290\n", - "2025-11-26 00:57:45,470 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9398\n", - "2025-11-26 00:57:45,471 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9566\n", - "2025-11-26 00:57:45,471 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9918\n", - "2025-11-26 00:57:45,471 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9803\n", - "\n", - "2025-11-26 00:57:45,473 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 00:57:45,474 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:57:45,482 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:57:49,590 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:57:49,600 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 00:57:49,603\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:58:00,206\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0192s.\n", - "2025-11-26 00:58:00,330 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 00:58:00,331 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 00:58:00,335 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:04,454 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:06,182 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 00:58:06,187 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 00:58:06,187 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 00:58:06,188 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 00:58:06,188 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 00:58:06,188 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 00:58:06,188 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9940\n", - "2025-11-26 00:58:06,188 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9493\n", - "\n", - "2025-11-26 00:58:06,189 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 00:58:06,191 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:58:06,203 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:10,296 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:10,306 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 00:58:10,310\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:58:21,272\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0142s.\n", - "2025-11-26 00:58:21,422 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 00:58:21,423 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 00:58:21,427 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:25,530 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:29,913 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 00:58:29,918 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9459\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9544\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9297\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9963\n", - "2025-11-26 00:58:29,919 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9895\n", - "\n", - "2025-11-26 00:58:29,920 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 00:58:29,921 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:58:29,926 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:34,048 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:34,057 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 00:58:34,061\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:58:45,497\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0174s.\n", - "2025-11-26 00:58:45,665 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.0019123736530165902, 'weight_decay': 0.0006168499043610002, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 00:58:45,666 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 00:58:45,671 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:49,803 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:51,152 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 00:58:51,157 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 00:58:51,158 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9466\n", - "2025-11-26 00:58:51,158 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9505\n", - "2025-11-26 00:58:51,158 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9466\n", - "2025-11-26 00:58:51,158 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9607\n", - "2025-11-26 00:58:51,158 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9945\n", - "2025-11-26 00:58:51,159 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9885\n", - "\n", - "2025-11-26 00:58:51,159 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 00:58:51,160 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:58:51,165 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:58:55,257 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:58:55,268 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 00:58:55,271\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:59:08,036\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0139s.\n", - "2025-11-26 00:59:08,254 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 00:59:08,254 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 00:59:08,260 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:59:12,418 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:59:13,329 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 00:59:13,334 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9618\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9515\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9618\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9506\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9988\n", - "2025-11-26 00:59:13,335 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9970\n", - "\n", - "2025-11-26 00:59:13,348 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/threshold_10/best_cv_model.pt\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/threshold_10/best_cv_model_embds.pt\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9544 +/- 0.0120\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9451 +/- 0.0093\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9545 +/- 0.0120\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9511 +/- 0.0125\n", - "2025-11-26 00:59:13,349 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9951 +/- 0.0026\n", - "2025-11-26 00:59:13,350 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9809 +/- 0.0187\n", - "2025-11-26 00:59:13,350 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 00:59:13,351 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/correlation_10\n", - "2025-11-26 00:59:13,351 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GAT\n", - "2025-11-26 00:59:13,351 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 00:59:13,351 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 00:59:13,351 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 00:59:13,351 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 00:59:13,355 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:59:13,357 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 00:59:13,358 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 00:59:13,358 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 00:59:13,359 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:59:13,364 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:59:17,533 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:59:17,543 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 00:59:17,546\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:59:28,510\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0097s.\n", - "2025-11-26 00:59:28,689 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.002995945702914729, 'weight_decay': 7.542726756559785e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 32, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 00:59:28,690 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 00:59:28,694 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:59:32,822 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:59:37,372 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 00:59:37,377 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9394\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9287\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9399\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9558\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9930\n", - "2025-11-26 00:59:37,378 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9919\n", - "\n", - "2025-11-26 00:59:37,380 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 00:59:37,381 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:59:37,387 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:59:41,482 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:59:41,492 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 00:59:41,496\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 00:59:52,119\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0186s.\n", - "2025-11-26 00:59:52,225 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.00024165542558361394, 'weight_decay': 0.0002652189086272745, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.1, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 00:59:52,226 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 00:59:52,231 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 00:59:56,361 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 00:59:57,746 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 00:59:57,751 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 00:59:57,751 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 00:59:57,752 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 00:59:57,752 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 00:59:57,752 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 00:59:57,752 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9905\n", - "2025-11-26 00:59:57,752 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9331\n", - "\n", - "2025-11-26 00:59:57,753 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 00:59:57,754 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 00:59:57,759 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:00:01,882 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:00:01,892 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:00:01,896\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:00:12,425\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0233s.\n", - "2025-11-26 01:00:12,573 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:00:12,574 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:00:12,578 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:00:16,743 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:00:21,070 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:00:21,076 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:00:21,077 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:00:21,077 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9459\n", - "2025-11-26 01:00:21,077 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9544\n", - "2025-11-26 01:00:21,077 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9297\n", - "2025-11-26 01:00:21,077 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9968\n", - "2025-11-26 01:00:21,078 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9934\n", - "\n", - "2025-11-26 01:00:21,079 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:00:21,080 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:00:21,086 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:00:25,234 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:00:25,245 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:00:25,249\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:00:36,494\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0065s.\n", - "2025-11-26 01:00:36,639 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002226976717919125, 'weight_decay': 0.00016678702979522166, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 16, 'num_epochs': 512, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:00:36,639 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:00:36,644 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:00:40,787 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:00:41,407 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:00:41,411 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9466\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9505\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9466\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9607\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9934\n", - "2025-11-26 01:00:41,412 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9805\n", - "\n", - "2025-11-26 01:00:41,413 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:00:41,414 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:00:41,419 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:00:45,531 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:00:45,541 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:00:45,544\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:00:58,694\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0108s.\n", - "2025-11-26 01:00:58,924 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:00:58,925 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:00:58,929 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:03,090 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:03,987 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:01:03,991 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:01:03,991 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9618\n", - "2025-11-26 01:01:03,992 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9514\n", - "2025-11-26 01:01:03,992 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9617\n", - "2025-11-26 01:01:03,992 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9497\n", - "2025-11-26 01:01:03,992 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9977\n", - "2025-11-26 01:01:03,992 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9940\n", - "\n", - "2025-11-26 01:01:03,996 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/correlation_10/best_cv_model.pt\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/correlation_10/best_cv_model_embds.pt\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9544 +/- 0.0120\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9450 +/- 0.0094\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9545 +/- 0.0119\n", - "2025-11-26 01:01:03,997 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9507 +/- 0.0124\n", - "2025-11-26 01:01:03,998 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9943 +/- 0.0029\n", - "2025-11-26 01:01:03,998 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9786 +/- 0.0260\n", - "2025-11-26 01:01:03,998 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:01:03,999 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/similarity_10\n", - "2025-11-26 01:01:03,999 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GAT\n", - "2025-11-26 01:01:03,999 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:01:04,000 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:01:04,000 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:01:04,000 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:01:04,005 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:01:04,006 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:01:04,008 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:01:04,009 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:01:04,010 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:01:04,015 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:08,133 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:08,144 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:01:08,147\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:01:20,813\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0121s.\n", - "2025-11-26 01:01:21,000 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.002995945702914729, 'weight_decay': 7.542726756559785e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 32, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:01:21,001 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:01:21,005 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:25,276 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:29,966 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:01:29,971 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9394\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9290\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9398\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9566\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9957\n", - "2025-11-26 01:01:29,972 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9935\n", - "\n", - "2025-11-26 01:01:29,974 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:01:29,975 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:01:29,981 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:34,133 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:34,146 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:01:34,149\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:01:46,408\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0098s.\n", - "2025-11-26 01:01:46,566 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:01:46,567 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:01:46,571 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:50,727 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:52,514 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:01:52,519 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9315\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9623\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9322\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9934\n", - "2025-11-26 01:01:52,520 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9490\n", - "\n", - "2025-11-26 01:01:52,521 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:01:52,522 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:01:52,527 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:01:56,688 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:01:56,700 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:01:56,703\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:02:07,390\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0206s.\n", - "2025-11-26 01:02:07,536 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:02:07,536 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:02:07,540 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:02:11,675 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:02:16,004 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:02:16,009 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:02:16,009 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:02:16,010 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9459\n", - "2025-11-26 01:02:16,010 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9544\n", - "2025-11-26 01:02:16,010 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9297\n", - "2025-11-26 01:02:16,010 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9937\n", - "2025-11-26 01:02:16,011 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9911\n", - "\n", - "2025-11-26 01:02:16,012 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:02:16,014 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:02:16,020 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:02:20,128 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:02:20,139 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:02:20,142\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:02:31,003\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0166s.\n", - "2025-11-26 01:02:31,137 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002226976717919125, 'weight_decay': 0.00016678702979522166, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 16, 'num_epochs': 512, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:02:31,137 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:02:31,143 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:02:35,446 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:02:36,071 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:02:36,076 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9943\n", - "2025-11-26 01:02:36,077 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9862\n", - "\n", - "2025-11-26 01:02:36,077 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:02:36,079 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:02:36,084 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:02:40,268 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:02:40,280 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:02:40,283\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:02:52,747\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0184s.\n", - "2025-11-26 01:02:52,935 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0013804780705269182, 'weight_decay': 0.0037674454696866636, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:02:52,936 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:02:52,941 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:02:57,095 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:02:59,798 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:02:59,803 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:02:59,803 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9466\n", - "2025-11-26 01:02:59,804 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9398\n", - "2025-11-26 01:02:59,804 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9462\n", - "2025-11-26 01:02:59,804 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9373\n", - "2025-11-26 01:02:59,804 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9952\n", - "2025-11-26 01:02:59,804 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9880\n", - "\n", - "2025-11-26 01:02:59,818 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/similarity_10/best_cv_model.pt\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/similarity_10/best_cv_model_embds.pt\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9483 +/- 0.0100\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9382 +/- 0.0077\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9483 +/- 0.0100\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9422 +/- 0.0129\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9945 +/- 0.0010\n", - "2025-11-26 01:02:59,819 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9815 +/- 0.0184\n", - "2025-11-26 01:02:59,820 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:02:59,821 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/gaussian_15\n", - "2025-11-26 01:02:59,821 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GAT\n", - "2025-11-26 01:02:59,821 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:02:59,821 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:02:59,821 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:02:59,821 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:02:59,826 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:02:59,827 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:02:59,828 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:02:59,829 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:02:59,830 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:02:59,838 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:03:04,025 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:03:04,039 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:03:04,042\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:03:17,429\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0133s.\n", - "2025-11-26 01:03:17,636 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.002995945702914729, 'weight_decay': 7.542726756559785e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 32, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:03:17,637 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:03:17,641 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:03:21,783 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:03:26,807 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:03:26,812 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:03:26,812 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9394\n", - "2025-11-26 01:03:26,812 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9216\n", - "2025-11-26 01:03:26,813 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9405\n", - "2025-11-26 01:03:26,813 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9566\n", - "2025-11-26 01:03:26,813 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9950\n", - "2025-11-26 01:03:26,813 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9943\n", - "\n", - "2025-11-26 01:03:26,815 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:03:26,816 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:03:26,821 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:03:30,970 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:03:30,983 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:03:30,986\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:03:41,107\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0289s.\n", - "2025-11-26 01:03:41,224 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:03:41,225 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:03:41,229 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:03:45,495 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:03:47,199 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:03:47,204 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:03:47,204 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:03:47,204 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9315\n", - "2025-11-26 01:03:47,204 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9623\n", - "2025-11-26 01:03:47,204 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9322\n", - "2025-11-26 01:03:47,205 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9929\n", - "2025-11-26 01:03:47,205 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9469\n", - "\n", - "2025-11-26 01:03:47,206 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:03:47,207 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:03:47,212 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:03:51,382 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:03:51,395 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:03:51,399\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:04:02,747\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0162s.\n", - "2025-11-26 01:04:02,915 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 256, 'lr': 0.0016239332393902155, 'weight_decay': 1.2898372523486065e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:04:02,916 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:04:02,921 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:04:07,093 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:04:07,908 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:04:07,912 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9459\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9544\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9297\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9967\n", - "2025-11-26 01:04:07,913 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9949\n", - "\n", - "2025-11-26 01:04:07,915 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:04:07,916 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:04:07,922 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:04:12,095 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:04:12,109 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:04:12,112\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:04:23,475\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0193s.\n", - "2025-11-26 01:04:23,614 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002226976717919125, 'weight_decay': 0.00016678702979522166, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 16, 'num_epochs': 512, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:04:23,615 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:04:23,620 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:04:27,796 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:04:28,417 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:04:28,421 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:04:28,422 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:04:28,422 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:04:28,422 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:04:28,422 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:04:28,422 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9919\n", - "2025-11-26 01:04:28,423 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9839\n", - "\n", - "2025-11-26 01:04:28,424 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:04:28,425 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:04:28,431 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:04:32,603 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:04:32,616 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:04:32,619\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:04:45,848\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0215s.\n", - "2025-11-26 01:04:46,065 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:04:46,066 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:04:46,071 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:04:50,196 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:04:51,249 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:04:51,254 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:04:51,254 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9542\n", - "2025-11-26 01:04:51,254 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9456\n", - "2025-11-26 01:04:51,255 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9540\n", - "2025-11-26 01:04:51,255 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9435\n", - "2025-11-26 01:04:51,255 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9975\n", - "2025-11-26 01:04:51,255 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9938\n", - "\n", - "2025-11-26 01:04:51,259 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/gaussian_15/best_cv_model.pt\n", - "2025-11-26 01:04:51,259 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GAT_FINAL/kipan/gaussian_15/best_cv_model_embds.pt\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9498 +/- 0.0102\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9379 +/- 0.0110\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9500 +/- 0.0100\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9435 +/- 0.0126\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9948 +/- 0.0024\n", - "2025-11-26 01:04:51,260 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9827 +/- 0.0206\n", - "2025-11-26 01:04:51,261 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Results for: threshold_10\n", - "Accuracy (Avg +/- Std): 0.9544 +/- 0.0120\n", - "F1 Macro (Avg +/- Std): 0.9451 +/- 0.0093\n", - "F1 Weighted (Avg +/- Std): 0.9545 +/- 0.0120\n", - "Recall: 0.9511 +/- 0.0125\n", - "AUC: 0.9951 +/- 0.0026\n", - "\n", - "Results for: correlation_10\n", - "Accuracy (Avg +/- Std): 0.9544 +/- 0.0120\n", - "F1 Macro (Avg +/- Std): 0.9450 +/- 0.0094\n", - "F1 Weighted (Avg +/- Std): 0.9545 +/- 0.0119\n", - "Recall: 0.9507 +/- 0.0124\n", - "AUC: 0.9943 +/- 0.0029\n", - "\n", - "Results for: similarity_10\n", - "Accuracy (Avg +/- Std): 0.9483 +/- 0.0100\n", - "F1 Macro (Avg +/- Std): 0.9382 +/- 0.0077\n", - "F1 Weighted (Avg +/- Std): 0.9483 +/- 0.0100\n", - "Recall: 0.9422 +/- 0.0129\n", - "AUC: 0.9945 +/- 0.0010\n", - "\n", - "Results for: gaussian_15\n", - "Accuracy (Avg +/- Std): 0.9498 +/- 0.0102\n", - "F1 Macro (Avg +/- Std): 0.9379 +/- 0.0110\n", - "F1 Weighted (Avg +/- Std): 0.9500 +/- 0.0100\n", - "Recall: 0.9435 +/- 0.0126\n", - "AUC: 0.9948 +/- 0.0024\n" - ] - } - ], + "outputs": [], "source": [ "from bioneuralnet.downstream_task import DPMON\n", "\n", @@ -1600,9 +1079,43 @@ " print(f\"AUC: {auc_avg:.4f} +/- {auc_std:.4f}\")" ] }, + { + "cell_type": "markdown", + "id": "d0392ff6", + "metadata": {}, + "source": [ + "**Results for: threshold_10**: \n", + "- Accuracy (Avg +/- Std): 0.9544 +/- 0.0120\n", + "- F1 Macro (Avg +/- Std): 0.9451 +/- 0.0093\n", + "- F1 Weighted (Avg +/- Std): 0.9545 +/- 0.0120\n", + "- Recall: 0.9511 +/- 0.0125\n", + "- AUC: 0.9951 +/- 0.0026\n", + "\n", + "**Results for: correlation_10**:\n", + "- Accuracy (Avg +/- Std): 0.9544 +/- 0.0120\n", + "- F1 Macro (Avg +/- Std): 0.9450 +/- 0.0094\n", + "- F1 Weighted (Avg +/- Std): 0.9545 +/- 0.0119\n", + "- Recall: 0.9507 +/- 0.0124\n", + "- AUC: 0.9943 +/- 0.0029\n", + "\n", + "**Results for: similarity_10**:\n", + "- Accuracy (Avg +/- Std): 0.9483 +/- 0.0100\n", + "- F1 Macro (Avg +/- Std): 0.9382 +/- 0.0077\n", + "- F1 Weighted (Avg +/- Std): 0.9483 +/- 0.0100\n", + "- Recall: 0.9422 +/- 0.0129\n", + "- AUC: 0.9945 +/- 0.0010\n", + "\n", + "**Results for: gaussian_15**:\n", + "- Accuracy (Avg +/- Std): 0.9498 +/- 0.0102\n", + "- F1 Macro (Avg +/- Std): 0.9379 +/- 0.0110\n", + "- F1 Weighted (Avg +/- Std): 0.9500 +/- 0.0100\n", + "- Recall: 0.9435 +/- 0.0126\n", + "- AUC: 0.9948 +/- 0.0024" + ] + }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "fac7426c", "metadata": {}, "outputs": [ @@ -1693,7 +1206,6 @@ } ], "source": [ - "\n", "# we have emebeddings for each of the 4 graphs\n", "# we will select the last one from the list (threshold_10) for visualization\n", "res = all_results_GAT[0] \n", @@ -1710,7 +1222,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "b1200e4e", "metadata": {}, "outputs": [ @@ -1762,325 +1274,16 @@ "node_labels = np.array(node_labels)\n", "\n", "# feature(omics) embeddings colored by omics type.\n", - "print(f\"Plotting Feature Embeddings for graph: {res['graph']}\")\n", + "print(f\"Plotting Feature Embeddings for graph:\")\n", "plot_embeddings(GAT_embeddings_array, node_labels, legend_labels=[\"DNA_Methylation\", \"RNA\", \"miRNA\"])" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "98442c32", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-11-26 09:50:43,480 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:50:43,481 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:50:43,481 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:50:43,482 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 09:50:43,482 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 09:50:43,494 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 09:50:43,495 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 09:50:43,504 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8930, features=900)\n", - "2025-11-26 09:50:43,504 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:50:43,505 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:50:43,505 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:50:43,505 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:50:43,615 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.5264, combined = 0.5686\n", - "2025-11-26 09:50:43,615 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5686\n", - "2025-11-26 09:50:43,616 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 9 communities (nodes=900)\n", - "2025-11-26 09:50:43,669 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.5264, combined = 0.5686\n", - "2025-11-26 09:50:43,669 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.5686\n", - "2025-11-26 09:50:43,722 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 159 with correlation -0.8356\n", - "2025-11-26 09:50:43,722 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:50:43,723 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8930 edges.\n", - "2025-11-26 09:50:43,723 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:50:43,724 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:50:43,724 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:50:43,724 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:50:43,724 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:50:43,725 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:50:43,725 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:50:43,726 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:50:43,726 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:50:43,726 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:50:45,149 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['LOC645638', 'MIR190', 'MIR657', 'CAPG', 'GGTLC2', 'FABP7_2173', 'SLC6A3_6531', 'PTGER3_5733', 'CP_1356', 'CA9_768', 'HMGCS2_3158', 'C6orf223_221416', 'CYP2J2_1573', 'CREB3L3_84699', 'ANGPTL4_51129', 'MYEOV_26579', 'PCSK6_5046', 'C1QL1_10882', 'LGI4_163175', 'UBE2QL1_134111', 'MCHR1_2847', 'ACTG2_72', 'SORCS2_57537', 'APOB_338', 'FOLH1_2346', 'MAP7D2_256714', 'ACAN_176', 'TFAP2A_7020', 'CA4_762', 'VAT1L_57687', 'AVPR1A_552', 'CCL20_6364', 'PRDM16_63976', 'FHL5_9457', 'LOX_4015', 'PCDH17_27253', 'APLNR_187', 'COL21A1_81578', 'LOC100131551_100131551', 'ACTC1_70', 'ANGPT2_285', 'ADAMTS4_9507', 'ESM1_11082', 'CASQ2_845', 'ADAMTSL1_92949', 'PCOLCE2_26577', 'CDCA2_157313', 'COL5A3_50509', 'PDE1C_5137', 'CPXM2_119587', 'RGS5_8490', 'CREB3L1_90993', 'PRRX1_5396', 'KCNN3_3782', 'CALCR_799', 'ADCY1_107', 'COX4I2_84701', 'CD36_948', 'STC1_6781', 'C2orf72_257407', 'ALDOC_230', 'CDH13_1012', 'CDH11_1009', 'PPFIA4_8497', 'PDE3A_5139', 'ANGPT1_284', 'CXCL9_4283', 'CXCL11_6373', 'APLN_8862', 'HOXD10_3236', 'CA8_767', 'TRPC6_7225', 'AGTR1_185', 'DDR2_4921', 'B4GALNT1_2583', 'OR51E1_143503', 'BDKRB2_624', 'DGKI_9162', 'MYH11_4629', 'SEMA5B_54437', 'BARX2_8538', 'TMEM45A_55076', 'MPPED2_744', 'COL25A1_84570', 'PLAC9_219348', 'RASGRF2_5924', 'FLT1_2321', 'C6orf105_84830', 'RASD2_23551', 'C3orf70_285382', 'EGLN3_112399', 'CNN1_1264', 'CSPG4_1464', 'CXCL10_3627', 'COL6A3_1293', 'APOLD1_81575', 'HMCN1_83872', 'ZNF521_25925', 'SLC35F1_222553', 'C4orf6_10141', 'DACH1_1602', 'SPARCL1_8404', 'C17orf55_284185', 'BDKRB1_623', 'COL14A1_7373', 'KLHDC8A_55220', 'PDZD2_23037', 'GABRE_2564', 'FATE1_89885', 'BTNL9_153579', 'ADAMTS5_11096', 'GPR4_2828', 'GPR116_221395', 'C7orf68_29923', 'ANO3_63982', 'COL8A1_1295', 'B3GNT4_79369', 'NGF_4803', 'ADAMTS12_81792', 'hsa_mir_217', 'hsa_mir_122', 'hsa_mir_885', 'hsa_mir_675', 'hsa_mir_577', 'hsa_mir_653', 'hsa_mir_503', 'hsa_mir_1247', 'hsa_mir_126', 'hsa_mir_489', 'hsa_mir_224', 'hsa_mir_424', 'hsa_mir_134', 'hsa_mir_1_2', 'hsa_mir_199b', 'hsa_mir_145', 'hsa_mir_199a_2', 'hsa_mir_199a_1', 'hsa_mir_153_2', 'hsa_mir_3676', 'hsa_mir_139', 'hsa_mir_379', 'hsa_mir_127', 'hsa_mir_452', 'hsa_mir_450a_1', 'hsa_mir_450a_2', 'hsa_mir_374c', 'hsa_mir_1271', 'hsa_mir_450b', 'hsa_mir_1274b', 'hsa_mir_326', 'hsa_mir_195', 'hsa_mir_33b', 'hsa_mir_26a_1', 'hsa_mir_497', 'hsa_mir_3605', 'hsa_mir_320b_2', 'hsa_mir_504', 'hsa_mir_1296', 'hsa_mir_212']\n", - "2025-11-26 09:50:45,159 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:02,712 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 293 with conductance 0.098 and correlation -0.84.\n", - "2025-11-26 09:51:02,712 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:02,713 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=293, Conductance=0.098 Correlation=-0.840 score=-0.371\n", - "2025-11-26 09:51:02,722 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:02,728 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=293, edges=2701, features=900)\n", - "2025-11-26 09:51:02,729 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:02,730 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:02,730 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:02,730 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:02,816 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6016, avg_corr = 0.6149, combined = 0.6123\n", - "2025-11-26 09:51:02,817 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.6123\n", - "2025-11-26 09:51:02,817 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 8 communities (nodes=293)\n", - "2025-11-26 09:51:02,850 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6016, avg_corr = 0.6149, combined = 0.6123\n", - "2025-11-26 09:51:02,851 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.6123\n", - "2025-11-26 09:51:02,881 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 66 with correlation -0.8259\n", - "2025-11-26 09:51:02,881 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:02,882 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 293 nodes and 2701 edges.\n", - "2025-11-26 09:51:02,882 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:02,883 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:02,883 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:02,883 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:02,883 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:02,884 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:02,884 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:02,885 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:02,885 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:02,885 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:03,374 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['FATE1_89885', 'CASQ2_845', 'FOLH1_2346', 'hsa_mir_1247', 'BARX2_8538', 'NGF_4803', 'CA4_762', 'C2orf72_257407', 'hsa_mir_1_2', 'RASD2_23551', 'OR51E1_143503', 'ANGPT2_285', 'ADAMTS4_9507', 'ZNF521_25925', 'CXCL10_3627', 'GABRE_2564', 'C6orf223_221416', 'hsa_mir_153_2', 'PDE3A_5139', 'MCHR1_2847', 'AGTR1_185', 'ESM1_11082', 'CXCL9_4283', 'hsa_mir_489', 'hsa_mir_885', 'B4GALNT1_2583', 'ACAN_176', 'CSPG4_1464', 'hsa_mir_224', 'COL5A3_50509', 'FLT1_2321', 'GPR4_2828', 'hsa_mir_126', 'DACH1_1602', 'BTNL9_153579', 'PCDH17_27253', 'APLNR_187', 'COL21A1_81578', 'SLC35F1_222553', 'STC1_6781', 'PLAC9_219348', 'ADAMTS12_81792', 'hsa_mir_139', 'ANO3_63982', 'COL8A1_1295', 'APLN_8862', 'LGI4_163175', 'ACTG2_72', 'hsa_mir_653', 'CDH13_1012', 'CALCR_799', 'APOLD1_81575', 'KLHDC8A_55220', 'RGS5_8490', 'DDR2_4921', 'COL25A1_84570', 'FHL5_9457', 'CD36_948', 'HMCN1_83872', 'C3orf70_285382', 'KCNN3_3782', 'ADAMTS5_11096', 'COX4I2_84701', 'CXCL11_6373', 'PRRX1_5396', 'TRPC6_7225']\n", - "2025-11-26 09:51:03,379 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:05,727 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 227 with conductance 0.085 and correlation -0.83.\n", - "2025-11-26 09:51:05,728 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:05,728 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=227, Conductance=0.085 Correlation=-0.830 score=-0.372\n", - "2025-11-26 09:51:05,735 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:05,740 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=227, edges=2085, features=900)\n", - "2025-11-26 09:51:05,741 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:05,741 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:05,742 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:05,742 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:05,781 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5419, avg_corr = 0.6823, combined = 0.6542\n", - "2025-11-26 09:51:05,782 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.6542\n", - "2025-11-26 09:51:05,782 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 7 communities (nodes=227)\n", - "2025-11-26 09:51:05,808 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5419, avg_corr = 0.6823, combined = 0.6542\n", - "2025-11-26 09:51:05,808 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.6542\n", - "2025-11-26 09:51:05,832 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 58 with correlation -0.8271\n", - "2025-11-26 09:51:05,833 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:05,834 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 227 nodes and 2085 edges.\n", - "2025-11-26 09:51:05,834 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:05,834 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:05,835 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:05,835 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:05,835 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:05,836 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:05,836 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:05,837 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:05,838 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:05,838 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:06,070 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['FATE1_89885', 'CASQ2_845', 'FOLH1_2346', 'hsa_mir_1247', 'BARX2_8538', 'HOXD10_3236', 'NGF_4803', 'CA4_762', 'C2orf72_257407', 'RASD2_23551', 'OR51E1_143503', 'ANGPT2_285', 'ADAMTS4_9507', 'ZNF521_25925', 'GABRE_2564', 'C6orf223_221416', 'hsa_mir_153_2', 'PDE3A_5139', 'MCHR1_2847', 'AGTR1_185', 'ESM1_11082', 'hsa_mir_489', 'hsa_mir_885', 'B4GALNT1_2583', 'ACAN_176', 'CSPG4_1464', 'hsa_mir_224', 'COL5A3_50509', 'FLT1_2321', 'GPR4_2828', 'DACH1_1602', 'BTNL9_153579', 'PCDH17_27253', 'APLNR_187', 'COL21A1_81578', 'SLC35F1_222553', 'STC1_6781', 'PLAC9_219348', 'ANO3_63982', 'COL8A1_1295', 'APLN_8862', 'LGI4_163175', 'hsa_mir_653', 'CDH13_1012', 'CALCR_799', 'APOLD1_81575', 'KLHDC8A_55220', 'RGS5_8490', 'DDR2_4921', 'COL25A1_84570', 'FHL5_9457', 'CD36_948', 'HMCN1_83872', 'C3orf70_285382', 'KCNN3_3782', 'ADAMTS5_11096', 'COX4I2_84701', 'TRPC6_7225']\n", - "2025-11-26 09:51:06,074 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:08,534 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 94 with conductance 0.177 and correlation -0.83.\n", - "2025-11-26 09:51:08,535 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:08,535 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=94, Conductance=0.177 Correlation=-0.830 score=-0.327\n", - "2025-11-26 09:51:08,538 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n", - "2025-11-26 09:51:08,542 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:08,543 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:08,543 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:08,544 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 09:51:08,544 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 09:51:08,564 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 09:51:08,565 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:08,606 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8930, features=900)\n", - "2025-11-26 09:51:08,607 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:08,608 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:08,609 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:08,609 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:08,749 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.4985, combined = 0.5462\n", - "2025-11-26 09:51:08,750 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5462\n", - "2025-11-26 09:51:08,750 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 9 communities (nodes=900)\n", - "2025-11-26 09:51:08,850 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.4985, combined = 0.5462\n", - "2025-11-26 09:51:08,850 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.5462\n", - "2025-11-26 09:51:08,932 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 48 with correlation -0.8391\n", - "2025-11-26 09:51:08,932 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:08,933 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8930 edges.\n", - "2025-11-26 09:51:08,933 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:08,934 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:08,934 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:08,934 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:08,934 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:08,935 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:08,935 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:08,936 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:08,936 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:08,937 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:09,133 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['BAAT', 'SCARNA4', 'RPL23AP32', 'LOH3CR2A', 'C4orf6', 'SNORA1', 'CP', 'C10orf62', 'C3orf24', 'GBP5', 'LCN2_3934', 'SLPI_6590', 'CKMT1B_1159', 'TJP3_27134', 'CHL1_10752', 'C19orf46_163183', 'CKMT1A_548596', 'C6orf168_84553', 'MAL_4118', 'BNC1_646', 'CAMK2B_816', 'CNTN3_5067', 'LOC554202_554202', 'C1orf116_79098', 'CST6_1474', 'WFDC2_10406', 'DEFB1_1672', 'CCNO_10309', 'ANO5_203859', 'CCDC78_124093', 'STK33_65975', 'IGF2BP2_10644', 'EPS8L1_54869', 'CBLC_23624', 'C4orf48_401115', 'CNTD2_79935', 'OGDHL_55753', 'FAM155B_27112', 'ANXA3_306', 'hsa_mir_375', 'hsa_mir_183', 'hsa_mir_96', 'hsa_mir_182', 'hsa_mir_34c', 'hsa_mir_200b', 'hsa_mir_429', 'hsa_mir_651', 'hsa_mir_200a']\n", - "2025-11-26 09:51:09,144 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:26,800 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 159 with conductance 0.217 and correlation -0.83.\n", - "2025-11-26 09:51:26,801 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:26,801 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=159, Conductance=0.217 Correlation=-0.830 score=-0.307\n", - "2025-11-26 09:51:26,809 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:26,816 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=159, edges=1292, features=900)\n", - "2025-11-26 09:51:26,819 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:26,819 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:26,820 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:26,821 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:26,870 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5196, avg_corr = 0.5933, combined = 0.5785\n", - "2025-11-26 09:51:26,871 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5785\n", - "2025-11-26 09:51:26,871 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 6 communities (nodes=159)\n", - "2025-11-26 09:51:26,895 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5196, avg_corr = 0.5933, combined = 0.5785\n", - "2025-11-26 09:51:26,896 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.5785\n", - "2025-11-26 09:51:26,918 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 45 with correlation -0.8283\n", - "2025-11-26 09:51:26,919 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:26,920 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 159 nodes and 1292 edges.\n", - "2025-11-26 09:51:26,920 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:26,920 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:26,920 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:26,921 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:26,921 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:26,921 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:26,922 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:26,922 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:26,923 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:26,923 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:27,114 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['C4orf48_401115', 'CKMT1B_1159', 'OGDHL_55753', 'hsa_mir_21', 'hsa_mir_183', 'CST6_1474', 'EPS8L1_54869', 'hsa_mir_429', 'C1orf116_79098', 'hsa_mir_200b', 'C19orf46_163183', 'GBP5', 'hsa_mir_31', 'CNTD2_79935', 'C6orf168_84553', 'CHL1_10752', 'CBLC_23624', 'CNTN3_5067', 'CKMT1A_548596', 'hsa_mir_200a', 'AKR1C2_1646', 'SLPI_6590', 'WFDC2_10406', 'hsa_mir_375', 'ANXA3_306', 'hsa_mir_149', 'BNC1_646', 'CCDC78_124093', 'MAL_4118', 'CAMK2B_816', 'FAM155B_27112', 'CCNO_10309', 'STK33_65975', 'LOC554202_554202', 'TJP3_27134', 'hsa_mir_34c', 'C3orf24', 'IGF2BP2_10644', 'hsa_mir_182', 'CLSTN2_64084', 'ANO5_203859', 'hsa_mir_96', 'hsa_mir_205', 'LCN2_3934', 'LOH3CR2A']\n", - "2025-11-26 09:51:27,117 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:28,052 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 63 with conductance 0.229 and correlation -0.85.\n", - "2025-11-26 09:51:28,052 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:28,053 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=63, Conductance=0.229 Correlation=-0.850 score=-0.311\n", - "2025-11-26 09:51:28,055 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:28,058 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=63, edges=490, features=900)\n", - "2025-11-26 09:51:28,059 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:28,060 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:28,060 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:28,061 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:28,085 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3730, avg_corr = 0.6817, combined = 0.6200\n", - "2025-11-26 09:51:28,085 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.6200\n", - "2025-11-26 09:51:28,086 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 5 communities (nodes=63)\n", - "2025-11-26 09:51:28,104 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3730, avg_corr = 0.6817, combined = 0.6200\n", - "2025-11-26 09:51:28,105 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.6200\n", - "2025-11-26 09:51:28,135 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 17 with correlation -0.8340\n", - "2025-11-26 09:51:28,136 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:28,136 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 63 nodes and 490 edges.\n", - "2025-11-26 09:51:28,136 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:28,137 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:28,137 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:28,138 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:28,138 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:28,138 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:28,139 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:28,140 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:28,141 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:28,141 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:28,205 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['C4orf48_401115', 'CAMK2B_816', 'TMEM204', 'CCNO_10309', 'CORO6_84940', 'LOC554202_554202', 'TJP3_27134', 'IGF2BP2_10644', 'C1orf162', 'CNTD2_79935', 'C6orf168_84553', 'CHL1_10752', 'hsa_mir_96', 'BNC1_646', 'CCDC78_124093', 'LCN2_3934', 'LOH3CR2A']\n", - "2025-11-26 09:51:28,209 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:28,455 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 32 with conductance 0.246 and correlation -0.86.\n", - "2025-11-26 09:51:28,456 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:28,457 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=32, Conductance=0.246 Correlation=-0.860 score=-0.307\n", - "2025-11-26 09:51:28,458 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n", - "2025-11-26 09:51:28,460 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:28,461 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:28,462 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:28,462 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 09:51:28,462 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 09:51:28,482 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 09:51:28,483 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:28,498 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8930, features=900)\n", - "2025-11-26 09:51:28,500 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:28,501 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:28,502 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:28,503 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:28,640 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.4314, combined = 0.4926\n", - "2025-11-26 09:51:28,640 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.4926\n", - "2025-11-26 09:51:28,641 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 9 communities (nodes=900)\n", - "2025-11-26 09:51:28,715 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.7372, avg_corr = 0.4314, combined = 0.4926\n", - "2025-11-26 09:51:28,716 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.4926\n", - "2025-11-26 09:51:28,776 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 76 with correlation 0.8164\n", - "2025-11-26 09:51:28,777 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:28,777 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8930 edges.\n", - "2025-11-26 09:51:28,778 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:28,778 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:28,778 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:28,779 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:28,779 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:28,779 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:28,780 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:28,780 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:28,781 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:28,781 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:29,691 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['ALDH1A1', 'C21orf131', 'ADAM28', 'C21orf129', 'TMEM71', 'C4orf26', 'SLC22A2', 'TINAG', 'ACSM5', 'CIDEC', 'C20orf118', 'RHCG_51458', 'ATP6V0A4_50617', 'SLC4A1_6521', 'KLK1_3816', 'ATP6V0D2_245972', 'CLDN8_9073', 'FOXI1_2299', 'DMRT2_10655', 'HEPACAM2_253012', 'CLCNKB_1188', 'ATP6V1B1_525', 'CFTR_1080', 'CKMT2_1160', 'GCGR_2642', 'SLC26A7_115111', 'CLCNKA_1187', 'FGF9_2254', 'BMPR1B_658', 'TMPRSS2_7113', 'DHRS2_10202', 'BSND_7809', 'AQP6_363', 'CWH43_80157', 'TRIM50_135892', 'C16orf89_146556', 'SLC9A2_6549', 'CALCA_796', 'OLIG1_116448', 'CLNK_116449', 'CYP11A1_1583', 'RANBP3L_202151', 'DIRAS1_148252', 'C1orf168_199920', 'INPP5J_27124', 'C15orf59_388135', 'CCBE1_147372', 'EPB41L4B_54566', 'GCOM1_145781', 'C9orf84_158401', 'ATP6V1G3_127124', 'VWA5B1_127731', 'LRRTM1_347730', 'KRTAP5_8_57830', 'ST8SIA5_29906', 'B4GALNT3_283358', 'CNTNAP5_129684', 'CEND1_51286', 'LOC643008_643008', 'CEL_1056', 'CR1L_1379', 'ASB5_140458', 'CTNNA2_1496', 'MARCH10_162333', 'SEZ6L_23544', 'hsa_mir_891a', 'hsa_mir_141', 'hsa_mir_187', 'hsa_mir_200c', 'hsa_mir_129_1', 'hsa_mir_129_2', 'hsa_mir_874', 'hsa_mir_206', 'hsa_mir_218_1', 'hsa_mir_618', 'hsa_mir_30c_1']\n", - "2025-11-26 09:51:29,704 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:46,043 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 69 with conductance 0.109 and correlation 0.81.\n", - "2025-11-26 09:51:46,044 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:46,044 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=69, Conductance=0.109 Correlation=0.810 score=-0.350\n", - "2025-11-26 09:51:46,046 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:46,049 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=69, edges=585, features=900)\n", - "2025-11-26 09:51:46,050 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:46,051 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:46,052 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:46,052 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:46,074 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3798, avg_corr = 0.7822, combined = 0.7017\n", - "2025-11-26 09:51:46,075 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.7017\n", - "2025-11-26 09:51:46,075 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 4 communities (nodes=69)\n", - "2025-11-26 09:51:46,093 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3798, avg_corr = 0.7822, combined = 0.7017\n", - "2025-11-26 09:51:46,094 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.7017\n", - "2025-11-26 09:51:46,114 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 9 with correlation 0.8318\n", - "2025-11-26 09:51:46,116 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:46,117 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 69 nodes and 585 edges.\n", - "2025-11-26 09:51:46,118 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:46,118 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:46,119 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:46,120 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:46,121 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:46,121 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:46,122 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:46,124 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:46,125 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:46,126 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:46,159 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['SEZ6L_23544', 'LRRTM1_347730', 'hsa_mir_187', 'KLK1_3816', 'CTNNA2_1496', 'CASS4', 'hsa_mir_618', 'CFTR_1080', 'ATP6V0D2_245972']\n", - "2025-11-26 09:51:46,162 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:46,457 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 34 with conductance 0.211 and correlation 0.81.\n", - "2025-11-26 09:51:46,457 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:46,457 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=34, Conductance=0.211 Correlation=0.810 score=-0.300\n", - "2025-11-26 09:51:46,459 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 09:51:46,461 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=34, edges=235, features=900)\n", - "2025-11-26 09:51:46,462 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:46,462 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:46,463 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:46,463 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 09:51:46,479 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3141, avg_corr = 0.7568, combined = 0.6683\n", - "2025-11-26 09:51:46,480 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.6683\n", - "2025-11-26 09:51:46,480 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 6 communities (nodes=34)\n", - "2025-11-26 09:51:46,493 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.3141, avg_corr = 0.7568, combined = 0.6683\n", - "2025-11-26 09:51:46,493 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.6683\n", - "2025-11-26 09:51:46,505 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 7 with correlation 0.8084\n", - "2025-11-26 09:51:46,506 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 09:51:46,507 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 34 nodes and 235 edges.\n", - "2025-11-26 09:51:46,507 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 09:51:46,507 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 09:51:46,508 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 09:51:46,508 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 09:51:46,508 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 09:51:46,508 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 09:51:46,509 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 09:51:46,510 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 09:51:46,510 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 09:51:46,510 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 09:51:46,532 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['SEZ6L_23544', 'ST8SIA5_29906', 'LRRTM1_347730', 'CTNNA2_1496', 'hsa_mir_618', 'CFTR_1080', 'CR1L_1379']\n", - "2025-11-26 09:51:46,534 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 09:51:46,625 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 16 with conductance 0.345 and correlation 0.83.\n", - "2025-11-26 09:51:46,625 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 09:51:46,626 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=16, Conductance=0.345 Correlation=0.830 score=-0.242\n", - "2025-11-26 09:51:46,626 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Driver modules (one-vs-rest):\n", - " KIRP: 293 features\n", - " KIRC: 159 features\n", - " KICH: 69 features\n" - ] - } - ], + "outputs": [], "source": [ "from bioneuralnet.clustering import HybridLouvain\n", "\n", @@ -2120,6 +1323,18 @@ "\n" ] }, + { + "cell_type": "markdown", + "id": "23a415fa", + "metadata": {}, + "source": [ + "Driver modules (one-vs-rest):\n", + "\n", + "- KIRP: 293 features\n", + "- KIRC: 159 features\n", + "- KICH: 69 features" + ] + }, { "cell_type": "code", "execution_count": 50, @@ -2462,531 +1677,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "81315c47", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-11-26 01:05:57,049 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/threshold_10\n", - "2025-11-26 01:05:57,050 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: SAGE\n", - "2025-11-26 01:05:57,051 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:05:57,052 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:05:57,052 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:05:57,052 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:05:57,063 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:05:57,068 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:05:57,071 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:05:57,073 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:05:57,075 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:05:57,085 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:01,170 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:01,192 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:06:01,195\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:06:11,311\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0313s.\n", - "2025-11-26 01:06:11,512 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 512, 'lr': 0.0017134878267294578, 'weight_decay': 0.00037228516397726333, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:06:11,512 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:06:11,518 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:15,594 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:18,738 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:06:18,755 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:06:18,755 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9470\n", - "2025-11-26 01:06:18,755 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9324\n", - "2025-11-26 01:06:18,756 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9470\n", - "2025-11-26 01:06:18,756 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9423\n", - "2025-11-26 01:06:18,756 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9960\n", - "2025-11-26 01:06:18,756 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9907\n", - "\n", - "2025-11-26 01:06:18,757 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:06:18,758 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:06:18,763 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:22,834 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:22,844 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:06:22,848\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:06:32,649\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0301s.\n", - "2025-11-26 01:06:32,793 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:06:32,794 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:06:32,799 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:36,856 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:37,956 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:06:37,961 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:06:37,961 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 01:06:37,961 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 01:06:37,962 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 01:06:37,962 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 01:06:37,962 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9915\n", - "2025-11-26 01:06:37,962 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9353\n", - "\n", - "2025-11-26 01:06:37,963 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:06:37,964 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:06:37,969 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:42,023 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:42,033 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:06:42,036\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:06:51,939\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0300s.\n", - "2025-11-26 01:06:52,121 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:06:52,122 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:06:52,127 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:06:56,224 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:06:58,746 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9459\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9544\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9297\n", - "2025-11-26 01:06:58,751 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9966\n", - "2025-11-26 01:06:58,752 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9935\n", - "\n", - "2025-11-26 01:06:58,753 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:06:58,754 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:06:58,761 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:02,888 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:07:02,900 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:07:02,903\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:07:13,708\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0323s.\n", - "2025-11-26 01:07:13,923 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0008628455289617886, 'weight_decay': 0.005542594076906398, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:07:13,924 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:07:13,928 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:18,066 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:07:21,166 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:07:21,170 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.8931\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.8940\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.8929\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9236\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9934\n", - "2025-11-26 01:07:21,171 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9925\n", - "\n", - "2025-11-26 01:07:21,172 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:07:21,174 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:07:21,183 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:25,311 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:07:25,322 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:07:25,325\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:07:35,948\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0072s.\n", - "2025-11-26 01:07:36,170 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:07:36,170 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:07:36,176 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:40,293 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:07:40,839 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:07:40,844 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:07:40,844 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9618\n", - "2025-11-26 01:07:40,844 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9514\n", - "2025-11-26 01:07:40,844 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9617\n", - "2025-11-26 01:07:40,845 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9497\n", - "2025-11-26 01:07:40,845 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9969\n", - "2025-11-26 01:07:40,845 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9881\n", - "\n", - "2025-11-26 01:07:40,847 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/threshold_10/best_cv_model.pt\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/threshold_10/best_cv_model_embds.pt\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9452 +/- 0.0303\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9345 +/- 0.0238\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9452 +/- 0.0305\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9406 +/- 0.0141\n", - "2025-11-26 01:07:40,848 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9949 +/- 0.0024\n", - "2025-11-26 01:07:40,849 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9800 +/- 0.0251\n", - "2025-11-26 01:07:40,849 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:07:40,850 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/correlation_10\n", - "2025-11-26 01:07:40,850 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: SAGE\n", - "2025-11-26 01:07:40,850 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:07:40,850 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:07:40,850 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:07:40,850 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:07:40,855 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:07:40,856 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:07:40,857 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:07:40,857 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:07:40,858 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:07:40,865 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:44,953 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:07:44,964 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:07:44,967\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:07:54,922\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0290s.\n", - "2025-11-26 01:07:55,109 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 256, 'lr': 0.001257123304842143, 'weight_decay': 0.0003745702077936848, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:07:55,109 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:07:55,114 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:07:59,376 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:00,931 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:08:00,937 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:08:00,937 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:08:00,937 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9482\n", - "2025-11-26 01:08:00,937 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9546\n", - "2025-11-26 01:08:00,938 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9679\n", - "2025-11-26 01:08:00,938 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9956\n", - "2025-11-26 01:08:00,938 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9900\n", - "\n", - "2025-11-26 01:08:00,939 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:08:00,940 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:08:00,946 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:08:05,060 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:05,072 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:08:05,075\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:08:15,288\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0300s.\n", - "2025-11-26 01:08:15,451 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:08:15,452 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:08:15,456 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:08:19,574 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:20,611 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:08:20,616 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:08:20,616 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 01:08:20,616 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 01:08:20,616 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 01:08:20,616 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 01:08:20,617 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9927\n", - "2025-11-26 01:08:20,617 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9484\n", - "\n", - "2025-11-26 01:08:20,617 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:08:20,619 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:08:20,624 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:08:24,748 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:24,759 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:08:24,762\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:08:35,204\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0243s.\n", - "2025-11-26 01:08:35,374 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002302454339377372, 'weight_decay': 1.3521341174248578e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:08:35,375 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:08:35,380 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:08:39,498 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:41,284 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:08:41,288 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:08:41,288 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:08:41,288 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9478\n", - "2025-11-26 01:08:41,288 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9546\n", - "2025-11-26 01:08:41,289 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9482\n", - "2025-11-26 01:08:41,289 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9956\n", - "2025-11-26 01:08:41,289 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9939\n", - "\n", - "2025-11-26 01:08:41,289 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:08:41,291 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:08:41,299 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:08:45,432 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:08:45,442 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:08:45,445\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:08:55,587\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0224s.\n", - "2025-11-26 01:08:55,774 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0008628455289617886, 'weight_decay': 0.005542594076906398, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:08:55,775 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:08:55,779 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:00,043 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:03,096 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:09:03,101 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:09:03,101 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.8855\n", - "2025-11-26 01:09:03,101 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.8402\n", - "2025-11-26 01:09:03,101 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.8960\n", - "2025-11-26 01:09:03,102 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9137\n", - "2025-11-26 01:09:03,102 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9857\n", - "2025-11-26 01:09:03,102 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9669\n", - "\n", - "2025-11-26 01:09:03,103 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:09:03,104 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:09:03,110 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:07,251 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:07,262 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:09:07,265\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:09:17,331\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0317s.\n", - "2025-11-26 01:09:17,571 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 64, 'lr': 0.001483781276337717, 'weight_decay': 2.5485016069955917e-05, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:09:17,571 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:09:17,577 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:21,713 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:22,694 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:09:22,699 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:09:22,699 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9695\n", - "2025-11-26 01:09:22,699 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9572\n", - "2025-11-26 01:09:22,699 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9694\n", - "2025-11-26 01:09:22,699 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9558\n", - "2025-11-26 01:09:22,700 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9990\n", - "2025-11-26 01:09:22,700 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9971\n", - "\n", - "2025-11-26 01:09:22,702 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/correlation_10/best_cv_model.pt\n", - "2025-11-26 01:09:22,703 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/correlation_10/best_cv_model_embds.pt\n", - "2025-11-26 01:09:22,703 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:09:22,703 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9467 +/- 0.0351\n", - "2025-11-26 01:09:22,703 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9284 +/- 0.0495\n", - "2025-11-26 01:09:22,703 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9489 +/- 0.0306\n", - "2025-11-26 01:09:22,704 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9487 +/- 0.0208\n", - "2025-11-26 01:09:22,704 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9937 +/- 0.0050\n", - "2025-11-26 01:09:22,704 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9793 +/- 0.0209\n", - "2025-11-26 01:09:22,705 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:09:22,705 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/similarity_10\n", - "2025-11-26 01:09:22,705 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: SAGE\n", - "2025-11-26 01:09:22,705 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:09:22,706 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:09:22,706 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:09:22,706 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:09:22,711 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:09:22,712 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:09:22,713 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:09:22,714 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:09:22,715 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:09:22,722 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:26,854 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:26,865 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:09:26,868\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:09:37,243\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0253s.\n", - "2025-11-26 01:09:37,453 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 512, 'lr': 0.0017134878267294578, 'weight_decay': 0.00037228516397726333, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:09:37,454 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:09:37,459 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:41,579 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:44,803 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:09:44,820 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:09:44,821 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9470\n", - "2025-11-26 01:09:44,821 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9344\n", - "2025-11-26 01:09:44,821 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9476\n", - "2025-11-26 01:09:44,821 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9618\n", - "2025-11-26 01:09:44,821 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9899\n", - "2025-11-26 01:09:44,822 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9574\n", - "\n", - "2025-11-26 01:09:44,823 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:09:44,824 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:09:44,830 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:09:48,915 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:09:48,926 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:09:48,929\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:09:58,642\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0321s.\n", - "2025-11-26 01:09:58,800 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:09:58,801 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:09:58,805 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:03,027 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:04,075 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9773\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9648\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9777\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9835\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9921\n", - "2025-11-26 01:10:04,080 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9552\n", - "\n", - "2025-11-26 01:10:04,081 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:10:04,082 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:10:04,088 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:08,219 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:08,231 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:10:08,234\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:10:18,090\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0282s.\n", - "2025-11-26 01:10:18,287 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:10:18,288 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:10:18,292 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:22,422 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:24,946 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:10:24,951 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:10:24,951 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:10:24,952 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9621\n", - "2025-11-26 01:10:24,952 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9622\n", - "2025-11-26 01:10:24,952 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9535\n", - "2025-11-26 01:10:24,953 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9952\n", - "2025-11-26 01:10:24,953 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9900\n", - "\n", - "2025-11-26 01:10:24,953 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:10:24,956 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:10:24,963 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:29,116 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:29,127 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:10:29,130\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:10:38,870\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0212s.\n", - "2025-11-26 01:10:39,028 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.0019123736530165902, 'weight_decay': 0.0006168499043610002, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:10:39,029 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:10:39,033 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:43,160 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:44,156 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:10:44,160 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:10:44,160 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:10:44,160 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:10:44,160 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:10:44,161 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:10:44,161 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9970\n", - "2025-11-26 01:10:44,161 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9949\n", - "\n", - "2025-11-26 01:10:44,161 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:10:44,162 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:10:44,168 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:10:48,309 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:10:48,320 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:10:48,324\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:10:58,591\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0247s.\n", - "2025-11-26 01:10:58,842 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.0007025528058103543, 'weight_decay': 0.0018355753249756474, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.0, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:10:58,842 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:10:58,848 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:02,948 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:04,466 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:11:04,471 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:11:04,472 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9618\n", - "2025-11-26 01:11:04,472 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9514\n", - "2025-11-26 01:11:04,472 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9617\n", - "2025-11-26 01:11:04,473 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9497\n", - "2025-11-26 01:11:04,473 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9979\n", - "2025-11-26 01:11:04,473 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9942\n", - "\n", - "2025-11-26 01:11:04,476 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/similarity_10/best_cv_model.pt\n", - "2025-11-26 01:11:04,476 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/similarity_10/best_cv_model_embds.pt\n", - "2025-11-26 01:11:04,476 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:11:04,477 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9574 +/- 0.0149\n", - "2025-11-26 01:11:04,477 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9515 +/- 0.0125\n", - "2025-11-26 01:11:04,477 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9576 +/- 0.0149\n", - "2025-11-26 01:11:04,477 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9608 +/- 0.0135\n", - "2025-11-26 01:11:04,478 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9944 +/- 0.0034\n", - "2025-11-26 01:11:04,478 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9783 +/- 0.0202\n", - "2025-11-26 01:11:04,479 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:11:04,479 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/gaussian_15\n", - "2025-11-26 01:11:04,479 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: SAGE\n", - "2025-11-26 01:11:04,480 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:11:04,480 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:11:04,480 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:11:04,481 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:11:04,486 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:11:04,487 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:11:04,488 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:11:04,488 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:11:04,490 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:11:04,497 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:08,732 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:08,747 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:11:08,750\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:11:19,358\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0249s.\n", - "2025-11-26 01:11:19,570 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 256, 'lr': 0.001257123304842143, 'weight_decay': 0.0003745702077936848, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:11:19,571 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:11:19,576 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:23,732 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:25,523 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:11:25,533 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:11:25,534 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9545\n", - "2025-11-26 01:11:25,534 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9482\n", - "2025-11-26 01:11:25,534 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9546\n", - "2025-11-26 01:11:25,535 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9679\n", - "2025-11-26 01:11:25,535 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9943\n", - "2025-11-26 01:11:25,535 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9887\n", - "\n", - "2025-11-26 01:11:25,536 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:11:25,538 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:11:25,543 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:29,653 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:29,667 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:11:29,670\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:11:39,430\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0402s.\n", - "2025-11-26 01:11:39,573 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:11:39,574 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:11:39,579 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:43,701 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:44,838 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:11:44,843 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:11:44,843 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9773\n", - "2025-11-26 01:11:44,843 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9648\n", - "2025-11-26 01:11:44,844 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9777\n", - "2025-11-26 01:11:44,844 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9835\n", - "2025-11-26 01:11:44,844 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9923\n", - "2025-11-26 01:11:44,844 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9447\n", - "\n", - "2025-11-26 01:11:44,845 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:11:44,846 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:11:44,851 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:11:48,972 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:11:48,986 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:11:48,989\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:11:59,032\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0306s.\n", - "2025-11-26 01:11:59,220 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:11:59,221 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:11:59,226 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:12:03,330 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:12:05,781 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:12:05,785 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9773\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9697\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9773\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9936\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9928\n", - "\n", - "2025-11-26 01:12:05,786 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:12:05,788 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:12:05,795 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:12:09,897 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:12:09,910 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:12:09,913\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:12:20,492\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0219s.\n", - "2025-11-26 01:12:20,669 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002226976717919125, 'weight_decay': 0.00016678702979522166, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 16, 'num_epochs': 512, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:12:20,670 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:12:20,675 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:12:24,817 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:12:25,254 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:12:25,258 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:12:25,258 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:12:25,258 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:12:25,259 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:12:25,259 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:12:25,259 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9934\n", - "2025-11-26 01:12:25,259 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9742\n", - "\n", - "2025-11-26 01:12:25,259 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:12:25,261 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:12:25,266 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:12:29,434 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:12:29,448 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:12:29,451\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:12:39,858\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0232s.\n", - "2025-11-26 01:12:40,073 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0013804780705269182, 'weight_decay': 0.0037674454696866636, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:12:40,073 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:12:40,079 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:12:44,207 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:12:45,599 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:12:45,604 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:12:45,604 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9695\n", - "2025-11-26 01:12:45,604 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9572\n", - "2025-11-26 01:12:45,604 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9694\n", - "2025-11-26 01:12:45,604 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9558\n", - "2025-11-26 01:12:45,605 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9978\n", - "2025-11-26 01:12:45,605 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9941\n", - "\n", - "2025-11-26 01:12:45,607 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/gaussian_15/best_cv_model.pt\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan/gaussian_15/best_cv_model_embds.pt\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9620 +/- 0.0153\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9585 +/- 0.0131\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9621 +/- 0.0154\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9680 +/- 0.0126\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9943 +/- 0.0021\n", - "2025-11-26 01:12:45,608 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9789 +/- 0.0207\n", - "2025-11-26 01:12:45,609 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Results for: threshold_10\n", - "Accuracy (Avg +/- Std): 0.9452 +/- 0.0303\n", - "F1 Macro (Avg +/- Std): 0.9345 +/- 0.0238\n", - "F1 Weighted (Avg +/- Std): 0.9452 +/- 0.0305\n", - "Recall: 0.9406 +/- 0.0141\n", - "AUC: 0.9949 +/- 0.0024\n", - "\n", - "Results for: correlation_10\n", - "Accuracy (Avg +/- Std): 0.9467 +/- 0.0351\n", - "F1 Macro (Avg +/- Std): 0.9284 +/- 0.0495\n", - "F1 Weighted (Avg +/- Std): 0.9489 +/- 0.0306\n", - "Recall: 0.9487 +/- 0.0208\n", - "AUC: 0.9937 +/- 0.0050\n", - "\n", - "Results for: similarity_10\n", - "Accuracy (Avg +/- Std): 0.9574 +/- 0.0149\n", - "F1 Macro (Avg +/- Std): 0.9515 +/- 0.0125\n", - "F1 Weighted (Avg +/- Std): 0.9576 +/- 0.0149\n", - "Recall: 0.9608 +/- 0.0135\n", - "AUC: 0.9944 +/- 0.0034\n", - "\n", - "Results for: gaussian_15\n", - "Accuracy (Avg +/- Std): 0.9620 +/- 0.0153\n", - "F1 Macro (Avg +/- Std): 0.9585 +/- 0.0131\n", - "F1 Weighted (Avg +/- Std): 0.9621 +/- 0.0154\n", - "Recall: 0.9680 +/- 0.0126\n", - "AUC: 0.9943 +/- 0.0021\n" - ] - } - ], + "outputs": [], "source": [ "output_dir_base = Path(\"/home/vicente/Github/BioNeuralNet/dpmon_results_SAGE_FINAL/kipan\")\n", "all_results_SAGE = []\n", @@ -3051,6 +1745,36 @@ " print(f\"AUC: {auc_avg:.4f} +/- {auc_std:.4f}\")\n" ] }, + { + "cell_type": "markdown", + "id": "6be0da6f", + "metadata": {}, + "source": [ + "Results for: threshold_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9452 +/- 0.0303\n", + "F1 Macro (Avg +/- Std): 0.9345 +/- 0.0238\n", + "F1 Weighted (Avg +/- Std): 0.9452 +/- 0.0305\n", + "Recall: 0.9406 +/- 0.0141\n", + "AUC: 0.9949 +/- 0.0024\n", + "\n", + "Results for: correlation_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9467 +/- 0.0351\n", + "F1 Macro (Avg +/- Std): 0.9284 +/- 0.0495\n", + "F1 Weighted (Avg +/- Std): 0.9489 +/- 0.0306\n", + "Recall: 0.9487 +/- 0.0208\n", + "AUC: 0.9937 +/- 0.0050\n", + "\n", + "Results for: similarity_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9574 +/- 0.0149\n", + "F1 Macro (Avg +/- Std): 0.9515 +/- 0.0125\n", + "F1 Weighted (Avg +/- Std): 0.9576 +/- 0.0149\n", + "Recall: 0.9608 +/- 0.0135\n", + "AUC: 0.9944 +/- 0.0034" + ] + }, { "cell_type": "code", "execution_count": 11, @@ -3217,319 +1941,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "9a15b24b", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-11-26 01:12:46,329 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:12:46,330 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:12:46,330 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:12:46,330 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 01:12:46,331 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 01:12:46,343 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 01:12:46,343 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 01:12:46,352 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8628, features=900)\n", - "2025-11-26 01:12:46,352 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:12:46,353 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:12:46,353 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:12:46,353 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:12:46,464 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.4879, combined = 0.5290\n", - "2025-11-26 01:12:46,464 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5290\n", - "2025-11-26 01:12:46,465 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 11 communities (nodes=900)\n", - "2025-11-26 01:12:46,521 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.4879, combined = 0.5290\n", - "2025-11-26 01:12:46,522 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.5290\n", - "2025-11-26 01:12:46,574 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 108 with correlation -0.8495\n", - "2025-11-26 01:12:46,575 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:12:46,575 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8628 edges.\n", - "2025-11-26 01:12:46,576 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:12:46,576 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:12:46,576 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:12:46,576 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:12:46,577 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:12:46,577 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:12:46,577 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:12:46,578 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:12:46,578 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:12:46,579 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:12:47,133 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['ALDH1A1', 'KRTAP3_3', 'TAS2R42', 'ADAM28', 'C21orf71', 'LOC645638', 'MIR196A1', 'ALDOB', 'TMEM71', 'HSD17B14', 'C4orf26', 'DGCR10', 'MIR942', 'BCAN', 'LOC100128288', 'ADM2', 'IFITM1', 'PSORS1C3', 'TMEM88', 'MIR26A1', 'ALDOC', 'C8orf80', 'MIR130A', 'MIR429', 'CCDC17', 'NDUFA4L2', 'ALOX12P2', 'ATP8B1', 'C14orf129', 'FOXS1', 'SLC10A6', 'C3orf24', 'GGTLC2', 'C10orf10', 'ART4', 'IL18BP', 'MIR554', 'DDR2', 'C15orf28', 'C7orf29', 'USHBP1', 'TMEM204', 'NME3', 'PTGER3_5733', 'HMGCS2_3158', 'SLPI_6590', 'CXCL6_6372', 'FOXJ1_2302', 'HGFAC_3083', 'UBE2QL1_134111', 'SORCS2_57537', 'BCHE_590', 'DACT2_168002', 'ELFN2_114794', 'C19orf21_126353', 'CCDC135_84229', 'CPNE7_27132', 'VAT1L_57687', 'AVPR1A_552', 'PRDM16_63976', 'ACTC1_70', 'ADAMTSL1_92949', 'PDE1C_5137', 'CPXM2_119587', 'SULT4A1_25830', 'ADCY1_107', 'CORO6_84940', 'ANGPT1_284', 'CLDN3_1365', 'CA8_767', 'RASGEF1C_255426', 'CCDC108_255101', 'BDKRB2_624', 'ACSM1_116285', 'DGKI_9162', 'C19orf51_352909', 'B3GALT5_10317', 'CLSTN2_64084', 'C1orf114_57821', 'MPPED2_744', 'RASGRF2_5924', 'SPARCL1_8404', 'C2orf62_375307', 'GPR116_221395', 'C6orf174_387104', 'AKR1C2_1646', 'ADORA1_134', 'C2orf89_129293', 'hsa_mir_31', 'hsa_mir_885', 'hsa_mir_577', 'hsa_mir_203', 'hsa_mir_135b', 'hsa_mir_582', 'hsa_mir_139', 'hsa_mir_335', 'hsa_mir_21', 'hsa_mir_100', 'hsa_mir_181d', 'hsa_mir_219_1', 'hsa_mir_3934', 'hsa_mir_181c', 'hsa_mir_625', 'hsa_mir_676', 'hsa_mir_34a', 'hsa_mir_1254', 'hsa_mir_3615', 'hsa_mir_3127']\n", - "2025-11-26 01:12:47,144 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:01,127 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 857 with conductance 0.079 and correlation 0.83.\n", - "2025-11-26 01:13:01,127 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:01,128 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=857, Conductance=0.079 Correlation=0.830 score=-0.375\n", - "2025-11-26 01:13:01,167 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:01,196 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=857, edges=8206, features=900)\n", - "2025-11-26 01:13:01,198 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:01,199 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:01,199 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:01,200 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:01,310 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6811, avg_corr = 0.5019, combined = 0.5378\n", - "2025-11-26 01:13:01,310 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5378\n", - "2025-11-26 01:13:01,311 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 11 communities (nodes=857)\n", - "2025-11-26 01:13:01,369 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6811, avg_corr = 0.5019, combined = 0.5378\n", - "2025-11-26 01:13:01,369 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.5378\n", - "2025-11-26 01:13:01,423 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 73 with correlation -0.8235\n", - "2025-11-26 01:13:01,423 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:01,424 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 857 nodes and 8206 edges.\n", - "2025-11-26 01:13:01,425 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:01,425 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:01,425 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:01,426 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:01,426 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:01,426 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:01,427 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:01,427 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:01,428 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:01,428 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:01,771 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['ALDH1A1', 'ADAM28', 'LOC645638', 'TMEM71', 'C4orf26', 'C14orf129', 'GGTLC2', 'PTGER3_5733', 'HMGCS2_3158', 'SLPI_6590', 'CXCL6_6372', 'HGFAC_3083', 'UBE2QL1_134111', 'SORCS2_57537', 'BCHE_590', 'ELFN2_114794', 'C19orf21_126353', 'TFAP2A_7020', 'CCDC135_84229', 'CPNE7_27132', 'VAT1L_57687', 'AVPR1A_552', 'PRDM16_63976', 'ACTC1_70', 'ADAMTSL1_92949', 'PDE1C_5137', 'CPXM2_119587', 'KCNN3_3782', 'SULT4A1_25830', 'ADCY1_107', 'CORO6_84940', 'ANGPT1_284', 'CLDN3_1365', 'HOXD10_3236', 'CA8_767', 'RASGEF1C_255426', 'CCDC108_255101', 'BDKRB2_624', 'ACSM1_116285', 'DGKI_9162', 'C19orf51_352909', 'B3GALT5_10317', 'CLSTN2_64084', 'MPPED2_744', 'RASGRF2_5924', 'SPARCL1_8404', 'C2orf62_375307', 'GPR116_221395', 'C6orf174_387104', 'AKR1C2_1646', 'ADORA1_134', 'C2orf89_129293', 'hsa_mir_31', 'hsa_mir_577', 'hsa_mir_203', 'hsa_mir_135b', 'hsa_mir_582', 'hsa_mir_139', 'hsa_mir_211', 'hsa_mir_335', 'hsa_mir_21', 'hsa_mir_100', 'hsa_mir_10b', 'hsa_mir_181d', 'hsa_mir_219_1', 'hsa_mir_3934', 'hsa_mir_181c', 'hsa_mir_625', 'hsa_mir_676', 'hsa_mir_34a', 'hsa_mir_1254', 'hsa_mir_3615', 'hsa_mir_3127']\n", - "2025-11-26 01:13:01,782 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:14,769 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 420 with conductance 0.112 and correlation 0.62.\n", - "2025-11-26 01:13:14,770 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:14,770 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=420, Conductance=0.112 Correlation=0.620 score=-0.254\n", - "2025-11-26 01:13:14,782 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:14,790 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=420, edges=3651, features=900)\n", - "2025-11-26 01:13:14,790 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:14,791 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:14,791 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:14,792 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:14,891 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6275, avg_corr = 0.4688, combined = 0.5005\n", - "2025-11-26 01:13:14,892 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5005\n", - "2025-11-26 01:13:14,892 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 8 communities (nodes=420)\n", - "2025-11-26 01:13:14,926 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6275, avg_corr = 0.4688, combined = 0.5005\n", - "2025-11-26 01:13:14,926 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.5005\n", - "2025-11-26 01:13:14,957 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 88 with correlation -0.8538\n", - "2025-11-26 01:13:14,957 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:14,958 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 420 nodes and 3651 edges.\n", - "2025-11-26 01:13:14,958 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:14,958 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:14,958 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:14,959 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:14,959 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:14,959 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:14,960 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:14,960 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:14,961 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:14,961 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:15,438 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['BCHE_590', 'ACSM1_116285', 'hsa_mir_181c', 'ALDH1A1', 'RASD2_23551', 'HSD17B14', 'ADAMTSL1_92949', 'hsa_mir_1180', 'VAT1L_57687', 'RASGRF2_5924', 'C19orf21_126353', 'CPXM2_119587', 'UBE2QL1_134111', 'PDE1C_5137', 'ELFN2_114794', 'hsa_mir_335', 'CXCL6_6372', 'PTGER3_5733', 'ADCY1_107', 'hsa_mir_219_1', 'hsa_mir_203', 'CCDC135_84229', 'hsa_mir_181d', 'hsa_mir_3615', 'ADAMTS5_11096', 'B3GALT5_10317', 'CLDN3_1365', 'HGFAC_3083', 'C2orf62_375307', 'DACT2_168002', 'SULT4A1_25830', 'hsa_mir_10b', 'hsa_mir_1254', 'FOXJ1_2302', 'hsa_mir_3934', 'DACH1_1602', 'TMEM71', 'AKR1C2_1646', 'hsa_mir_676', 'BDKRB2_624', 'hsa_mir_577', 'hsa_mir_139', 'AVPR1A_552', 'C19orf51_352909', 'C3orf24', 'hsa_mir_100', 'HOXD10_3236', 'RASGEF1C_255426', 'CA4_762', 'C14orf129', 'hsa_mir_625', 'ADORA1_134', 'SLPI_6590', 'BTNL9_153579', 'C6orf174_387104', 'C1orf114_57821', 'C2orf89_129293', 'SPARCL1_8404', 'CLSTN2_64084', 'hsa_mir_135b', 'C4orf26', 'DGKI_9162', 'SORCS2_57537', 'CDH17_1015', 'C2orf72_257407', 'ANGPT1_284', 'CORO6_84940', 'CCDC108_255101', 'BCAN', 'hsa_mir_21', 'GPR116_221395', 'CA8_767', 'hsa_mir_551b', 'CPNE7_27132', 'hsa_mir_31', 'PRDM16_63976', 'hsa_mir_211', 'HMGCS2_3158', 'PCDH17_27253', 'ACTC1_70', 'hsa_mir_582', 'GGTLC2', 'MPPED2_744', 'DDR2_4921', 'PDZD2_23037', 'KCNN3_3782', 'CNTN6_27255', 'LOC645638']\n", - "2025-11-26 01:13:15,444 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:19,148 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 176 with conductance 0.225 and correlation -0.76.\n", - "2025-11-26 01:13:19,149 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:19,149 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=176, Conductance=0.225 Correlation=-0.760 score=-0.267\n", - "2025-11-26 01:13:19,154 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n", - "2025-11-26 01:13:19,158 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:19,159 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:19,160 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:19,160 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 01:13:19,160 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 01:13:19,180 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 01:13:19,181 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:19,196 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8628, features=900)\n", - "2025-11-26 01:13:19,197 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:19,198 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:19,198 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:19,198 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:19,325 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.4574, combined = 0.5046\n", - "2025-11-26 01:13:19,325 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5046\n", - "2025-11-26 01:13:19,326 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 11 communities (nodes=900)\n", - "2025-11-26 01:13:19,384 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.4574, combined = 0.5046\n", - "2025-11-26 01:13:19,384 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.5046\n", - "2025-11-26 01:13:19,438 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 59 with correlation 0.8725\n", - "2025-11-26 01:13:19,438 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:19,439 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8628 edges.\n", - "2025-11-26 01:13:19,439 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:19,439 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:19,440 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:19,440 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:19,440 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:19,440 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:19,441 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:19,442 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:19,442 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:19,442 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:19,655 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['BAAT', 'CAPG', 'CP', 'FABP7_2173', 'SLC6A3_6531', 'CP_1356', 'CA9_768', 'CKMT1B_1159', 'CYP2J2_1573', 'CREB3L3_84699', 'ANGPTL4_51129', 'MYEOV_26579', 'TJP3_27134', 'PCSK6_5046', 'C1QL1_10882', 'MCHR1_2847', 'C19orf46_163183', 'APOB_338', 'CKMT1A_548596', 'MAP7D2_256714', 'CCL20_6364', 'LOX_4015', 'C6orf168_84553', 'MAL_4118', 'LOC100131551_100131551', 'CNTN3_5067', 'PCOLCE2_26577', 'CDCA2_157313', 'C1orf116_79098', 'WFDC2_10406', 'ALDOC_230', 'ANO5_203859', 'PPFIA4_8497', 'STK33_65975', 'EPS8L1_54869', 'CBLC_23624', 'SEMA5B_54437', 'TMEM45A_55076', 'OGDHL_55753', 'EGLN3_112399', 'C4orf6_10141', 'FAM155B_27112', 'C7orf68_29923', 'B3GNT4_79369', 'hsa_mir_122', 'hsa_mir_599', 'hsa_mir_183', 'hsa_mir_96', 'hsa_mir_210', 'hsa_mir_182', 'hsa_mir_374c', 'hsa_mir_1271', 'hsa_mir_200b', 'hsa_mir_429', 'hsa_mir_875', 'hsa_mir_3941', 'hsa_mir_200a', 'hsa_mir_3678', 'hsa_mir_3912']\n", - "2025-11-26 01:13:19,666 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:34,489 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 451 with conductance 0.087 and correlation 0.89.\n", - "2025-11-26 01:13:34,489 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:34,490 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=451, Conductance=0.087 Correlation=0.890 score=-0.401\n", - "2025-11-26 01:13:34,504 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:34,512 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=451, edges=3950, features=900)\n", - "2025-11-26 01:13:34,513 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:34,514 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:34,514 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:34,514 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:34,616 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6249, avg_corr = 0.6253, combined = 0.6252\n", - "2025-11-26 01:13:34,616 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.6252\n", - "2025-11-26 01:13:34,617 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 10 communities (nodes=451)\n", - "2025-11-26 01:13:34,661 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6249, avg_corr = 0.6253, combined = 0.6252\n", - "2025-11-26 01:13:34,662 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.6252\n", - "2025-11-26 01:13:34,701 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 57 with correlation 0.8714\n", - "2025-11-26 01:13:34,702 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:34,702 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 451 nodes and 3950 edges.\n", - "2025-11-26 01:13:34,703 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:34,703 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:34,703 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:34,703 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:34,704 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:34,704 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:34,704 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:34,705 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:34,706 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:34,706 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:34,936 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['CAPG', 'CP', 'FABP7_2173', 'SLC6A3_6531', 'CP_1356', 'CA9_768', 'CKMT1B_1159', 'CYP2J2_1573', 'CREB3L3_84699', 'ANGPTL4_51129', 'MYEOV_26579', 'TJP3_27134', 'PCSK6_5046', 'C1QL1_10882', 'MCHR1_2847', 'C19orf46_163183', 'APOB_338', 'CKMT1A_548596', 'MAP7D2_256714', 'CCL20_6364', 'LOX_4015', 'C6orf168_84553', 'MAL_4118', 'LOC100131551_100131551', 'CNTN3_5067', 'PCOLCE2_26577', 'CDCA2_157313', 'C1orf116_79098', 'CST6_1474', 'WFDC2_10406', 'ALDOC_230', 'ANO5_203859', 'PPFIA4_8497', 'STK33_65975', 'IGF2BP2_10644', 'EPS8L1_54869', 'CBLC_23624', 'SEMA5B_54437', 'TMEM45A_55076', 'OGDHL_55753', 'EGLN3_112399', 'C4orf6_10141', 'FAM155B_27112', 'C7orf68_29923', 'B3GNT4_79369', 'hsa_mir_122', 'hsa_mir_183', 'hsa_mir_96', 'hsa_mir_210', 'hsa_mir_182', 'hsa_mir_374c', 'hsa_mir_1271', 'hsa_mir_200b', 'hsa_mir_429', 'hsa_mir_3941', 'hsa_mir_200a', 'hsa_mir_3678']\n", - "2025-11-26 01:13:34,942 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:39,443 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 193 with conductance 0.221 and correlation 0.9.\n", - "2025-11-26 01:13:39,444 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:39,445 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=193, Conductance=0.221 Correlation=0.900 score=-0.340\n", - "2025-11-26 01:13:39,451 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:39,456 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=193, edges=1530, features=900)\n", - "2025-11-26 01:13:39,457 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:39,458 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:39,459 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:39,460 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:39,506 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5349, avg_corr = 0.7495, combined = 0.7066\n", - "2025-11-26 01:13:39,507 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.7066\n", - "2025-11-26 01:13:39,507 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 7 communities (nodes=193)\n", - "2025-11-26 01:13:39,533 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5349, avg_corr = 0.7495, combined = 0.7066\n", - "2025-11-26 01:13:39,533 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.7066\n", - "2025-11-26 01:13:39,558 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 58 with correlation 0.8576\n", - "2025-11-26 01:13:39,559 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:39,559 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 193 nodes and 1530 edges.\n", - "2025-11-26 01:13:39,560 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:39,560 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:39,560 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:39,560 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:39,561 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:39,561 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:39,561 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:39,562 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:39,563 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:39,563 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:39,832 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['C4orf48_401115', 'FATE1_89885', 'BARX2_8538', 'FOLH1_2346', 'NGF_4803', 'hsa_mir_3678', 'C2orf72_257407', 'hsa_mir_503', 'OR51E1_143503', 'ANGPT2_285', 'CXCL10_3627', 'GABRE_2564', 'C6orf223_221416', 'ESM1_11082', 'CXCL9_4283', 'KLF14', 'hsa_mir_489', 'CNTD2_79935', 'CSPG4_1464', 'hsa_mir_224', 'CHL1_10752', 'CREB3L3_84699', 'FLT1_2321', 'COL5A3_50509', 'GPR4_2828', 'hsa_mir_126', 'hsa_let_7b', 'hsa_mir_561', 'BTNL9_153579', 'PCDH17_27253', 'COL21A1_81578', 'SLC35F1_222553', 'STC1_6781', 'ANXA3_306', 'APLN_8862', 'BNC1_646', 'LGI4_163175', 'hsa_mir_653', 'TRIM58', 'CAMK2B_816', 'CDH13_1012', 'CALCR_799', 'hsa_mir_3912', 'APOLD1_81575', 'CCNO_10309', 'KLHDC8A_55220', 'STK33_65975', 'RGS5_8490', 'LOC554202_554202', 'HMCN1_83872', 'C3orf70_285382', 'CD36_948', 'ADAMTS5_11096', 'COX4I2_84701', 'CXCL11_6373', 'TRPC6_7225', 'LCN2_3934', 'LOH3CR2A']\n", - "2025-11-26 01:13:39,836 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:41,069 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 82 with conductance 0.135 and correlation 0.87.\n", - "2025-11-26 01:13:41,069 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:41,070 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=82, Conductance=0.135 Correlation=0.870 score=-0.367\n", - "2025-11-26 01:13:41,072 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n", - "2025-11-26 01:13:41,076 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:41,077 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:41,077 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:41,078 - bioneuralnet.clustering.hybrid_louvain - INFO - Initializing HybridLouvain...\n", - "2025-11-26 01:13:41,078 - bioneuralnet.clustering.hybrid_louvain - INFO - Input G is a DataFrame; converting adjacency matrix to NetworkX graph.\n", - "2025-11-26 01:13:41,100 - bioneuralnet.clustering.hybrid_louvain - INFO - Initialized HybridLouvain with 900 graph nodes, 900 omics columns, 658 phenotype rows; max_iter=3, k3=0.2, k4=0.8, tune=False\n", - "2025-11-26 01:13:41,100 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 1/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:41,124 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=900, edges=8628, features=900)\n", - "2025-11-26 01:13:41,125 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:41,126 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:41,126 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:41,127 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:41,261 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.3912, combined = 0.4517\n", - "2025-11-26 01:13:41,262 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.4517\n", - "2025-11-26 01:13:41,262 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 11 communities (nodes=900)\n", - "2025-11-26 01:13:41,327 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6936, avg_corr = 0.3912, combined = 0.4517\n", - "2025-11-26 01:13:41,328 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: Louvain Quality = 0.4517\n", - "2025-11-26 01:13:41,385 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 81 with correlation 0.7998\n", - "2025-11-26 01:13:41,386 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:41,387 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 900 nodes and 8628 edges.\n", - "2025-11-26 01:13:41,387 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:41,387 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:41,388 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:41,388 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:41,388 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:41,389 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:41,389 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:41,390 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:41,391 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:41,391 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:41,824 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['IL18', 'RHCG_51458', 'ATP6V0A4_50617', 'SLC4A1_6521', 'KLK1_3816', 'ATP6V0D2_245972', 'CLDN8_9073', 'FOXI1_2299', 'DMRT2_10655', 'HEPACAM2_253012', 'CLCNKB_1188', 'ATP6V1B1_525', 'CFTR_1080', 'GCGR_2642', 'SLC26A7_115111', 'CLCNKA_1187', 'FGF9_2254', 'BMPR1B_658', 'TMPRSS2_7113', 'BSND_7809', 'CD70_970', 'AQP6_363', 'CWH43_80157', 'TRIM50_135892', 'COL23A1_91522', 'C16orf89_146556', 'SLC9A2_6549', 'CALCA_796', 'OLIG1_116448', 'CLNK_116449', 'CYP11A1_1583', 'RANBP3L_202151', 'DIRAS1_148252', 'C1orf168_199920', 'INPP5J_27124', 'C15orf59_388135', 'CCBE1_147372', 'EPB41L4B_54566', 'GCOM1_145781', 'C9orf84_158401', 'ATP6V1G3_127124', 'DGCR5_26220', 'VWA5B1_127731', 'CHST9_83539', 'KRTAP5_8_57830', 'DEFB1_1672', 'ST8SIA5_29906', 'LOC643008_643008', 'CEL_1056', 'C6orf105_84830', 'CR1L_1379', 'ASB5_140458', 'MARCH10_162333', 'ANGPTL1_9068', 'hsa_mir_891a', 'hsa_mir_141', 'hsa_mir_187', 'hsa_mir_200c', 'hsa_mir_375', 'hsa_mir_592', 'hsa_mir_129_1', 'hsa_mir_129_2', 'hsa_mir_184', 'hsa_mir_218_2', 'hsa_mir_206', 'hsa_mir_33a', 'hsa_mir_362', 'hsa_mir_218_1', 'hsa_mir_188', 'hsa_mir_363', 'hsa_mir_20b', 'hsa_mir_651', 'hsa_mir_3200', 'hsa_mir_660', 'hsa_mir_1468', 'hsa_mir_501', 'hsa_let_7f_2', 'hsa_mir_500b', 'hsa_mir_30c_1', 'hsa_mir_532', 'hsa_mir_23c']\n", - "2025-11-26 01:13:41,836 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:13:57,321 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 448 with conductance 0.116 and correlation -0.85.\n", - "2025-11-26 01:13:57,322 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:13:57,323 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 1: cluster size=448, Conductance=0.116 Correlation=-0.850 score=-0.367\n", - "2025-11-26 01:13:57,336 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 2/3: Running Correlated Louvain...\n", - "2025-11-26 01:13:57,345 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=448, edges=3766, features=900)\n", - "2025-11-26 01:13:57,345 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:57,346 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:57,347 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:57,347 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:13:57,433 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6664, avg_corr = 0.5211, combined = 0.5502\n", - "2025-11-26 01:13:57,433 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5502\n", - "2025-11-26 01:13:57,433 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 9 communities (nodes=448)\n", - "2025-11-26 01:13:57,476 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.6664, avg_corr = 0.5211, combined = 0.5502\n", - "2025-11-26 01:13:57,476 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: Louvain Quality = 0.5502\n", - "2025-11-26 01:13:57,514 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 84 with correlation 0.8241\n", - "2025-11-26 01:13:57,514 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:13:57,515 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 448 nodes and 3766 edges.\n", - "2025-11-26 01:13:57,515 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:13:57,516 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:13:57,516 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:13:57,516 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:13:57,517 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:13:57,517 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:13:57,518 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:13:57,519 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:13:57,519 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:13:57,519 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:13:57,967 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['ASB5_140458', 'C1orf168_199920', 'OLIG1_116448', 'FOXI1_2299', 'LOC643008_643008', 'hsa_mir_592', 'BMPR1B_658', 'CD70_970', 'hsa_mir_1258', 'FGF9_2254', 'C15orf59_388135', 'ATP6V1B1_525', 'C9orf84_158401', 'hsa_mir_218_2', 'GCGR_2642', 'GALNT14_79623', 'DHRS2_10202', 'CNTNAP5_129684', 'CFTR_1080', 'ATP6V0A4_50617', 'hsa_mir_1468', 'hsa_mir_129_1', 'LRRTM1_347730', 'TRIM50_135892', 'DGCR5_26220', 'DMRT2_10655', 'hsa_mir_651', 'ALPK2_115701', 'hsa_mir_874', 'ANGPTL1_9068', 'hsa_mir_891a', 'C3_718', 'VWA5B1_127731', 'CLDN8_9073', 'RANBP3L_202151', 'hsa_mir_129_2', 'CYP11A1_1583', 'hsa_mir_141', 'CHST9_83539', 'CR1L_1379', 'CEND1_51286', 'hsa_mir_206', 'hsa_mir_23c', 'C17orf55_284185', 'SLC9A2_6549', 'hsa_mir_218_1', 'IL18', 'hsa_mir_200c', 'CWH43_80157', 'CKMT2_1160', 'hsa_mir_618', 'DEFB1_1672', 'BSND_7809', 'SLC26A7_115111', 'ABCC3_8714', 'CCDC78_124093', 'hsa_mir_30c_1', 'CLNK_116449', 'CALCA_796', 'TMPRSS2_7113', 'RHCG_51458', 'CLCNKB_1188', 'DIRAS1_148252', 'ST8SIA5_29906', 'C6orf105_84830', 'hsa_mir_187', 'SLC4A1_6521', 'CLCNKA_1187', 'CEL_1056', 'AQP6_363', 'MARCH10_162333', 'ATP6V0D2_245972', 'C16orf89_146556', 'GCOM1_145781', 'SEZ6L_23544', 'INPP5J_27124', 'EPB41L4B_54566', 'HEPACAM2_253012', 'COL23A1_91522', 'CCBE1_147372', 'ATP6V1G3_127124', 'KLK1_3816', 'CTNNA2_1496', 'KRTAP5_8_57830']\n", - "2025-11-26 01:13:57,974 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:14:02,424 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 211 with conductance 0.185 and correlation -0.85.\n", - "2025-11-26 01:14:02,425 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:14:02,425 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 2: cluster size=211, Conductance=0.185 Correlation=-0.850 score=-0.333\n", - "2025-11-26 01:14:02,431 - bioneuralnet.clustering.hybrid_louvain - INFO - \n", - "Iteration 3/3: Running Correlated Louvain...\n", - "2025-11-26 01:14:02,435 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain(k3=0.2, k4=0.8, nodes=211, edges=1490, features=900)\n", - "2025-11-26 01:14:02,436 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:14:02,437 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:14:02,437 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:14:02,438 - bioneuralnet.clustering.correlated_louvain - INFO - Running standard community detection...\n", - "2025-11-26 01:14:02,491 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5780, avg_corr = 0.5743, combined = 0.5750\n", - "2025-11-26 01:14:02,491 - bioneuralnet.clustering.correlated_louvain - INFO - Final quality: 0.5750\n", - "2025-11-26 01:14:02,492 - bioneuralnet.clustering.correlated_louvain - INFO - CorrelatedLouvain found 10 communities (nodes=211)\n", - "2025-11-26 01:14:02,527 - bioneuralnet.clustering.correlated_louvain - INFO - Computed quality (supervised): Q = 0.5780, avg_corr = 0.5743, combined = 0.5750\n", - "2025-11-26 01:14:02,527 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: Louvain Quality = 0.5750\n", - "2025-11-26 01:14:02,561 - bioneuralnet.clustering.hybrid_louvain - INFO - Selected seed community of size 34 with correlation -0.8628\n", - "2025-11-26 01:14:02,561 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized PageRank with the following parameters:\n", - "2025-11-26 01:14:02,562 - bioneuralnet.clustering.correlated_pagerank - INFO - Graph: NetworkX Graph with 211 nodes and 1490 edges.\n", - "2025-11-26 01:14:02,562 - bioneuralnet.clustering.correlated_pagerank - INFO - Omics Data: DataFrame with shape (658, 900).\n", - "2025-11-26 01:14:02,563 - bioneuralnet.clustering.correlated_pagerank - INFO - Phenotype Data: Series with 658 samples.\n", - "2025-11-26 01:14:02,563 - bioneuralnet.clustering.correlated_pagerank - INFO - Alpha: 0.9\n", - "2025-11-26 01:14:02,563 - bioneuralnet.clustering.correlated_pagerank - INFO - Max Iterations: 100\n", - "2025-11-26 01:14:02,563 - bioneuralnet.clustering.correlated_pagerank - INFO - Tolerance: 1e-06\n", - "2025-11-26 01:14:02,564 - bioneuralnet.clustering.correlated_pagerank - INFO - K (Composite Score Weight): 0.5\n", - "2025-11-26 01:14:02,564 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:14:02,565 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:14:02,566 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:14:02,566 - bioneuralnet.clustering.correlated_pagerank - INFO - Initialized Correlated PageRank. device=cpu\n", - "2025-11-26 01:14:02,682 - bioneuralnet.clustering.correlated_pagerank - INFO - Generated personalization vector for seed nodes: ['CEND1_51286', 'ST8SIA5_29906', 'LRRTM1_347730', 'BDKRB1_623', 'LOC440354', 'EPGN', 'hsa_mir_222', 'C17orf55_284185', 'hsa_mir_874', 'ANGPTL1', 'IL18', 'CKMT2_1160', 'hsa_mir_618', 'C1orf168', 'HOXA7', 'KCNRG', 'hsa_mir_1258', 'SEZ6L_23544', 'hsa_mir_130a', 'hsa_mir_221', 'HULC', 'GALNT14_79623', 'CYS1_192668', 'MIR744', 'CNTNAP5_129684', 'MIR618', 'CHST9_83539', 'CTNNA2_1496', 'C14orf53', 'hsa_mir_33a', 'BICC1_80114', 'ABP1_26', 'hsa_mir_766', 'CR1L_1379']\n", - "2025-11-26 01:14:02,685 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank computation completed.\n", - "2025-11-26 01:14:04,038 - bioneuralnet.clustering.correlated_pagerank - INFO - Sweep cut resulted in cluster of size 202 with conductance 0.058 and correlation -0.85.\n", - "2025-11-26 01:14:04,038 - bioneuralnet.clustering.correlated_pagerank - INFO - PageRank clustering completed successfully.\n", - "2025-11-26 01:14:04,039 - bioneuralnet.clustering.hybrid_louvain - INFO - Iteration 3: cluster size=202, Conductance=0.058 Correlation=-0.850 score=-0.396\n", - "2025-11-26 01:14:04,044 - bioneuralnet.clustering.hybrid_louvain - INFO - Hybrid Louvain completed after 4 iterations.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Driver modules (one-vs-rest):\n", - " 1: 857 features\n", - " 0: 451 features\n", - " 2: 448 features\n" - ] - } - ], + "outputs": [], "source": [ "from bioneuralnet.clustering import HybridLouvain\n", "\n", @@ -3567,533 +1982,24 @@ " print(f\" {pheno}: {n_feats} features\")" ] }, + { + "cell_type": "markdown", + "id": "f7f19669", + "metadata": {}, + "source": [ + "Driver modules (one-vs-rest):\n", + "\n", + "- 1: 857 features\n", + "- 0: 451 features\n", + "- 2: 448 features" + ] + }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "efbff52f", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-11-26 01:14:04,056 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/threshold_10\n", - "2025-11-26 01:14:04,057 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GCN\n", - "2025-11-26 01:14:04,057 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:14:04,058 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:14:04,058 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:14:04,059 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:14:04,064 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:14:04,067 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:14:04,068 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:14:04,069 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:14:04,071 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:14:04,081 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:14:08,191 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:14:08,215 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:14:08,218\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:14:20,851\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0286s.\n", - "2025-11-26 01:14:21,044 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0006037895979188083, 'weight_decay': 0.004195106610298857, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 1024, 'gnn_dropout': 0.1, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:14:21,045 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:14:21,050 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:14:25,269 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:14:26,773 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:14:26,778 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:14:26,778 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9394\n", - "2025-11-26 01:14:26,779 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9287\n", - "2025-11-26 01:14:26,779 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9399\n", - "2025-11-26 01:14:26,779 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9566\n", - "2025-11-26 01:14:26,779 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9908\n", - "2025-11-26 01:14:26,780 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9839\n", - "\n", - "2025-11-26 01:14:26,780 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:14:26,782 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:14:26,788 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:14:30,936 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:14:30,947 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:14:30,951\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:14:41,518\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0283s.\n", - "2025-11-26 01:14:41,641 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:14:41,642 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:14:41,647 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:14:45,770 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:14:47,251 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:14:47,256 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:14:47,257 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9773\n", - "2025-11-26 01:14:47,257 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9648\n", - "2025-11-26 01:14:47,257 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9777\n", - "2025-11-26 01:14:47,257 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9835\n", - "2025-11-26 01:14:47,257 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9928\n", - "2025-11-26 01:14:47,258 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9488\n", - "\n", - "2025-11-26 01:14:47,258 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:14:47,260 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:14:47,265 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:14:51,373 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:14:51,385 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:14:51,388\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:15:03,121\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0079s.\n", - "2025-11-26 01:15:03,293 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 256, 'lr': 0.0016239332393902155, 'weight_decay': 1.2898372523486065e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:15:03,293 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:15:03,299 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:07,440 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:08,042 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:15:08,046 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:15:08,047 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:15:08,047 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9621\n", - "2025-11-26 01:15:08,048 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9622\n", - "2025-11-26 01:15:08,048 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9535\n", - "2025-11-26 01:15:08,048 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9955\n", - "2025-11-26 01:15:08,048 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9937\n", - "\n", - "2025-11-26 01:15:08,049 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:15:08,051 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:15:08,058 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:12,200 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:12,211 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:15:12,214\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:15:23,504\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0155s.\n", - "2025-11-26 01:15:23,665 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0008628455289617886, 'weight_decay': 0.005542594076906398, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:15:23,665 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:15:23,670 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:27,775 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:32,476 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9940\n", - "2025-11-26 01:15:32,482 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9919\n", - "\n", - "2025-11-26 01:15:32,483 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:15:32,485 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:15:32,490 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:36,751 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:36,762 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:15:36,765\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:15:49,425\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0172s.\n", - "2025-11-26 01:15:49,636 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:15:49,637 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:15:49,643 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:53,783 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:54,563 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:15:54,568 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:15:54,568 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9695\n", - "2025-11-26 01:15:54,569 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9673\n", - "2025-11-26 01:15:54,569 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9694\n", - "2025-11-26 01:15:54,569 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9763\n", - "2025-11-26 01:15:54,569 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9986\n", - "2025-11-26 01:15:54,569 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9967\n", - "\n", - "2025-11-26 01:15:54,571 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/threshold_10/best_cv_model.pt\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/threshold_10/best_cv_model_embds.pt\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9574 +/- 0.0175\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9536 +/- 0.0165\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9576 +/- 0.0175\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9651 +/- 0.0138\n", - "2025-11-26 01:15:54,572 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9943 +/- 0.0029\n", - "2025-11-26 01:15:54,573 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9830 +/- 0.0197\n", - "2025-11-26 01:15:54,573 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:15:54,573 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/correlation_10\n", - "2025-11-26 01:15:54,574 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GCN\n", - "2025-11-26 01:15:54,574 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:15:54,574 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:15:54,574 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:15:54,575 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:15:54,579 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:15:54,581 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:15:54,581 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:15:54,582 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:15:54,583 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:15:54,591 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:15:58,722 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:15:58,734 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:15:58,737\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:16:10,921\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0197s.\n", - "2025-11-26 01:16:11,103 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 256, 'lr': 0.001257123304842143, 'weight_decay': 0.0003745702077936848, 'nn_hidden_dim1': 128, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:16:11,104 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:16:11,109 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:16:15,261 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:16:18,073 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:16:18,078 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:16:18,079 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9470\n", - "2025-11-26 01:16:18,079 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9273\n", - "2025-11-26 01:16:18,079 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9481\n", - "2025-11-26 01:16:18,079 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9627\n", - "2025-11-26 01:16:18,079 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9984\n", - "2025-11-26 01:16:18,080 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9982\n", - "\n", - "2025-11-26 01:16:18,081 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:16:18,082 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:16:18,088 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:16:22,220 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:16:22,231 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:16:22,234\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:16:34,076\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0191s.\n", - "2025-11-26 01:16:34,229 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.00024165542558361394, 'weight_decay': 0.0002652189086272745, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.1, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:16:34,229 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:16:34,235 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:16:38,349 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:16:39,516 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:16:39,521 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:16:39,521 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 01:16:39,521 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 01:16:39,521 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 01:16:39,522 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 01:16:39,522 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9917\n", - "2025-11-26 01:16:39,522 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9461\n", - "\n", - "2025-11-26 01:16:39,522 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:16:39,523 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:16:39,529 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:16:43,626 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:16:43,637 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:16:43,639\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:16:54,182\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0281s.\n", - "2025-11-26 01:16:54,337 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.002302454339377372, 'weight_decay': 1.3521341174248578e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.3, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:16:54,338 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:16:54,343 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:16:58,476 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:00,722 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:17:00,727 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:17:00,727 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:17:00,727 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9621\n", - "2025-11-26 01:17:00,727 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9622\n", - "2025-11-26 01:17:00,727 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9535\n", - "2025-11-26 01:17:00,728 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9975\n", - "2025-11-26 01:17:00,728 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9970\n", - "\n", - "2025-11-26 01:17:00,728 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:17:00,730 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:17:00,737 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:17:04,871 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:04,883 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:17:04,886\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:17:15,818\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0171s.\n", - "2025-11-26 01:17:15,993 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 1, 'gnn_hidden_dim': 128, 'lr': 0.0019123736530165902, 'weight_decay': 0.0006168499043610002, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:17:15,994 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:17:15,999 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:17:20,122 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:21,350 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:17:21,355 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9962\n", - "2025-11-26 01:17:21,356 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9940\n", - "\n", - "2025-11-26 01:17:21,356 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:17:21,357 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:17:21,363 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:17:25,520 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:25,531 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:17:25,534\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:17:38,250\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0174s.\n", - "2025-11-26 01:17:38,447 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.001685812648195555, 'weight_decay': 0.0023773937538678585, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:17:38,447 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:17:38,453 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:17:42,581 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:43,369 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:17:43,374 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:17:43,374 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9695\n", - "2025-11-26 01:17:43,374 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9572\n", - "2025-11-26 01:17:43,374 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9694\n", - "2025-11-26 01:17:43,375 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9558\n", - "2025-11-26 01:17:43,375 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9986\n", - "2025-11-26 01:17:43,375 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9967\n", - "\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/correlation_10/best_cv_model.pt\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/correlation_10/best_cv_model_embds.pt\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9574 +/- 0.0139\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9480 +/- 0.0134\n", - "2025-11-26 01:17:43,378 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9578 +/- 0.0137\n", - "2025-11-26 01:17:43,379 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9571 +/- 0.0035\n", - "2025-11-26 01:17:43,379 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9965 +/- 0.0028\n", - "2025-11-26 01:17:43,379 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9864 +/- 0.0226\n", - "2025-11-26 01:17:43,379 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:17:43,380 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/similarity_10\n", - "2025-11-26 01:17:43,380 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GCN\n", - "2025-11-26 01:17:43,380 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:17:43,380 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:17:43,381 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:17:43,381 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:17:43,386 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:17:43,387 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:17:43,388 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:17:43,388 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:17:43,390 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:17:43,397 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:17:47,498 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:17:47,510 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:17:47,513\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:18:00,506\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0235s.\n", - "2025-11-26 01:18:00,689 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0006037895979188083, 'weight_decay': 0.004195106610298857, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 1024, 'gnn_dropout': 0.1, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:18:00,690 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:18:00,695 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:04,943 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:06,393 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:18:06,398 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:18:06,398 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9458\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9629\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9731\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9831\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9689\n", - "\n", - "2025-11-26 01:18:06,399 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:18:06,401 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:18:06,406 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:10,545 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:10,557 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:18:10,560\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:18:21,270\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0070s.\n", - "2025-11-26 01:18:21,414 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 2, 'gnn_hidden_dim': 64, 'lr': 0.0007034204356990857, 'weight_decay': 5.358735876893429e-05, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 64, 'ae_encoding_dim': 8, 'num_epochs': 1024, 'gnn_dropout': 0.2, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:18:21,415 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:18:21,420 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:25,548 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:27,026 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:18:27,031 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9773\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9648\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9777\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9835\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9926\n", - "2025-11-26 01:18:27,032 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9360\n", - "\n", - "2025-11-26 01:18:27,033 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:18:27,034 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:18:27,039 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:31,171 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:31,183 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:18:31,186\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:18:41,965\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0160s.\n", - "2025-11-26 01:18:42,128 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:18:42,129 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:18:42,134 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:46,248 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:49,771 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:18:49,776 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:18:49,777 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9470\n", - "2025-11-26 01:18:49,777 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9318\n", - "2025-11-26 01:18:49,777 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9468\n", - "2025-11-26 01:18:49,778 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9244\n", - "2025-11-26 01:18:49,778 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9966\n", - "2025-11-26 01:18:49,778 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9917\n", - "\n", - "2025-11-26 01:18:49,779 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:18:49,781 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:18:49,788 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:18:53,915 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:18:53,926 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:18:53,929\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:19:05,812\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0167s.\n", - "2025-11-26 01:19:05,972 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 64, 'lr': 0.0013470053780947797, 'weight_decay': 0.00030758808386390933, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 1024, 'gnn_dropout': 0.4, 'gnn_activation': 'relu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:19:05,973 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:19:05,978 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:19:10,184 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:19:12,014 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:19:12,019 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:19:12,019 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9389\n", - "2025-11-26 01:19:12,019 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9449\n", - "2025-11-26 01:19:12,019 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9390\n", - "2025-11-26 01:19:12,019 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9554\n", - "2025-11-26 01:19:12,020 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9963\n", - "2025-11-26 01:19:12,020 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9941\n", - "\n", - "2025-11-26 01:19:12,020 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:19:12,021 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:19:12,027 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:19:16,138 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:19:16,150 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:19:16,153\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:19:28,943\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0206s.\n", - "2025-11-26 01:19:29,171 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.0007025528058103543, 'weight_decay': 0.0018355753249756474, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.0, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:19:29,172 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:19:29,177 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:19:33,346 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:19:35,544 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:19:35,549 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:19:35,549 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9313\n", - "2025-11-26 01:19:35,550 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9080\n", - "2025-11-26 01:19:35,550 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9331\n", - "2025-11-26 01:19:35,550 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9473\n", - "2025-11-26 01:19:35,550 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9938\n", - "2025-11-26 01:19:35,550 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9915\n", - "\n", - "2025-11-26 01:19:35,553 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/similarity_10/best_cv_model.pt\n", - "2025-11-26 01:19:35,553 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/similarity_10/best_cv_model_embds.pt\n", - "2025-11-26 01:19:35,553 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:19:35,553 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9513 +/- 0.0185\n", - "2025-11-26 01:19:35,553 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9390 +/- 0.0210\n", - "2025-11-26 01:19:35,554 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9519 +/- 0.0183\n", - "2025-11-26 01:19:35,554 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9567 +/- 0.0230\n", - "2025-11-26 01:19:35,554 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9925 +/- 0.0055\n", - "2025-11-26 01:19:35,554 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9764 +/- 0.0248\n", - "2025-11-26 01:19:35,555 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n", - "2025-11-26 01:19:35,555 - bioneuralnet.downstream_task.dpmon - INFO - Output directory set to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/gaussian_15\n", - "2025-11-26 01:19:35,555 - bioneuralnet.downstream_task.dpmon - INFO - Initialized DPMON with model: GCN\n", - "2025-11-26 01:19:35,555 - bioneuralnet.utils.reproducibility - INFO - Setting global seed for reproducibility to: 8183\n", - "2025-11-26 01:19:35,556 - bioneuralnet.utils.reproducibility - INFO - CUDA available. Applying seed to all GPU operations\n", - "2025-11-26 01:19:35,556 - bioneuralnet.utils.reproducibility - INFO - Seed setting complete\n", - "2025-11-26 01:19:35,556 - bioneuralnet.downstream_task.dpmon - INFO - Random seed set to: 8183\n", - "2025-11-26 01:19:35,561 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:19:35,562 - bioneuralnet.downstream_task.dpmon - INFO - Running in Cross-Validation mode (cv=True) with 5 folds.\n", - "2025-11-26 01:19:35,563 - bioneuralnet.downstream_task.dpmon - INFO - CV Setup: Standard 5-fold split.\n", - "2025-11-26 01:19:35,564 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 1/5\n", - "2025-11-26 01:19:35,566 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:19:35,573 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:19:39,710 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:19:39,725 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:19:39,728\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:19:52,665\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0205s.\n", - "2025-11-26 01:19:52,846 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.002995945702914729, 'weight_decay': 7.542726756559785e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 32, 'ae_encoding_dim': 4, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:19:52,847 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 1 using train split only\n", - "2025-11-26 01:19:52,851 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:19:56,959 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:00,808 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 1 on test set\n", - "2025-11-26 01:20:00,813 - bioneuralnet.downstream_task.dpmon - INFO - Fold 1 results:\n", - "2025-11-26 01:20:00,813 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9621\n", - "2025-11-26 01:20:00,814 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9538\n", - "2025-11-26 01:20:00,814 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9622\n", - "2025-11-26 01:20:00,814 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9740\n", - "2025-11-26 01:20:00,814 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9945\n", - "2025-11-26 01:20:00,814 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9854\n", - "\n", - "2025-11-26 01:20:00,815 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 2/5\n", - "2025-11-26 01:20:00,817 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:20:00,822 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:20:04,918 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:04,932 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:20:04,935\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:20:15,891\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0178s.\n", - "2025-11-26 01:20:16,037 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.00024165542558361394, 'weight_decay': 0.0002652189086272745, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 512, 'gnn_dropout': 0.1, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:20:16,037 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 2 using train split only\n", - "2025-11-26 01:20:16,042 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:20:20,158 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:21,370 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 2 on test set\n", - "2025-11-26 01:20:21,375 - bioneuralnet.downstream_task.dpmon - INFO - Fold 2 results:\n", - "2025-11-26 01:20:21,376 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9697\n", - "2025-11-26 01:20:21,376 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9487\n", - "2025-11-26 01:20:21,376 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9701\n", - "2025-11-26 01:20:21,376 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9579\n", - "2025-11-26 01:20:21,376 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9898\n", - "2025-11-26 01:20:21,377 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9414\n", - "\n", - "2025-11-26 01:20:21,377 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 3/5\n", - "2025-11-26 01:20:21,379 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:20:21,384 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:20:25,595 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:25,609 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (526, 901)\n", - "2025-11-26 01:20:25,612\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:20:36,485\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0081s.\n", - "2025-11-26 01:20:36,637 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 best config: {'gnn_layer_num': 3, 'gnn_hidden_dim': 128, 'lr': 0.0006980653261883734, 'weight_decay': 6.059927981082565e-05, 'nn_hidden_dim1': 256, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 8, 'num_epochs': 2048, 'gnn_dropout': 0.0, 'gnn_activation': 'elu', 'dim_reduction': 'ae'}\n", - "2025-11-26 01:20:36,637 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 3 using train split only\n", - "2025-11-26 01:20:36,642 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:20:40,760 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:44,494 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 3 on test set\n", - "2025-11-26 01:20:44,499 - bioneuralnet.downstream_task.dpmon - INFO - Fold 3 results:\n", - "2025-11-26 01:20:44,499 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9470\n", - "2025-11-26 01:20:44,499 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9318\n", - "2025-11-26 01:20:44,499 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9468\n", - "2025-11-26 01:20:44,500 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9244\n", - "2025-11-26 01:20:44,500 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9970\n", - "2025-11-26 01:20:44,500 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9936\n", - "\n", - "2025-11-26 01:20:44,500 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 4/5\n", - "2025-11-26 01:20:44,502 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:20:44,509 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:20:48,666 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:20:48,680 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:20:48,683\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:20:59,905\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0143s.\n", - "2025-11-26 01:21:00,060 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 128, 'lr': 0.0008628455289617886, 'weight_decay': 0.005542594076906398, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 16, 'num_epochs': 2048, 'gnn_dropout': 0.2, 'gnn_activation': 'elu', 'dim_reduction': 'linear'}\n", - "2025-11-26 01:21:00,061 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 4 using train split only\n", - "2025-11-26 01:21:00,066 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:21:04,216 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:21:09,152 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 4 on test set\n", - "2025-11-26 01:21:09,157 - bioneuralnet.downstream_task.dpmon - INFO - Fold 4 results:\n", - "2025-11-26 01:21:09,157 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9542\n", - "2025-11-26 01:21:09,157 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9398\n", - "2025-11-26 01:21:09,157 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9549\n", - "2025-11-26 01:21:09,157 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9659\n", - "2025-11-26 01:21:09,158 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9964\n", - "2025-11-26 01:21:09,158 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9957\n", - "\n", - "2025-11-26 01:21:09,158 - bioneuralnet.downstream_task.dpmon - INFO - Starting Fold 5/5\n", - "2025-11-26 01:21:09,160 - bioneuralnet.downstream_task.dpmon - INFO - Using GPU 0\n", - "2025-11-26 01:21:09,166 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:21:13,268 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:21:13,282 - bioneuralnet.downstream_task.dpmon - INFO - Starting hyperparameter tuning for dataset shape: (527, 901)\n", - "2025-11-26 01:21:13,285\tINFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949\n", - "2025-11-26 01:21:25,473\tINFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/vicente/ray_results/tune_dp' in 0.0135s.\n", - "2025-11-26 01:21:25,665 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 best config: {'gnn_layer_num': 4, 'gnn_hidden_dim': 64, 'lr': 0.0007025528058103543, 'weight_decay': 0.0018355753249756474, 'nn_hidden_dim1': 512, 'nn_hidden_dim2': 128, 'ae_encoding_dim': 4, 'num_epochs': 1024, 'gnn_dropout': 0.0, 'gnn_activation': 'relu', 'dim_reduction': 'mlp'}\n", - "2025-11-26 01:21:25,665 - bioneuralnet.downstream_task.dpmon - INFO - Building graph features for Fold 5 using train split only\n", - "2025-11-26 01:21:25,671 - bioneuralnet.downstream_task.dpmon - INFO - Building graph with 900 common features.\n", - "2025-11-26 01:21:29,789 - bioneuralnet.downstream_task.dpmon - INFO - Built feature matrix with clinical correlations shape: (900, 7)\n", - "2025-11-26 01:21:32,020 - bioneuralnet.downstream_task.dpmon - INFO - Evaluating model for Fold 5 on test set\n", - "2025-11-26 01:21:32,026 - bioneuralnet.downstream_task.dpmon - INFO - Fold 5 results:\n", - "2025-11-26 01:21:32,026 - bioneuralnet.downstream_task.dpmon - INFO - Accuracy: 0.9618\n", - "2025-11-26 01:21:32,026 - bioneuralnet.downstream_task.dpmon - INFO - F1 Macro: 0.9432\n", - "2025-11-26 01:21:32,027 - bioneuralnet.downstream_task.dpmon - INFO - F1 Weighted: 0.9622\n", - "2025-11-26 01:21:32,027 - bioneuralnet.downstream_task.dpmon - INFO - Recall: 0.9506\n", - "2025-11-26 01:21:32,027 - bioneuralnet.downstream_task.dpmon - INFO - AUC: 0.9970\n", - "2025-11-26 01:21:32,027 - bioneuralnet.downstream_task.dpmon - INFO - AUPR: 0.9899\n", - "\n", - "2025-11-26 01:21:32,029 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/gaussian_15/best_cv_model.pt\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Successfully saved global best CV model state to: /home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan/gaussian_15/best_cv_model_embds.pt\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Cross-Validation Results:\n", - "\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Avg Accuracy: 0.9590 +/- 0.0087\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Macro: 0.9434 +/- 0.0084\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Avg F1 Weighted: 0.9592 +/- 0.0088\n", - "2025-11-26 01:21:32,030 - bioneuralnet.downstream_task.dpmon - INFO - Avg Recall: 0.9546 +/- 0.0190\n", - "2025-11-26 01:21:32,031 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUC: 0.9949 +/- 0.0030\n", - "2025-11-26 01:21:32,031 - bioneuralnet.downstream_task.dpmon - INFO - Avg AUPR: 0.9812 +/- 0.0226\n", - "2025-11-26 01:21:32,031 - bioneuralnet.downstream_task.dpmon - INFO - DPMON run completed.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Results for: threshold_10\n", - "Accuracy (Avg +/- Std): 0.9574 +/- 0.0175\n", - "F1 Macro (Avg +/- Std): 0.9536 +/- 0.0165\n", - "F1 Weighted (Avg +/- Std): 0.9576 +/- 0.0175\n", - "Recall: 0.9651 +/- 0.0138\n", - "AUC: 0.9943 +/- 0.0029\n", - "\n", - "Results for: correlation_10\n", - "Accuracy (Avg +/- Std): 0.9574 +/- 0.0139\n", - "F1 Macro (Avg +/- Std): 0.9480 +/- 0.0134\n", - "F1 Weighted (Avg +/- Std): 0.9578 +/- 0.0137\n", - "Recall: 0.9571 +/- 0.0035\n", - "AUC: 0.9965 +/- 0.0028\n", - "\n", - "Results for: similarity_10\n", - "Accuracy (Avg +/- Std): 0.9513 +/- 0.0185\n", - "F1 Macro (Avg +/- Std): 0.9390 +/- 0.0210\n", - "F1 Weighted (Avg +/- Std): 0.9519 +/- 0.0183\n", - "Recall: 0.9567 +/- 0.0230\n", - "AUC: 0.9925 +/- 0.0055\n", - "\n", - "Results for: gaussian_15\n", - "Accuracy (Avg +/- Std): 0.9590 +/- 0.0087\n", - "F1 Macro (Avg +/- Std): 0.9434 +/- 0.0084\n", - "F1 Weighted (Avg +/- Std): 0.9592 +/- 0.0088\n", - "Recall: 0.9546 +/- 0.0190\n", - "AUC: 0.9949 +/- 0.0030\n" - ] - } - ], + "outputs": [], "source": [ "output_dir_base = Path(\"/home/vicente/Github/BioNeuralNet/dpmon_results_GCN_FINAL/kipan\")\n", "\n", @@ -4159,6 +2065,44 @@ " print(f\"AUC: {auc_avg:.4f} +/- {auc_std:.4f}\")" ] }, + { + "cell_type": "markdown", + "id": "a8157d38", + "metadata": {}, + "source": [ + "Results for: threshold_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9574 +/- 0.0175\n", + "F1 Macro (Avg +/- Std): 0.9536 +/- 0.0165\n", + "F1 Weighted (Avg +/- Std): 0.9576 +/- 0.0175\n", + "Recall: 0.9651 +/- 0.0138\n", + "AUC: 0.9943 +/- 0.0029\n", + "\n", + "Results for: correlation_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9574 +/- 0.0139\n", + "F1 Macro (Avg +/- Std): 0.9480 +/- 0.0134\n", + "F1 Weighted (Avg +/- Std): 0.9578 +/- 0.0137\n", + "Recall: 0.9571 +/- 0.0035\n", + "AUC: 0.9965 +/- 0.0028\n", + "\n", + "Results for: similarity_10\n", + "\n", + "Accuracy (Avg +/- Std): 0.9513 +/- 0.0185\n", + "F1 Macro (Avg +/- Std): 0.9390 +/- 0.0210\n", + "F1 Weighted (Avg +/- Std): 0.9519 +/- 0.0183\n", + "Recall: 0.9567 +/- 0.0230\n", + "AUC: 0.9925 +/- 0.0055\n", + "\n", + "Results for: gaussian_15\n", + "\n", + "Accuracy (Avg +/- Std): 0.9590 +/- 0.0087\n", + "F1 Macro (Avg +/- Std): 0.9434 +/- 0.0084\n", + "F1 Weighted (Avg +/- Std): 0.9592 +/- 0.0088\n", + "Recall: 0.9546 +/- 0.0190\n", + "AUC: 0.9949 +/- 0.0030" + ] + }, { "cell_type": "code", "execution_count": 15, diff --git a/docs/source/notebooks/TCGA-LGG.ipynb b/docs/source/notebooks/TCGA-LGG.ipynb index 7a37802..545c480 100644 --- a/docs/source/notebooks/TCGA-LGG.ipynb +++ b/docs/source/notebooks/TCGA-LGG.ipynb @@ -11,7 +11,7 @@ "- **Goal**: Classification\n", "- **Prediction Target**: Predict `Vital Status` based on their omics profiles.\n", "\n", - "**Data Source:** Broad Institute FireHose (http://firebrowse.org/?cohort=LGG)" + "**Data Source:** [Broad Institute FireHose](http://firebrowse.org/?cohort=LGG)" ] }, { diff --git a/docs/source/notebooks/TCGA-PAAD.ipynb b/docs/source/notebooks/TCGA-PAAD.ipynb index 1b1b002..3eb2319 100644 --- a/docs/source/notebooks/TCGA-PAAD.ipynb +++ b/docs/source/notebooks/TCGA-PAAD.ipynb @@ -14,7 +14,7 @@ "\n", "**Data Sources:**\n", "- Omics Data and Target: [https://xenabrowser.net/datapages/](https://xenabrowser.net/datapages/)\n", - "- Clinical Data: [Broad Institute FireHose](`http://firebrowse.org/?cohort=PAAD`)" + "- Clinical Data: [Broad Institute FireHose](http://firebrowse.org/?cohort=PAAD)" ] }, { diff --git a/docs/source/quick_start_bio.rst b/docs/source/quick_start_bio.rst index 906f91b..ae51a5e 100644 --- a/docs/source/quick_start_bio.rst +++ b/docs/source/quick_start_bio.rst @@ -1,2 +1,4 @@ Quick Start for Biologist -========================= \ No newline at end of file +========================= + +**In the works** \ No newline at end of file diff --git a/docs/source/user_api.rst b/docs/source/user_api.rst index ef2cd77..f715a3c 100644 --- a/docs/source/user_api.rst +++ b/docs/source/user_api.rst @@ -44,7 +44,8 @@ The figure below summarizes the main BioNeuralNet modules and public objects. :align: center :alt: BioNeuralNet module and API overview - BioNeuralNet 1.2.0: core modules (utils, network\_embedding, clustering, downstream\_task, datasets, metrics, external\_tools) and their key user-facing functions and classes. + BioNeuralNet 1.2.1: core modules (utils, network\_embedding, clustering, downstream\_task, datasets, metrics, external\_tools) and their key user-facing functions and classes. + `View BioNeuralNet API. `_ Module Reference ---------------- diff --git a/setup.cfg b/setup.cfg index a100ef3..d62a687 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = bioneuralnet -version = 1.2.0 +version = 1.2.1 author = Vicente Ramos author_email = vicente.ramos@ucdenver.edu description = A Graph Neural Network based Multi-Omics Network Data Analysis Tool diff --git a/tests/test_dataset_loader.py b/tests/test_dataset_loader.py index 13421dd..10a01c9 100644 --- a/tests/test_dataset_loader.py +++ b/tests/test_dataset_loader.py @@ -1,108 +1,108 @@ -# import unittest -# import pandas as pd -# from pathlib import Path -# from bioneuralnet.datasets import ( -# DatasetLoader, -# load_example, -# load_monet, -# load_brca, -# load_lgg, -# load_kipan, -# load_paad -# ) - -# class TestDatasetLoader(unittest.TestCase): -# def test_example_loads(self): -# loader = DatasetLoader("example") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"X1", "X2", "Y", "clinical"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_monet_loads(self): -# loader = DatasetLoader("monet") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"gene", "mirna", "phenotype", "rppa", "clinical"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_brca_loads(self): -# loader = DatasetLoader("brca") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_lgg_loads(self): -# loader = DatasetLoader("lgg") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_kipan_loads(self): -# loader = DatasetLoader("kipan") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_paad_loads(self): -# loader = DatasetLoader("paad") -# keys = set(loader.data.keys()) -# self.assertEqual(keys, {"cnv", "target", "clinical", "rna", "meth"}) - -# for df in loader.data.values(): -# self.assertIsInstance(df, pd.DataFrame) -# self.assertGreater(df.shape[0], 0) -# self.assertGreater(df.shape[1], 0) - -# def test_getitem_access(self): -# loader = DatasetLoader("example") -# df = loader["X1"] -# self.assertIsInstance(df, pd.DataFrame) -# self.assertEqual(df.shape, (358, 500)) - -# def test_functional_loaders(self): -# self.assertIsInstance(load_example(), dict) -# self.assertIsInstance(load_monet(), dict) -# self.assertIsInstance(load_brca(), dict) -# self.assertIsInstance(load_lgg(), dict) -# self.assertIsInstance(load_kipan(), dict) -# self.assertIsInstance(load_paad(), dict) -# self.assertEqual(load_brca().keys(), DatasetLoader("brca").data.keys()) - -# def test_invalid_folder_raises(self): -# with self.assertRaises(FileNotFoundError): -# DatasetLoader("nonexistent_folder") - -# def test_unrecognized_name_raises(self): -# base = Path(__file__).parent.parent / "bioneuralnet" / "datasets" -# dummy = base / "dummy" -# dummy.mkdir(exist_ok=True) -# (dummy / "placeholder.csv").write_text("a,b\n1,2") - -# with self.assertRaises(ValueError): -# DatasetLoader("dummy") - -# for child in dummy.iterdir(): -# child.unlink() -# dummy.rmdir() - -# if __name__ == "__main__": -# unittest.main() +import unittest +import pandas as pd +from pathlib import Path +from bioneuralnet.datasets import ( + DatasetLoader, + load_example, + load_monet, + load_brca, + load_lgg, + load_kipan, + load_paad +) + +class TestDatasetLoader(unittest.TestCase): + def test_example_loads(self): + loader = DatasetLoader("example") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"X1", "X2", "Y", "clinical"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_monet_loads(self): + loader = DatasetLoader("monet") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"gene", "mirna", "phenotype", "rppa", "clinical"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_brca_loads(self): + loader = DatasetLoader("brca") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_lgg_loads(self): + loader = DatasetLoader("lgg") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_kipan_loads(self): + loader = DatasetLoader("kipan") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"mirna", "target", "clinical", "rna", "meth"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_paad_loads(self): + loader = DatasetLoader("paad") + keys = set(loader.data.keys()) + self.assertEqual(keys, {"cnv", "target", "clinical", "rna", "meth"}) + + for df in loader.data.values(): + self.assertIsInstance(df, pd.DataFrame) + self.assertGreater(df.shape[0], 0) + self.assertGreater(df.shape[1], 0) + + def test_getitem_access(self): + loader = DatasetLoader("example") + df = loader["X1"] + self.assertIsInstance(df, pd.DataFrame) + self.assertEqual(df.shape, (358, 500)) + + def test_functional_loaders(self): + self.assertIsInstance(load_example(), dict) + self.assertIsInstance(load_monet(), dict) + self.assertIsInstance(load_brca(), dict) + self.assertIsInstance(load_lgg(), dict) + self.assertIsInstance(load_kipan(), dict) + self.assertIsInstance(load_paad(), dict) + self.assertEqual(load_brca().keys(), DatasetLoader("brca").data.keys()) + + def test_invalid_folder_raises(self): + with self.assertRaises(FileNotFoundError): + DatasetLoader("nonexistent_folder") + + def test_unrecognized_name_raises(self): + base = Path(__file__).parent.parent / "bioneuralnet" / "datasets" + dummy = base / "dummy" + dummy.mkdir(exist_ok=True) + (dummy / "placeholder.csv").write_text("a,b\n1,2") + + with self.assertRaises(ValueError): + DatasetLoader("dummy") + + for child in dummy.iterdir(): + child.unlink() + dummy.rmdir() + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_hybrid_louvain.py b/tests/test_hybrid_louvain.py index 889bd25..7e6b190 100644 --- a/tests/test_hybrid_louvain.py +++ b/tests/test_hybrid_louvain.py @@ -112,7 +112,7 @@ def test_run_as_dfs_returns_list_of_dataframes(self, mock_page_rank_cls, mock_lo mock_louvain_cls.return_value = fake_louvain fake_pagerank = MagicMock() - + fake_pagerank.run.side_effect = lambda best_seed: {"cluster_nodes": best_seed,"conductance": 0.1,"correlation": 0.1,"composite_score": 0.1} mock_page_rank_cls.return_value = fake_pagerank