15. What’s new¶
15.1. junifer v0.0.8 (2026-10-19)¶
No significant changes.
15.2. Junifer 0.0.8 (2026-10-19)¶
15.2.1. Bugfixes¶
Allow
SpaceWarperto convert data from native to template space whenusing="auto"by Fede Raimondo and Synchon Mandal (#482)Fix pattern indexing logic for
PatternDataGrabber.get_elements()by Synchon Mandal (#492)Fix the data collected by
HDF5FeatureStoragebeing stored asfloat32whenforce_float32=Falseand theh5pydeprecation warning when collecting by Fede Raimondo (#504)Fix
PatternDataGrabber.get_elements()returning elements that miss some of the data types when several types use all the replacements by Fede Raimondo (#511)Fix ReHo computation with
using="junifer"including neighbours outside the mask, checking the wrong centre voxel fornneigh=125, setting voxels outside the mask to 1 instead of 0, skipping voxels at the edges of the volume and setting fully tied neighbourhoods to 1 instead of 0, so that it matches AFNI’s3dReHoby Fede Raimondo (#514)Use the
masksparameter ofReHoMaps,ReHoParcelsandReHoSpheresto restrict the ReHo computation for bothusing="junifer"andusing="afni", instead of an MNI152 brain mask resampled to the input data (wrong for native space) only forusing="junifer". Withoutmasks, both use the voxels with non-zero time series, so that both implementations give the same results by Fede Raimondo (#514)Fix
JuniferConnectivityMeasurenot checking its input asnilearn’sConnectivityMeasure(e.g. tangent with a single subject) and not listing all the valid kinds in the error message by Fede Raimondo (#516)Fix
dtypebeing ignored inJuniferNiftiSpheresMaskerby Fede Raimondo (#516)Fix the labels of the
Brainnetomeparcellations, which repeated each name for both hemispheres, by reading them from junifer-data (e.g.SFG_L_7_1andSFG_R_7_1instead ofSFG_L(R)_7_1twice), which changes their feature names by Fede Raimondo (#520)Fix the labels of the
Julich-Brainparcellations, which were the label values instead of the region names, which changes their feature names by Fede Raimondo (#520)Fix the labels of the
Yanparcellations, which wereNaNor numbers instead of the region names, which changes their feature names by Fede Raimondo (#520)Fix the labels of the
Shen_2013parcellations, which were assigned to the wrong parcels, and add a-{i}suffix to the repeatedNo_BA_regionlabels, which changes their feature names by Fede Raimondo (#520)Fix the labels of parcellations with regions lost when resampling or warping to the target image, which shifted the labels of the following regions; the lost regions are kept (without data) and a warning lists them. The parcel markers are computed on the regions with data and give
NaNfor the lost ones (andRSSETSMarkeronly uses the edges with data) by Fede Raimondo (#520, #521)Fix
TemporalSNRParcels,TemporalSNRSpheresandTemporalSNRMapsreplacing the BOLD data with the tSNR map, so the markers computed after them in a pipeline used the tSNR map instead of the BOLD data by Fede Raimondo (#522)Fix a relative
datadirof the DataGrabber in the YAML being relative to the current directory (e.g., the job directory when queueing) instead of the YAML file by Fede Raimondo (#524)Fix partial element selectors (e.g., only the subject) always being reported as invalid by
run(), after computing their elements by Fede Raimondo (#524)Fix the same features being stored more than once: for each value of the element keys that the data does not depend on (e.g., the VBM features of a subject once per task), when running an element again, and when collecting again (
SQLiteFeatureStoragealso collected its own output file) by Fede Raimondo (#525)Fix the metadata of the preprocessors being replaced by the one of the last preprocessor by Fede Raimondo (#525)
Fix the complexity markers (e.g.,
HurstExponent) not being available in the YAML file withwith: junifer.markers.complexityby Fede Raimondo (#529)Fix the Maps markers (e.g.,
MapsAggregation) not being available in the YAML file without importing their modules by Fede Raimondo (#529)Fix
junifer runandjunifer list-elementsignoring theelementsof the YAML file when--elementis not given by Fede Raimondo (#529)Fix the AFNI smoothing of
Smoothingleaving3dFWHMx.1Dand3dFWHMx.1D.pngin the current directory by Fede Raimondo (#529)
15.2.2. API Changes¶
Rename the methods of
QueueContextAdaptertopre_run_cmds,run_cmds,pre_collect_cmdsandcollect_cmds; custom queue context adapters must rename theirs by Synchon Mandal (#503)Sanitise the VOI names of built-in coordinates by replacing spaces with
_and adding a-{i}suffix to duplicated names, which changes the feature names of e.g.DosenbachandSeitzman2018by Fede Raimondo (#511)Replace boolean values of
standardizeinTemporalFilter,fMRIPrepConfoundRemoverandJuniferConnectivityMeasurewith"zscore_sample"(default),"psc"orNone, followingnilearn; booleans raise an error."zscore_sample"uses the sample standard deviation, whileTrueused the population one, so standardized values change slightly by Fede Raimondo (#516)Use the BIDS version of the SPM auditory dataset in
SPMAuditoryTestingDataGrabber, which has 84 timepoints instead of 96 by Fede Raimondo (#516)Use
enum.StrEnumfor the enumerations, sostr()and formatting of their members give their value (e.g."mean") instead of"AggFunc.Mean"by Fede Raimondo (#520)Use only the replacements of the data types to grab as element keys in
PatternDataGrabber(e.g., onlysubjectwith VBM data), so the data that does not depend on, e.g., the task is not processed once for each task by Fede Raimondo (#524)Require the element selectors to have the same number of values, and each data type to be grabbed by only one of the DataGrabbers of
MultipleDataGrabberby Fede Raimondo (#524)Find the elements of
DataladAOMICPIOP1,DataladAOMICPIOP2,HCP1200andDMCC13Benchmarkin the dataset, so only the elements with data are listed (DataladHCP1200lists all the subjects, as they are datalad sub-datasets), and return absolute paths inPatternDataGrabberby Fede Raimondo (#524, #528)Add the version of
juniferto the MD5 of the features, as for the dependencies of the markers and steps, for reproducibility: features computed with different versions ofjuniferare different features, so the differences between features (e.g., between datasets) can only come from the data. Running again with a new version stores the features again, with the same name, next to the ones computed with the previous version by Fede Raimondo (#525)Raise an error in the
collectmethod ofHDF5FeatureStorageandSQLiteFeatureStorageif a file to collect has more than one element, ascollectonly compacts the files of single elements by Fede Raimondo (#525)Use
upsert="ignore"by default inSQLiteFeatureStorage, so the elements already stored are not stored again by Fede Raimondo (#525)Add the
processed_elementargument to thestore_*methods ofBaseFeatureStorage, the element being processed, so the concrete storages can name the file of each element; custom storages must accept it by Fede Raimondo (#525)Store the metadata of the preprocessors as a list, in order, in
meta["preprocess"]by Fede Raimondo (#525)Raise an error when installing the dataset of a
PatternDataladDataGrabberif a pattern searches the files of a sub-dataset, which are only there once the sub-dataset is installed, instead of not finding the elements by Fede Raimondo (#528)Use single precision in
antsApplyTransforms(--float 1), halving its memory and giving float32 instead of float64 data, with differences below 0.002% of the data range by Fede Raimondo (#530)
15.2.3. Improved Documentation¶
Add documentation on adding confounds format by Synchon Mandal (#364)
Build the documentation of all the released versions with
sphinx-polyversioninstead ofsphinx-multiversion, using auvenvironment per version, and add a version selector and a banner showing whether the latest, an old or the development version is being viewed by Fede Raimondo (#513)Use the UCLA CNP VBM testing data and the Tian parcellations in the examples and the codeless documentation, so no example needs warping by Fede Raimondo (#515)
Fix the docs build and the julearn example, whose scores were
NaNwithscikit-learn1.8 by Fede Raimondo (#520)Document the elements of the DataGrabbers, combining datasets with
MultipleDataGrabber, complete and partial elements, and restricting the values of the replacements by Fede Raimondo (#524)Add the “Implementation details” page with the elements, the fields of the metadata and the storage, and document the data types with different element keys when extending DataGrabbers by Fede Raimondo (#525)
Document that the DataGrabbers with files in datalad sub-datasets must list their elements and build the paths without searching the files by Fede Raimondo (#528)
Fix the
collect_taskoption of the HTCondor queue being documented ascollect, document theelementskey of the YAML file and thewithneeded by the markers, and use the full width of the page for the content by Fede Raimondo (#529)
15.2.4. Enhancements¶
Improve logging consistency of components by Synchon Mandal (#239)
Adopt Pydantic for user-facing core objects to perform automatic validation using typing annotations by Synchon Mandal (#364, #502, #510)
Move
parse_yamlfromjunifer.clitojunifer.apiby Synchon Mandal (#499)Set up the working directory first in all the commands of the CLI (from
workdirin the YAML) and inrun(),collect(),queue(),reset()andlist_elements(), adding theworkdirparameter tocollect()andlist_elements(), and create the working directory if it does not exist by Synchon Mandal and Fede Raimondo (#509)Drop the files fetched by
DataladDataGrabberin a single call and without checking their availability on the remote, making cleanup much faster by Fede Raimondo (#511)Cache the available templateflow templates to speed up
get_template()by Fede Raimondo (#511)Vectorize ReHo computation with
using="junifer", making it about 5 times faster by Fede Raimondo (#514)Add
UCLACNPVBMTestingDataGrabberwith grey matter probability maps from OpenNeuro ds000030 in MNI152NLin2009cAsym, addn_subjectstoPartlyCloudyTestingDataGrabberand use the native 3mm resolution by default inADHDTestingDataGrabberby Fede Raimondo (#515)Speed up
ParcelAggregationby not passing a target affine to the masker, which madenilearncrop and copy the input image even when the parcellation was already on its grid by Fede Raimondo (#515)Raise an error if a marker changes its input data (which is shared with the other markers of a pipeline), checking the values and their contents (arrays, data frames and images) by Fede Raimondo (#522, #531)
Run complete elements (with a value for each element key, e.g., in each queued job) without searching the dataset for its elements by Fede Raimondo (#524)
Store the features for the element with only the keys that the data type depends on (e.g., only
subjectfor VBM data, when the elements also havetask), and skip the elements already stored by Fede Raimondo (#525)Write the intermediate images (e.g., the warped, smoothed or filtered data) uncompressed in the temporary directory of the element, as they are read right away and deleted after the element is processed, so there is no need to spend time compressing and decompressing them, and run the FSL commands with
FSLOUTPUTTYPE=NIFTIto write them uncompressed by Fede Raimondo (#530)Warp the volumes of 4D data in chunks of
preprocessing.warping.chunksizevolumes (default 100) inSpaceWarper, as the memory used by ANTs and FSL grows with the number of volumes (e.g., about 53 GB to warp 1200 volumes to native space with ANTs) by Fede Raimondo (#530)Keep the data of
fMRIPrepConfoundRemover,TemporalFilter,TemporalSlicerandSmoothing(with nilearn) in the saved file (memory-mapped) instead of in memory, as for the other preprocessors, releasing its memory during the next steps of the pipeline (e.g., 5 GB for 1200 volumes while running AFNI) by Fede Raimondo (#533)Restrict the ALFF and fALFF computation of
ALFFParcels,ALFFSpheresandALFFMapsto the voxels in theirmasks(with-maskfor AFNI’s3dRSFC), as for ReHo, reducing the memory and time (e.g., from 14.5 GB to 9.4 GB and from 7 to 1 minutes for 1200 volumes with AFNI), and do not write the bandpassed time series with3dRSFC(-no_rs_out), as only the parameters are used by Fede Raimondo (#533)Read only the signals of the voxels of the spheres, in chunks of
markers.spheres.chunksizevolumes (default 100), inJuniferNiftiSpheresMasker, instead of loading the whole 4D data, reducing the memory used by the sphere-based markers (e.g.,SphereAggregationandFunctionalConnectivitySpheres) on BOLD data, with the same results, and do not change the input data when it has NaN values by Fede Raimondo (#534)
15.2.5. Features¶
Enable confounds format to be added by introducing
register_confounds_format()by Synchon Mandal (#364)Add
ADHDTestingDataGrabberandn_timepointsforSPMAuditoryTestingDataGrabberandPartlyCloudyTestingDataGrabberby Fede Raimondo (#511)Allow restricting the values of the replacements to grab in
PatternDataGrabber, withreplacementsas a dictionary or with fields linked with_REPLACEMENT_FIELDS(e.g.,tasksin the built-in DataGrabbers), and using the*and?wildcards in the patterns to find the elements by Fede Raimondo (#524)Allow
MultipleDataGrabberto combine DataGrabbers with different element keys, joining their elements on the common keys, and to replace nested data types (e.g., the confounds ofBOLD) with a DataGrabber that only grabs them by Fede Raimondo (#524)Add
BaseDataGrabber.get_type_element_keys()to get the element keys that the data of a data type depends on by Fede Raimondo (#525)
15.2.6. Miscellaneous¶
Drop Python 3.9 and add Python 3.14 support, upgrade codebase to follow modern syntax, bump dependencies and add
uvsupport by Synchon Mandal (#474)Use original
h5ioinstead of junifer’s fork, keeping support for reading the features collected with the fork by Fede Raimondo (#504)Speed up the test suite, split CI into tests requiring external resources (self-hosted) and the rest (GitHub-hosted), build the docs on the self-hosted runner, make the examples faster and use
HDF5FeatureStorage, and bumpjulearnto 0.3.5 by Fede Raimondo (#511)Publish the junifer Docker image (
ghcr.io/juaml/junifer) on every release with the matching junifer version, base it on Ubuntu 24.04 with native ANTs, AFNI and FSL installations and the junifer-data version used by junifer, and stop building the docs and CI images on GitHub Actions by Fede Raimondo (#511)Add the
sphinxoptional dependencies with the tools to build the documentation, makedocsinclude everything needed to build it, and skip building the PR preview of the documentation when the PR is closed by Fede Raimondo (#513)Speed up the test suite by freezing the objects alive after collection, so the full garbage collections forced by
nilearnare much faster by Fede Raimondo (#515)Speed up the external tests by using fewer subjects, the UCLA CNP VBM testing data and
junifer-data1.5.0, and bake the derived testing data and templateflow templates into the CI image by Fede Raimondo (#515)Support
nilearn0.14 (required) by Fede Raimondo (#516)Update the dependencies to their latest versions supporting Python 3.11 (e.g.
numpy2.4,pandas3.0,scipy1.17,click8.5,datalad1.7,templateflow25), fixing the open security alerts, requirejunifer-data>= 1.6.1 and use junifer-data v8 by Fede Raimondo (#520)Pin
neurokit2to 0.2.12, as 0.2.13 requirespandas< 3, and providenp.trapz(removed innumpy2.4) whileMultiscaleEntropyAUCcallsneurokit2by Fede Raimondo (#520)Read dependency versions from the distribution metadata instead of the deprecated
__version__attributes, passstandardize=Nonetonilearnmaskers to avoid deprecation warnings and skip the tests of vendored packages with apytest_ignore_collecthook, asdatalad’s pytest plugin preventscollect_ignorefrom being applied by Fede Raimondo (#520)Cap
sphinxbelow 9, asenum-toolsdoes not support it yet by Fede Raimondo (#520)Use
HDF5FeatureStorageinstead ofSQLiteFeatureStoragein the tests and documentation, as the latter is only kept for compatibility, and fix the component registry test leaving components de-registered by Fede Raimondo (#523)
15.2.7. Deprecations and Removals¶
Drop support for Python 3.10 by Fede Raimondo (#520)
15.3. Junifer 0.0.7 (2026-03-04)¶
15.3.1. Bugfixes¶
Allow
timeseries_2dstorage forHDF5FeatureStorageby Fede Raimondo (#444)Fix FSL presence checking status code by Fede Raimondo (#454)
Bypass warper check for callable masks on native data by Synchon Mandal (#481)
Fix mask specification check involving dicts in
junifer.data.MaskRegistrywhen working in native space by Synchon Mandal (#487)
15.3.2. API Changes¶
fname,overwriteandoutput_formathave been removed fromconfigure_logging()by Synchon Mandal (#231)ParcellationRegistry.getnow returns labels as dictionary mapping from values to labels instead of a list of labels by Synchon Mandal (#257)read_transform()has a new parameternan_policyto handle NaN values when transforming feature data by Fede Raimondo (#429)get_data(),load_data(),list_data(),register_data()andderegister_data()now support"maps"as a valid argument forkindby Synchon Mandal (#458)
15.3.3. Improved Documentation¶
Add documentation on extending data registries by Synchon Mandal (#450)
Add documentation on adding data types by Synchon Mandal (#451)
Add documentation on
ConfigManager, dumping data object and extending data dump assets by Synchon Mandal (#452)
15.3.4. Enhancements¶
Allow parcellation registration with non-continuous ranges as values by Synchon Mandal (#257)
Add support for Chatterjee’s xi correlation in
JuniferConnectivityMeasureby Synchon Mandal (#333)Implement a NaN policy for
read_transform()by Fede Raimondo (#429)Add FreeSurfer 7.4.1 aseg parcellation to
ParcellationRegistryby Synchon Mandal (#470)Simplify
Storageinterface and implementations by Synchon Mandal (#472)Simplify
Preprocessinterface and implementations by Synchon Mandal (#473)Simplify
PipelineStepMixininterface by Synchon Mandal (#476)Improve
Markerinterface and implementations by Synchon Mandal (#477)Add Glasser and Julich-Brain parcellations to
ParcellationRegistryby Synchon Mandal (#486)
15.3.5. Features¶
Introduce
TemporalFilterpreprocessor for temporally filtering BOLD data by Fede Raimondo (#432)Introduce
TemporalSlicerpreprocessor for temporally slicing BOLD data by Synchon Mandal (#443)Enable data registries to be extended by exposing
BasePipelineDataRegistryand introducingregister_data_registry()decorator by Synchon Mandal (#450)Enable data types to be added by introducing
register_data_type()by Synchon Mandal (#451)Allow pipeline data object to be dumped by introducing
DataObjectDumperand available dumping / loading assets to be extended by introducingregister_data_dump_asset()decorator by Synchon Mandal (#452)Introduce
MapsRegistryto centralise probabilistic atlas (maps) data management by Synchon Mandal (#458)Introduce
MapsAggregation,FunctionalConnectivityMaps,EdgeCentricFCMaps,ReHoMaps,ALFFMapsandTemporalSNRMapsby Synchon Mandal (#460)Enable
SpaceWarperto warp data from native space to template spaces via both FSL and ANTs by Synchon Mandal (#462)
15.3.6. Miscellaneous¶
Adopt
structlogfor logging infrastructure by Synchon Mandal (#231)Regular repository maintenance by updating
.pre-commit-config.yaml, replacingblackwithruff-formatand updating tool configs by Synchon Mandal (#441)Bump
junifer-datatov3for Docker images by Synchon Mandal (#456)Bump
junifer-datatov3by Synchon Mandal (#457)Constrain
templateflowversion to>=23.0.0,<25.0.0by Synchon Mandal (#458)Add a new GitHub Action to mark stale issues by Synchon Mandal (#464)
Bump
junifer-datatov4for Docker images by Synchon Mandal (#465)Bump
junifer-datatov4by Synchon Mandal (#466)Disable FSL installation for
junifer-ciDocker image build withjunifer-datav4 by Synchon Mandal (#467)Pin
junifer-ciDocker image topython:3.12-slim-bookwormand re-enable FSL installation by Synchon Mandal (#468)Bump
junifer-datatov5by Synchon Mandal (#470)Bump
junifer-datatov6for Docker images by Synchon Mandal (#483)Bump
junifer-datatov7for Docker images by Synchon Mandal (#485)Bump
junifer-datatov7by Synchon Mandal (#486)Add Dockerfile and a corresponding action for building and publishing the image by Fede Raimondo and Synchon Mandal (#489)
15.4. Junifer 0.0.6 (2025-03-24)¶
15.4.1. Bugfixes¶
Fix
mri_binarizecommand preparation for structures with multiple indices inBrainPrintby Fede Raimondo (#356)Enable
spikemapping fromadhoctofmriprepforfMRIPrepConfoundRemoverby Leonard Sasse and Synchon Mandal (#360)Correct listing for
fMRIPrepConfoundRemoverinjunifer.pipeline.registryby Synchon Mandal (#369)Add
'emomatching'task toDataladAOMICPIOP2by Leonard Sasse (#370)Use correct return code for ANTs commands while checking presence of external commands by Synchon Mandal (#385)
Use the
junifer.pipeline.WorkDirManagerfor temporary directories in theDataladDataGrabberby Fede Raimondo (#386)Fix coordinates space transformation using ANTs by Synchon Mandal (#388)
Fix metadata update for
MultipleDataGrabberand adjustPatternDataGrabber.get_elements()to checklist-like data type values by Fede Raimondo and Synchon Mandal (#398)Use correct file output suffices for AFNI-based markers by Synchon Mandal (#409)
Fix
t_rtampering bynilearn.image.clean_img()infMRIPrepConfoundRemoverby Fede Raimondo and Synchon Mandal (#420)Fix coordinates fetching for Power and Dosenbach from
junifer-databy Synchon Mandal (#431)Remove
Power2013fromCoordinatesRegistryby Synchon Mandal (#436)Correct dispatch methods for
*_data()functions by Synchon Mandal (#439)
15.4.2. API Changes¶
get_parcellation,load_parcellation,list_parcellation,register_parcellation,get_coordinates,load_coordinates,list_coordinates,register_coordinates,get_mask,load_mask,list_mask,register_maskhave been removed in favour ofget_data(),load_data(),list_data(),register_data()andderegister_data()by Synchon Mandal (#387)SpaceWarper’susingnow supports"auto"allowing auto tool selection based on DataGrabber specification by Synchon Mandal (#390)Allow
workdirto also be a mapping in YAML, withpathandcleanupkeys by Synchon Mandal (#402)Add
sourceparameter and resurrectextra_inputparameter forcompute_brain_maskby Fede Raimondo (#404)native_t1wparameter has been replaced withspaceto allowDataladAOMICID1000,DataladAOMICPIOP1andDataladAOMICPIOP2to fetch data in all available spaces by Fede Raimondo (#405)ParcellationRegistry.load()now has a new parametertarget_spaceto provide parcellation in highest possible resolution if it does not match the space of the parcellation by Fede Raimondo and Synchon Mandal (#411)Introduce new CLI parameter
--verbose-dataladto controldatalad’s logging handler by Fede Raimondo (#412)target_dataparameter ofget_template()has been replaced withtarget_imgby Fede Raimondo (#413)Add
template_spaceparameter forcompute_brain_maskandresolutionparameter forget_template()by Fede Raimondo (#415)Add
scrub,fd_thresholdandstd_vars_thresholdparameters tofMRIPrepConfoundRemoverand allow"scrubbing"key of type bool forstrategyby Synchon Mandal (#421)
15.4.3. Improved Documentation¶
Improve Sphinx configuration and extensions by Synchon Mandal (#358)
Add documentation on analysing extracted features by Synchon Mandal (#359)
Add documentation on how to make a
juniferplugin by Synchon Mandal (#366)
15.4.4. Enhancements¶
Raise error when partial or complete element selectors are invalid when running the pipeline by Synchon Mandal (#319)
Add support for Spearman’s correlation in
JuniferConnectivityMeasureby Leonard Sasse (#335)Set proper stdout encoding for
run_ext_cmd()to ease human readability by Fede Raimondo (#357)Adapt usage of
junifer-dataclient API to fetch parcellations, masks, coordinates and xfms by Synchon Mandal (#363)Allow for external python files in the
withsection of the yaml to import other files by Fede Raimondo (#367)Use
datalad-enabled repository for template space transform files inget_xfm()by Synchon Mandal (#368)Add a
cleanupparameter to thejunifer.pipeline.WorkDirManager, which allows to disable cleaning up temporary directories by Fede Raimondo (#389)Update
Warpdata type to be a list of dictionaries and adapt to allow multiple transforms to be specified by Synchon Mandal (#390)Refactor the masking logic in the pipeline to account for and optimise space transformations and merges by Synchon Mandal and Fede Raimondo (#395)
Allow
workdirmapping form in YAML for easy debugging of single elementrunby disabling cleanup ofjunifer.pipeline.WorkDirManagerby Synchon Mandal (#402)Use
junifer.utils.ConfigManager()to skip time-consuming dataset ID and dirty checks forDataladDataGrabberby Fede Raimondo (#403)Enable
compute_brain_maskto use subject-specific probseg files by Fede Raimondo (#404)Update
DataladAOMICID1000,DataladAOMICPIOP1andDataladAOMICPIOP2to fetch data in all available spaces by Fede Raimondo (#405)Update Preprocessors to sync data their paths so that the results are idempotent by Synchon Mandal (#408)
Ease asset storage for AFNI-based markers by Synchon Mandal (#409)
Refactor the parcellation logic in the pipeline to account for and optimise space transformations and merges by Synchon Mandal and Fede Raimondo (#411)
Adapt mask warpers to use correct interpolation method based on the type of data by Synchon Mandal and Fede Raimondo (#416)
Adapt usage of
junifer-dataDataLad dataset to fetch parcellations, masks, coordinates and xfms by Synchon Mandal (#418)Add scrubbing support to
fMRIPrepConfoundRemoverby Synchon Mandal (#421)Add commit SHA check for
junifer_datato simplify data fetching by Fede Raimondo (#434)
15.4.5. Features¶
Introduce
normalize()andreweight()functions for downstream BrainPrint analysis inonthefly._brainprintby Synchon Mandal (#354)Introduce
junifer.pipeline.PipelineComponentRegistryto centralise pipeline component management by Synchon Mandal (#362)Add support for plugins by Synchon Mandal (#366)
Introduce
junifer.data.CoordinatesRegistry,junifer.data.ParcellationRegistryandjunifer.data.MaskRegistryto centralise data management by Synchon Mandal (#387)Introduce
junifer.typingsub-module to organise internal and external type hints by Synchon Mandal (#392)Introduce
junifer.utils.ConfigManagersingleton class to manage global configuration by Fede Raimondo (#401)Introduce
BOLD.referencenested type and adaptSpaceWarperand necessary data components by Fede Raimondo (#407)Allow masks to be warped, if found, in
SpaceWarperby Synchon Mandal (#408)Add support for coloured
logging.Formatterto use withjunifer’slogging.StreamHandlerbased on environment by Fede Raimondo (#412)Allow storage of 2D timeseries, currently only supported by HDF5FeatureStorage by Fede Raimondo (#422)
15.4.6. Miscellaneous¶
Adopt lazy-import mechanism for the package by Synchon Mandal (#355)
Refactor
apisub-package and introduce newclisub-package by Synchon Mandal (#361)Add
junifer-dataas a dependency by Synchon Mandal (#363)Drop support for Python 3.8, add support for Python 3.13 and make Python 3.12 the base for code coverage by Synchon Mandal (#372)
Add Dockerfile for docs CI and a corresponding action for building and publishing the image by Synchon Mandal (#373)
Adopt usage of custom docs CI image for building and previewing docs actions by Synchon Mandal (#374)
Update Dependabot GitHub Action to support groups by Synchon Mandal (#380)
Add Dockerfile for CI and a corresponding action for building and publishing the image by Synchon Mandal (#382)
Adopt usage of custom CI image for testing junifer action by Synchon Mandal (#383)
Improve docs publishing action and add a manual trigger for it by Synchon Mandal (#384)
Refactor
Singletonclass to use a metaclass instead of a class decorator by Fede Raimondo (#391)Update type hints across codebase to be Python>=3.9 compatible by Synchon Mandal (#393)
Update Docker image recipes and GitHub Actions workflows by Synchon Mandal (#396)
Simplify logic for parcellation and mask space warping by Synchon Mandal (#414)
Remove
httpxas a dependency by Synchon Mandal (#418)Fix coverage in CI by Fede Raimondo (#424)
Use
junifer-datain CI images by Synchon Mandal (#427)Improve GitHub Actions workflows by Synchon Mandal (#428)
Bump
junifer-datatov2for CI workflows, removePowerand addSeitzman2018toCoordinatesRegistryby Synchon Mandal (#437)Bump
junifer-datatov2for Docker images by Synchon Mandal (#438)
15.5. Junifer 0.0.5 (2024-07-22)¶
15.5.1. Bugfixes¶
Remove extra dimension from parcellations warped via ANTs to other template spaces by Synchon Mandal (#324)
Remove extra dimension from parcellations warped via ANTs when merging parcellations by Synchon Mandal (#331)
Fix
junifer resetto properly delete storage directory and handlejunifer_jobsdeletion if not empty by Synchon Mandal (#332)Fix validation failure of multiple Preprocessors with different input data types requirement by Synchon Mandal (#339)
Remove extra dimension from masks warped via ANTs by Synchon Mandal (#340)
15.5.2. API Changes¶
For
CrossParcellationFC,aggregation_methodandcorrelation_methodhave been renamed toagg_methodandcorr_methodrespectively andagg_method_paramshas been added; forFunctionalConnectivityBase,FunctionalConnectivityParcels,FunctionalConnectivitySpheres,EdgeCentricFCParcelsandEdgeCentricFCSpheres,cor_methodandcor_method_paramshave been renamed toconn_methodandconn_method_paramsby Synchon Mandal (#348)fractionalparameter forALFFBase,ALFFParcelsandALFFSphereshave been removed in favour of returning both ALFF and fALFF by Synchon Mandal (#349)Add
partial_pattern_okargument toPatternDataGrabberto not raise error on missing mandatory key checks for data types by Synchon Mandal (#351)
15.5.3. Improved Documentation¶
Improve sub-package level docstrings to better reflect their purposes by Synchon Mandal (#115)
Update “Queueing Jobs (HPC, HTC)” section by Synchon Mandal (#327)
Add missing DataGrabber
typesoptions in respective docstrings ofDataladAOMICID1000,DataladAOMICPIOP1,DataladAOMICPIOP2andDMCC13Benchmarkby Synchon Mandal (#330)
15.5.4. Enhancements¶
Add test to be sure that
JuniferNiftiSpheresMaskerwith mean aggregation function behaves exactly asnilearn.maskers.NiftiSpheresMaskerby Synchon Mandal (#136)Refactor DataGrabber
patternsto make helper types like*_maskas “nested types” of the actual data type by Synchon Mandal (#341)Adapt
DataladAOMICID1000,DataladAOMICPIOP1andDataladAOMICPIOP2to supportFreeSurferdata type by Synchon Mandal (#346)FunctionalConnectivity-family Markers now usesklearn.covariance.EmpiricalCovarianceas the default covariance estimator andcorrelationas the default connecivity matrix kind by Synchon Mandal (#348)Enable Markers to output multiple features by Synchon Mandal (#349)
Add support for
UKB_15K_GMmask by Synchon Mandal (#350)Adapt
MultipleDataGrabberto handle “nested types” introduced in #341 by Synchon Mandal (#351)
15.5.5. Features¶
Introduce
Smoothingfor smoothing / blurring images as a preprocessing step by Synchon Mandal (#161)Add support for choosing between
bashandzshshells when queueing by Synchon Mandal (#273)Add
junifer list-elementsto list out available elements for a DataGrabber based on filtering via--elementby Synchon Mandal (#323)Introduce new storage type
scalar_tableand adaptHDF5FeatureStorageto support it by Synchon Mandal (#343)Add support for BrainPrint marker by Synchon Mandal (#344)
Allow Unix path expansion directives to be used in
PatternDataGrabberpatternsby Synchon Mandal (#345)Add support for
FreeSurferdata type forPatternDataGrabberby Synchon Mandal (#346)Introduce
JuniferConnectivityMeasurefor customising functional connectivity matrix kinds and measurements by Synchon Mandal (#348)Introduce
PatternValidationMixinto simplify validation for pattern-based DataGrabbers anddeep_update()for updating dictionary with varying width and depth by Synchon Mandal (#351)
15.5.6. Miscellaneous¶
Improve CI to allow external tool installation to fail gracefully and update necessary dependency version and conditional checks by Synchon Mandal (#318)
Update
pre-commitdependency versions, addblacken-docstopre-commit, add__all__for modules, sub-packages and package, updateruffandpytestconfigs inpyproject.tomlby Synchon Mandal (#337)Add support for accessing FreeSurfer via Docker wrapper along with
mri_binarize,mri_pretess,mri_mcandmris_convertby Synchon Mandal (#342)Update core and docs dependencies by Synchon Mandal (#347)
Integrate
warningswithloggingrespecting filters by Fede Raimondo (#351)
15.5.7. Deprecations and Removals¶
Remove
Powercoordinates,fetch_icbm152_brain_gm_maskmask,BOLDWarperPreprocessor by Synchon Mandal (#336)
15.6. Junifer 0.0.4 (2024-04-05)¶
15.6.1. Bugfixes¶
Make copying of assets in
withblock of YAML, relative to YAML and not to current working directory by Fede Raimondo and Synchon Mandal (#224)Adapt
junifer queueto properly use HTCondor >=10.4.0condor_submit_dagby Fede Raimondo and Synchon Mandal (#233)Use 1 instead of 0 for successful FSL commands in
_check_fsl()by Synchon Mandal (#272)Store native warped parcellations, coordinates and masks in element-scoped tempdirs for the pipeline to work by Synchon Mandal (#274)
Change interpolation scheme for parcel and mask native space transformation to nearest neighbour by Synchon Mandal (#276)
Bypass FSL
std2imgcoordstdin bug and use recommended piped input for coordinates transformation by Synchon Mandal (#278)Add
-stdto FSLstd2imgcoordfor coordinates transformation by Synchon Mandal (#280)Replace FSL
std2imgcoordwithimg2imgcoordas the former is incorrect for coordinates transformation to other template spaces. (#281)Propagate ReHo and fALFF maps, for aggregation to convert to other template spaces when required by Synchon Mandal (#282)
Allow
junifer.pipeline.WorkDirManagerto accept str via theworkdirparameter by Synchon Mandal (#283)Avoid warping mask preprocessed with
fMRIPrepConfoundRemoverand used by markers withmask="inherit"in subject-native template space by Fede Raimondo and Synchon Mandal (#284)Pass down input path if input space is “native” for
ReHoEstimatorandALFFEstimator, else use respective compute maps by Fede Raimondo and Synchon Mandal (#286)Fix
HTCondorAdapter’s script generation to use double quotes instead of single quotes for HTCondor’sVARSby Synchon Mandal (#312)Fix element access for
DMCC13BenchmarkDataGrabber by Synchon Mandal (#314)Add a validation step on the
run()function to validate the marker collection by Fede Raimondo (#320)Add the executable flag to the ants docker scripts, fsl docker scripts and other running scripts by Fede Raimondo (#321)
Force
strdtype when parsing elements from file by Synchon Mandal (#322)
15.6.2. API Changes¶
Rename
Powercoordinates toPower2011by Synchon Mandal (#245)Add
feature_md5argument toread_transform()by Synchon Mandal (#248)Add
native_t1wparameter toDataladAOMICID1000,DataladAOMICPIOP1,DataladAOMICPIOP2, enabling fetching of T1w data in subject-native space by Synchon Mandal (#252)Modify
preprocessortopreprocessorsinrun()andpreprocessingtopreprocessorsinMarkerCollectionto accept multiple preprocessors by Synchon Mandal (#263)Add
spaceparameter toregister_coordinates,register_parcellationandregister_maskand return space fromload_coordinates,load_parcellationandload_maskby Synchon Mandal and Fede Raimondo (#268)Add
template_typeparameter toget_template()by Synchon Mandal (#299)Change
BasePreprocessor.preprocess()return values to preprocessed target data and “helper” data types as a dictionary by Synchon Mandal (#310)Add a positional argument
usingfor Markers and Preprocessors having implementation-based variations, in particularReHoParcels,ReHoSpheres,ALFFParcels,ALFFSpheresandBOLDWarperby Synchon Mandal (#311)Change all
probseg_types toVBM_types by Fede Raimondo (#320)Change the subject and session patterns for
DataladAOMICID1000,DataladAOMICPIOP1,DataladAOMICPIOP2andDMCC13Benchmarkso that they are consistent with their own"participants.tsv"file by Fede Raimondo (#325)
15.6.3. Improved Documentation¶
Add Zenodo badge in
READMEand improve general documentation by Synchon Mandal (#247)Rename
extMDNtoextDMN(extended default mode network) and fix listing foreMDN(extended multiple-demand network) by Synchon Mandal (#251)Fixed typo in code example for adding masks from “register_custom_mask” to “register_mask” by Tobias Muganga (#291)
Rename
Miscsection toMiscellaneousindocs/whats_new.rstby Synchon Mandal (#300)Improve documentation by adding information about space transformation and writing custom Preprocessors by Synchon Mandal (#317)
15.6.4. Enhancements¶
Support element(s) to be specified via text file for
--elementoption ofjunifer runby Synchon Mandal (#182)Support element-scoped directory and temporary directories for
junifer.pipeline.WorkDirManagerby Synchon Mandal (#258)Improve element directory cleanup via
junifer.pipeline.WorkDirManager.cleanup_elementdirmethod by Synchon Mandal (#259)Improve
BasePreprocessorfor easy subclassing and adaptfMRIPrepConfoundRemoverto it by Synchon Mandal (#260)Add
spaceinformation to existing datagrabbers, masks, parcellations and coordinates by Synchon Mandal and Fede Raimondo (#268)Add
modeas an aggregation function option inget_aggfunc_by_name()by Synchon Mandal (#287)Adapt
BOLDWarperto use FSL or ANTs depending on warp file extension by Synchon Mandal (#293)Rewrite
compute_brain_maskto allow variable template fetching via templateflow, according to target data by Synchon Mandal (#299)Replace
requestswithhttpxfor fetching parcellations by Synchon Mandal (#300)Allow
BOLDWarperto warp BOLD data to other MNI spaces by Synchon Mandal (#302)Add support for local
junifer queuevia GNU Parallel by Synchon Mandal (#306)Improve
PatternDataGrabberandPatternDataladDataGrabber’spatternsto enablespace,format,mask_itemand other metadata description handling via YAML by Synchon Mandal (#308)Improve
BasePreprocessorby revampingBasePreprocessor.preprocess()andBasePreprocessor._fit_transformto handle “helper” data types better and make the pipeline explicit where data is being altered by Synchon Mandal (#310)Improve external dependency handling for
PipelineStepMixin-derived objects having implementation-based variations by Synchon Mandal (#311)
15.6.5. Features¶
Introduce complexity markers:
HurstExponent,MultiscaleEntropyAUC,PermEntropy,RangeEntropy,RangeEntropyAUCandSampleEntropyby Amir Omidvarnia (#145)Add
junifer resetto reset storage and jobs directory by Synchon Mandal (#240)Add support for
Power2013coordinates by Synchon Mandal (#245)Support
venvas environment kind for queueing jobs by Synchon Mandal (#249)Add support for
AutobiographicalMemorycoordinates by Synchon Mandal (#250)Add support for subject-native space by Synchon Mandal and Fede Raimondo (#252)
Introduce
junifer.pipeline.WorkDirManagersingleton class to manage working and temporary directories across pipeline by Synchon Mandal (#254)Introduce
get_parcellationto fetch parcellation tailored for the data by Synchon Mandal (#264)Introduce
get_coordinatesto fetch coordinates tailored for the data by Synchon Mandal (#265)Introduce
junifer.preprocess.fsl.apply_warper._ApplyWarperto wrap FSL’sapplywarpby Synchon Mandal (#266)Introduce
BOLDWarperfor warping BOLD data via FSL’sapplywarpby Synchon Mandal (#267)Introduce
DMCC13Benchmarkto access DMCC13benchmark dataset by Synchon Mandal (#271)Add
Brainnetome 246parcellation tojunifer.databy Synchon Mandal (#275)Introduce
junifer.preprocess.ants.ants_apply_transforms_warper._AntsApplyTransformsWarperto wrap ANTs’antsApplyTransformsby Synchon Mandal (#293)Introduce
run_ext_cmd()to take care of the boilerplate code for running external commands from FSL, ANTs and others by Synchon Mandal (#295)Introduce
get_xfm()to fetch transformation files for moving between template spaces by Synchon Mandal (#297)Introduce
get_template()to fetch template space image tailored to a target data by Synchon Mandal (#298)Add support for on-the-fly template space transformation in
get_parcellationandget_maskto allow parcellation and mask in different template spaces to work with aDataGrabber’s data in a specified template space. (#299)Introduce
SpaceWarperfor warpingT1w,BOLD,VBM_GM,VBM_WM,fALFF,GCORandLCORdata to other spaces by Synchon Mandal (#301)Introduce
QueueContextAdapteras an abstract base class for job queueing andHTCondorAdapteras its implementation for HTCondor by Synchon Mandal (#309)
15.6.6. Miscellaneous¶
Update dependencies requirements by Fede Raimondo (#253)
Pin
ruffto0.1.0as the lowest version and updatepre-commitconfig by Synchon Mandal (#261)Add support for accessing FSL via Docker wrapper along with
flirt,applywarpandstd2imgcoordcommands by Synchon Mandal (#262)Improve documentation, packaging and code style by Synchon Mandal (#269)
Add support for Python 3.12 and make Python 3.11 the base for code coverage and CI checks by Synchon Mandal (#270)
Add support for accessing ANTs via Docker wrapper along with
antsApplyTransformsandantsApplyTransformsToPointsby Synchon Mandal (#277)Make the external tool wrappers output to stderr instead of stdout by Synchon Mandal (#279)
Add support for accessing FSL
img2imgcoordvia Docker wrapper command by Synchon Mandal (#281)Make
BOLDWarpertool-agnostic by moving it fromjunifer.preprocess.fsltojunifer.preprocessby Synchon Mandal (#288)Add support for accessing ANTs’
ResampleImagevia Docker wrapper by Synchon Mandal (#293)Update
pyproject.tomland add FAIR shield inREADME.mdby Synchon Mandal (#294)Update dependency listing in
pyproject.toml, add.github/dependabot.ymlto auto-update GitHub Actions, addANTsandFSLinstallation in CI and improve general code style by Synchon Mandal (#300)
15.6.7. Deprecations and Removals¶
Deprecate
BOLDWarperand mark for removal in v0.0.4 by Synchon Mandal (#301)
15.7. Junifer 0.0.3 (2023-07-21)¶
15.7.1. Bugfixes¶
Enable YAML 1.2 support and allow multiline strings in YAML which would not work earlier by Synchon Mandal (#223)
Handle
datalad.IncompleteResultsErrorexception for partial clone inDataladDataGrabberby Synchon Mandal (#235)
15.7.2. API Changes¶
Expose
typesparameter forDataladAOMICID1000,DataladAOMICPIOP1,DataladAOMICPIOP2andJuselessUCLAby Synchon Mandal (#132)Rename
junifer.testing.datagrabbers.SPMAuditoryTestingDatagrabbertoSPMAuditoryTestingDataGrabberandjunifer.testing.datagrabbers.OasisVBMTestingDatagrabbertoOasisVBMTestingDataGrabberby Synchon Mandal (#222)Add
BaseFeatureStorage.read()method for storage-like objects by Synchon Mandal (#236)
15.7.3. Improved Documentation¶
Improve general prose, formatting and code blocks in docs and set line length for
.rstfiles to 80 by Synchon Mandal (#220)Update
julearnexample underexamplesby Synchon Mandal (#242)
15.7.4. Enhancements¶
Change validation of
typesagainstpatternsto allow a subset ofpatterns’s types to be used forDataGrabberdata fetch by Synchon Mandal (#132)Rename instances of “Datagrabber” to “DataGrabber” especially in
junifer.testingto be consistent by Synchon Mandal (#222)Use
ruamel.yamlinstead ofpyyamlas YAML I/O library by Synchon Mandal (#223)Adopt
DataGrabberconsistently throughout codebase to match with the documentation by Synchon Mandal (#226)Adopt
DataReaderconsistently throughout codebase to match with the documentation by Synchon Mandal (#227)Enable
stdoutandstderrcapture for AFNI commands by Synchon Mandal (#234)Adapt
HDF5FeatureStorage.read_df()due to addition ofHDF5FeatureStorage.read()by Synchon Mandal (#236)
15.7.5. Features¶
Add
AICHA v1andAICHA v2parcellations tojunifer.databy Synchon Mandal (#173)Add
Shen 2013,Shen 2015andShen 2019parcellations tojunifer.databy Synchon Mandal (#184)Add
Yan 2023parcellation tojunifer.databy Synchon Mandal (#225)Introduce
ontheflysub-module andread_transform()for quick transform operations on stored data by Synchon Mandal (#237)
15.7.6. Miscellaneous¶
Consistent docstrings for pytest fixtures used in the test suite by Synchon Mandal (#228)
Adopt
ruffas the only linter for the codebase by Synchon Mandal (#229)Improve
codespellsupport by fixing typos in documentation by Synchon Mandal (#230)Adopt
pre-commitfor adding and managing git pre-commit hooks by Synchon Mandal (#232)Improve docstrings and code style and parametrize remaining tests for
junifer.data.parcellationsby Synchon Mandal (#238)Bump
numpyversion constraint to>=1.24,<1.26by Synchon Mandal (#241)
15.8. Junifer 0.0.2 (2023-03-31)¶
15.8.1. Bugfixes¶
Fix a bug in which relative storage URIs will be computed relative to the CWD and not to the location of the YAML file by Fede Raimondo. (#127)
Fix
junifer runto respect preprocess step specified in the pipeline by Synchon Mandal (#159)Fix a bug in which only
REST1andREST2tasks could be accessed inDataladHCP1200andHCP1200datagrabbers by Fede Raimondo (#183)Fix a bug in which fitting a marker (e.g.
SphereAggregation) on a specific type (e.g.:BOLD) will fail if another non-supported type (e.g.:BOLD_confounds) is present in the data object by Fede Raimondo (#185)Fix
ALFFParcels,ALFFSpheres,ReHoSpheresandReHoParcelspass theextra_inputparameter by Fede Raimondo (#187)Fix several markers that did not properly handle the
extra_inputparameter by Fede Raimondo (#189)Fix a bug in which relative paths in the YAML
withdirective would be computed relative to the current working directory of the process instead of the location of the YAML file by Fede Raimondo. (#191)Fix an issue with datalad cache and locks in which the user-specific configuration might create a conflict in high throughput systems by Fede Raimondo (#192)
Fix a bug in which
ParcelAggregationcould yield duplicated column names if two or more parcels were used and label names were not unique by Fede Raimondo (#194)Fix a bug in which
count()will not be correctly applied across an axis by Fede Raimondo (#195)Fix an issue with datalad cache and locks in which the overridden settings in Junifer were not propagated to subprocesses, resulting in using the default settings by Fede Raimondo (#199)
Fix a bug in which
get_maskfails forFunctionalConnectivityBaseclass, because of missing extra_input parameter by Leonard Sasse (#200)Fix the output of
RSSETSMarkerto be 2D by Synchon Mandal (#215)
15.8.2. API Changes¶
Add
confounds_formatparameter toPatternDataGrabberconstructor for improved handling of confounds specified viaBOLD_confoundsdata type by Synchon Mandal (#158)Rename
store_table()tostore_vector()for storage-like objects and adapt marker-like objects to use"vector"in place of"table"for storage. Also, improve the logic of storing vectors by Synchon Mandal (#181)Add
ica_fixparameter toDataladHCP1200andHCP1200datagrabbers to allow for selecting data processed with ICA+FIX. Default value isFalsewhich changes behaviour since 0.0.1 release. By Fede Raimondo (#183)Add
pre_runparameter to_queue_condorby Fede Raimondo (#188)Expose
allow_overlapparameter inSphereAggregationand related markers by Fede Raimondo (#190)Rename
AmplitudeLowFrequencyFluctuationParcelsandAmplitudeLowFrequencyFluctuationSpherestoALFFParcelsandALFFSpheresby Synchon Mandal (#216)
15.8.3. Improved Documentation¶
Add more documentation on registering parcellations, coordinates, and masks by Leonard Sasse (#166)
Migrate and document changelog creation and maintenance via
towncrierby Synchon Mandal (#203)Add copy button to documentation code blocks by Synchon Mandal (#205)
Add sections starting and help in the documentation by Fede Raimondo (#210)
Shorten Sphinx references across code and docs, and add
blackshield in README by Synchon Mandal (#218)
15.8.4. Enhancements¶
Organize functional connectivity markers in
junifer.markers.functional_connectivityby Synchon Mandal (#107)Change HCP datagrabber tests to decrease CI running time by Fede Raimondo (#155)
Allow
PartlyCloudyTestingDataGrabberto be accessible viaimport junifer.testing.registryby Synchon Mandal (#160)Update docstrings and fix typo in log message by Synchon Mandal (#165)
Add fMRIPrep brain masks to the datagrabber patterns for all datagrabbers in the aomic sub-package by Leonard Sasse (#177)
Improved logging output for preprocessing, collecting and pipeline building from YAML by Fede Raimondo (#185)
Allow for empty spheres in
JuniferNiftiSpheresMasker, that will result in NaNs. Also, modify the behaviour of thecollectparameter in HTCondorqueuefunction to run a collect job even if some of the previous jobs fail. This is useful to collect the results of a pipeline even if some of the jobs fail by Fede Raimondo (#190)Allow for empty parcels in
ParcelAggregation, that will result in NaNs by Fede Raimondo (#194)Improve metadata and data I/O for
HDF5FeatureStorageby Synchon Mandal (#196)Force datalad to be non-interactive on queued jobs by Fede Raimondo (#201)
Add missing
abstractmethoddecorators forget_valid_inputsmethods ofBaseMarkerandBasePreprocessorby Synchon Mandal (#214)
15.8.5. Features¶
Add
EdgeCentricFCParcelsandEdgeCentricFCSpheresby Leonard Sasse (#64)Expose a
merge_parcellationsfunction to merge a list of parcellations by Leonard Sasse (#146)Add support for HDF5 feature storage via
HDF5FeatureStorageby Synchon Mandal (#147)Add
TemporalSNRParcelsandTemporalSNRSpheresby Leonard Sasse (#163)Add support for
Powercoordinates by Synchon Mandal (#167)Add support for
Dosenbachcoordinates by Synchon Mandal (#168)Add support for nilearn computed masks (
compute_epi_mask,compute_brain_mask,compute_background_mask,fetch_icbm152_brain_gm_mask) by Fede Raimondo (#175)Add aggregation function
count()that returns the number of elements in a given axis. This allows to count the number of voxels per sphere/parcel when used asmethodin markers by Fede Raimondo (#190)
15.9. Junifer 0.0.1 (2022-12-20)¶
15.9.1. Bugfixes¶
Fix a bug in which a
PatternDataGrabberwould now work with relativedatadirpaths (reported by Leonard Sasse, fixed by Fede Raimondo) (#96, #98)Fix a bug in which
DataladAOMICPIOP2datagrabber did not use user input to constrain elements based on tasks by Leonard Sasse (#105)Fix a bug in which a datalad dataset could remove a user-cloned dataset by Fede Raimondo (#53)
Fix a bug in which CLI command would not work using elements with more than one field by Fede Raimondo
Fix a bug in which the generated DAG for HTCondor will not work by Fede Raimondo (#143)
15.9.2. API Changes¶
Change the
single_outputdefault parameter in storage classes fromFalsetoTrueby Fede Raimondo (#134)
15.9.3. Improved Documentation¶
Add an example how to use
juniferandjulearnin one pipeline to extract features and do machine learning by Leonard Sasse, Nicolas Nieto, and Sami Hamdan (#40)Add documentation for the datagrabbers by Leonard Sasse, Nicolas Nieto, and Sami Hamdan
Change documentation template to furo. Fix references and standardize documentation by Fede Raimondo (#114)
15.9.4. Enhancements¶
Add comments to
DataladDataGrabberdatagrabber and change to usedatalad-cloneinstead ofdatalad-installby Benjamin Poldrack (#55)Upgrade storage interface for storage-like objects by Synchon Mandal (#84)
Add missing type annotations by Synchon Mandal (#74)
Refactor markers
onattribute andget_valid_inputsto verify that the marker can be computed on the input data types by Fede RaimondoAdd test for
DataladHCP1200datagrabber by Synchon Mandal (#93)Refactor
DataladAOMICID1000slightly by Leonard Sasse (#94)Rename “atlas” to “parcellation” by Fede Raimondo (#116)
Refactor the
BaseDataGrabberclass to allow for easier subclassing by Fede Raimondo (#123)Allow custom aggregation method for
SphereAggregationby Synchon Mandal (#102)Add support for “masks” by Fede Raimondo (#79)
Allow
ParcelAggregationto apply multiple parcellations at once by Fede Raimondo (#131)Refactor
PipelineStepMixinto improve its implementation and validation for pipeline steps by Synchon Mandal (#152)
15.9.5. Features¶
Implement
SPMAuditoryTestingDataGrabberdatagrabber by Fede Raimondo (#52)Implement matrix storage in SQliteFeatureStorage by Fede Raimondo (#42)
Implement
FunctionalConnectivityParcelsmarker for functional connectivity using a parcellation by Amir Omidvarnia and Kaustubh R. Patil (#41)Implement
register_coordinates,list_coordinatesandload_coordinatesby Fede Raimondo (#11)Add
DataladAOMICID1000datagrabber for AOMIC ID1000 dataset including tests and creation of mock dataset for testing by Vera Komeyer and Xuan Li (#60)Add support to access other input in the data object in the
computemethod by Fede RaimondoImplement
RSSETSMarkermarker by Leonard Sasse, Nicolas Nieto and Sami Hamdan (#51)Implement
SphereAggregationmarker by Fede Raimondo (#83)Implement
DataladAOMICPIOP1andDataladAOMICPIOP2datagrabbers for AOMIC PIOP1 and PIOP2 datasets respectively by Leonard Sasse (#94)Implement
JuselessDataladCamCANVBMdatagrabber by Leonard Sasse (#99)Implement
JuselessDataladIXIVBMCAT output datagrabber for juseless by Leonard Sasse (#48)Add
junifer wtfto report environment details by Synchon Mandal (#33)Add
junifer selftestto report environment details by Synchon Mandal (#9)Implement
JuselessDataladAOMICID1000VBMdatagrabber for accessing AOMIC ID1000 VBM from juseless by Felix Hoffstaedter and Synchon Mandal (#57)Add
fMRIPrepConfoundRemoverby Fede Raimondo and Leonard Sasse (#111)Implement
CrossParcellationFCmarker by Leonard Sasse and Kaustubh R. Patil (#85)Add
JuselessUCLAdatagrabber for the UCLA dataset available on juseless by Leonard Sasse (#118)Introduce a singleton decorator for marker computations by Synchon Mandal (#151)
Implement
ReHoParcelsandReHoSpheresmarkers by Synchon Mandal (#36)Implement
ALFFParcelsandALFFSpheresmarkers by Fede Raimondo (#35)
15.9.6. Miscellaneous¶
Create the repository based on the mockup by Fede Raimondo