All notable changes to QBioCode will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Quantum Backend: Noisy simulation support based on IBM device noise models
- New backend format:
noisy_<device_name>(e.g.,noisy_ibm_cleveland) - Extracts noise model from actual IBM Quantum devices for realistic local simulation
- Configurable simulation method via
sim_methodparameter - Supports all AerSimulator methods:
statevector,matrix_product_state,tensor_network, etc. - Enables testing quantum algorithms under realistic noise without hardware queue times
- No IBM Quantum compute credits consumed (simulation runs locally)
- Updated
qbiocode.utils.qutils.get_backend_session()to support noisy backends - Updated
qbiocode.utils.ibm_account.pyfor improved credential handling - Documentation updated with comprehensive examples and best practices
- New backend format:
-
Data Generation: New blob dataset generator
generate_blobs_datasets(): Create isotropic Gaussian blob datasetsgenerate_default_blobs_datasets(): Quick generation with default parameters- Follows QBioCode data generation patterns
- Useful for clustering and classification benchmarks
-
Evaluation Metrics: Added generalized
evaluation_metrics()function toqbiocode.evaluation.model_evaluation- Supports multiple metrics: accuracy, brier, f1, precision, recall, auc
- Configurable via
metricsparameter (default: ['accuracy', 'brier']) - Backward compatible: returns (accuracy, brier) tuple by default
- Supports both binary and multi-class classification
- Provides calibration quality assessment via Brier score
- Handles edge cases (e.g., single class in test set)
- Now available in main API (previously only in tutorial helpers)
-
Quantum Ensemble Learning: New unified quantum ensemble classifier
compute_qensemble(): Quantum ensemble with configurable construction methods- Implements quantum ensemble using controlled operations and superposition
- Two ensemble methods via
ensemble_methodparameter:"swap"(default): Fixed controlled-SWAP operations (faster, deterministic)"random_unitary": Haar-random unitaries (more general, potentially better generalization)
- Three ensemble modes: balanced, unbalanced, and pair_sample
- Support for configurable ensemble depth (d) and operations per qubit (n_swap)
- Quantum cosine similarity classifier using SWAP test
- New utility functions in
qbiocode.utils:normalize_data(): Normalize data for quantum state encodinglabel_to_array(): Convert binary labels to one-hot encodingprepare_training_set(): Prepare balanced training subsetsretrieve_probabilities(): Extract probabilities from measurement counts (generic quantum utility)execute_circuit(): General-purpose Aer simulator execution (reusable across quantum algorithms)
- Based on Macaluso et al., "A variational algorithm for quantum ensemble learning" (2023)
- Integrated from tutorial/QEnsemble with full API compatibility
- Code organization: Extracted reusable functions to utils for broader applicability
-
Testing Infrastructure: Comprehensive test suite for core functionality
tests/test_data_generation.py: Tests for data generation utilitiestests/test_file_utilities.py: Tests for file operations and utilitiestests/test_generator_dispatch.py: Tests for generator dispatch logictests/conftest.py: Pytest configuration and fixtures- Test coverage for utility modules and data generation helpers
-
Code Quality Tools: Enhanced development tooling
isortintegration for consistent import ordering- Configuration in
pyproject.tomlfor isort settings - Added to
devandalldependency groups
-
Documentation: Testing instructions in README
- Added "Running Tests" section with pytest usage
- Instructions for installing development dependencies
-
Code Formatting: Applied consistent code style across entire codebase
- Ran
blackformatter on all Python files - Ran
isortfor standardized import ordering - Fixed invalid escape sequences in visualization module
- Improved code readability and maintainability
- Ran
-
CI/CD Improvements: Stabilized continuous integration pipeline
- Updated GitHub Actions workflows to Node.js 24
- Fixed CI code quality checks for import ordering
- Fixed CI type-check issues
- Fixed documentation build process
- Fixed Pandoc compatibility issues
- Enhanced workflow reliability across all platforms
-
Testing: Improved test reliability
- Fixed path-order assumptions in duplicate-file tests
- Tests now work consistently across different file systems
- Invalid escape sequence in
qbiocode/visualization/visualize_correlation.py - Import ordering issues throughout codebase
- Type-check errors in CI pipeline
- Documentation build failures
- Path handling in cross-platform tests
- Additional quantum ML algorithms
- Enhanced meta-learning capabilities
- More dataset complexity metrics
- Performance optimizations
- Extended Galaxy tool integration
0.1.0 - 2026-04-06
- Minimum Python version increased to 3.10 (was 3.9)
- Required for compatibility with latest Qiskit ecosystem (qiskit-ibm-runtime 0.44.0+)
- Python 3.9 reaches end-of-life in October 2025
-
QProfiler: Automated machine learning benchmarking with data complexity analysis
- Support for multiple ML models (RF, SVM, LR, DT, NB, MLP, XGBoost)
- Support for quantum ML models (QSVC, PQK, VQC, QNN)
- Comprehensive data profiling and complexity metrics
- Batch processing mode for large-scale experiments
- CLI interface for easy usage
-
QSage: Meta-learning framework for intelligent model selection
- Model recommendation based on dataset characteristics
- Pre-trained models for quick predictions
- Integration with QProfiler results
-
Data Generation: Artificial dataset generation with controlled complexity
- Multiple dataset types (circles, moons, spirals, S-curve, Swiss roll, spheres)
- Configurable noise levels and complexity parameters
- Support for multi-class classification problems
-
Embeddings: Dimensionality reduction and feature extraction
- Autoencoder implementations
- Integration with classical embedding methods
-
Evaluation: Comprehensive model and dataset evaluation
- Multiple metrics (accuracy, F1-score, AUC, training time)
- Cross-validation support
- Statistical analysis tools
-
Visualization: Publication-quality plotting functions
- Correlation analysis plots with scientific styling
- Heatmaps with customizable colormaps
- High-resolution output (600 DPI) for publications
- Complete API documentation with Sphinx
- Tutorials for QProfiler, QSage, and data generation
- Installation guides for multiple platforms
- Galaxy integration documentation
- Example notebooks and workflows
- GitHub issue templates (bug report, feature request, documentation, question)
- Pull request template with comprehensive checklists
- Security policy (SECURITY.md)
- Support documentation (SUPPORT.md)
- Contributing guidelines (CONTRIBUTING.md)
- Code of conduct (CODE_OF_CONDUCT.md)
- Citation file (CITATION.cff)
- Zenodo metadata for DOI generation (.zenodo.json)
- GitHub Actions workflow for continuous integration
- Multi-OS testing (Ubuntu, macOS, Windows)
- Multi-Python version testing (3.10, 3.11)
- Code quality checks (flake8, black, isort, mypy)
- Test coverage reporting
- Documentation building
- GitHub Actions workflow for automated releases
- PyPI publishing
- Zenodo archiving
- Release asset management
qprofiler: Run QProfiler experimentsqprofiler-batch: Batch processing modeqsage: Model recommendation tool
- Updated visualization functions for publication quality
- Enhanced scatter plots with better colormaps
- Improved heatmaps with professional styling
- Better legend positioning and labeling
- Increased DPI for high-quality output
- NaN handling in correlation visualization
- Windows path compatibility issues
- Automated QSage model download
- Python >= 3.10, < 3.13
- Qiskit for quantum computing functionality
- scikit-learn for classical ML algorithms
- pandas, numpy for data manipulation
- matplotlib, seaborn for visualization
- XGBoost for gradient boosting
- hydra-core for configuration management
This is the first public release of QBioCode, a comprehensive framework for quantum machine learning applications in healthcare and life sciences. The release includes:
- Complete implementation of QProfiler and QSage applications
- Support for both quantum and classical machine learning models
- Extensive documentation and tutorials
- Professional project infrastructure for open-source collaboration
- Automated CI/CD pipelines
- Ready for PyPI distribution and Zenodo archiving
Note: This is an alpha release. APIs may change in future versions. Please report any issues on our GitHub issue tracker.