KomaMRI

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

https://github.com/juliahealth/komamri.jl

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, wiley.com
  • Committers with academic emails
    1 of 11 committers (9.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

cardiac diffusion diffusion-mri gpu-acceleration mri simulation

Keywords from Contributors

projections matrix-exponential numerics primitives meshing manifolds interactive pde interpretability particles
Last synced: 6 months ago · JSON representation

Repository

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

Basic Info
Statistics
  • Stars: 159
  • Watchers: 4
  • Forks: 26
  • Open Issues: 88
  • Releases: 29
Topics
cardiac diffusion diffusion-mri gpu-acceleration mri simulation
Created almost 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation Codeowners

README.md

![][julia-110] [![][gh-actions-komamri]][gh-actions-url] [![][buildkite-badge]][buildkite-url] [![][codecov-komamri]][codecov-url] [![][total-downloads-komamri]][downloads-komamri-url] [![][docr-img]][docr-url] [![][docd-img]][docd-url] [![][paper-img]][paper-url] [![][OSI2-img]][OSI2-url]

KomaMRI.jl is a Julia package for highly efficient MRI simulations. KomaMRI was built from the ground up to be: easy to use, extensible, cross-platform, and powered by open-source community standards.

Features:
- Fast parallel simulations on CPU and GPU - Extensible, add your own features! - Supports community-standards [](## "Pulseq and ISMRMRD") - Interactive visualizations using PlotlyJS.jl - Cross-platform (Windows, Mac & Linux) - Friendly GUI (using web technologies) - Compatible with modern notebooks [](## "Pluto and Jupyter") - Flexible API for advanced users
| **Packages** | **Stable Version** | **Build Status** | **Code Coverage** | **Downloads** | |:------------------------------------------- |:---------------------------------------------|:--------------------------------------------|:--------------------------------------|:----------------------------------------------------| | [KomaMRI.jl](## "User Interface") | [![][komamri-version]][komamri-juliahub] | [![][gh-actions-komamri]][gh-actions-url] | [![][codecov-komamri]][codecov-url] | [![][downloads-komamri]][downloads-komamri-url] | | [KomaMRIBase.jl](## "Custom Types") | [![][komabase-version]][komabase-juliahub] | [![][gh-actions-komabase]][gh-actions-url] | [![][codecov-komabase]][codecov-url] | [![][downloads-komabase]][downloads-komabase-url] | | [KomaMRICore.jl](## "Simulation") | [![][komacore-version]][komacore-juliahub] | [![][gh-actions-komacore]][gh-actions-url] | [![][codecov-komacore]][codecov-url] | [![][downloads-komacore]][downloads-komacore-url] | | [KomaMRIFiles.jl](## "Input/Output") | [![][komafiles-version]][komafiles-juliahub] | [![][gh-actions-komafiles]][gh-actions-url] | [![][codecov-komafiles]][codecov-url] | [![][downloads-komafiles]][downloads-komafiles-url] | | [KomaMRIPlots.jl](## "Plots") | [![][komaplots-version]][komaplots-juliahub] | [![][gh-actions-komaplots]][gh-actions-url] | [![][codecov-komaplots]][codecov-url] | [![][downloads-komaplots]][downloads-komaplots-url] |

Table of Contents

News

☰ Roadmap v1.0: - [x] Phantom and Sequence data types, - [x] Spin precession in gradient-only blocks (simulation optimization), - [x] GPU acceleration using CUDA.jl, - [x] RF excitation, - [x] GPU accelaration of RF excitation, - [x] Scanner data-type: , etc., - [x] [Pulseq](https://github.com/imr-framework/pypulseq) IO, - [x] Signal "Raw Output" dictionary ([ISMRMRD](https://ismrmrd.github.io/)), - [x] [MRIReco.jl](https://magneticresonanceimaging.github.io/MRIReco.jl/latest/) for the reconstruciton, - [ ] Documentation, - [ ] [Auxiliary Pulseq functions](https://github.com/imr-framework/pypulseq/tree/master/pypulseq), - [ ] Coil sensitivities, - [ ] Cardiac phantoms and triggers. - [ ] decay, Next: - [ ] Diffusion models with Laplacian Eigen Functions, - [ ] Magnetic susceptibility, - [ ] Use [PackageCompiler.jl](https://julialang.github.io/PackageCompiler.jl/dev/apps.html) to build a ditributable core or app.

Installation

To install, just type ] add KomaMRI in the Julia REPL or copy-paste the following into the Julia REPL:

```julia pkg> add KomaMRI pkg> add CUDA # Optional: Install desired GPU backend (CUDA, AMDGPU, Metal, or oneAPI)

``` For more information about installation instructions, refer to the section Getting Started of the documentation.

First run

KomaMRI.jl features a convenient GUI with predefined simulation inputs (i.e. Sequence, Phantom, and Scanner). To launch the GUI, use the following command:

julia using KomaMRI using CUDA # Optional: Load GPU backend (default: CPU) KomaUI() Press the button that says "Simulate!" to do your first simulation :). Then, a notification will emerge telling you that the simulation was successful. In this notification, you can either select to (1) see the Raw Data or (2) to proceed with the reconstruction.

[!IMPORTANT] Starting from KomaMRI v0.9 we are using package extensions to deal with GPU dependencies, meaning that to run simulations on the GPU, installing (add CUDA/AMDGPU/Metal/oneAPI) and loading (using CUDA/AMDGPU/Metal/oneAPI) the desired backend will be necessary (see GPU Parallelization and Tested compatibility).

How to Contribute

KomaMRI exists thanks to all our contributors:

Want to be highlighted here? We welcome contributions from the community! If you're interested in contributing, please read "CONTRIBUTING" for details on how to get started.

How to Cite

If you use this package, please cite our paper.

Plain Text:

Castillo-Passi, C, Coronado, R, Varela-Mattatall, G, Alberola-Lpez, C, Botnar, R, Irarrazaval, P. KomaMRI.jl: An open-source framework for general MRI simulations with GPU acceleration. Magn Reson Med. 2023; 1- 14. doi: 10.1002/mrm.29635

BibTex: bibtex @article{https://doi.org/10.1002/mrm.29635, author = {Castillo-Passi, Carlos and Coronado, Ronal and Varela-Mattatall, Gabriel and Alberola-Lpez, Carlos and Botnar, Ren and Irarrazaval, Pablo}, title = {KomaMRI.jl: An open-source framework for general MRI simulations with GPU acceleration}, journal = {Magnetic Resonance in Medicine}, keywords = {Bloch equations, GPU, GUI, Julia, open source, simulation}, doi = {https://doi.org/10.1002/mrm.29635}, url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/mrm.29635}, eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/mrm.29635}, }

Tested compatibility

All parallel backends are tested on Linux (besides Apple silicon) using the latest stable release, Julia 1 (stable), and Julia 1.9 (compat).

| KomaMRICore | CPU | GPU (Nvidia) | GPU (AMD) | GPU (Apple) | GPU (Intel) | |:---------------------|:-----------------------------------:|:-----------------------------------:|:--------------------------------:|:----------------------------------:|:----------------------------------:| | Julia 1.10 | [![][cpu-compat]][buildkite-url] | [![][nvidia-compat]][buildkite-url] | [![][amd-compat]][buildkite-url] | [![][apple-compat]][buildkite-url] | [![][intel-compat]][buildkite-url] | | Julia 1 | [![][cpu-stable]][buildkite-url] | [![][nvidia-stable]][buildkite-url] | [![][amd-stable]][buildkite-url] | [![][apple-stable]][buildkite-url] | [![][intel-stable]][buildkite-url] |

Single-threaded compatibility is tested in all major operating systems (OS).

| KomaMRI | CPU (single-threaded) | |:---------------------|:-----------------------------------------:| | Julia 1.10 (Windows) | [![][gh-actions-komamri]][gh-actions-url] | | Julia 1.10 (Linux) | [![][gh-actions-komamri]][gh-actions-url] | | Julia 1.10 (Mac OS) | [![][gh-actions-komamri]][gh-actions-url] | | Julia 1 (Windows) | [![][gh-actions-komamri]][gh-actions-url] | | Julia 1 (Linux) | [![][gh-actions-komamri]][gh-actions-url] | | Julia 1 (Mac OS) | [![][gh-actions-komamri]][gh-actions-url] |

If you see any problem with this information, please let us know in a GitHub issue.

Owner

  • Name: JuliaHealth
  • Login: JuliaHealth
  • Kind: organization

Using the Julia programming language to improve medicine, health care, public health, and biomedical research.

GitHub Events

Total
  • Fork event: 5
  • Create event: 45
  • Commit comment event: 30
  • Release event: 2
  • Issues event: 48
  • Watch event: 44
  • Delete event: 52
  • Member event: 2
  • Issue comment event: 229
  • Push event: 347
  • Pull request review comment event: 123
  • Pull request review event: 133
  • Pull request event: 105
Last Year
  • Fork event: 5
  • Create event: 45
  • Commit comment event: 30
  • Release event: 2
  • Issues event: 48
  • Watch event: 44
  • Delete event: 52
  • Member event: 2
  • Issue comment event: 229
  • Push event: 347
  • Pull request review comment event: 123
  • Pull request review event: 133
  • Pull request event: 105

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 1,143
  • Total Committers: 11
  • Avg Commits per committer: 103.909
  • Development Distribution Score (DDS): 0.517
Past Year
  • Commits: 646
  • Committers: 11
  • Avg Commits per committer: 58.727
  • Development Distribution Score (DDS): 0.452
Top Committers
Name Email Commits
Carlos Castillo Passi c****o@u****l 552
beorostica-asusFX505GT-win b****a@u****l 471
CompatHelper Julia c****y@j****g 58
beorostica 3****a 24
curtcorum 1****m 18
Carlos Castillo Passi c****i@k****k 7
Dilum Aluthge d****m@a****m 7
aTrotier a****r@g****m 2
dependabot[bot] 4****] 2
Pablo Irarrazaval 1****l 1
gabuzi 1****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 143
  • Total pull requests: 289
  • Average time to close issues: 4 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 20
  • Total pull request authors: 17
  • Average comments per issue: 2.22
  • Average comments per pull request: 1.49
  • Merged pull requests: 167
  • Bot issues: 0
  • Bot pull requests: 109
Past Year
  • Issues: 36
  • Pull requests: 114
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 24 days
  • Issue authors: 11
  • Pull request authors: 12
  • Average comments per issue: 1.03
  • Average comments per pull request: 1.46
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 15
Top Authors
Issue Authors
  • cncastillo (56)
  • beorostica (21)
  • pvillacorta (19)
  • rkierulf (10)
  • curtcorum (8)
  • Stockless (7)
  • aTrotier (4)
  • gsahonero (3)
  • Tooine (2)
  • cenarius1985 (2)
  • JanWP (2)
  • huchengMRI (1)
  • JuliaTagBot (1)
  • maleadt (1)
  • Mencu (1)
Pull Request Authors
  • github-actions[bot] (99)
  • Stockless (50)
  • pvillacorta (35)
  • cncastillo (34)
  • beorostica (23)
  • rkierulf (16)
  • dependabot[bot] (10)
  • DilumAluthge (5)
  • curtcorum (4)
  • gsahonero (4)
  • tinorodriguez (3)
  • aTrotier (3)
  • JanWP (2)
  • KookiesNKareem (2)
  • depedraza (1)
Top Labels
Issue Labels
enhancement (41) bug (34) 1) high priority (12) 3) low priority (11) documentation (11) performance (10) core (9) 2) medium priority (9) GSoC (8) KomaUI (7) help wanted (5) feature (3) good first issue (1)
Pull Request Labels
documentation (24) maintenance (12) dependencies (10) github-actions (10) enhancement (3) performance (2) pre-release (1)

