Skip to main content

Python twix file reader

Project description

pyMapVBVD

PyPI PyPI - Python Version DOI

Python port of the Matlab mapVBVD tool for reading Siemens raw data 'twix' (.dat) files.

Installation

conda install -c conda-forge pymapvbvd or pip install pymapvbvd

Use

I have attempted to replicate the syntax of the original matlab code, but there are a few differences due to differing variable types.

This package contains a demo Jupyter notebook 'Demo.ipynb' which can be run on the demo data found in tests/test_data. There is unsuppressed water SVS MRS, from both a 7T VB scanner and a VE Prisma. There is also imaging data (3D GRE and EPI) from the ISMRMRD test dataset.

Run using the following:

import mapvbvd
twixObj = mapvbvd.mapVBVD(filename)

For multi raid files (VD+) twixObj is a list, for single files it is a AttrDict containing data with keys relating to the MDH flags and a header object. The MDH flags present can be retrieved as a list using twixObj.MDH_flags(), whilst the header is found at twixObj.hdr.

Data

Data can be accessed using e.g. for image MDH

data = twixObj.image['']
data = twixObj.image[:,:,:]
data = twixObj.image[0::2,0,:]

To remove singleton dimensions twixObj.image.squeeze = True.

To retrieve the data in an unsorted format (i.e. Col,Cha,NAcq) use twixObj.image.unsorted().

Headers

Header information is contained in a dict twixObj.hdr twixObj.hdr.keys() provides a list of the data containers. Access them manually using e.g. twixObj.hdr['MeasYaps'] or twixObj.hdr.MeasYaps. These objects are in turn a final level of dictionaries. The actual data values can be accessed either manually using tuples of key values e.g.

twixObj.hdr.MeasYaps[('sTXSPEC','asNucleusInfo','0','tNucleus')]

or you can search for keys and values by custom methods.

matching_keys = twixObj.search_header_for_keys(('sTXSPEC', 'asNucleusInfo'))
key_value = twixObj.search_header_for_val('MeasYaps',('sTXSPEC', 'asNucleusInfo', '0', 'tNucleus'))

search_header_for_keys takes the keyword argument regex (default True) to either search via case insensitive regular expressions or via exact matches only. Specify top_lvl to restrict to just some parameter sets.

Other info

Thanks to Mo Shahdloo the latest version now implements OS removal, ramp sample regridding, averaging and line reflection.

Set the appropriate flags to enable these features

twixObj.image.flagRemoveOS = True
twixObj.image.flagRampSampRegrid = True
twixObj.refscanPC.flagIgnoreSeg = True
twixObj.refscanPC.flagDoAverage = True

Some of the auxiliary parts of mapVBVD remain unimplemented. Please feel free to contribute these parts! As this is a port the code is intended to resemble the original matlab code, it is not "good" python code.

Credit where credit is due

This code is a port of Philipp Ehses' original Matlab code. I am incredibly grateful to him for releasing this code to the MR community. There are a number of other names in the original code comments and log, these are: Felix Breuer, Wolf Blecher, Stephen Yutzy, Zhitao Li, Michael VÃlker, Jonas Bause and Chris Mirke.

More recent thanks to Mo Shahdloo and Aaron Hess for edits, and Alex Craven for performance enhancements.

This port is released under the MIT licence and no credit is sought for its use.

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

pymapvbvd-0.6.1.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

pyMapVBVD-0.6.1-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

Details for the file pymapvbvd-0.6.1.tar.gz.

File metadata

  • Download URL: pymapvbvd-0.6.1.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pymapvbvd-0.6.1.tar.gz
Algorithm Hash digest
SHA256 1238259d9d979f35edd4ff6667467d48f4246aa98a50e17b3c4c97b2c105fbb5
MD5 883142a780a59555cdfb642feebc09f6
BLAKE2b-256 06ca21db8a0269881444a69f9ccf9aa4a0415c50d456db914d5d0a851f5a809b

See more details on using hashes here.

File details

Details for the file pyMapVBVD-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: pyMapVBVD-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyMapVBVD-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1b988dc84bc70408ba9f6eb5b73b76b88de5f7faeb6bd1726fa9859f0a59c344
MD5 491f4364d72ebac82836fafa30a39f0a
BLAKE2b-256 4a524f641bcb8020a2df49a02fbf36e9286102aab8f245c4580ce8a579c4e9f0

See more details on using hashes here.

Supported by

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