Skip to main content

Physics-Informed Fractional Operator Learning for Real-Time Neurological Biomarker Detection: A Framework for Memory-Driven EEG Analysis

Project description

Neurological LRD Analysis

Python 3.11+ License: MIT PyPI Documentation

A comprehensive library for estimating Hurst exponents in neurological time series data, featuring multiple estimation methods, realistic data generation, and advanced benchmarking capabilities.

Developed as part of PhD research in Biomedical Engineering at the University of Reading, UK by Davian R. Chin, focusing on Physics-Informed Fractional Operator Learning for Real-Time Neurological Biomarker Detection: A Framework for Memory-Driven EEG Analysis.

Author: Davian R. Chin (PhD Candidate in Biomedical Engineering, University of Reading, UK)
Email: d.r.chin@pgr.reading.ac.uk
ORCiD: https://orcid.org/0009-0003-9434-3919

๐Ÿš€ Quick Start

Installation

# Install from PyPI (recommended)
pip install neurological-lrd-analysis

# Install with GPU support
pip install neurological-lrd-analysis[gpu]

# Install with development dependencies
pip install neurological-lrd-analysis[dev]

# Or install from source
git clone https://github.com/dave2k77/neurological_lrd_analysis.git
cd neurological_lrd_analysis
pip install -e .

Basic Usage

Classical Methods

from neurological_lrd_analysis import BiomedicalHurstEstimatorFactory, EstimatorType

# Create factory instance
factory = BiomedicalHurstEstimatorFactory()

# Estimate Hurst exponent using DFA
result = factory.estimate(
    data=your_time_series,
    method=EstimatorType.DFA,
    confidence_method="bootstrap",
    n_bootstrap=100
)

print(f"Hurst exponent: {result.hurst_estimate:.3f}")
print(f"Confidence interval: {result.confidence_interval}")
print(f"Data quality score: {result.data_quality_score:.3f}")

Machine Learning Methods

from neurological_lrd_analysis import (
    create_pretrained_suite, quick_predict, quick_ensemble_predict,
    ClassicalMLBenchmark, run_comprehensive_benchmark
)

# Create pretrained models (one-time setup)
create_pretrained_suite("pretrained_models", force_retrain=True)

# Fast ML prediction
hurst_ml = quick_predict(your_time_series, "pretrained_models", "random_forest")

# Ensemble prediction (best accuracy)
hurst_ensemble, uncertainty = quick_ensemble_predict(your_time_series, "pretrained_models")

# Comprehensive benchmark comparison
results = run_comprehensive_benchmark()
print(f"Best method: {results['best_method']}")
print(f"Performance: {results['performance_metrics']}")

Benchmark Results

# Run comprehensive benchmark
benchmark = ClassicalMLBenchmark("pretrained_models")
results = benchmark.run_comprehensive_benchmark()

# Access results
print("Performance Summary:")
for method, metrics in results['summaries'].items():
    print(f"{method}: MAE={metrics.mean_absolute_error:.4f}, "
          f"Time={metrics.mean_computation_time*1000:.1f}ms")

โœจ Features

๐Ÿงฎ Multiple Estimation Methods

  • Classical Methods: DFA, R/S Analysis, Higuchi, Generalized Hurst Exponent, Periodogram, GPH, Whittle MLE, DWT, Abry-Veitch, MFDFA
  • ML Methods: Random Forest, Support Vector Regression, Gradient Boosting, Ensemble approaches
  • Hybrid Approaches: Classical + ML ensemble methods for optimal performance

๐Ÿค– Machine Learning Baselines

  • Feature Extraction: 74+ comprehensive features (statistical, spectral, wavelet, fractal, biomedical)
  • Hyperparameter Optimization: Automated tuning with Optuna
  • Pretrained Models: Fast inference with pre-trained ML models
  • Ensemble Methods: Weighted combination of multiple ML models
  • Real-time Inference: 10-50ms prediction times

๐Ÿฅ Biomedical Scenarios

  • EEG: Rest, eyes closed/open, sleep, seizure patterns
  • ECG: Normal heart rate, tachycardia, realistic QRS complexes
  • Respiratory: Breathing patterns, irregular breathing
  • Neurological: Memory-driven EEG analysis, neurological biomarker detection
  • Artifacts: Electrode pops, motion, baseline drift, powerline interference
  • Physics-Informed Features: Fractional operator learning, real-time biomarker detection

