Git Product home page Git Product logo

gadgetron-starter's Introduction

Gadgetron Image Reconstruction Framework

The Gadgetron is an open source project for medical image reconstruction. If you find the Gadgetron useful in your research, please cite this paper:

Hansen MS, Sørensen TS. Gadgetron: An Open Source Framework for Medical Image Reconstruction. Magn Reson Med. 2013 Jun;69(6):1768-76.

Documentation for the project is available at https://gadgetron.readthedocs.io

License

The Gadgetron is available under a modified MIT license. Please read LICENSE file for licensing details.

gadgetron-starter's People

Contributors

andrew-dupuis avatar hansenms avatar rbold avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

rbold pdaude

gadgetron-starter's Issues

Resolve "bind: Address already in use" when debugging within devcontainer

When using VSCode Devcontainers as a development and debugging environment, there is currently an issue with running Gadgetron on the default port due to an address binding collision. To reproduce, start the devcontainer via "F1->Reopen in container", then press F5 to build and start the gadgetron:

06-07 14:07:19.999 DEBUG [gadgetron_paths.cpp:117] Executable path: "/opt/conda/envs/gadgetron/bin/gadgetron"
06-07 14:07:19.999 DEBUG [gadgetron_paths.cpp:123] Default Gadgetron home: "/opt/conda/envs/gadgetron"
06-07 14:07:19.999 WARNING [initialization.cpp:38] Environment variable 'OMP_WAIT_POLICY' not set to 'PASSIVE'.
06-07 14:07:19.999 WARNING [initialization.cpp:39] Gadgetron may experience serious performance issues under heavy load (multiple simultaneous reconstructions, etc.)
06-07 14:07:19.999 INFO [main.cpp:90] Gadgetron 4.4.7 [a0318d1349dce1b9799cb9f6b4486c6cfc5e0c7f]
06-07 14:07:20.000 DEBUG [storage.cpp:68] Found storage server: /opt/conda/envs/gadgetron/bin/mrd-storage-server
06-07 14:07:20.000 INFO [storage.cpp:69] Starting storage server on port 9112
06-07 14:07:20.001 INFO [storage.cpp:28] Verifying connectivity to storage server...
{"level":"info","time":"2023-06-07T14:07:20.098Z","message":"Listening on port 9112"}
{"level":"info","requestId":"e1eb6eaf-2206-4122-affd-b503fec7b3e4","status":200,"method":"GET","path":"/healthcheck","query":"","latencyMs":0.441,"time":"2023-06-07T14:07:20.202Z","message":"request completed"}
06-07 14:07:20.202 INFO [storage.cpp:33] Received successful response from storage server.
06-07 14:07:20.202 INFO [main.cpp:99] Running on port 9002
06-07 14:07:20.202 INFO [Server.cpp:25] Gadgetron home directory: "/opt/conda/envs/gadgetron"
06-07 14:07:20.202 INFO [Server.cpp:26] Gadgetron working directory: "/tmp/gadgetron/"
06-07 14:07:20.203 ERROR [main.cpp:136] bind: Address already in use [system:98 at /opt/conda/envs/gadgetron/include/boost/asio/detail/reactive_socket_service.hpp:161 in function 'bind']

Add code coverage measurement

Adding a code coverage measurement and associated indicator on the front readme page based on test cases would allow at-a-glance views of whether the gadgets within the starter project (or derivatives) are fully tested.

Dev Container Build Failure

OS: PopOS 22.04, NVIDIA GPU drivers. Cloned repository, reopened in dev container. Container construction failed with below error.

#0 12.91 Setting up python3.8-minimal (3.8.10-0ubuntu1~20.04.8) ...

#0 13.00 Traceback (most recent call last):

#0 13.00   File "/usr/lib/python3.8/py_compile.py", line 215, in <module>

#0 13.00     sys.exit(main())
[2023-06-10T01:37:46.897Z] 
#0 13.00   File "/usr/lib/python3.8/py_compile.py", line 207, in main

#0 13.00     compile(filename, doraise=True)

#0 13.00   File "/usr/lib/python3.8/py_compile.py", line 172, in compile

#0 13.00     importlib._bootstrap_external._write_atomic(cfile, bytecode, mode)

#0 13.00   File "<frozen importlib._bootstrap_external>", line 186, in _write_atomic

#0 13.00 PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.8/__pycache__/__future__.cpython-38.pyc.139716894588576'

#0 13.00 dpkg: error processing package python3.8-minimal (--configure):

