14. What’s new#
14.1. Junifer 0.0.3 (2023-07-21)#
14.1.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)
14.1.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)
14.1.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)
14.1.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)
14.1.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)
14.1.6. Misc#
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)
14.2. Junifer 0.0.2 (2023-03-31)#
14.2.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_mask()fails for FunctionalConnectivityBase class, because of missing extra_input parameter by Leonard Sasse (#200)Fix the output of
RSSETSMarkerto be 2D by Synchon Mandal (#215)
14.2.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)
14.2.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)
14.2.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)
14.2.5. Features#
Add
EdgeCentricFCParcelsandEdgeCentricFCSpheresby Leonard Sasse (#64)Expose a
merge_parcellations()function 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)
14.3. Junifer 0.0.1 (2022-12-20)#
14.3.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)
14.3.2. API Changes#
Change the
single_outputdefault parameter in storage classes fromFalsetoTrueby Fede Raimondo (#134)
14.3.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)
14.3.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)
14.3.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_coordinates()andload_coordinates()by 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)
14.3.6. Misc#
Create the repository based on the mockup by Fede Raimondo