FSL 6.0.7.17, 24th February 2025
- file-tree 1.4.1 -> 1.6.0
- fsleyes 1.12.6 -> 1.13.0
- fsl-base 2411.0 -> 2502.1
- fsl-installer 3.15.1 -> 3.16.5
- fsl_mrs 2.3.1 -> 2.4.0
- fsl-pipe 1.1.1 -> 1.2.2
- fsl-pyfeeds 0.12.4 -> 0.13.1
- fsl-pyfeeds-tests 2407.0 -> 2501.0
file-tree 1.4.1 -> 1.6.0
Detailed history
Add glob setting in file-treeRaise error for invalid glob valueImplement pattern matching using * or ?Enable pattern matching in get_multSupport * and ? pattern matching in update_globFix forbidden characters for pattern matchingAdd tests for get_mult with filterFix filtering of get_mult with pattern matchingUse pattern matching in file-tree appFix reraising of errorAddglob keyword overriding to get and get_multAdd correct version number to __version__ and documentationSwitch to default theme to get sticky sidebarExplain wildcards support in docsMention option of using placeholders instead of wildcardsAdd wildcards to CHANGELOGBump to version 1.6.0
fsleyes 1.12.6 -> 1.13.0
-
RF: Reset display space to a sensible value when old reference image is removed This MR changes FSLeyes so that, when the display space is set to a reference image, and that reference image is removed, the display space is changed to another loaded NIfTI image (the first in the overlay list) instead of being reset to
"world".This change fixes an issue whereby the ortho panel zoom level would increase each time a new image was loaded. The cause of this is quite convoluted, but it is most easily reproduced when (e.g.) viewing T1 images in the file tree panel.
When the user selects the first image in the file tree list, the image is loaded, and is set as the display space reference image. When the user selects the next image in the file tree list, the images are swapped in stages: 1. The new image is loaded. If the images are slightly rotated with respect to each other, the bounding box surrounding all overlays will increase. The ortho panel has some logic which attempts to preserve the current zoom/pan settings, so internally it will increase the zoom level, although the effective (i.e. visible) zoom will not change. 2. The old image is removed. This would cause the display space to be automatically reset to
"world", which will potentially substantially change the global bounding box, and cause the ortho panel to adjust its zoom settings again. 3. The display space is manually set to the new image, which again changes the bounding box and triggers the ortho panel zoom preservation logic.The unnecessary swapping back and forth of the display space setting was causing the ortho panel zoom preservation logic to be disrupted, which would result in it incorrectly increasing the effective zoom level.
The changes in this MR simplify the above process and avoid the zoom increase issue. - The file tree manager now swaps the old and new images in a single step - The display space is now automatically changed to the next NIfTI image in the overlay list, if the current reference image is removed - If the user manually changes the display space to e.g.
"world", that choice will be saved, and will be used as the new default. -
ENH: New line vector options New options for line vector overlays, including:
- Ability to modulate the vector length by the modulate image, instead of modulating brightness/transparency.
- Ability to modulate the vector RGB values to uniform brightness. This was being implicitly performed when the Scale vectors to unit length option was enabled, but is now an independent option.
Detailed history
RF: Re-jig mesh reference image search routine so that it doesn't emit harmless warningsTEST: Reset display space to world in mesh testENH: Scaffolding for new LineVectorOpts modulate-lineLength featureBF: OverlayDisplayWidgets specs were being merged in wrong order (with base-class specs taking precedence over sub-class specs)ENH: Scaffolding for new VectorOpts.normaliseColour property - this is equivalent to the existing RGBVectorOpts.unitLength property, but will be able to be applied to other (e.g. line) vector types independentlyBF: Prevent data processing task from running if the texture gets destroyed after it has been enqueued. This is a harmless error, but it seems to happen occasionallyRF: Change RGB vector colour normalisation so that it is done in fragment shader instead of on the CPURF,ENH: GLLineVector: don't pre-normalise vector image data; instead, do it in the shader. This allows the vector to be normalised independently from the colour. GL21 only.BF: GL14 line vector - orientFlip was only being applied when unitLength activeBF: GL14 line vector shader parameter updates were not taking effect because the program wasn't being loaded. Good indication that nobody is running GL14 FSLeyes. Use voxValXform instead of clipping, as the latter is also used in the volume fragment program.TEST: -u has been replaced by -nr for rgbvectors (although the former will continue to work)ENH: Ability to modulate line vector length by another image. GL21 onlyTEST: Update test benchmark - vector normalisation now performed on GPU, which results in small colour differenceModulate line vector length by another image - GL14TEST: Line vector length modulation tests. Remove *nofloattexture* benchmarks, as they should match the normal benchmarksDOC: Small tweaks, changelogBF: modulate data was being reshaped in C order
fsl-base 2411.0 -> 2502.1
-
MNT: Changes to support
micromamba; removecreateFSLWrapper/removeFSLWrapperscripts Some small tweaks to work withmicromamba-based FSL installations. ThecreateFSLWrapper/removeFSLWrapperare now installed by thefslinstaller.pyscript (see https://git.fmrib.ox.ac.uk/fsl/conda/installer/-/merge_requests/101). -
BF:
RPATHSflags were not being added on macOS TheRPATHSflags need to be added toARCHLDFLAGS, asLDFLAGSgets overridden from the environment invars.mk. -
MNT: Add default compute capabilities for more CUDA versions
- Fix bug in
.cbuild rules; update CUDA C++ standard toc++17 - MNT Guard against ipython/notebook not being installed
Detailed history
MNT: Wrapper management scripts have been moved to the fslinstallerMNT: Prefer micromamba, mamba, conda. Remove prefer_mamba flagRF: Don't call <conda> list to get rev history - read conda-meta/history directly. This is because micromamba doesn't support the --revisions flag yet (and maybe never will)MNT: Remove/ignore --conda flagMNT: Strip base url from channel - in conda list --json output, conda doeds not include the base url, whereas micromamba doesMNT: Call $FSLDIR/bin/pythonMNT: micromamba env export does not support -f option. Both conda and micromamba will export to stdout by defaultMNT: Accept --logfileTEST: Don't hard-code "conda". Print log file on failureBF: rpaths were being added to LDFLAGS, which was then getting overridden by the env later on (in vars.mk).DOC,MNT: Changelog, versionMNT: Add default compute capabilities for more CUDA versionsBF,RF: Using "CFLAGS" inside compilation rule generator seems to mess up C compilation in some circumstances. Update C++ standard to C++17 when compiling CUDA code using nvcc, as we will be building against CUDA 11 from this point onMNT Guard against ipython/notebook not being installed
fsl-installer 3.15.1 -> 3.16.5
-
ENH: Support micromamba-based FSL installations Add capability for creating an FSL installation based on
micromamba. This has a number of advantages, including:- Reduced download size -
micromambais released as a self-contained binary, a few MB in size. This is much smaller thanminiconda/miniforgeinstallers, which are up to 150MB. - Reduced chance of package conflicts during installation -
minicondainstalls a set of packages from the default anaconda channel, but during installation of FSL we source packages fromconda-forge, which leads to an environment containing a mixture of packages from both channels. This has led to a number of package conflicts on certain platforms, most notably an incompatibility with thelibarchivelibrary. This is in contrast tomicromamba, which does not install any packages, meaning that when installing FSL, all packages will be sourced fromconda-forge.
The
fslinstaller.pyscript will search for amicromambaentry in the release manifest, alongside the entries for differentminicondainstallers, e.g.:{ ... "miniconda": { "linux-64": { ... "python3.12": { "output": "...", "sha256": "...", "url": "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-x86_64.sh" }, ... "micromamba": { "output": "...", "sha256": "...", "url": "https://anaconda.org/conda-forge/micromamba/2.0.5/download/linux-64/micromamba-2.0.5-0.tar.bz2" } }, ... }Where
minicondainstallers are assumed to be shell scripts, and themicromambainstaller is assumed to be a tar file. If amicromambaentry is present, the installer will preferentially select it, unless the user provides the--condaargument, in which case aminicondaentry will be selected. Whenmicromambais selected, themicromambatar file is extracted, and then installation proceeds in the same way, with${FSLDIR}/bin/micromambabeing used instead of${FSLDIR}/bin/mamba/conda. - Reduced download size -
- BF: Fix bug in
install_minicondaroutine - MNT: Prevent conda from installing conda-forge CUDA packages during main environment installation
-
MAMBA_ROOT_PREFIXneeds to be set for child environment installations When usingmicromamba, theMAMBA_ROOT_PREFIXenvironment variable needs to be set when installing child/extra environments such astruenet, otherwisemicromambawill not be able to find$PREFIX/.condarc.
Detailed history
CI: Typo in CI rulesCI: Fix coverage reportingMNT: Add progress bar for micromamba install, for consistency in terminal outputCI: Arguments appear to be getting passed in with leading whitespace, probably due to escaped linebreaks in .gitlab-ci.ymlBF: Was incorrectly overwriting kwargsMNT,DOC: Changelog, versionMNT: Prevent conda from installing conda-forge CUDA packages during main environment installationMAMBA_ROOT_PREFIX needs to be set for child env installations too, otherwise micromamba won't read $FSLDIR/.condarcMNT: exist_ok not available in py27
fsl_mrs 2.3.1 -> 2.4.0
- BF: Fix bug in fsl_mrs_summarise.
-
ENH: Improved preproc singleton handling Improves the handling of data with trailing singleton dimensions in processing (align and average) and in fsl_mrs_preproc
-
BF: unlike removal and headers Fix bug reported by kristine@drcmr.dk. Headers weren't resampled by the unlike operation.
-
BF: p-spline uncertainty and MH compatibility
- Added p-spline baseline option to MH fitting algorithm.
- Updated documentation around MH fitting.
- Widened MH fitting priors to allow better handling of poorly scaled data.
- Fixed incorrect covariance and uncertainty calculation with new p-spline baseline option.
Detailed history
BF: Fix bug in fsl_mrs_summarise.ENH: Improved preproc singleton handlingBF: unlike removal and headersBF: p-spline uncertainty and MH compatibility
fsl-pipe 1.1.1 -> 1.2.2
-
Scale jobtime Resolves #2
- Fix and test parser
- Release v1.2.1
-
Ensure scaled job times are still integers Otherwise the sbatch tool crashes
Detailed history
Allow for float jobtimes when scalingAdd scaling of jobtime to CLIDescribe support for scaling jobtimeMake use of dashes consistentRelease v1.2.0Add tests for fsl-pipe parserFix type of parameterCheck that warning is emittedRemove excessive error handlingAdd tests for pattern matchingFix which files should exist if setting subject explicitlyExplain changes in CLIRelease v1.2.1Ensure scaled job times are still integersRelease v1.2.2
fsl-pyfeeds 0.12.4 -> 0.13.1
-
MNT: Ignore any candidate tests within output/benchmark/input data directories
- Ignore candidate tests which are contained within the output/benchmark/input data directories, in case those directories are contained within the test directories. This allows input/benchmark directories to be stored alongside the test directories, e.g. in a flat directory structure.
- New
evalImageMaxDiffroutine, which evaluates an image based on its maximum absolute difference with the benchmark image.
-
MNT: Print hostname/platform inforomation, so we know what machine a test was run on
Detailed history
MNT: Ignore any candidate tests within output/benchmark/input data directories, in case any of those are contained within the test directoriesENH: New evaluation routne to evaluate images based on the maximum absolute differenceRF: Handle cases where in/out/bm dirs are not setCI: Drop py38/9, add py312/13BF: TyposMNT: Print hostname/platform info in log, so we know what machine a test was run on
fsl-pyfeeds-tests 2407.0 -> 2501.0
- BF: Fixes to truenet tests
- Update example command in readme
- More tweaks to readme
- Allow mmorf executable to be specified by an environment variable
-
Bf/startup This fixes two issues
1) Using the system
activatemay fail as it can start using thecondalibraries inFSLDIRwhich may not be compatible, e.g.:File "/opt/fmrib/conda/python3/bin/conda", line 12, in <module> from conda.cli import main File "/vols/Scratch/mwebster/fsl_dafc4c0c/lib/python3.12/site-packages/conda/cli/__init__.py", line 3, in <modul e> from .main import main # NOQA File "/vols/Scratch/mwebster/fsl_dafc4c0c/lib/python3.12/site-packages/conda/cli/main.py", line 6, in <module> from ..deprecations import deprecated File "/vols/Scratch/mwebster/fsl_dafc4c0c/lib/python3.12/site-packages/conda/deprecations.py", line 60 if version_tuple := self._get_version_tuple(version):2) The current script will try to build in the test directory and not the output directory. This fix simply copies the
Makefileand source files to the output directory. -
Bf/filenames Some of the input files/paths don't exist in
dataSets. Renamed to usesubj1.bedpostX -
MNT: Adjust
fslStartuptest to support micromamba-based installations
Detailed history
BF: Fixes to truenet testsUpdate example command in readmeMore tweaks to readmeAllow mmorf executable to be specified by an environment variableBF: Compilation must occur in output directoryMNT: Removed debug printBF: Original paths/files don't exist in our datasetsMNT: Adjust fslStartup test to support micromamba-based installations