AcoustoOpticTomography (AOT_biomaps)
AOT_biomaps is an advanced Python library for Acousto-Optic Tomography (AOT). It provides comprehensive tools for image reconstruction, acoustic simulation, optical modeling, and 2D/3D data processing.
📌 About the Project
This library was developed to meet the needs of the biomedical imaging research community, particularly for Acousto-Optic Tomography applications. It combines advanced reconstruction algorithms with optimized CPU and GPU implementations.
Key Features
- ✅ Tomographic Reconstruction: MLEM, PDHG, LS, DEPIERRO, MAPEM, LBFGS
- ✅ Multi-Device Support: CPU (NumPy) and GPU (CuPy) with automatic fallback
- ✅ Sparse Matrices: Optimized CSR and SELL-C-sigma implementations
- ✅ Acoustic Simulation: Plane, focused, irregular waves
- ✅ Optical Modeling: Lasers, absorbers, heterogeneous media
- ✅ Signal Processing: Filtering, backprojection, Radon transform
- ✅ Visualization: 2D/3D visualization tools (optional with matplotlib)
Modular Architecture
AOT_biomaps/
├── AOT_Acoustic/ # Acoustic simulation
├── AOT_Experiment/ # Experiment management
├── AOT_Medium/ # Medium modeling
├── AOT_Optic/ # Optical modeling
├── AOT_Recon/ # Reconstruction algorithms
│ ├── AOT_Optimizers/ # MLEM, PDHG, LS, etc.
│ ├── AOT_PotentialFunctions/ # Potential functions
│ └── AOT_SparseSMatrix/ # Sparse matrices (CSR, SELL)
└── Config.py # Global configuration
🚀 Installation
See INSTALLATION.md for detailed instructions.
Quick Installation
# Clone the repository
git clone https://github.com/LucasDuclos/AcoustoOpticTomography.git
cd AcoustoOpticTomography
# Install in development mode
pip install -e .
### GPU Support (Included by Default)
By default, **CuPy** is automatically included if CUDA is detected on your system. The installer will detect your CUDA version and install the appropriate CuPy package.
To manually specify your CUDA version:
```bash
# For CUDA 11.x
pip install cupy-cuda11x
# For CUDA 12.x
pip install cupy-cuda12x
# For CUDA 13.x
pip install cupy-cuda13x
# For CUDA 14.x
pip install cupy-cuda14x
CPU-only installation:
pip install aot-biomaps --cpu
# or
AOT_BIOMAPS_CPU_ONLY=true pip install aot-biomaps
📖 Documentation
- 📥 Installation - Complete installation guide
- 🎯 Usage - Examples and tutorials
- 🔧 API Reference - Technical documentation
- 🏗️ Architecture - Library design
- 🤝 Contributing - How to contribute
- 📜 Changelog - Release history
🎯 Quick Start Example
import numpy as np
from AOT_biomaps import Tomography, AlgebraicRecon
from AOT_biomaps.AOT_Recon.ReconEnums import ReconType
# Create a tomography experiment
experiment = Tomography(
optic_image_path="path/to/optic_image.npy",
acoustic_fields_path="path/to/acoustic_fields.npy"
)
# Setup reconstruction
recon = AlgebraicRecon(
experiment=experiment,
reconType=ReconType.Algebraic,
optimizerType="MLEM",
numIterations=100
)
# Run reconstruction
recon.run(withTumor=True)
# Save results
recon.save(withTumor=True, saveDir="results/")
🔧 Dependencies
Core Dependencies (Required)
- Python ≥ 3.8
- NumPy ≥ 1.20
Optional Dependencies
- CuPy ≥ 10.0 - For GPU acceleration
- Matplotlib ≥ 3.0 - For visualization
- tqdm ≥ 4.0 - For progress bars
- SciPy ≥ 1.7 - For signal processing
- kWave - For acoustic simulation (optional)
Compatibility Matrix
| Feature | CPU (NumPy) | GPU (CuPy) |
|---|---|---|
| MLEM Reconstruction | ✅ | ✅ |
| PDHG Reconstruction | ✅ | ✅ |
| CSR Matrices | ✅ | ✅ |
| SELL Matrices | ✅ | ✅ |
| Visualization | ✅ | ✅ |
| Acoustic Simulation | ✅ | ⚠️ (kWave required) |
📊 Performance
Benchmark (on standard dataset)
| Algorithm | CPU (s) | GPU (s) | Speedup |
|---|---|---|---|
| MLEM | 45.2 | 2.1 | 21.5x |
| PDHG | 38.7 | 1.8 | 21.5x |
| LS | 22.4 | 1.2 | 18.7x |
Memory Usage
| Matrix | Format | Size (GB) |
|---|---|---|
| 100x100x100x50 | Dense | 19.1 |
| 100x100x100x50 | CSR | 0.8 |
| 100x100x100x50 | SELL | 0.6 |
🤝 Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
How to Contribute
- Fork the project
- Create a branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📜 License
Distributed under the MIT License. See LICENSE for more information.
🙏 Acknowledgments
- Biomedical Imaging Laboratory
- All contributors who participated in this project
Contact: For any questions or suggestions, feel free to open an issue or contact me directly.
Release files for aot-biomaps 2.9.918
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aot_biomaps-2.9.918.tar.gz | 145.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aot_biomaps-2.9.918-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 335.3 kB
Release files / aot_biomaps-2.9.918.tar.gz
| Download URL | aot_biomaps-2.9.918.tar.gz |
|---|---|
| Size | 145.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
231074ba33dc51661da0decd77be47361da213e62f6716afbe813d5069a15199
|
|
BLAKE2b-256 checksum How to use checksums |
3483c9b3c541fa3841505727de77e480cf76d66d34001d885abda024ab95de3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.13
|
Release files / aot_biomaps-2.9.918-py3-none-any.whl
| Download URL | aot_biomaps-2.9.918-py3-none-any.whl |
|---|---|
| Size | 190.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89627fb346cc3ee81fceacfee9b2f21fab154ad34251badbb4b2b11b38480ec5
|
|
BLAKE2b-256 checksum How to use checksums |
bbd0da1bf18d07bc984715b098a097cb4977cba98ec282d210b8621cf21b382c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.13
|