A multi-objective particle swarm optimization framework for feature selection in bioinformatics.
Project description
HERO-PSO
Hybrid Ensemble-driven Robust Orchestration Particle Swarm Optimization
Introduction
HERO-PSO is a stability-driven ensemble feature selection framework designed for complex and noisy biological data.
By synergizing complementary stability selection, nested cross-validation, and an advanced multi-objective binary particle swarm optimization algorithm (MO-BPSO), this framework systematically identifies robust feature subsets within noisy transcriptomic landscapes. HERO-PSO enforces the identification of "consensus solutions" robust to data perturbations.
Benchmarking across 12 independent datasets demonstrates that HERO-PSO significantly improves the Jaccard Index (JI) while maintaining leading predictive accuracy (Bal-ACC and AUC), underscoring its potential for clinical translation.
Beyond mere biomarker discovery, HERO-PSO enables a translational pipeline for drug repurposing. Integrating resistance signatures with Connectivity Map (CMap), we identified and experimentally validated potential sensitizers for cisplatin-resistant bladder cancer. In conclusion, by combining advanced computational intelligence with strict stability constraints, HERO-PSO offers a robust paradigm for tumor drug response prediction and biomarker discovery.
Installation
You can easily install heropso and its dependencies directly from the Python Package Index (PyPI):
pip install heropso
You can also install heropso locally in editable mode for development with source code(github).
Clone or download the repository, navigate to the project root directory (where setup.py is located), and run:
pip install -e .
This will install the package in editable mode, allowing you to make changes to the code and see them reflected immediately without reinstalling.
Quick Start / Usage
import heropso
# Define your input dataset path (CSV format)
# Note: The CSV should contain features as columns and samples as rows, with a label column.
input_data_path = "path/to/your/expression_data.csv"
# Define where you want to save the results
output_directory = "./hero_pso_results"
# Run the core HERO-PSO pipeline
# This will perform nested cross-validation and output stable core consensus clusters
heropso.run_heropso(
input_csv_path=input_data_path,
output_dir_path=output_directory,
outer_cv_folds=5, # Number of outer cross-validation folds
inner_cv_folds=5, # Number of inner CV folds for fitness evaluation (Optional)
parallel_workers=4 # Number of CPU cores to use for parallel processing (Optional)
)
Output Interpretation
- 00_Spearman_matrix.csv: Contains the Spearman correlation coefficients between all features. Used to identify and filter out highly redundant features.
- 01_Feature_stability_redundancy_ranking.csv: Results from the Complementary Stability Selection (CSS) phase. It lists features ranked by their selection frequency across bootstrap samples using ElasticNet.
- 02_prior_knowledge_ranking.csv: Feature ranking based on Mutual Information (MI) scores between features and the target label. This serves as prior knowledge to guide the PSO initialization.
- XX_foldX_global_archive.csv (e.g., 03_fold1_global_archive.csv): (Note: The prefix number XX increments for each fold, typically starting from 03) The final Pareto archive (non-dominated solutions) found by the ensemble PSO for a specific outer cross-validation fold. It includes selected feature indices, names, and test performance.
- XX_cluster_result.csv All stable solutions (Average JI Rank Top 50%) found across all folds, grouped into clusters based on Jaccard index. It shows which solutions belong to which "phenotype" of biomarkers.
- XX_core_cluster_result.csv The "Gold Standard" clusters. These are the refined subsets of biomarkers that appeared consistently across all cross-validation folds, representing the most robust signatures.
- XX_summary_clusters_core.txt A comprehensive text report summarizing the algorithm's performance. It includes the Overall average JI of all cluster as well as the average JI of each cluster. Additionally, it provides generalization performance metrics (Bal-ACC/AUC) along with other detailed metrics (Number of Features/Log Loss) for the representative solution of each discovered core cluster.
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heropso-0.1.1.tar.gz.
File metadata
- Download URL: heropso-0.1.1.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29aa089cf441176633d50dfeadcd86f42cfed0bddf5a576f8ac83c9d46930428
|
|
| MD5 |
7f77731ffd8b6e6b5c8da43e447923c4
|
|
| BLAKE2b-256 |
74da704e526163d5d0f0db5c88ed7010a1b0628bebc711b94f684c2983a07b08
|
File details
Details for the file heropso-0.1.1-py3-none-any.whl.
File metadata
- Download URL: heropso-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcfde57fdada84fc8702928d376c532c1598a00a94c0ca1b4df91121163d65a0
|
|
| MD5 |
1517eec183429a81ac075fdc37641f64
|
|
| BLAKE2b-256 |
e3510b7f6e481dc11e6b5480e1a667832731ed11dd08b062c78fe5b243155f75
|