#0 13.00  installed python3.8-minimal package post-installation script subprocess returned error exit status 1

#0 13.01 Errors were encountered while processing:

#0 13.01  python3.8-minimal

#0 13.02 E: Sub-process /usr/bin/dpkg returned an error code (1)
------
[2023-06-10T01:37:46.897Z] ERROR: failed to solve: executor failed running [/bin/sh -c cd /tmp/build-features/common_1 && chmod +x ./install.sh && ./install.sh]: exit code: 100
[2023-06-10T01:37:46.901Z] Stop (14193 ms): Run: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /tmp/vsch-calderds/container-features/0.245.2-1686361052630/Dockerfile-with-features -t vsc-gadgetron-starter-056c3c374dfa0779d7e7bb885ddee9a2 --target dev_containers_target_stage --cache-from ghcr.io/andrew-dupuis/gadgetron-starter/gadgetron_ubuntu_dev_cuda_oot:latest --build-context dev_containers_feature_content_source=/tmp/vsch-calderds/container-features/0.245.2-1686361052630 --build-arg _DEV_CONTAINERS_BASE_IMAGE=gadgetron_dev_cuda_oot --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp /home/calderds/Projects/Coding/gadgetron-starter
[2023-06-10T01:37:46.903Z] Error: Command failed: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /tmp/vsch-calderds/container-features/0.245.2-1686361052630/Dockerfile-with-features -t vsc-gadgetron-starter-056c3c374dfa0779d7e7bb885ddee9a2 --target dev_containers_target_stage --cache-from ghcr.io/andrew-dupuis/gadgetron-starter/gadgetron_ubuntu_dev_cuda_oot:latest --build-context dev_containers_feature_content_source=/tmp/vsch-calderds/container-features/0.245.2-1686361052630 --build-arg _DEV_CONTAINERS_BASE_IMAGE=gadgetron_dev_cuda_oot --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp /home/calderds/Projects/Coding/gadgetron-starter
[2023-06-10T01:37:46.903Z]     at HS (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:256:1490)
[2023-06-10T01:37:46.903Z]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2023-06-10T01:37:46.903Z]     at async Cu (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:255:2801)
[2023-06-10T01:37:46.903Z]     at async Zw (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:255:1779)
[2023-06-10T01:37:46.903Z]     at async KS (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:261:2006)
[2023-06-10T01:37:46.903Z]     at async co (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:261:3110)
[2023-06-10T01:37:46.903Z]     at async LP (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:360:9352)
[2023-06-10T01:37:46.903Z]     at async DP (/home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js:360:9108)
[2023-06-10T01:37:46.907Z] Stop (14500 ms): Run: /usr/share/code/code /home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /home/calderds/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --workspace-folder /home/calderds/Projects/Coding/gadgetron-starter --workspace-mount-consistency cached --id-label devcontainer.local_folder=/home/calderds/Projects/Coding/gadgetron-starter --log-level debug --log-format json --config /home/calderds/Projects/Coding/gadgetron-starter/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2023-06-10T01:37:46.907Z] Exit code 1
[2023-06-10T01:37:46.911Z] Command failed: /usr/share/code/code /home/calderds/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /home/calderds/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --workspace-folder /home/calderds/Projects/Coding/gadgetron-starter --workspace-mount-consistency cached --id-label devcontainer.local_folder=/home/calderds/Projects/Coding/gadgetron-starter --log-level debug --log-format json --config /home/calderds/Projects/Coding/gadgetron-starter/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2023-06-10T01:37:46.911Z] Exit code 1

Fix MKL path issues building with cmake in OOT Conda Environment

There is an issue building within the OOT environment due to cmake looking for MKL within a specific static path. There are four lines in the dockerfile that address this in a very friable way currently, but we should find a real solution within the cmakelists file itself that avoids the following dir crations and symlinks:

RUN sudo mkdir /opt/intel &&\
    sudo mkdir /opt/intel/mkl &&\
    sudo mkdir /opt/intel/mkl/lib &&\
    sudo mkdir /opt/intel/mkl/lib/intel64 &&\
    sudo ln -s /opt/conda/envs/gadgetron/lib/libmkl_intel_lp64.so /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so && \
    sudo ln -s /opt/conda/envs/gadgetron/lib/libmkl_gnu_thread.so /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.so && \
    sudo ln -s /opt/conda/envs/gadgetron/lib/libmkl_core.so /opt/intel/mkl/lib/intel64/libmkl_core.so

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.