/ concept-collection / seqlab
Sign in
concept-collection / seqlab
seqlab / README.md
43 lines · 1.9 KBPreviewCodeBlameHistoryRaw
1# seqlab
3Write [pulseq](https://pulseq.github.io/) MRI pulse sequences in MATLAB syntax,
4run them entirely in your browser, and explore the resulting `.seq` files in an
5interactive viewer. No MATLAB, no installation — the unmodified pulseq `+mr`
6toolbox executes on [numbl](https://numbl.org), a MATLAB-compatible runtime
7that runs in a web worker, and produces `.seq` files byte-identical to desktop
8MATLAB (including the md5 signature).
10Also works as a plain `.seq` viewer: drop any pulseq 1.4/1.5 file onto the
11page and it is parsed instantly in JavaScript — no script run needed.
13## Features
15- **Script workspace** — MATLAB editor (CodeMirror) with the pulseq `+mr`
16 package preloaded; press Run and watch the console stream. Scripts download
17 as `.m` files that run unchanged in desktop MATLAB.
18- **Interactive timeline** — RF magnitude/phase, gx/gy/gz, and ADC lanes with
19 synchronized zoom/pan down to microsecond detail; click any block to inspect
20 its events numerically.
21- **Sequence report** — definitions, duration, event counts, peak gradient and
22 slew, and md5 signature verification.
23- **Examples gallery** — FID, EPI, and gradient-echo demos adapted from
24 pulseq's `demoSeq`, linkable as `#example/gre` etc.
26## Development
28```sh
29npm install
30npm run dev # local dev server
31npm run engine-test # headless: run the FID demo, byte-compare vs MATLAB golden
32npm run parser-test # .seq parser + reconstruction checks vs golden files
33node scripts/run-example.mjs gre # run any example headlessly, timed
34```
36The pulseq `+mr` tree is vendored under `src/engine/pulseq/` (MIT, see the
37LICENSE there); re-sync it from a pulseq checkout with `npm run vendor-pulseq`.
39## Credits
41[pulseq](https://github.com/pulseq/pulseq) is developed at the University
42Medical Center Freiburg and is MIT-licensed. This project is not affiliated
43with the pulseq developers.
moveopenescclose