concept-collection / seqlab
seqlab / CLAUDE.md
5.3 KBPreviewCodeBlameHistoryRaw

CLAUDE.md#

Tips for future agents working in this repo.

Architecture#

src/engine/pulseq/   vendored pulseq +mr tree (86 .m files) + LICENSE +
                     VENDORED.md; NEVER edit — re-sync with `npm run
                     vendor-pulseq` (reads ../../pulseq by default)
src/engine/mrFiles.ts  +mr tree as numbl boot files (vite ?raw glob), with
                     +mr/+aux/md5.m replaced by a wrapper over numbl's
                     `hash` builtin (the original needs Java on MATLAB)
src/engine/runner.ts run-per-execution wrapper over numbl/browser
                     createNumblSession: boots idle (mip off, no
                     persistence) with +mr + main.m staged, executes
                     'main;', collects *.seq via a dir() snippet, disposes.
                     Cancel = dispose (works without cross-origin isolation).
src/seq/parseSeq.ts  .seq parser (v1.4.x/1.5.x), column layouts and unit
                     scales mirror pulseq's @Sequence/read.m; shape RLE
                     decompression mirrors decompressShape.m
src/seq/reconstruct.ts  ParsedSeq -> plottable polylines, mirroring
                     Sequence.waveforms_and_times (trap vertices, centers-
                     raster arbitrary grads get first/last edge points,
                     extended trapezoids use vertices as stored)
src/viewer/          canvas Timeline (min/max pixel decimation, wheel zoom,
                     drag pan, click-to-select block), ReportPanel,
                     BlockInspector
src/examples/        gallery: 3 curated .m (fid/epi/gre, hand-written with
                     the autoLabel toggle), catalog.ts (name/category/desc per
                     id), generated-timings.ts (AUTO), and pulseq/*.m —
                     auto-adapted demoSeq scripts written by gen-examples.mjs.
                     ExamplesModal groups them by category.
test-data/golden/    .seq goldens generated by Octave and verified
                     byte-identical against real MATLAB R2026b

Examples pipeline#

The gallery's pulseq demos are generated, not hand-maintained:

Key gotchas#

Testing#