SIEMENSFile
SIEMENSFile es un paquete para previsualizar, leer y procesar archivos .dat de Siemens y realizar reconstrucciones de imágenes de resonancia magnética (MRI). Extrae rawdata y metadata y reconstruye imágenes mediante IFFT centrada. La reconstrucción cartesiana soporta adquisiciones 2D multi-slice, 2D multi-stack (p. ej. localizer sag+cor+tra) y 3D (p. ej. MPRAGE), con manejo de Partial Fourier. La reconstrucción no cartesiana (radial/espiral con NUFFT) está planificada.
Instalación
Opción recomendada con conda:
conda create -n siemensfile python=3.12 -y --override-channels -c conda-forge
conda activate siemensfile
pip install -r requirements.txt
pip install .
O desde PyPI (versión básica):
pip install siemensfile
Uso
from siemensfile import siemensfile
[metadata, kspace] = siemensfile(r'tests/datatest/siemens_file_test_cartesian_sample.dat', reconstruccion="Cartesiana")
kspace.shape # [line, channel, column, slice]
reconstruccion="NoCartesiana" aún no está implementada (lanza NotImplementedError).
Resultados
Los resultados se guardan en una carpeta output junto al archivo .dat (se limpia en cada ejecución):
{nombre}_kspace.png— vista del espacio k (escala logarítmica).{nombre}_reconstruction.png— mosaico con la reconstrucción de todos los slices.{nombre}_slice_NNN.dcm— reconstrucción en DICOM MR (MRImageStorage, un archivo por slice).{nombre}_metadata.json— metadatos del protocolo (headers twix aplanados).
Qué maneja la reconstrucción cartesiana
- 3D (particiones): las particiones (
cPar) se tratan como slices individuales; cada volumen 3D produce N imágenes axiales (o de la orientación del slab). - Multi-stack: stacks con contadores de slice repetidos se separan por posición espacial y contadores del header.
- Partial Fourier 6/8 (banda inferior): las líneas se mapean a la matriz completa usando
CenterLin; las líneas no adquiridas quedan en cero (reconstrucción zero-filled). - Partial Fourier 1/2 (entrelazado): las líneas impares se interpolan desde las pares para eliminar el fantasma de Nyquist.
- Centrado de lectura: el eco (DC) se centra según
CenterColmediante roll circular. - Combinación de canales: RMS (root-sum-of-squares) sobre los coils.
Limitaciones conocidas (ver documentación): sin corrección de intensidad por coil (las imágenes sum-of-squares muestran señal superficial más brillante que la referencia Siemens), sin homodyne para PF 6/8, sin soporte GRAPPA/R o no cartesiano.
Tests
pytest tests/
Créditos y reconocimientos
Este proyecto utiliza como base el paquete twixtools de Philipp Ehses (incluido en src/twixtools), que provee la lectura de archivos .dat de Siemens. Este proyecto expande sus capacidades con reconstrucciones de imágenes.
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 siemensfile-0.1.32.tar.gz.
File metadata
- Download URL: siemensfile-0.1.32.tar.gz
- Upload date:
- Size: 49.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12fcb98a35a6bb48b98bb4bf118610ec5e64d7ea54bb5415869d074927d578be
|
|
| MD5 |
5cf0ad46c1618460b66a311ab59e2c62
|
|
| BLAKE2b-256 |
1f3c612a24ec470ce0c9c6be67026a05f68f359f5a2ca281a06eef0d9014da6d
|
File details
Details for the file siemensfile-0.1.32-py3-none-any.whl.
File metadata
- Download URL: siemensfile-0.1.32-py3-none-any.whl
- Upload date:
- Size: 51.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b7cea15853b6804d90ddfd964ddbf09b24cd5d7af2e8cda6d7e6b0ee85a9379
|
|
| MD5 |
bef8c52780e1a60b8a9ffeadddb4b45f
|
|
| BLAKE2b-256 |
3fdf1a9e3ace32be78019837fa41826f6c96962ac7cec6d47204f3079245f16d
|