# SIRF-SIMIND-Connection
[](https://github.com/samdporter/SIRF-SIMIND-Connection/actions)
[](https://sirf-simind-connection.readthedocs.io/en/latest/?badge=latest)
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.python.org/downloads/)
A Python wrapper for SIRF and SIMIND integration for SPECT imaging.
## Quick Links
- [Full Documentation](https://SIRF-SIMIND-Connection.readthedocs.io/)
- [Installation](https://SIRF-SIMIND-Connection.readthedocs.io/en/latest/installation.html)
## Key Features
- Monte Carlo SPECT Simulation
- Dual Scoring Routines (SCATTWIN/PENETRATE)
- DICOM to STIR Conversion
- **Advanced Schneider2000 Density Conversion** - Clinically validated HU-to-density mapping with 44 tissue segments
## Installation
```bash
pip install sirf-simind-connection
```
## Quick Start
```python
from sirf_simind_connection import SimindSimulator, SimulationConfig
from sirf_simind_connection.configs import get
from sirf_simind_connection.utils.stir_utils import create_simple_phantom, create_attenuation_map
# Create phantom and attenuation map
phantom = create_simple_phantom()
mu_map = create_attenuation_map(phantom)
# Load pre-configured scanner settings
config = SimulationConfig(get("AnyScan.yaml"))
simulator = SimindSimulator(config, output_dir='output')
# Set inputs and run
simulator.set_source(phantom)
simulator.set_mu_map(mu_map)
simulator.set_energy_windows([126], [154], [0]) # Tc-99m ± 10%
simulator.run_simulation()
```
### Advanced Density Conversion
```python
from sirf_simind_connection.converters.attenuation import hu_to_density_schneider
import numpy as np
# Convert HU image to densities using Schneider2000 model
hu_image = np.array([[-1000, 0, 500], [800, 1200, 2000]])
density_map = hu_to_density_schneider(hu_image) # 44-segment clinical model
```
## Contributing
Please see our [Contributing Guide](CONTRIBUTING.md).
## License
Apache License 2.0
Raw data
{
"_id": null,
"home_page": null,
"name": "sirf-simind-connection",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "Sam Porter <sam.porter.18@ucl.ac.uk>",
"keywords": "SPECT, Monte Carlo, medical imaging, SIMIND, SIRF, STIR",
"author": null,
"author_email": "Sam Porter <sam.porter.18@ucl.ac.uk>, Rebecca Gillen <rebecca.gillen.18@ucl.ac.uk>, \"Efstathios (Stahis) Varzakis\" <efstathios.varzakis.22@ucl.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/cc/0e/c0e3967d79109a0a60bb67d89b8912619fb179b5c0d1c6efbd051420fc84/sirf_simind_connection-0.2.2.tar.gz",
"platform": null,
"description": "# SIRF-SIMIND-Connection\n\n[](https://github.com/samdporter/SIRF-SIMIND-Connection/actions)\n[](https://sirf-simind-connection.readthedocs.io/en/latest/?badge=latest)\n[](https://opensource.org/licenses/Apache-2.0)\n[](https://www.python.org/downloads/)\n\nA Python wrapper for SIRF and SIMIND integration for SPECT imaging.\n\n## Quick Links\n- [Full Documentation](https://SIRF-SIMIND-Connection.readthedocs.io/)\n- [Installation](https://SIRF-SIMIND-Connection.readthedocs.io/en/latest/installation.html)\n\n## Key Features\n- Monte Carlo SPECT Simulation\n- Dual Scoring Routines (SCATTWIN/PENETRATE) \n- DICOM to STIR Conversion\n- **Advanced Schneider2000 Density Conversion** - Clinically validated HU-to-density mapping with 44 tissue segments\n\n## Installation\n\n```bash\npip install sirf-simind-connection\n```\n\n## Quick Start\n```python\nfrom sirf_simind_connection import SimindSimulator, SimulationConfig\nfrom sirf_simind_connection.configs import get\nfrom sirf_simind_connection.utils.stir_utils import create_simple_phantom, create_attenuation_map\n\n# Create phantom and attenuation map\nphantom = create_simple_phantom()\nmu_map = create_attenuation_map(phantom)\n\n# Load pre-configured scanner settings\nconfig = SimulationConfig(get(\"AnyScan.yaml\"))\nsimulator = SimindSimulator(config, output_dir='output')\n\n# Set inputs and run\nsimulator.set_source(phantom)\nsimulator.set_mu_map(mu_map)\nsimulator.set_energy_windows([126], [154], [0]) # Tc-99m \u00b1 10%\nsimulator.run_simulation()\n```\n\n### Advanced Density Conversion\n\n```python\nfrom sirf_simind_connection.converters.attenuation import hu_to_density_schneider\nimport numpy as np\n\n# Convert HU image to densities using Schneider2000 model\nhu_image = np.array([[-1000, 0, 500], [800, 1200, 2000]])\ndensity_map = hu_to_density_schneider(hu_image) # 44-segment clinical model\n```\n\n## Contributing\nPlease see our [Contributing Guide](CONTRIBUTING.md).\n\n## License\nApache License 2.0\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A wrapper for SIRF and SIMIND for Monte Carlo SPECT simulations",
"version": "0.2.2",
"project_urls": {
"Documentation": "https://sirf-simind-connection.readthedocs.io/",
"Homepage": "https://github.com/samdporter/SIRF-SIMIND-Connection",
"Issues": "https://github.com/samdporter/SIRF-SIMIND-Connection/issues",
"Repository": "https://github.com/samdporter/SIRF-SIMIND-Connection"
},
"split_keywords": [
"spect",
" monte carlo",
" medical imaging",
" simind",
" sirf",
" stir"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a73069360afadcfc7df48e4ac9874afa051f346974fca39e1cfc670e0d486702",
"md5": "dd35dd78962450cf497bd02a889c51a0",
"sha256": "02b49491c0c335d7cee9dca2bb57846ad58ed1eedc4e78826ef7236854cad476"
},
"downloads": -1,
"filename": "sirf_simind_connection-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dd35dd78962450cf497bd02a889c51a0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 63282,
"upload_time": "2025-08-06T12:25:14",
"upload_time_iso_8601": "2025-08-06T12:25:14.484231Z",
"url": "https://files.pythonhosted.org/packages/a7/30/69360afadcfc7df48e4ac9874afa051f346974fca39e1cfc670e0d486702/sirf_simind_connection-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc0ec0e3967d79109a0a60bb67d89b8912619fb179b5c0d1c6efbd051420fc84",
"md5": "bcc11a5c80de19d7e946a66de203ed87",
"sha256": "57062490e7323fba073601edf32c4ff8af40aef9ba86aaf973b057d4be154502"
},
"downloads": -1,
"filename": "sirf_simind_connection-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "bcc11a5c80de19d7e946a66de203ed87",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 88626,
"upload_time": "2025-08-06T12:25:15",
"upload_time_iso_8601": "2025-08-06T12:25:15.429617Z",
"url": "https://files.pythonhosted.org/packages/cc/0e/c0e3967d79109a0a60bb67d89b8912619fb179b5c0d1c6efbd051420fc84/sirf_simind_connection-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-06 12:25:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "samdporter",
"github_project": "SIRF-SIMIND-Connection",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": [
[
">=",
"1.20.0"
]
]
},
{
"name": "pydicom",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
">=",
"5.4.0"
]
]
}
],
"lcname": "sirf-simind-connection"
}