Skip to content

Release Notes

0.1.5_7.3.2 [2025-12-03]

Enhancements:

  • Added .dockerignore file to optimize Docker build context and reduce build times

Fixes:

  • Fixed incorrect import in tests/test_pet_utils.py from fw_gear_freesurfer_mc to fw_gear_petsurfer_mc

Maintenance:

  • Migrated from custom Freesurfer installation to flywheel/freesurfer:0.2.0_7.4.1 base image
  • Migrated base image from python:3.10-slim to flywheel/python:3.12-debian
  • Updated python from 3.10 to 3.12
  • Removed tensorflow and torch packages from Freesurfer installation
  • Removed fsaverage_sym template files to reduce image size
  • Updated numpy from 1.23.2 to 1.26.4
  • Updated nibabel from 4.0.1 to 5.3.2
  • Updated flywheel-sdk from 16.8.0 to 19.3
  • Updated pandas from 1.5.2 to 2.2.2
  • Updated requests-toolbelt from 0.9.1 to 1.0
  • Updated pytest-cov from 2.0.10 to 3.0
  • Updated coverage from 5.3 to 7.6
  • Removed legacy linting tools: black, isort, pylint, pycodestyle, pydocstyle, mypy
  • Migrated CI configuration from sse-qa-ci to qa-ci infrastructure
  • Updated CI reference from 862dcf6f to 733a3427
  • Updated pre-commit hooks reference from b7784be4/642262ef to 733a3427
  • Increased pytest coverage requirement from 0% to 25%
  • Added timeout configuration for CI test jobs (8h)
  • Replaced black and isort with ruff for code formatting
  • Added new pre-commit hooks: gearcheck, hadolint, jsonlint, linkcheck, ruff, ruff_format, ruff_tests
  • Removed legacy pre-commit hooks: docker_build, validate-manifest
  • Updated api-key input from read-only: true to read-only: false
  • Simplified Dockerfile by removing commented-out installation commands
  • Reorganized environment variables in Dockerfile for better clarity
  • Applied code formatting with ruff throughout the codebase
  • Fixed f-string formatting issues in log messages

Documentation:

  • Updated CONTRIBUTING.md with improved formatting and Poetry command syntax
  • Added guidance on Python version alignment between Poetry and Dockerfile
  • Expanded pre-commit hook documentation with available hooks list
  • Updated release process documentation removing manual tag creation steps
  • Removed changelog entry requirements from contribution guidelines

0.1.4_7.3.2 [2023-08-30]

Maintenance:

  • Updated python from 3.10.12 to 3.10.13
  • Updated flywheel-gear-toolkit from 0.6.10 to 0.6.13 (which updates flywheel-gears, flywheel-sdk and fw-utils, among others)

0.1.2_7.3.2 [2023-06-28]

Enhancements:

  • Added frame_pattern configuration option to specify regular expression for selecting PET frames to align (case insensitive)
  • Added logic to skip motion correction when only a single PET volume is detected, outputting the volume directly

Fixes:

  • Fixed pet_get_images() to use case-insensitive regex pattern matching for frame selection
  • Fixed metadata writing to use gear_context.metadata.update_container() instead of manual JSON file creation

Maintenance:

  • Updated python from 3.10.11 to 3.10.12

Documentation:

  • Updated README to document new frame_pattern and ref_frame configuration options
  • Clarified README section on motion correction metadata stored in Analysis container
  • Removed placeholder text and template markup from README
  • Updated gear level from Analysis to Session
  • Reorganized configuration descriptions for clarity
  • Removed empty wget-log file

0.1.1_7.3.2 [2023-04-19]

Enhancements:

  • Added template_creation configuration option to select method for PET template creation (single_frame or mean). This will be the target for the motion correction
  • Added ref_frame configuration option to specify reference frame for template creation in the case of single_frame
  • Enhanced pet_get_images() to support pattern-based filtering for PET frame selection with modality validation
  • Added merge_pet_frames() function to stack 3D PET frames into single 4D image
  • Added pet_template_creation() function to create PET templates using mean or single frame methods
  • Added pet_mri_convert() function to extract single frame as template using mri_convert
  • Added pet_mri_concat() function to create mean template using mri_concat
  • Added get_nifti_format() function to detect NIfTI dimensionality (3D vs 4D)
  • Added variance calculation to motion correction parameter metadata output

Fixes:

  • Fixed motion correction workflow to support both 3D and 4D PET input formats
  • Fixed motion correction parameter file naming from *_avg.dat to *_mc.dat
  • Fixed metadata column naming with proper labels (roll, pitch, yaw, dS, dL, dP, rmsold, rmsnew, trans)

Maintenance:

  • Updated python version constraint from >=3.10,<3.11 to >=3.10,<4.0
  • Updated PYTHON_VERSION from 3.10.9 to 3.10.11
  • Updated PYTHON_PIP_VERSION from 22.3.1 to 23.0.1
  • Removed unused docs/changelog.md and docs/release_notes.md files

0.1.0_7.3.2 [2023-02-08]

Enhancements:

  • Added method to get the NIfTI files in the first acquisition in the session.
  • Added motion correction of PET volumes using mc-afni2 from FreeSurfer's fsfast toolbox
  • Added computation of averaged PET volume from motion-corrected frames to serve as template for coregistration
  • Added visualization plots for motion correction parameters (displacement and rotation)

Documentation:

  • Added comprehensive README with gear overview, inputs, configuration options, outputs, and usage instructions
  • Added contribution guidelines with dependency management, linting, testing, and release procedures
  • Added merge request template with checklist for release notes, changelog, tests, and gear-specific requirements
  • Added FAQ document for common questions and errors
  • Added changelog to track design decisions
  • Added release notes documentation

Maintenance:

  • Initial project setup with python 3.10 and poetry dependency management
  • Added CI/CD configuration using Flywheel SSE-QA-CI pipeline with pytest coverage set to 0
  • Added pre-commit hooks for poetry_export, docker_build, markdownlint, yamllint, black, isort, and validate-manifest
  • Added FreeSurfer 7.3.2 installation in Docker container
  • Added core dependencies: flywheel-gear-toolkit, nibabel, pandas, matplotlib, seaborn, fw-meta