Packages

  • Total packages: 5
  • Total downloads:
    • julia 438 total
  • Total dependent packages: 7
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 54
juliahub.com: KomaMRICore

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

  • Versions: 9
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 86 Total
Rankings
Dependent repos count: 9.9%
Stargazers count: 16.8%
Average: 18.6%
Dependent packages count: 23.0%
Forks count: 24.5%
Last synced: 6 months ago
juliahub.com: KomaMRIPlots

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

  • Versions: 12
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 88 Total
Rankings
Dependent repos count: 9.9%
Stargazers count: 16.8%
Average: 22.6%
Forks count: 24.5%
Dependent packages count: 38.9%
Last synced: 6 months ago
juliahub.com: KomaMRI

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 87 Total
Rankings
Dependent repos count: 9.9%
Stargazers count: 16.8%
Average: 22.6%
Forks count: 24.5%
Dependent packages count: 38.9%
Last synced: 6 months ago
juliahub.com: KomaMRIFiles

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

  • Versions: 5
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 89 Total
Rankings
Dependent repos count: 9.9%
Average: 24.9%
Dependent packages count: 39.9%
Last synced: 6 months ago
juliahub.com: KomaMRIBase

Koma is a Pulseq-compatible framework to efficiently simulate Magnetic Resonance Imaging (MRI) acquisitions. The main focus of this package is to simulate general scenarios that could arise in pulse sequence development.

  • Versions: 9
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 88 Total
Rankings
Dependent repos count: 9.9%
Average: 24.9%
Dependent packages count: 39.9%
Last synced: 6 months ago

Dependencies

.github/workflows/JuliaTagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite