Update notes

What changed in each release.

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: New Fixed Changed

1.2.6 - 1.2.6.1

September 2026 Major 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.

Earlier releases (the 1.0.x and 1.1.x lines) predate these notes. See the PyPI release history and the GitHub repository for the full record.