๐Ÿ“Š Statistical Analysis

  • Bootstrap confidence intervals
  • Theoretical confidence intervals
  • Uncertainty quantification
  • Comprehensive error metrics (bias, MAE, RMSE)
  • Cross-validation and model validation

๐Ÿ† Comprehensive Benchmarking

  • Classical vs ML Comparison: Direct performance comparison between methods
  • Real Benchmark Results: Actual performance data with CSV exports
  • Visualization System: Publication-ready plots and analysis
  • Performance Metrics: MAE, RMSE, correlation, computation time, success rate
  • Method Rankings: Clear performance and speed rankings

โšก Performance Optimization

  • JAX GPU acceleration
  • Numba CPU optimization
  • Intelligent backend selection
  • Lazy imports for efficiency
  • ML model caching and fast inference

๐Ÿ“– Documentation

๐ŸŽฏ Use Cases

BCI/Real-time Applications

python scripts/run_benchmark.py --success-weight 0.4 --accuracy-weight 0.2 --speed-weight 0.3 --robustness-weight 0.1

Research Applications

python scripts/run_benchmark.py --success-weight 0.2 --accuracy-weight 0.4 --speed-weight 0.1 --robustness-weight 0.3

Biomedical Scenarios

python scripts/run_benchmark.py --biomedical-scenarios eeg_rest,ecg_normal --contaminations none,noise,electrode_pop

Neurological Conditions

python scripts/run_benchmark.py --biomedical-scenarios eeg_parkinsonian,eeg_epileptic --contaminations heavy_tail,neural_avalanche

๐Ÿงช Examples and Demos

Classical Methods

# Run biomedical scenarios demonstration
python scripts/biomedical_scenarios_demo.py

# Run neurological conditions demonstration
python scripts/neurological_conditions_demo.py

# Run NumPyro integration demonstration
python scripts/numpyro_integration_demo.py

# Run application scoring demonstration
python scripts/application_scoring_demo.py

Machine Learning Methods

# Run ML baselines demonstration
python scripts/ml_baselines_demo.py

# Run pretrained models demonstration
python scripts/pretrained_models_demo.py

# Run comprehensive benchmark demonstration
python scripts/comprehensive_benchmark_demo.py

Benchmark Results

# View actual benchmark results
ls results/comprehensive_benchmark/
# - benchmark_results.csv (detailed results)
# - performance_metrics.csv (summary metrics)
# - comprehensive_benchmark_visualization.png
# - detailed_performance_analysis.png

๐Ÿงช Testing

# Run all tests
python -m pytest tests/ -v

# Run specific test categories
python -m pytest tests/test_accuracy.py -v
python -m pytest tests/test_backends.py -v
python -m pytest tests/test_registry.py -v

๐Ÿ“Š Project Structure

neurological_lrd_analysis/
โ”œโ”€โ”€ neurological_lrd_analysis/     # Main package directory
โ”‚   โ”œโ”€โ”€ biomedical_hurst_factory.py    # Main library file
โ”‚   โ”œโ”€โ”€ benchmark_core/                # Core benchmarking functionality
โ”‚   โ”œโ”€โ”€ benchmark_backends/            # Backend selection and optimization
โ”‚   โ”œโ”€โ”€ benchmark_registry/            # Estimator registry system
โ”‚   โ””โ”€โ”€ ml_baselines/                  # Machine learning baselines
โ”‚       โ”œโ”€โ”€ feature_extraction.py       # 74+ feature extraction
โ”‚       โ”œโ”€โ”€ ml_estimators.py          # ML model implementations
โ”‚       โ”œโ”€โ”€ hyperparameter_optimization.py  # Optuna integration
โ”‚       โ”œโ”€โ”€ pretrained_models.py       # Model management system
โ”‚       โ”œโ”€โ”€ inference.py              # Fast inference system
โ”‚       โ””โ”€โ”€ benchmark_comparison.py   # Classical vs ML comparison
โ”œโ”€โ”€ docs/                         # Documentation
โ”œโ”€โ”€ notebooks/                    # Interactive Jupyter tutorials
โ”‚   โ”œโ”€โ”€ 01_Biomedical_Time_Series_Analysis.ipynb
โ”‚   โ”œโ”€โ”€ 02_Hurst_Estimator_Creation_and_Validation.ipynb
โ”‚   โ”œโ”€โ”€ 03_Benchmarking_and_Leaderboards.ipynb
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ scripts/                      # Demo scripts and utilities
โ”‚   โ”œโ”€โ”€ ml_baselines_demo.py          # ML baselines demonstration
โ”‚   โ”œโ”€โ”€ pretrained_models_demo.py     # Pretrained models demo
โ”‚   โ””โ”€โ”€ comprehensive_benchmark_demo.py # Full benchmark demo
โ”œโ”€โ”€ tests/                        # Test suite
โ”‚   โ”œโ”€โ”€ test_ml_baselines.py          # ML baselines tests
โ”‚   โ”œโ”€โ”€ test_pretrained_models.py     # Pretrained models tests
โ”‚   โ””โ”€โ”€ test_benchmark_comparison.py  # Benchmark comparison tests
โ”œโ”€โ”€ examples/                     # Example notebooks and code
โ”œโ”€โ”€ results/                      # Benchmark results and outputs
โ”‚   โ””โ”€โ”€ comprehensive_benchmark/       # Actual benchmark results
โ”‚       โ”œโ”€โ”€ benchmark_results.csv      # Detailed results
โ”‚       โ”œโ”€โ”€ performance_metrics.csv    # Summary metrics
โ”‚       โ””โ”€โ”€ *.png                     # Visualizations
โ”œโ”€โ”€ pyproject.toml               # Package configuration
โ”œโ”€โ”€ setup.py                     # Setup script
โ””โ”€โ”€ requirements.txt             # Dependencies

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with JAX for GPU acceleration and physics-informed learning
  • Uses NumPyro for Bayesian inference in fractional operators
  • Leverages PyWavelets for wavelet-based fractional analysis
  • Inspired by research in physics-informed machine learning and memory-driven neurological signal processing

