Gadgeton examples
Gadgetron is an open source project for medical image reconstruction and can be used with Tyger. These examples assume that you have ismrmrd installed.
Basic example
Generate some test data with:
bash
ismrmrd_generate_cartesian_shepp_loganThis will generate a testdata.h5 file. You can then run a reconstruction with:
bash
ismrmrd_hdf5_to_stream -i testdata.h5 --use-stdout \
| tyger run exec -f basic_gadgetron.yml \
| ismrmrd_stream_to_hdf5 --use-stdin -o out_basic.h5basic_gadgetron.yml looks like this:
yaml
job:
codespec:
image: ghcr.io/gadgetron/gadgetron/gadgetron_ubuntu_rt_nocuda:latest
buffers:
inputs:
- input
outputs:
- output
args:
- "-c"
- "default.xml"
- "--from_stream"
- "-i"
- "$(INPUT_PIPE)"
- "-o"
- "$(OUTPUT_PIPE)"
resources:
requests:
cpu: 1Distributed reconstruction
Next is an example that uses a distributed run. First, download the raw data:
bash
curl -OL https://aka.ms/tyger/docs/samples/binning.h5Then run:
bash
ismrmrd_hdf5_to_stream -i binning.h5 --use-stdout \
| tyger run exec -f distributed_gadgetron.yml --logs \
| ismrmrd_stream_to_hdf5 --use-stdin -o out_binning.h5distributed_gadgetron.yml looks like this:
yaml
job:
codespec:
image: ghcr.io/gadgetron/gadgetron/gadgetron_ubuntu_rt_nocuda:latest
buffers:
inputs:
- input
outputs:
- output
args:
- "-c"
- "CMR_2DT_RTCine_KspaceBinning_Cloud.xml"
- "--from_stream"
- "-i"
- "$(INPUT_PIPE)"
- "-o"
- "$(OUTPUT_PIPE)"
env:
GADGETRON_REMOTE_WORKER_COMMAND: printenv TYGER_GADGETRON_WORKER_ENDPOINT_ADDRESSES
resources:
requests:
cpu: 1
worker:
codespec:
image: ghcr.io/gadgetron/gadgetron/gadgetron_ubuntu_rt_nocuda:latest
args: []
endpoints:
gadgetron: 9002
resources:
requests:
cpu: 3000m
memory: 4G
limits:
memory: 4G
replicas: 2This run is made up of a job with two worker replicas.