{"id":18142422,"url":"https://github.com/benoitberanger/mri_seq_diagram_matlab","last_synced_at":"2025-04-22T20:41:25.904Z","repository":{"id":117580358,"uuid":"533522122","full_name":"benoitberanger/mri_seq_diagram_matlab","owner":"benoitberanger","description":"Draw MRI sequence diagrams using MALTAB","archived":false,"fork":false,"pushed_at":"2024-01-30T14:34:49.000Z","size":115,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T18:41:24.392Z","etag":null,"topics":["drawing","matlab","mri","sequence"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benoitberanger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-06T22:32:51.000Z","updated_at":"2024-09-23T13:29:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"afc4045a-eb13-47e2-8360-48ff82544637","html_url":"https://github.com/benoitberanger/mri_seq_diagram_matlab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitberanger%2Fmri_seq_diagram_matlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitberanger%2Fmri_seq_diagram_matlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitberanger%2Fmri_seq_diagram_matlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitberanger%2Fmri_seq_diagram_matlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benoitberanger","download_url":"https://codeload.github.com/benoitberanger/mri_seq_diagram_matlab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250320052,"owners_count":21411291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drawing","matlab","mri","sequence"],"created_at":"2024-11-01T18:21:57.093Z","updated_at":"2025-04-22T20:41:25.882Z","avatar_url":"https://github.com/benoitberanger.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `mrisd` : MRI sequence diagram\n\n`mrisd` is a library in `MATLAB` designed to draw MRI sequence diagrams.  \n\n\n## Download and install\n\n`git clone` or download the library, then `addpath` on the main directory. There will be no collition between `mrisd` and existing functions/objects because `mrisd` is a _package_, creating it's own namespace. (https://fr.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html).\n\n\n## Features\n\nThe library uses `MATLAB` object-oriented-programming.  \n\nThere are 5 (+1) logical axes :  \n- RF\n- Gradient : Slice selection\n- Gradient : Phase encoding\n- Gradient : Readout\n- ADC\n- (annotations)\n\nEach \"gradient\" is considered as a single **lob**, controlled using a single object : if you want to draw 2 lobs, such as SliceSelection_**Setter** and SliceSelection_**Rewinder**, they are 2 different objects.\n\nAll gradient lobs are **trapezoidal** : they have a rampup, flattop, and rampdown portions.\n\nMany methods exist for intuitive placement :\n```matlab\nSliceSelection_Setter.set_flattop_on_rf(RF_90)\n\nSliceSelection_Rewinder.set_onset_at_elem_offset(SliceSelection_Setter);\n\nADC.set_middle_using_TRTE(RF_090.middle + TE);\n```\n\nA system of **block** allows easier drawing for repetitive patterns, such as **EPI**. See example bellow.\n\nMost features are describes in the examples bellow.\n\n\n## Limitations\n\nI found the \"annotations\" not very pleasing. For the moment, they are considered as objects, exactly just likes the other RF, gradient, ADC, elements. Maybe there is a better strategy... I'm opened to suggestions.\n\n## TODO\n- add more methods for objects placement\n- change gradient objects behaviour : for the moment, there are by default defined using ratios between flattop and rampup/rampdown so they look like trapeze. An option to force flattop=0 and make them lool like triangles is to come.\n- better annotation system\n- more blocks (just EPI \u0026 diffusion for now)\n- different RF pulse shapes (just sinc for now)\n- draw a kind of rectangle arround a \"block\" (like EPI) to show it's a whole block\n\n# Examples\n\n## Spin echo\n\n[example_mrisd_spin_echo.m](example_mrisd_spin_echo.m)  \n![example_figures/spin_echo.png](example_figures/spin_echo.png)  \n\n\n## Gradient Echo EPI\n\n[example_mrisd_gre_epi.m](example_mrisd_gre_epi.m)  \n![example_figures/gre_epi.png](example_figures/gre_epi.png)  \n\n\n# External dependency ?\n\nNone\n\n\n# Tested on\n\nR2017b+\n\n\n# Python alternatives\n\nhttps://github.com/lamyj/mrsd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitberanger%2Fmri_seq_diagram_matlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenoitberanger%2Fmri_seq_diagram_matlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitberanger%2Fmri_seq_diagram_matlab/lists"}