A plain-language history of BIDS Manager releases, newest first.
Each card lists the new features, the fixes, and anything worth
knowing before you upgrade. Use the menu to jump to a version.
How to read these notes.
BIDS Manager is published on PyPI as bids-manager and
imported in Python as bidsmgr (the same pattern as
pip install scikit-learn then import sklearn).
Upgrade any time with pip install --upgrade bids-manager.
Version numbers match the PyPI release history. Labels are
colour-coded:
NewFixedChanged
1.2.6 - 1.2.6.1
September 2026Major release
The largest release since 1.0. A whole modality arrives, and the
form that asks you for metadata stopped being written by hand and
started being built from the standard itself.
New
PET support. Positron emission tomography is now
a first-class modality. PET studies scan, convert and validate
alongside everything else, from either of the two formats
scanners produce: DICOM, and the ECAT files that Siemens HRRT and
older CTI systems write.
Hybrid studies convert in one pass. On a
PET/MR study the MR half is ordinary anatomical and functional
data, and BIDS Manager converts it in the same run. On a
PET/CT study the CT half is set aside with a note explaining
why: BIDS has no place for CT in a raw dataset yet.
The metadata a scanner cannot know. A PET
sidecar needs around forty fields, and the scanner header
holds about half of them. It records how the image was
reconstructed, but not how much tracer was injected, in what
form, or when. Those now have a home: a Tracer,
Radiochemistry, Acquisition and Reconstruction block in
Dataset metadata, with per-scan overrides in the properties
panel, and the same inherit-from-the-dataset behaviour the
EEG and MEG fields already have.
The scan reads what it can and proposes it.
Tracer, radionuclide, injected dose and reconstruction
settings are read out of the source and offered as
suggestions beside the fields they inform. They are never
filled in silently, because a vendor writes these as free
text and a wrong tracer is worse than a blank one.
Bring your dose table. If the radiochemistry
already exists as a spreadsheet, point
bidsmgr-convert --pet-spreadsheet at it. Column
names are matched loosely, so
Injected Dose and
injected_radioactivity both work.
The metadata form is built from the standard, not written
by hand. Dataset metadata used to ask a fixed set of
questions that somebody had typed out, which meant it could ask
for a field a datatype does not accept, and could not ask for one
nobody had thought of. It is now generated from the BIDS schema.
A recording can state any field its file may carry.
If the standard declares a field for that datatype and suffix,
the form offers it, at its real requirement level, with the
standard's own description on hover.
What the conversion already answers is folded
away. The scan runs the converter once, quietly, and
reads what came out, so the form can separate the fields that
will be filled for you from the ones only you can answer. The
settled block is still editable: correcting a value there is
how you tell the tool its header was wrong.
The BIDS version you choose is honoured
everywhere. Not only in validation. It decides which
fields the form asks for, which entities a filename may carry,
and what is written into
dataset_description.json.
Answers take the shape the standard declares.
A field typed as a number reaches the sidecar as a number and
an array of numbers as an array of numbers, whether you typed
it into the form or into a cell in the table.
Time-activity curves in the viewer. Open a
dynamic PET image and the time-series graph now plots against
real seconds rather than frame number. PET frames get longer as
the tracer decays, so a ten-second frame and a five-minute frame
sit side by side in one scan; plotting them as equal steps
flattens the early part of the curve, which is exactly where the
interesting kinetics are.
Blood data becomes part of the dataset. A PMOD
blood file can be attached to the PET run it belongs to and is
written out as the _blood.tsv and
_blood.json pair the standard defines. The three
curves BIDS recognises, whole blood, plasma and parent fraction,
are linked separately, and marking each as manually drawn or taken
by an autosampler decides the entity in the filename rather than
only the description inside it.
pet2bids is now part of the installation. It
reads the ECAT7 headers and the PMOD blood curves, which took an
ECAT sidecar from five fields to twenty-three, with units and a
reference time. Two behaviours were worked around on the way: a
metadata template shared between files, which drifted the frame
timing through a batch, and a data dictionary describing columns
that were not present in the output.
Duplicate BIDS names are caught before conversion.
Every row's destination filename is worked out in advance. Genuine
repeats are given a run number where the standard
allows one; where it does not, both names are shown in red and the
conversion refuses to start rather than write one recording over
another. Fixing either row clears the warning on both.
Every validation finding cites its rule. The
schema rule a requirement comes from is shown beneath the message,
in the validation pane, in the file dialog and in the HTML report,
so a finding can be checked against the standard instead of taken
on trust.
Files in folders that are not datatypes are
reported. A perfectly named file inside
anatt/, or in a hand-made raw/ folder,
passes most checks and is invisible to every BIDS tool, because
tools read inside the datatype folders. This is now an error
naming the folder and listing the ones that would be valid.
PET sanity checks. The Editor now warns when the
numbers in a PET sidecar disagree with each other: a dose that
looks like it was entered in the wrong unit, a specific activity
that does not follow from the dose and mass, frames that run
backwards, a timing offset with no reference time to measure it
from. These are warnings, never errors.
Fixed
Scans no longer skip DICOM files with dots in their
names. Philips exports name each file after its internal
identifier, and GE Signa uses a .img ending. Both are
ordinary DICOM, and both were being passed over, whatever the
modality. If a past scan of a Philips or GE dataset came back
emptier than expected, it is worth rescanning.
Patient details are stripped from PET sidecars.
Name, identifier, birth date and referring physician are removed
on conversion. The study and series identifiers stay, so an image
can still be traced back to the series it came from.
Numbers typed into the metadata form stay numbers.
A list of numbers, frame times or reconstruction parameters, was
being stored as a list of text. Worse, opening the form and saving
it rewrote values the conversion had already got right, so filling
in the metadata could add errors to a sidecar that had
been correct. Both are fixed, and a template already saved that
way is repaired the next time it is applied: nothing has to be
typed in again.
A blood table's sidecar is named for the sampling it
belongs to. BIDS requires the recording
entity on both the table and its sidecar. It was being written on
the table only, which left a valid table beside a sidecar that no
tool could match to it.
Acquisition times with a missing leading zero are
repaired. A converter can write
11:22:1.995, which is not a time any validator will
accept, and it was copied on into scans.tsv, so one
slip was reported twice.
One project's metadata stays inside that project.
Answers given for one dataset no longer follow you into the next.
Windows: the settled metadata block is filled in
again. On Windows, "Already answered by the conversion"
came up empty for every MRI kind, while the same dataset filled it
on macOS and Linux. The values were never missing from the data.
The pass that measures them works inside a folder whose path could
run past the length Windows allows, and the converter does not
fail gracefully there: it stops without a message, and a
measurement nobody could take looked the same as a measurement
there was nothing to take. Those paths are now short and of fixed
length. If that block came up empty for you, rescanning fills it.
Windows: the converter is found however you started the
application. The dcm2niix that ships with the Python
package carries a different name on Windows, and BIDS Manager
looked only for the other one. Started from an activated
environment a fallback found it anyway; started from a desktop
shortcut or a bundled interpreter it did not, and both the
classifier that proposes BIDS names and the pass that measures
metadata were skipped without saying so.
A series whose output does not name itself is no longer
dropped. On some acquisitions, a Siemens XA30 localiser
among them, the converter writes an identifier into the sidecar
that does not match the one the series carries. Those outputs
belonged to no row and their measurements were lost. Each is now
attributed to the series it was actually converted from.
A dropdown inside a folded section is wide enough to
read. A menu field sized itself while it was still
hidden, so a value the conversion had answered could appear as a
stub too narrow to show its own text.
A path too long for Windows now says so. The one
failure that produced no message at all now reports the limit and
the length of the path that exceeded it, so the next time it
happens it is a message rather than a silence.
Changed
The inventory gained five read-only columns carrying the PET
details read from the source. They are appended, so every existing
column keeps its position. In the interface those values are
offered inside the fields they inform rather than shown as
columns.
pet2bids is a new dependency, installed with the
application. Nothing to do on your side.
A dataset's name now means one thing. It is the folder name,
stated once when the project is created, and the interface says
what a rename would affect rather than silently keeping two
answers.
1.2.5
26 July 2026
New
A GPU 3-D volume renderer for NIfTI images. The
Editor's image viewer can now render a volume in interactive 3-D,
in the spirit of MRIcroGL, straight on your graphics card. Load an
image, switch to the 3D or
Multi-Planar 3D view, and orbit, zoom and pan a
fully shaded volume in real time.
The new GPU 3-D renderer: rotate, cut and re-light a volume in
real time, with a live orientation cube.
It brings a lot to the viewer:
A dozen looks. Pick a rendering effect and
material: Standard and Matte surfaces, Juicy shiny, Glass,
X-ray, Jelly, Skull, maximum-intensity projection, Edges,
opacity peeling, Shell and Topography, each with its own
adjustable parameters.
Lighting you control, with matcap materials
(Shiny White, Clay, Bone, Titanium, Gold, Blue) and ambient,
diffuse, specular and shininess sliders.
Cut into the volume. An oblique clip plane and
a slicer cut at any angle, with keyboard shortcuts, and a
cut-face overlay shows a clean windowed cross-section at the cut
while the shaded volume fills the space behind it, so a
ventricle reads as real depth rather than a flat dark hole.
Always know your orientation. An orientation
cube and shared RAS / radiological toggles keep the 2-D slices
and the 3-D render in agreement.
Colour-FA diffusion maps (RGB NIfTIs) load and
render in 3-D as well.
The 3-D views appear automatically when your machine has a GPU with
OpenGL 3.3; on machines without one the viewer stays a fast 2-D
tool.
Fixed
Colour-FA (RGB) NIfTIs now open. Diffusion
colour-FA maps that previously failed to load now open correctly.
Smoother scrolling on Linux. Mouse-wheel zoom and
Shift-plus-wheel slice navigation in the 3-D view were fixed on
Linux.
A scan crash on Windows with Python 3.14. A
parallel worker-pool crash during scanning was worked around, so
scans complete reliably there.
Rounded popup corners on Windows and Linux (1.2.5.2).
Combo dropdowns, hover tooltips and menus now render clean,
fully transparent rounded corners on Windows and Linux, instead of
showing a black square behind the rounded border. The popups are
made transparent before their window is created, so the operating
system draws them correctly on every platform.
1.2.4.2
23 July 2026
New
A much-improved NIfTI image viewer. Inspecting a
.nii / .nii.gz volume in the Editor is
now far more comfortable, and images load in canonical RAS
orientation so anatomy is shown the right way round:
Scroll through the volume with the mouse wheel
or a trackpad, in both the single-slice view and the
Multi-Planar view (formerly Tri-view). It steps
smoothly in either direction. Horizontal scroll, or holding
H while scrolling, moves through time in 4-D
images.
Anatomical orientation labels (L/R, A/P, S/I)
are drawn around each slice, so you always know which way you
are looking. Toggle them with the "Orientation labels" button
or the O key.
Keyboard shortcuts for everything, active when
the viewer has focus: A / S /
C switch the axial, sagittal and coronal views,
M opens Multi view, G opens the
time-series graph, and O toggles the labels. A
"Shortcuts" button lists every gesture and key.
The time-series graph now opens compact and stays resizable, so
it no longer crowds the image.
Update notes on the Home tab. The Home tab
gained a small "Update notes" shortcut that opens this
release-notes page, so you can always find what changed.
Changed
Rounded hover tooltips. The small pop-up hints
that appear when you hover over a control now have rounded corners,
matching the rest of the interface.
Fixed
No more crash on exit. A Qt shutdown issue that
could crash the app when closing the NIfTI viewer or quitting was
fixed.
1.2.4.1
21 July 2026
Fixed
A sturdier copy-path menu, plus "Open in Folder".
The right-click menu in the Editor's BIDS tree was hardened, and a
new Open in Folder action reveals the selected
file or folder directly in your system file browser.
1.2.4
21 July 2026
New
Faster, more precise validation. The Editor's
validation now runs on the standalone bidsval engine.
A Deep checks toggle additionally reads file
headers and contents for a thorough pass, while the quick
structural pass keeps live editing responsive.
Jump straight to a problem. When a check finds an
issue, a fix / highlight button takes you to exactly where you edit
it: it navigates to and tints the offending JSON field, the bad TSV
cell (every one), or the matching entry in the Tree view.
Copy paths from the BIDS tree. Right-click any file
or folder in the Editor tree to copy its path.
1.2.3
8 June 2026
New
Preview a spectrum before converting. The
Converter's inspection table gained a per-row Compute
PSD button, so you can check the power spectrum of an
EEG, MEG, iEEG or NIRS recording before you convert it.
Changed
Sensible defaults out of the box. The scan probe
and the full post-convert chain (metadata, validation, and the HTML
report) are now on by default.
Removed the unused "Default dataset slug" setting.
In the project-first model the dataset name always follows the
project folder, so the field was dead.
1.2.2
7 June 2026
New
An MEG / EEG / iEEG signal viewer in the Editor.
Click a recording to see a metadata card, then Load
signal for an interactive time-series viewer: channel
picking, filtering, resampling, an in-app power-spectrum (PSD)
view, and a BIDS-native events overlay.
Fixed
Huge tables open instantly. TSV files now load on a
background thread, so even very large or very wide tables appear
without freezing the app.
Validator corrections, including multi-rate physio
files that were previously flagged by mistake.
1.2.1
6 June 2026
New
A --project option across the CLI, plus
undo / redo in the Editor and a project switcher in the header.
Force-EDF conversion for EEG and iEEG (re-encode to
EDF on the way in).
Phenotype and participants codebooks. Sibling
.json descriptions flow into the BIDS metadata
(descriptions, levels, units).
Unsupported formats are now visible. Recordings in
formats BIDS Manager cannot read appear as clearly-excluded rows
during a scan instead of silently disappearing.
1.2.0
5 June 2026
New
A project-first workspace. A Home tab lets you
create, open, or reopen recent dataset workspaces, and every
curation is saved as a resumable, versioned project so you can stop
and pick up later.
Merge-aware incremental conversion. Re-running a
conversion updates only what changed, with an on-existing policy
(skip, update, replace, or error).
Live revalidation, project isolation, and live file
trees that update as you work.