๐Ÿ“š Citation

If you use this library in your research, please cite:

@software{neurological_lrd_analysis,
  title={Neurological LRD Analysis: A Comprehensive Library for Physics-Informed Fractional Operator Learning and Real-Time Neurological Biomarker Detection},
  author={Davian R. Chin},
  year={2025},
  institution={University of Reading, UK},
  email={d.r.chin@pgr.reading.ac.uk},
  orcid={https://orcid.org/0009-0003-9434-3919},
  note={PhD Research in Biomedical Engineering: A Framework for Memory-Driven EEG Analysis},
  url={https://github.com/dave2k77/neurological_lrd_analysis}
}

๐Ÿ“ฆ Releases and Versioning

This project follows Semantic Versioning and uses GitHub Actions for automated releases to PyPI.

Creating a New Release

  1. Bump version: python scripts/bump_version.py 0.4.1
  2. Commit changes: git add . && git commit -m "Bump version to 0.4.1"
  3. Create tag: git tag v0.4.1
  4. Push to GitHub: git push origin main --tags
  5. GitHub Actions will automatically:
    • Run tests
    • Build the package
    • Publish to PyPI
    • Create a GitHub release

Development Releases

For testing, you can publish to TestPyPI:

# Push to develop branch to trigger TestPyPI publishing
git checkout develop
git push origin develop

Installation Options

  • Stable releases: pip install neurological-lrd-analysis
  • Development versions: pip install git+https://github.com/dave2k77/neurological_lrd_analysis.git
  • Test versions: pip install --index-url https://test.pypi.org/simple/ neurological-lrd-analysis

๐Ÿ”— Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neurological_lrd_analysis-0.4.2.tar.gz (685.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neurological_lrd_analysis-0.4.2-py3-none-any.whl (86.1 kB view details)

Uploaded Python 3

File details

Details for the file neurological_lrd_analysis-0.4.2.tar.gz.

File metadata

File hashes

Hashes for neurological_lrd_analysis-0.4.2.tar.gz
Algorithm Hash digest
SHA256 1085d98ba7c5fc2e65a36823704408cdd63fefcc474ad03bf2cc25ea316bfc28
MD5 3309513055449a4abe0fab976958c57e
BLAKE2b-256 60f243ef5d3e8b4bf20a4f00def0df0cc8c2cfcf8fec880f5fa5c3ac82537cd8

See more details on using hashes here.

File details

Details for the file neurological_lrd_analysis-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for neurological_lrd_analysis-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb26c800260f5c01ad399b6b6ceec890fbe8fbf2ed217c562b7ccd5b425b3426
MD5 bc86295631799d85b5527fa65256d651
BLAKE2b-256 43e5612503da72ae95b03e550b089bd4fd9a886d5b3076f1141474dfb3f7e326

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page