[ENH]: Shorten Sphinx references in codebase #218

Merged
synchon merged 62 commits from chore/shorten-sphinx-ref into main 2023-03-31 12:47:53 +00:00
61 changed files with 249 additions and 259 deletions

View file

@ -7,6 +7,7 @@
![PyPI - Wheel](https://img.shields.io/pypi/wheel/junifer?style=flat-square) ![PyPI - Wheel](https://img.shields.io/pypi/wheel/junifer?style=flat-square)
fraimondo commented 2023-03-31 12:09:25 +00:00 (Migrated from github.com)

There's an error here.

There's an error here.
![GitHub](https://img.shields.io/github/license/juaml/junifer?style=flat-square) ![GitHub](https://img.shields.io/github/license/juaml/junifer?style=flat-square)
![Codecov](https://img.shields.io/codecov/c/github/juaml/junifer?style=flat-square) ![Codecov](https://img.shields.io/codecov/c/github/juaml/junifer?style=flat-square)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
## About ## About

View file

@ -43,55 +43,55 @@ Available
- Type/Config - Type/Config
- State - State
- Version Added - Version Added
* - :class:`junifer.datagrabber.DataladHCP1200` * - :class:`.DataladHCP1200`
- `HCP OpenAccess dataset <https://github.com/datalad-datasets/human-connectome-project-openaccess>`_ - `HCP OpenAccess dataset <https://github.com/datalad-datasets/human-connectome-project-openaccess>`_
- Open with registration - Open with registration
- Built-in - Built-in
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.configs.juseless.datagrabbers.JuselessDataladUKBVBM` * - :class:`.JuselessDataladUKBVBM`
- UKB VBM dataset preprocessed with CAT. Available for Juseless only. - UKB VBM dataset preprocessed with CAT. Available for Juseless only.
- Restricted - Restricted
- ``junifer.configs.juseless`` - ``junifer.configs.juseless``
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.configs.juseless.datagrabbers.JuselessDataladCamCANVBM` * - :class:`.JuselessDataladCamCANVBM`
- CamCAN VBM dataset preprocessed with CAT. Available for Juseless only. - CamCAN VBM dataset preprocessed with CAT. Available for Juseless only.
- Restricted - Restricted
- ``junifer.configs.juseless`` - ``junifer.configs.juseless``
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.datagrabber.DataladAOMICID1000` * - :class:`.DataladAOMICID1000`
- `AOMIC 1000 dataset <https://github.com/OpenNeuroDatasets/ds003097>`_ - `AOMIC 1000 dataset <https://github.com/OpenNeuroDatasets/ds003097>`_
- Open without registration - Open without registration
- Built-in - Built-in
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.datagrabber.DataladAOMICPIOP1` * - :class:`.DataladAOMICPIOP1`
- `AOMIC PIOP1 dataset <https://github.com/OpenNeuroDatasets/ds002785>`_ - `AOMIC PIOP1 dataset <https://github.com/OpenNeuroDatasets/ds002785>`_
- Open without registration - Open without registration
- Built-in - Built-in
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.datagrabber.DataladAOMICPIOP2` * - :class:`.DataladAOMICPIOP2`
- `AOMIC PIOP2 dataset <https://github.com/OpenNeuroDatasets/ds002790>`_ - `AOMIC PIOP2 dataset <https://github.com/OpenNeuroDatasets/ds002790>`_
- Open without registration - Open without registration
- Built-in - Built-in
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.configs.juseless.datagrabbers.JuselessDataladAOMICID1000VBM` * - :class:`.JuselessDataladAOMICID1000VBM`
- AOMIC ID1000 VBM dataset. Available for Juseless only. - AOMIC ID1000 VBM dataset. Available for Juseless only.
- Restricted - Restricted
- ``junifer.configs.juseless`` - ``junifer.configs.juseless``
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.configs.juseless.datagrabbers.JuselessDataladIXIVBM` * - :class:`.JuselessDataladIXIVBM`
- `IXI VBM dataset <https://brain-development.org/ixi-dataset/>`_. Available for Juseless only. - `IXI VBM dataset <https://brain-development.org/ixi-dataset/>`_. Available for Juseless only.
- Restricted - Restricted
- ``junifer.configs.juseless`` - ``junifer.configs.juseless``
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.configs.juseless.datagrabbers.JuselessUCLA` * - :class:`.JuselessUCLA`
- UCLA fMRIPrep dataset. Available for Juseless only. - UCLA fMRIPrep dataset. Available for Juseless only.
- Restricted - Restricted
- ``junifer.configs.juseless`` - ``junifer.configs.juseless``
@ -144,61 +144,61 @@ Available
- Description - Description
- State - State
- Version Added - Version Added
* - :class:`junifer.markers.ParcelAggregation` * - :class:`.ParcelAggregation`
- Apply parcellation and perform aggregation function - Apply parcellation and perform aggregation function
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.FunctionalConnectivityParcels` * - :class:`.FunctionalConnectivityParcels`
- Compute functional connectivity over parcellation - Compute functional connectivity over parcellation
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.CrossParcellationFC` * - :class:`.CrossParcellationFC`
- Compute functional connectivity across two parcellations - Compute functional connectivity across two parcellations
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.SphereAggregation` * - :class:`.SphereAggregation`
- Spherical aggregation using mean - Spherical aggregation using mean
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.FunctionalConnectivitySpheres` * - :class:`.FunctionalConnectivitySpheres`
- Compute functional connectivity over spheres placed on coordinates - Compute functional connectivity over spheres placed on coordinates
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.RSSETSMarker` * - :class:`.RSSETSMarker`
- Compute root sum of squares of edgewise timeseries - Compute root sum of squares of edgewise timeseries
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.ReHoParcels` * - :class:`.ReHoParcels`
- Calculate regional homogeneity over parcellation - Calculate regional homogeneity over parcellation
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.ReHoSpheres` * - :class:`.ReHoSpheres`
- Calculate regional homogeneity over spheres placed on coordinates - Calculate regional homogeneity over spheres placed on coordinates
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.ALFFParcels` * - :class:`.ALFFParcels`
- Calculate (f)ALFF and aggregate using parcellations - Calculate (f)ALFF and aggregate using parcellations
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.ALFFSpheres` * - :class:`.ALFFSpheres`
- Calculate (f)ALFF and aggregate using spheres placed on coordinates - Calculate (f)ALFF and aggregate using spheres placed on coordinates
- Done - Done
- 0.0.1 - 0.0.1
* - :class:`junifer.markers.EdgeCentricFCParcels` * - :class:`.EdgeCentricFCParcels`
- Calculate edge-centric functional connectivity over parcellation, as found in - Calculate edge-centric functional connectivity over parcellation, as found in
`Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_ `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
- Done - Done
- 0.0.2 - 0.0.2
* - :class:`junifer.markers.EdgeCentricFCSpheres` * - :class:`.EdgeCentricFCSpheres`
- Calculate edge-centric functional connectivity over spheres placed on coordinates, - Calculate edge-centric functional connectivity over spheres placed on coordinates,
as found in `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_ as found in `Jo et al. (2021) <https://doi.org/10.1016/j.neuroimage.2021.118204>`_
- Done - Done
- 0.0.2 - 0.0.2
* - :class:`junifer.markers.TemporalSNRParcels` * - :class:`.TemporalSNRParcels`
- Calculate temporal signal-to-noise ratio using parcellations - Calculate temporal signal-to-noise ratio using parcellations
- Done - Done
- 0.0.2 - 0.0.2
* - :class:`junifer.markers.TemporalSNRSpheres` * - :class:`.TemporalSNRSpheres`
- Calculate temporal signal-to-noise ratio using spheres placed on coordinates - Calculate temporal signal-to-noise ratio using spheres placed on coordinates
- Done - Done
- 0.0.2 - 0.0.2

View file

@ -1 +1 @@
Expose a :func:`junifer.data.parcellations.merge_parcellations` function to merge a list of parcellations by `Leonard Sasse`_ Expose a :func:`.merge_parcellations` function to merge a list of parcellations by `Leonard Sasse`_

View file

@ -1 +1 @@
Add support for HDF5 feature storage via :class:`junifer.storage.HDF5FeatureStorage` by `Synchon Mandal`_ Add support for HDF5 feature storage via :class:`.HDF5FeatureStorage` by `Synchon Mandal`_

View file

@ -1 +1 @@
Add ``confounds_format`` parameter to :class:`junifer.datagrabber.PatternDataGrabber` constructor for improved handling of confounds specified via ``BOLD_confounds`` data type by `Synchon Mandal`_ Add ``confounds_format`` parameter to :class:`.PatternDataGrabber` constructor for improved handling of confounds specified via ``BOLD_confounds`` data type by `Synchon Mandal`_

View file

@ -1 +1 @@
Allow :class:`junifer.testing.datagrabbers.PartlyCloudyTestingDataGrabber` to be accessible via ``import junifer.testing.registry`` by `Synchon Mandal`_ Allow :class:`.PartlyCloudyTestingDataGrabber` to be accessible via ``import junifer.testing.registry`` by `Synchon Mandal`_

View file

@ -1 +1 @@
Add :class:`junifer.markers.TemporalSNRParcels` and :class:`junifer.markers.TemporalSNRSpheres` by `Leonard Sasse`_ Add :class:`.TemporalSNRParcels` and :class:`.TemporalSNRSpheres` by `Leonard Sasse`_

View file

@ -1 +1 @@
Fix :class:`junifer.markers.ALFFParcels`, :class:`junifer.markers.ALFFSpheres`, :class:`junifer.markers.ReHoSpheres` and :class:`junifer.markers.ReHoParcels` pass the ``extra_input`` parameter by `Fede Raimondo`_ Fix :class:`.ALFFParcels`, :class:`.ALFFSpheres`, :class:`.ReHoSpheres` and :class:`.ReHoParcels` pass the ``extra_input`` parameter by `Fede Raimondo`_

View file

@ -1 +1 @@
Expose ``allow_overlap`` parameter in :class:`junifer.markers.SphereAggregation` and related markers by `Fede Raimondo`_ Expose ``allow_overlap`` parameter in :class:`.SphereAggregation` and related markers by `Fede Raimondo`_

View file

@ -1 +1 @@
Allow for empty spheres in :class:`junifer.external.nilearn.JuniferNiftiSpheresMasker`, that will result in NaNs. Also, modify the behaviour of the ``collect`` parameter in HTCondor ``queue`` function 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`_ Allow for empty spheres in :class:`.JuniferNiftiSpheresMasker`, that will result in NaNs. Also, modify the behaviour of the ``collect`` parameter in HTCondor ``queue`` function 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`_

View file

@ -1 +1 @@
Add aggregation function :func:`junifer.stats.count` that returns the number of elements in a given axis. This allows to count the number of voxels per sphere/parcel when used as ``method`` in markers by `Fede Raimondo`_ Add aggregation function :func:`.count` that returns the number of elements in a given axis. This allows to count the number of voxels per sphere/parcel when used as ``method`` in markers by `Fede Raimondo`_

View file

@ -1 +1 @@
Fix a bug in which :class:`junifer.markers.ParcelAggregation` could yield duplicated column names if two or more parcels were used and label names were not unique by `Fede Raimondo`_ Fix a bug in which :class:`.ParcelAggregation` could yield duplicated column names if two or more parcels were used and label names were not unique by `Fede Raimondo`_

View file

@ -1 +1 @@
Allow for empty parcels in :class:`junifer.markers.ParcelAggregation`, that will result in NaNs by `Fede Raimondo`_ Allow for empty parcels in :class:`.ParcelAggregation`, that will result in NaNs by `Fede Raimondo`_

View file

@ -1 +1 @@
Fix a bug in which :func:`junifer.stats.count` will not be correctly applied across an axis by `Fede Raimondo`_ Fix a bug in which :func:`.count` will not be correctly applied across an axis by `Fede Raimondo`_

View file

@ -1 +1 @@
Improve metadata and data I/O for :class:`junifer.storage.HDF5FeatureStorage` by `Synchon Mandal`_ Improve metadata and data I/O for :class:`.HDF5FeatureStorage` by `Synchon Mandal`_

View file

@ -1 +1 @@
Fix a bug in which :func:`junifer.data.masks.get_mask` fails for FunctionalConnectivityBase class, because of missing extra_input parameter by `Leonard Sasse`_ Fix a bug in which :func:`.get_mask` fails for FunctionalConnectivityBase class, because of missing extra_input parameter by `Leonard Sasse`_

View file

@ -1 +1 @@
Add missing ``abstractmethod`` decorators for ``get_valid_inputs`` methods of :class:`junifer.markers.BaseMarker` and :class:`junifer.preprocess.BasePreprocessor` by `Synchon Mandal`_ Add missing ``abstractmethod`` decorators for ``get_valid_inputs`` methods of :class:`.BaseMarker` and :class:`.BasePreprocessor` by `Synchon Mandal`_

View file

@ -1 +1 @@
Fix the output of :class:`junifer.markers.RSSETSMarker` to be 2D by `Synchon Mandal`_ Fix the output of :class:`.RSSETSMarker` to be 2D by `Synchon Mandal`_

View file

@ -1 +1 @@
``AmplitudeLowFrequencyFluctuationParcels`` and ``AmplitudeLowFrequencyFluctuationSpheres`` are renamed to :class:`junifer.markers.ALFFParcels` and :class:`junifer.markers.ALFFSpheres` by `Synchon Mandal`_ Rename ``AmplitudeLowFrequencyFluctuationParcels`` and ``AmplitudeLowFrequencyFluctuationSpheres`` to :class:`.ALFFParcels` and :class:`.ALFFSpheres` by `Synchon Mandal`_

View file

@ -0,0 +1 @@
Shorten Sphinx references across code and docs, and add ``black`` shield in README by `Synchon Mandal`_

View file

@ -1 +1 @@
Add :class:`junifer.markers.EdgeCentricFCParcels` and :class:`junifer.markers.EdgeCentricFCSpheres` by `Leonard Sasse`_ Add :class:`.EdgeCentricFCParcels` and :class:`.EdgeCentricFCSpheres` by `Leonard Sasse`_

View file

@ -6,11 +6,9 @@ Adding Coordinates
================== ==================
Instead of using whole-brain parcellations to aggregate voxel-wise signals from Instead of using whole-brain parcellations to aggregate voxel-wise signals from
MR images (as for example in the MR images (as for example in the :class:`.ParcelAggregation` marker), Junifer
:class:`junifer.markers.parcel_aggregation.ParcelAggregation` marker), Junifer
allows you to specify a set of coordinates around which to draw spheres to allows you to specify a set of coordinates around which to draw spheres to
aggregate (for example using the aggregate (for example using the :class:`.SphereAggregation` marker) the MR
:class:`junifer.markers.sphere_aggregation.SphereAggregation` marker) the MR
signals from individual voxels. Now, before you start specifying your own sets signals from individual voxels. Now, before you start specifying your own sets
of coordinates, check the coordinates that Junifer already has of coordinates, check the coordinates that Junifer already has
:ref:`built in <builtin>`. If you simply want to use a well known set of :ref:`built in <builtin>`. If you simply want to use a well known set of
@ -19,9 +17,8 @@ provides them already.
If you checked the in-built coordinates, and they are not there already (for If you checked the in-built coordinates, and they are not there already (for
example if you came up with your own set of coordinates), then Junifer provides example if you came up with your own set of coordinates), then Junifer provides
an easy way for you to register them using the an easy way for you to register them using the :func:`.register_coordinates`
:func:`junifer.data.coordinates.register_coordinates` function, so you can use function, so you can use your own set of coordinates within a Junifer pipeline.
your own set of coordinates within a Junifer pipeline.
From the API reference, we can see that it has 3 positional arguments From the API reference, we can see that it has 3 positional arguments
(``name``, ``coordinates``, and ``voi_names``) as well as one (``name``, ``coordinates``, and ``voi_names``) as well as one
@ -30,10 +27,9 @@ optional keyword argument (``overwrite``).
The ``name`` argument takes a string indicating the name you want to give to The ``name`` argument takes a string indicating the name you want to give to
this set of coordinates. This ``name`` can be used to obtain and operate on a this set of coordinates. This ``name`` can be used to obtain and operate on a
set of coordinates in Junifer. For example, you can obtain your coordinates set of coordinates in Junifer. For example, you can obtain your coordinates
after registration by providing ``name`` to after registration by providing ``name`` to :func:`.load_coordinates`. We could
:func:`junifer.data.coordinates.load_coordinates`. We could simply call it simply call it ``"my_set_of_coordinates"``, but likely you want a more
``"my_set_of_coordinates"``, but likely you want a more descriptive and more descriptive and more informative name most of the time.
informative name most of the time.
The ``coordinates`` argument takes the actual coordinates as a 2-dimensional The ``coordinates`` argument takes the actual coordinates as a 2-dimensional
:class:`numpy.ndarray`. It contains one row for every location, and three :class:`numpy.ndarray`. It contains one row for every location, and three
@ -116,8 +112,7 @@ you can use the ``with`` keyword provided by Junifer:
Afterwards continue configuring the rest of your pipeline in this YAML file, Afterwards continue configuring the rest of your pipeline in this YAML file,
and you will be able to use this set of coordinates using the name you gave it and you will be able to use this set of coordinates using the name you gave it
during registration (in our example "DMNCustom"). We can add a during registration (in our example "DMNCustom"). We can add a
:class:`junifer.markers.sphere_aggregation.SphereAggregation` to demonstrate :class:`.SphereAggregation` to demonstrate how this can be done:
how this can be done:
.. code-block:: yaml .. code-block:: yaml

View file

@ -195,9 +195,8 @@ set the ``datadir``.
Optional: Using datalad Optional: Using datalad
""""""""""""""""""""""" """""""""""""""""""""""
If you are using `datalad`_, you can use the If you are using `datalad`_, you can use the :class:`.PatternDataladDataGrabber`
:py:class:`~junifer.datagrabber.PatternDataladDataGrabber` instead of the instead of the :class:`.PatternDataGrabber`. This class will not only
:py:class:`~junifer.datagrabber.PatternDataGrabber`. This class will not only
interpret patterns, but also use `datalad`_ to `clone` and `get` the data. interpret patterns, but also use `datalad`_ to `clone` and `get` the data.
The main difference between the two is that the ``datadir`` is not the actual The main difference between the two is that the ``datadir`` is not the actual
@ -369,8 +368,9 @@ So, to summarize, our datagrabber will look like this:
Optional: Using datalad Optional: Using datalad
""""""""""""""""""""""" """""""""""""""""""""""
If this dataset is in a datalad dataset, we can extend from :class:`junifer.datagrabber.DataladDataGrabber` instead of If this dataset is in a datalad dataset, we can extend from
:class:`junifer.datagrabber.BaseDataGrabber`. This will allow us to use the datalad API to obtain the data. :class:`.DataladDataGrabber` instead of :class:`.BaseDataGrabber`. This will
allow us to use the datalad API to obtain the data.
Step 4: Optional: Adding *BOLD confounds* Step 4: Optional: Adding *BOLD confounds*
@ -393,7 +393,7 @@ The ``fmriprep`` format corresponds to the format of the confounds files generat
Currently, Junifer provides only one confound remover step Currently, Junifer provides only one confound remover step
(:class:`junifer.preprocess.fMRIPrepConfoundRemover`), which relies entirely on the ``fmriprep`` confound (:class:`.fMRIPrepConfoundRemover`), which relies entirely on the ``fmriprep`` confound
variable names. Thus, if the confounds are not in ``fmriprep`` format, the user will need to provide the mappings variable names. Thus, if the confounds are not in ``fmriprep`` format, the user will need to provide the mappings
between the *ad-hoc* variable names and the ``fmriprep`` variable names. between the *ad-hoc* variable names and the ``fmriprep`` variable names.
This is done by specifying the ``adhoc`` format and providing the mappings as a dictionary in the ``mappings`` key. This is done by specifying the ``adhoc`` format and providing the mappings as a dictionary in the ``mappings`` key.
@ -418,7 +418,6 @@ provide the mappings for these variables to the ``fmriprep`` format.
.. note:: .. note::
Not all of the mappings need to be provided. For the moment, this is used only by the Not all of the mappings need to be provided. For the moment, this is used only by the
:class:`junifer.preprocess.fMRIPrepConfoundRemover` step, which requires variables based on the :class:`.fMRIPrepConfoundRemover` step, which requires variables based on the
strategy selected. However, it is recommended to provide all the mappings, as this will allow the user to strategy selected. However, it is recommended to provide all the mappings, as this will allow the user to
choose different strategies with the same dataset. choose different strategies with the same dataset.

View file

@ -9,7 +9,7 @@ Computing a marker (a.k.a. *feature*) is the main goal of junifer. While we aim
it might be the case that the marker you are looking for is not available. In this case, you can create your own marker it might be the case that the marker you are looking for is not available. In this case, you can create your own marker
by following this tutorial. by following this tutorial.
Most of the functionality of a junifer marker has been taken care by the :class:`junifer.markers.BaseMarker` class. Most of the functionality of a junifer marker has been taken care by the :class:`.BaseMarker` class.
Thus, only a few methods are required: Thus, only a few methods are required:
1. ``get_valid_inputs``: a method to obtain the list of valid inputs for the marker. This is used to check that the 1. ``get_valid_inputs``: a method to obtain the list of valid inputs for the marker. This is used to check that the
@ -57,7 +57,7 @@ Step 2: Initialize the marker
In this step we need to define the parameters of the marker. That is, all the parameters that the user can provide In this step we need to define the parameters of the marker. That is, all the parameters that the user can provide
to configure how the marker will behave. to configure how the marker will behave.
The parameters of the marker are defined in the ``__init__`` method. The :class:`junifer.markers.BaseMarker` class The parameters of the marker are defined in the ``__init__`` method. The :class:`.BaseMarker` class
requires two optional parameters: requires two optional parameters:
1. ``name``: the name of the marker. This is used to identify the marker in the configuration file. 1. ``name``: the name of the marker. This is used to identify the marker in the configuration file.

View file

@ -14,16 +14,16 @@ suit your needs, and you have found that they don't, you can come back here to
learn how to use your own masks. learn how to use your own masks.
The principle is fairly simple and quite similar to :ref:`adding_parcellations` The principle is fairly simple and quite similar to :ref:`adding_parcellations`
and :ref:`adding_coordinates`. Junifer provides a and :ref:`adding_coordinates`. Junifer provides a :func:`.register_mask`
:func:`junifer.data.masks.register_mask` function that lets you register your function that lets you register your own custom masks. It consists of two
own custom masks. It consists of two positional arguments (``name`` and positional arguments (``name`` and ``mask_path``) and one optional keyword
``mask_path``) and one optional keyword argument (``overwrite``). argument (``overwrite``).
The ``name`` argument is a string indicating the name of the mask. This name The ``name`` argument is a string indicating the name of the mask. This name
is used to refer to that mask in Junifer internally in order to obtain the is used to refer to that mask in Junifer internally in order to obtain the
actual mask data and perform operations on it. For example, using the name you actual mask data and perform operations on it. For example, using the name you
can load a mask after registration using the can load a mask after registration using the
:func:`junifer.data.masks.load_mask` function. :func:`.load_mask` function.
The ``mask_path`` should contain the path to a valid NIfTI image with binary The ``mask_path`` should contain the path to a valid NIfTI image with binary
voxel values (i.e. 0 or 1). This data can then be used by Junifer to mask other voxel values (i.e. 0 or 1). This data can then be used by Junifer to mask other

View file

@ -16,9 +16,9 @@ markers to assess and validate your own parcellation. So, how can you do this?
Since both of these use-cases are quite common, and not being able to use your Since both of these use-cases are quite common, and not being able to use your
favourite parcellation is of course quite a buzzkill, Junifer actually provides favourite parcellation is of course quite a buzzkill, Junifer actually provides
the easy-to-use :func:`junifer.data.parcellations.register_parcellation` the easy-to-use :func:`.register_parcellation` function to do just that. Let's
function to do just that. Let's try to understand the API reference try to understand the API reference and then use this function to register our
and then use this function to register our own parcellation. own parcellation.
From the API reference, we can see that it has 3 positional arguments From the API reference, we can see that it has 3 positional arguments
(``name``, ``parcellation_path``, and ``parcels_labels``) as well as one (``name``, ``parcellation_path``, and ``parcels_labels``) as well as one
@ -101,8 +101,7 @@ file, we can save the above code in a python file, say
Afterwards continue configuring the rest of the pipeline in this YAML file, and Afterwards continue configuring the rest of the pipeline in this YAML file, and
you will be able to use this parcellation using the name you gave the you will be able to use this parcellation using the name you gave the
parcellation when registering it. For example, we can add a parcellation when registering it. For example, we can add a
:class:`junifer.markers.parcel_aggregation.ParcelAggregation` marker to :class:`.ParcelAggregation` marker to demonstrate how this can be done:
demonstrate how this can be done:
.. code-block:: yaml .. code-block:: yaml

View file

@ -21,7 +21,7 @@ The following steps are specific to VSCode and you can choose to go with it:
2. We recommend using ``conda`` to create your virtual environment 2. We recommend using ``conda`` to create your virtual environment
.. code-block:: console .. code-block:: bash
conda env create -n <your-environment-name> -f conda-env.yml python=3.9 conda env create -n <your-environment-name> -f conda-env.yml python=3.9
conda activate <your-environment-name> conda activate <your-environment-name>

View file

@ -11,12 +11,13 @@ junifer is compatible with `Python`_ >= 3.8 and requires the following packages:
* ``click>=8.1.3,<8.2`` * ``click>=8.1.3,<8.2``
* ``numpy>=1.22,<1.24`` * ``numpy>=1.22,<1.24``
* ``datalad>=0.15.4,<0.18`` * ``datalad>=0.15.4,<0.19``
* ``pandas>=1.4.0,<1.6`` * ``pandas>=1.4.0,<1.6``
* ``nibabel>=3.2.0,<4.1`` * ``nibabel>=3.2.0,<4.1``
* ``nilearn>=0.9.0,<1.0`` * ``nilearn>=0.9.0,<=0.10.0``
* ``sqlalchemy>=1.4.27,<= 1.5.0`` * ``sqlalchemy>=1.4.27,<= 1.5.0``
* ``pyyaml>=5.1.2,<7.0`` * ``pyyaml>=5.1.2,<7.0``
* ``h5py>=3.8.0,<3.9``
Depending on the installation method, these packages might be installed automatically. Depending on the installation method, these packages might be installed automatically.

View file

@ -17,7 +17,7 @@ Datagrabbers are intended to be used as context managers. When used within a con
of any pre and post steps for interacting with the dataset, for example, downloading and cleaning up. As the interface of any pre and post steps for interacting with the dataset, for example, downloading and cleaning up. As the interface
is consistent, you always use the same procedure to interact with the datagrabber. is consistent, you always use the same procedure to interact with the datagrabber.
For example, a concrete implementation of :class:`junifer.datagrabber.DataladDataGrabber` can provide junifer For example, a concrete implementation of :class:`.DataladDataGrabber` can provide junifer
with data from a Datalad dataset. Of course, datagrabbers are not only meant to work with Datalad datasets but with data from a Datalad dataset. Of course, datagrabbers are not only meant to work with Datalad datasets but
any dataset. any dataset.
@ -36,19 +36,19 @@ In this section, we showcase different abstract base classes you might want to u
* - Name * - Name
- Description - Description
* - :class:`junifer.datagrabber.BaseDataGrabber` * - :class:`.BaseDataGrabber`
- | The abstract base class providing you an interface to implement your own datagrabber. - | The abstract base class providing you an interface to implement your own datagrabber.
| You should try to avoid using this directly and instead use | You should try to avoid using this directly and instead use
| :class:`junifer.datagrabber.PatternDataGrabber` or :class:`junifer.datagrabber.DataladDataGrabber`. | :class:`.PatternDataGrabber` or :class:`.DataladDataGrabber`.
| To build your own custom *low-level* datagrabber, you need to at least implement the ``get_elements`` method, | To build your own custom *low-level* datagrabber, you need to at least implement the ``get_elements`` method,
| but most of the time you should also override other existing methods like ``__enter__`` and ``__exit__``. | but most of the time you should also override other existing methods like ``__enter__`` and ``__exit__``.
* - :class:`junifer.datagrabber.PatternDataGrabber` * - :class:`.PatternDataGrabber`
- | It implements functionality to help you define the pattern of the dataset you want to get. For example, - | It implements functionality to help you define the pattern of the dataset you want to get. For example,
| you know that T1 images are found in a directory following this pattern ``{subject}/anat/{subject}_T1w.nii.gz`` | you know that T1 images are found in a directory following this pattern ``{subject}/anat/{subject}_T1w.nii.gz``
| inside of the dataset. Now you can provide this to the **PatternDataGrabber** and it will be able to get the file. | inside of the dataset. Now you can provide this to the **PatternDataGrabber** and it will be able to get the file.
* - :class:`junifer.datagrabber.DataladDataGrabber` * - :class:`.DataladDataGrabber`
- | It implements functionality to deal with Datalad datasets. Specifically, the ``__enter__`` and ``__exit__`` methods - | It implements functionality to deal with Datalad datasets. Specifically, the ``__enter__`` and ``__exit__`` methods
| take care of cloning and removing the Datalad dataset. | take care of cloning and removing the Datalad dataset.
* - :class:`junifer.datagrabber.PatternDataladDataGrabber` * - :class:`.PatternDataladDataGrabber`
- | It is a combination of :class:`junifer.datagrabber.PatternDataladDataGrabber` and - | It is a combination of :class:`.PatternDataladDataGrabber` and
| :class:`junifer.datagrabber.DataladDataGrabber`. This is probably the class you are looking for when using Datalad. | :class:`.DataladDataGrabber`. This is probably the class you are looking for when using Datalad.

View file

@ -22,7 +22,7 @@ For data formats not supported by junifer yet, you can either make your own *Dat
Currently supported file-formats Currently supported file-formats
-------------------------------- --------------------------------
We already provide a concrete implementation :class:`junifer.datareader.DefaultDataReader` which knows how to We already provide a concrete implementation :class:`.DefaultDataReader` which knows how to
read the following file formats: read the following file formats:
.. list-table:: .. list-table::

View file

@ -19,5 +19,5 @@ Markers are meant to be used inside the datagrabber context but you can operate
as the actual data is in the memory and the Python runtime has not garbage-collected it. as the actual data is in the memory and the Python runtime has not garbage-collected it.
If you are interested in using already provided markers, please go to :doc:`../builtin`. And, if you want to implement If you are interested in using already provided markers, please go to :doc:`../builtin`. And, if you want to implement
your own marker, you need to provide concrete implementation of :class:`junifer.markers.BaseMarker`. Specifically, you your own marker, you need to provide concrete implementation of :class:`.BaseMarker`. Specifically, you
need to override ``get_output_type``, ``store`` and ``compute`` methods. need to override ``get_output_type``, ``store`` and ``compute`` methods.

View file

@ -24,7 +24,7 @@ extracted from the ``BOLD_confounds`` data (must be provided by the :ref:`Data G
The confounds are then regressed out from the ``BOLD`` data using :func:`nilearn.image.clean_img`. The confounds are then regressed out from the ``BOLD`` data using :func:`nilearn.image.clean_img`.
Currently, junifer supports only one confound removal class: Currently, junifer supports only one confound removal class:
:class:`junifer.preprocess.fMRIPrepConfoundRemover`. This class is meant to remove confounds as described :class:`.fMRIPrepConfoundRemover`. This class is meant to remove confounds as described
before, using the output of `fMRIPrep`_ as reference. before, using the output of `fMRIPrep`_ as reference.
Strategy Strategy
@ -84,7 +84,7 @@ The default value is to use all the *noise components* with the ``full`` *confou
Other parameters Other parameters
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
Additionaly, the :class:`junifer.preprocess.fMRIPrepConfoundRemover` supports the following parameters: Additionaly, the :class:`.fMRIPrepConfoundRemover` supports the following parameters:
.. list-table:: .. list-table::
:widths: 10, 30, 5 :widths: 10, 30, 5

View file

@ -17,12 +17,12 @@ as the processed data is in the memory and the Python runtime has not garbage-co
The :ref:`Markers <marker>` are responsible for defining what *storage kind* (``matrix``, ``vector``, ``timeseries``) The :ref:`Markers <marker>` are responsible for defining what *storage kind* (``matrix``, ``vector``, ``timeseries``)
they support for which :ref:`data type <data_types>` by overriding its ``store`` method. The storage object in turn they support for which :ref:`data type <data_types>` by overriding its ``store`` method. The storage object in turn
declares and provides implementation for specific *storage kind*. For example, :class:`junifer.storage.SQLiteFeatureStorage` declares and provides implementation for specific *storage kind*. For example, :class:`.SQLiteFeatureStorage`
supports saving ``matrix``, ``vector`` and ``timeseries`` via ``store_matrix``, ``store_vector`` and ``store_timeseries`` supports saving ``matrix``, ``vector`` and ``timeseries`` via ``store_matrix``, ``store_vector`` and ``store_timeseries``
methods respectively. methods respectively.
For storage interfaces not supported by junifer yet, you can either make your own ``Storage`` by providing a concrete For storage interfaces not supported by junifer yet, you can either make your own ``Storage`` by providing a concrete
implementation of :class:`junifer.storage.BaseFeatureStorage` or open an issue on `junifer Github`_ and we can help you out. implementation of :class:`.BaseFeatureStorage` or open an issue on `junifer Github`_ and we can help you out.
.. _storage_types: .. _storage_types:
@ -41,15 +41,15 @@ Currently supported storage types
* - ``matrix`` * - ``matrix``
- A 2D matrix with row and column names - A 2D matrix with row and column names
- ``col_names``, ``row_names``, ``matrix_kind``, ``diagonal`` - ``col_names``, ``row_names``, ``matrix_kind``, ``diagonal``
- :meth:`junifer.storage.BaseFeatureStorage.store_matrix` - :meth:`.BaseFeatureStorage.store_matrix`
* - ``vector`` * - ``vector``
- A vector of values with column names - A vector of values with column names
- ``columns``, ``row_names`` - ``columns``, ``row_names``
- :meth:`junifer.storage.BaseFeatureStorage.store_vector` - :meth:`.BaseFeatureStorage.store_vector`
* - ``timeseries`` * - ``timeseries``
- A 2D matrix of values with column names - A 2D matrix of values with column names
- ``columns``, ``row_names`` - ``columns``, ``row_names``
- :meth:`junifer.storage.BaseFeatureStorage.store_timeseries` - :meth:`.BaseFeatureStorage.store_timeseries`
.. _storage_interfaces: .. _storage_interfaces:
@ -64,11 +64,11 @@ Currently supported storage interfaces
- File extension - File extension
- File type - File type
- Storage kinds - Storage kinds
* - :class:`junifer.storage.SQLiteFeatureStorage` * - :class:`.SQLiteFeatureStorage`
- ``.sqlite`` - ``.sqlite``
- SQLite - SQLite
- ``matrix``, ``vector``, ``timeseries`` - ``matrix``, ``vector``, ``timeseries``
* - :class:`junifer.storage.HDF5FeatureStorage` * - :class:`.HDF5FeatureStorage`
- ``.hdf5`` - ``.hdf5``
- HDF5 - HDF5
- ``matrix``, ``vector``, ``timeseries`` - ``matrix``, ``vector``, ``timeseries``

View file

@ -70,7 +70,7 @@ Data Grabber
The ``datagrabber`` section must be configured using the ``kind`` key to specify the datagrabber to use. Additional The ``datagrabber`` section must be configured using the ``kind`` key to specify the datagrabber to use. Additional
keys correspond to the parameters of the datagrabber. keys correspond to the parameters of the datagrabber.
For example, to use the :class:`junifer.datagrabber.DataladAOMICPIOP1` datagrabber, we just need to For example, to use the :class:`.DataladAOMICPIOP1` datagrabber, we just need to
specify its name as the ``kind`` key. specify its name as the ``kind`` key.
.. code-block:: yaml .. code-block:: yaml
@ -99,7 +99,7 @@ Data Reader
^^^^^^^^^^^ ^^^^^^^^^^^
As mentioned before, this section is entirely optional, as junifer only provides one data reader As mentioned before, this section is entirely optional, as junifer only provides one data reader
(:class:`junifer.datareader.DefaultDataReader`), which is the default in case the section is not specified. (:class:`.DefaultDataReader`), which is the default in case the section is not specified.
In any case, the syntax of the section is the same as for the ``datagrabber`` section, using the ``kind`` key to In any case, the syntax of the section is the same as for the ``datagrabber`` section, using the ``kind`` key to
specify the data reader to use, and additional keys to pass parameters to the data reader: specify the data reader to use, and additional keys to pass parameters to the data reader:
@ -119,7 +119,7 @@ Preprocessing is also an optional step, as it might be the case that no pre-proc
preprocessing is needed, the section must be configured using the ``kind`` key to specify the preprocessor to use, preprocessing is needed, the section must be configured using the ``kind`` key to specify the preprocessor to use,
and additional keys to pass parameters to the preprocessor. and additional keys to pass parameters to the preprocessor.
For example, to use the :class:`junifer.preprocess.fMRIPrepConfoundRemover` preprocessor, we just need to specify its For example, to use the :class:`.fMRIPrepConfoundRemover` preprocessor, we just need to specify its
name as the ``kind`` key, as well as its parameters. name as the ``kind`` key, as well as its parameters.
@ -173,7 +173,7 @@ Storage
Finally, we need to define how and where the results will be stored. This is done using the ``storage`` section, Finally, we need to define how and where the results will be stored. This is done using the ``storage`` section,
which must be configured using the ``kind`` key to specify the storage to use, and additional keys to pass parameters. which must be configured using the ``kind`` key to specify the storage to use, and additional keys to pass parameters.
For example, to use the :class:`junifer.storage.SQLiteFeatureStorage` storage, we just need to specify where we want For example, to use the :class:`.SQLiteFeatureStorage` storage, we just need to specify where we want
to store the results: to store the results:
.. code-block:: yaml .. code-block:: yaml

View file

@ -11,7 +11,7 @@ voxels that contain a certain ratio of gray matter to white matter / cerebrospin
are not extracted from voxels that contain mostly white matter or cerebrospinal fluid, which could add noise to the are not extracted from voxels that contain mostly white matter or cerebrospinal fluid, which could add noise to the
BOLD signal. BOLD signal.
Junifer provides a number of built-in masks, which can be listed using the :func:`junifer.data.masks.list_masks`. Some Junifer provides a number of built-in masks, which can be listed using the :func:`.list_masks`. Some
masks are images, while other masks can be computed using :ref:`nilearn` functions. masks are images, while other masks can be computed using :ref:`nilearn` functions.
For markers and steps that accept ``masks`` as an argument, the mask can be specified as a string, which will be the For markers and steps that accept ``masks`` as an argument, the mask can be specified as a string, which will be the

View file

@ -14,7 +14,7 @@ individual results into a single file.
Assuming that we have a configuration file named ``config.yaml``, the following commands will extract the features: Assuming that we have a configuration file named ``config.yaml``, the following commands will extract the features:
.. code-block:: console .. code-block:: bash
junifer run config.yaml junifer run config.yaml
@ -29,13 +29,13 @@ The ``run`` command accepts the following additional arguments:
Example on running two elements: Example on running two elements:
.. code-block:: console .. code-block:: bash
junifer run config.yaml --element sub-01 --element sub-02 junifer run config.yaml --element sub-01 --element sub-02
Example on elements with multiple parameters and verbose output: Example on elements with multiple parameters and verbose output:
.. code-block:: console .. code-block:: bash
junifer run --verbose info config.yaml --element sub-01,ses-01 junifer run --verbose info config.yaml --element sub-01,ses-01
@ -50,7 +50,7 @@ individual results into a single file.
Assuming that we have a configuration file named ``config.yaml``, the following commands will collect the results: Assuming that we have a configuration file named ``config.yaml``, the following commands will collect the results:
.. code-block:: console .. code-block:: bash
junifer collect config.yaml junifer collect config.yaml

View file

@ -20,13 +20,12 @@ API Changes
Bugfixes Bugfixes
^^^^^^^^ ^^^^^^^^
- Fix a bug in which a :class:`junifer.datagrabber.PatternDataGrabber` would - Fix a bug in which a :class:`.PatternDataGrabber` would now work with
now work with relative ``datadir`` paths (reported by `Leonard Sasse`_, relative ``datadir`` paths (reported by `Leonard Sasse`_, fixed by
fixed by `Fede Raimondo`_) (:gh:`96`, :gh:`98`) `Fede Raimondo`_) (:gh:`96`, :gh:`98`)
- Fix a bug in which :class:`junifer.datagrabber.DataladAOMICPIOP2` datagrabber - Fix a bug in which :class:`.DataladAOMICPIOP2` datagrabber did not use user
did not use user input to constrain elements based on tasks by input to constrain elements based on tasks by `Leonard Sasse`_ (:gh:`105`)
`Leonard Sasse`_ (:gh:`105`)
- Fix a bug in which a datalad dataset could remove a user-cloned dataset by - Fix a bug in which a datalad dataset could remove a user-cloned dataset by
`Fede Raimondo`_ (:gh:`53`) `Fede Raimondo`_ (:gh:`53`)
@ -53,9 +52,9 @@ Improved Documentation
Enhancements Enhancements
^^^^^^^^^^^^ ^^^^^^^^^^^^
- Add comments to :class:`junifer.datagrabber.DataladDataGrabber` datagrabber - Add comments to :class:`.DataladDataGrabber` datagrabber and change to use
and change to use ``datalad-clone`` instead of ``datalad-install`` by ``datalad-clone`` instead of ``datalad-install`` by `Benjamin Poldrack`_
`Benjamin Poldrack`_ (:gh:`55`) (:gh:`55`)
- Upgrade storage interface for storage-like objects by `Synchon Mandal`_ - Upgrade storage interface for storage-like objects by `Synchon Mandal`_
(:gh:`84`) (:gh:`84`)
@ -65,65 +64,64 @@ Enhancements
- Refactor markers ``on`` attribute and ``get_valid_inputs`` to verify that the - Refactor markers ``on`` attribute and ``get_valid_inputs`` to verify that the
marker can be computed on the input data types by `Fede Raimondo`_ marker can be computed on the input data types by `Fede Raimondo`_
- Add test for :class:`junifer.datagrabber.DataladHCP1200` datagrabber by - Add test for :class:`.DataladHCP1200` datagrabber by `Synchon Mandal`_
`Synchon Mandal`_ (:gh:`93`) (:gh:`93`)
- Refactor :class:`.DataladAOMICID1000` slightly by `Leonard Sasse`_ (:gh:`94`)
- Rename "atlas" to "parcellation" by `Fede Raimondo`_ (:gh:`116`) - Rename "atlas" to "parcellation" by `Fede Raimondo`_ (:gh:`116`)
- Refactor the :class:`junifer.datagrabber.BaseDataGrabber` class to allow for - Refactor the :class:`.BaseDataGrabber` class to allow for easier subclassing
easier subclassing by `Fede Raimondo`_ (:gh:`123`) by `Fede Raimondo`_ (:gh:`123`)
- Allow custom aggregation method for :class:`junifer.markers.SphereAggregation` - Allow custom aggregation method for :class:`.SphereAggregation` by
by `Synchon Mandal`_ (:gh:`102`) `Synchon Mandal`_ (:gh:`102`)
- Add support for "masks" by `Fede Raimondo`_ (:gh:`79`) - Add support for "masks" by `Fede Raimondo`_ (:gh:`79`)
- Allow :class:`junifer.markers.ParcelAggregation` to apply multiple - Allow :class:`.ParcelAggregation` to apply multiple parcellations at once by
parcellations at once by `Fede Raimondo`_ (:gh:`131`) `Fede Raimondo`_ (:gh:`131`)
- Refactor :class:`junifer.pipeline.PipelineStepMixin` to improve its - Refactor :class:`.PipelineStepMixin` to improve its implementation and
implementation and validation for pipeline steps by `Synchon Mandal`_ validation for pipeline steps by `Synchon Mandal`_ (:gh:`152`)
(:gh:`152`)
Features Features
^^^^^^^^ ^^^^^^^^
- Implement :class:`junifer.testing.datagrabbers.SPMAuditoryTestingDatagrabber` - Implement :class:`.SPMAuditoryTestingDatagrabber` datagrabber by
datagrabber by `Fede Raimondo`_ (:gh:`52`) `Fede Raimondo`_ (:gh:`52`)
- Implement matrix storage in SQliteFeatureStorage by `Fede Raimondo`_ - Implement matrix storage in SQliteFeatureStorage by `Fede Raimondo`_
(:gh:`42`) (:gh:`42`)
- Implement :class:`junifer.markers.FunctionalConnectivityParcels` marker for - Implement :class:`.FunctionalConnectivityParcels` marker for functional
functional connectivity using a parcellation by `Amir Omidvarnia`_ and connectivity using a parcellation by `Amir Omidvarnia`_ and
`Kaustubh R. Patil`_ (:gh:`41`) `Kaustubh R. Patil`_ (:gh:`41`)
- Implement coordinate register, list and load by `Fede Raimondo`_ (:gh:`11`) - Implement :func:`.register_coordinates`, :func:`.list_coordinates` and
:func:`.load_coordinates` by `Fede Raimondo`_ (:gh:`11`)
- Add :class:`junifer.datagrabber.DataladAOMICID1000` datagrabber for AOMIC - Add :class:`.DataladAOMICID1000` datagrabber for AOMIC ID1000 dataset
ID1000 dataset including tests and creation of mock dataset for testing by including tests and creation of mock dataset for testing by
`Vera Komeyer`_ and `Xuan Li`_ (:gh:`60`) `Vera Komeyer`_ and `Xuan Li`_ (:gh:`60`)
- Add support to access other input in the data object in the ``compute`` method - Add support to access other input in the data object in the ``compute`` method
by `Fede Raimondo`_ by `Fede Raimondo`_
- Implement :class:`junifer.markers.RSSETSMarker` marker by `Leonard Sasse`_, - Implement :class:`.RSSETSMarker` marker by `Leonard Sasse`_, `Nicolas Nieto`_
`Nicolas Nieto`_ and `Sami Hamdan`_ (:gh:`51`) and `Sami Hamdan`_ (:gh:`51`)
- Implement :class:`junifer.markers.SphereAggregation` marker by - Implement :class:`.SphereAggregation` marker by `Fede Raimondo`_ (:gh:`83`)
`Fede Raimondo`_
- Implement :class:`junifer.datagrabber.DataladAOMICPIOP1` and - Implement :class:`.DataladAOMICPIOP1` and :class:`.DataladAOMICPIOP2`
:class:`junifer.datagrabber.DataladAOMICPIOP2` datagrabbers for AOMIC PIOP1 datagrabbers for AOMIC PIOP1 and PIOP2 datasets respectively by
and PIOP2 datasets respectively and refactor `Leonard Sasse`_ (:gh:`94`)
:class:`junifer.datagrabber.DataladAOMICID1000` slightly by `Leonard Sasse`_
(:gh:`94`)
- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladCamCANVBM` - Implement :class:`.JuselessDataladCamCANVBM` datagrabber by `Leonard Sasse`_
datagrabber by `Leonard Sasse`_ (:gh:`99`) (:gh:`99`)
- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladIXIVBM` - Implement :class:`.JuselessDataladIXIVBM` CAT output datagrabber for juseless
CAT output datagrabber for juseless by `Leonard Sasse`_ (:gh:`48`) by `Leonard Sasse`_ (:gh:`48`)
- Add ``junifer wtf`` to report environment details by `Synchon Mandal`_ - Add ``junifer wtf`` to report environment details by `Synchon Mandal`_
(:gh:`33`) (:gh:`33`)
@ -131,27 +129,27 @@ Features
- Add ``junifer selftest`` to report environment details by `Synchon Mandal`_ - Add ``junifer selftest`` to report environment details by `Synchon Mandal`_
(:gh:`9`) (:gh:`9`)
- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladAOMICID1000VBM` - Implement :class:`.JuselessDataladAOMICID1000VBM` datagrabber for accessing
datagrabber for accessing AOMIC ID1000 VBM from juseless by `Felix Hoffstaedter`_ AOMIC ID1000 VBM from juseless by `Felix Hoffstaedter`_ and `Synchon Mandal`_
and `Synchon Mandal`_ (:gh:`57`) (:gh:`57`)
- Add :class:`junifer.preprocess.fMRIPrepConfoundRemover` by `Fede Raimondo`_ - Add :class:`.fMRIPrepConfoundRemover` by `Fede Raimondo`_ and `Leonard Sasse`_
and `Leonard Sasse`_ (:gh:`111`) (:gh:`111`)
- Implement :class:`junifer.markers.CrossParcellationFC` marker by - Implement :class:`.CrossParcellationFC` marker by `Leonard Sasse`_ and
`Leonard Sasse`_ and `Kaustubh R. Patil`_ (:gh:`85`) `Kaustubh R. Patil`_ (:gh:`85`)
- Add :class:`junifer.configs.juseless.datagrabbers.JuselessUCLA` datagrabber - Add :class:`.JuselessUCLA` datagrabber for the UCLA dataset available on
for the UCLA dataset available on juseless by `Leonard Sasse`_ (:gh:`118`) juseless by `Leonard Sasse`_ (:gh:`118`)
- Introduce a singleton decorator for marker computations by `Synchon Mandal`_ - Introduce a singleton decorator for marker computations by `Synchon Mandal`_
(:gh:`151`) (:gh:`151`)
- Implement :class:`junifer.markers.ReHoParcels` and - Implement :class:`.ReHoParcels` and :class:`.ReHoSpheres` markers by
:class:`junifer.markers.ReHoSpheres` markers by `Synchon Mandal`_ (:gh:`36`) `Synchon Mandal`_ (:gh:`36`)
- Implement :class:`junifer.markers.ALFFParcels` and - Implement :class:`.ALFFParcels` and :class:`.ALFFSpheres` markers by
:class:`junifer.markers.ALFFSpheres` markers by `Fede Raimondo`_ (:gh:`35`) `Fede Raimondo`_ (:gh:`35`)
Misc Misc
^^^^ ^^^^

View file

@ -515,10 +515,11 @@ def _queue_condor(
collect_pre_fname = jobdir / "collect_pre.sh" collect_pre_fname = jobdir / "collect_pre.sh"
dag_file.write( dag_file.write(
f"SCRIPT PRE collect {collect_pre_fname.as_posix()} " f"SCRIPT PRE collect {collect_pre_fname.as_posix()} "
"$DAG_STATUS\n") "$DAG_STATUS\n"
)
with open(collect_pre_fname, "w") as pre_file: with open(collect_pre_fname, "w") as pre_file:
pre_file.write("#!/bin/bash\n\n") pre_file.write("#!/bin/bash\n\n")
pre_file.write("if [ \"${1}\" == \"4\" ]; then\n") pre_file.write('if [ "${1}" == "4" ]; then\n')
pre_file.write(" exit 1\n") pre_file.write(" exit 1\n")
pre_file.write("fi\n") pre_file.write("fi\n")

View file

@ -167,7 +167,7 @@ def load_parcellation(
---------- ----------
name : str name : str
The name of the parcellation. Check valid options by calling The name of the parcellation. Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
parcellations_dir : str or pathlib.Path, optional parcellations_dir : str or pathlib.Path, optional
Path where the parcellations files are stored. The default location is Path where the parcellations files are stored. The default location is
"$HOME/junifer/data/parcellations" (default None). "$HOME/junifer/data/parcellations" (default None).

View file

@ -25,13 +25,13 @@ class RSSETSMarker(BaseMarker):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
masks : str, dict or list of dict or str, optional masks : str, dict or list of dict or str, optional
The specification of the masks to apply to regions before extracting The specification of the masks to apply to regions before extracting
signals. Check :ref:`Using Masks <using_masks>` for more details. signals. Check :ref:`Using Masks <using_masks>` for more details.

View file

@ -33,8 +33,8 @@ class ALFFEstimator:
by caching the voxel-wise ALFF map for a given set of file path and by caching the voxel-wise ALFF map for a given set of file path and
computation parameters. computation parameters.
.. warning:: This class can only be used via .. warning:: This class can only be used via :class:`.ALFFBase` as it
:class:`junifer.markers.falff.ALFFBase` as it serves a specific purpose. serves a specific purpose.
Parameters Parameters
---------- ----------

View file

@ -20,7 +20,7 @@ class ALFFParcels(ALFFBase):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
fractional : bool fractional : bool
Whether to compute fractional ALFF. Whether to compute fractional ALFF.
highpass : positive float, optional highpass : positive float, optional
@ -40,10 +40,10 @@ class ALFFParcels(ALFFBase):
If None, will not apply any mask (default None). If None, will not apply any mask (default None).
method : str, optional method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
method_params : dict, optional method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name`. :func:`.get_aggfunc_by_name`.
name : str, optional name : str, optional
The name of the marker. If None, will use the class name (default The name of the marker. If None, will use the class name (default
None). None).

View file

@ -20,7 +20,7 @@ class ALFFSpheres(ALFFBase):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in mm. If None, the signal will be extracted The radius of the sphere in mm. If None, the signal will be extracted
from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker` from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker`
@ -47,10 +47,10 @@ class ALFFSpheres(ALFFBase):
If None, will not apply any mask (default None). If None, will not apply any mask (default None).
method : str, optional method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
method_params : dict, optional method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name`. :func:`.get_aggfunc_by_name`.
name : str, optional name : str, optional
The name of the marker. If None, will use the class name (default The name of the marker. If None, will use the class name (default
None). None).

View file

@ -20,14 +20,14 @@ class EdgeCentricFCParcels(FunctionalConnectivityBase):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
agg_method : str, optional agg_method : str, optional
The method to perform aggregation of BOLD time series. The method to perform aggregation of BOLD time series.
Check valid options in :func:`junifer.stats.get_aggfunc_by_name` Check valid options in :func:`.get_aggfunc_by_name`
(default "mean"). (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
cor_method : str, optional cor_method : str, optional
The method to perform correlation. Check valid options in The method to perform correlation. Check valid options in
:class:`nilearn.connectome.ConnectivityMeasure` :class:`nilearn.connectome.ConnectivityMeasure`

View file

@ -20,7 +20,7 @@ class EdgeCentricFCSpheres(FunctionalConnectivityBase):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in mm. If None, the signal will be extracted The radius of the sphere in mm. If None, the signal will be extracted
from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker` from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker`
@ -30,7 +30,7 @@ class EdgeCentricFCSpheres(FunctionalConnectivityBase):
the spheres overlap (default is False). the spheres overlap (default is False).
agg_method : str, optional agg_method : str, optional
The aggregation method to use. The aggregation method to use.
See :func:`junifer.stats.get_aggfunc_by_name` for more information See :func:`.get_aggfunc_by_name` for more information
(default None). (default None).
agg_method_params : dict, optional agg_method_params : dict, optional
The parameters to pass to the aggregation method (default None). The parameters to pass to the aggregation method (default None).

View file

@ -21,10 +21,10 @@ class FunctionalConnectivityBase(BaseMarker):
---------- ----------
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
cor_method : str, optional cor_method : str, optional
The method to perform correlation using. Check valid options in The method to perform correlation using. Check valid options in
:class:`nilearn.connectome.ConnectivityMeasure` :class:`nilearn.connectome.ConnectivityMeasure`

View file

@ -20,13 +20,13 @@ class FunctionalConnectivityParcels(FunctionalConnectivityBase):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
cor_method : str, optional cor_method : str, optional
The method to perform correlation using. Check valid options in The method to perform correlation using. Check valid options in
:class:`nilearn.connectome.ConnectivityMeasure` :class:`nilearn.connectome.ConnectivityMeasure`

View file

@ -21,7 +21,7 @@ class FunctionalConnectivitySpheres(FunctionalConnectivityBase):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in mm. If None, the signal will be extracted The radius of the sphere in mm. If None, the signal will be extracted
from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker` from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker`
@ -31,7 +31,7 @@ class FunctionalConnectivitySpheres(FunctionalConnectivityBase):
the spheres overlap (default is False). the spheres overlap (default is False).
agg_method : str, optional agg_method : str, optional
The aggregation method to use. The aggregation method to use.
See :func:`junifer.stats.get_aggfunc_by_name` for more information See :func:`.get_aggfunc_by_name` for more information
(default None). (default None).
agg_method_params : dict, optional agg_method_params : dict, optional
The parameters to pass to the aggregation method (default None). The parameters to pass to the aggregation method (default None).

View file

@ -25,13 +25,13 @@ class ParcelAggregation(BaseMarker):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
method : str method : str
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name`. :func:`.get_aggfunc_by_name`.
method_params : dict, optional method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name`. :func:`.get_aggfunc_by_name`.
time_method : str, optional time_method : str, optional
The method to use to aggregate the time series over the time points, The method to use to aggregate the time series over the time points,
after applying :term:`method` (only applicable to BOLD data). If None, after applying :term:`method` (only applicable to BOLD data). If None,

View file

@ -22,7 +22,7 @@ class ReHoParcels(ReHoBase):
---------- ----------
parcellation : str parcellation : str
The name of the parcellation. Check valid options by calling The name of the parcellation. Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
use_afni : bool, optional use_afni : bool, optional
Whether to use AFNI for computing. If None, will use AFNI only Whether to use AFNI for computing. If None, will use AFNI only
if available (default None). if available (default None).
@ -70,10 +70,10 @@ class ReHoParcels(ReHoBase):
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
masks : str, dict or list of dict or str, optional masks : str, dict or list of dict or str, optional
The specification of the masks to apply to regions before extracting The specification of the masks to apply to regions before extracting
signals. Check :ref:`Using Masks <using_masks>` for more details. signals. Check :ref:`Using Masks <using_masks>` for more details.

View file

@ -22,7 +22,7 @@ class ReHoSpheres(ReHoBase):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in millimeters. If None, the signal will be The radius of the sphere in millimeters. If None, the signal will be
extracted from a single voxel. See extracted from a single voxel. See
@ -78,7 +78,7 @@ class ReHoSpheres(ReHoBase):
agg_method : str, optional agg_method : str, optional
The aggregation method to use. The aggregation method to use.
See :func:`junifer.stats.get_aggfunc_by_name` for more information See :func:`.get_aggfunc_by_name` for more information
(default None). (default None).
agg_method_params : dict, optional agg_method_params : dict, optional
The parameters to pass to the aggregation method (default None). The parameters to pass to the aggregation method (default None).

View file

@ -22,7 +22,7 @@ class SphereAggregation(BaseMarker):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in millimeters. If None, the signal will be The radius of the sphere in millimeters. If None, the signal will be
extracted from a single voxel. See extracted from a single voxel. See
@ -33,7 +33,7 @@ class SphereAggregation(BaseMarker):
the spheres overlap (default is False). the spheres overlap (default is False).
method : str, optional method : str, optional
The aggregation method to use. The aggregation method to use.
See :func:`junifer.stats.get_aggfunc_by_name` for more information See :func:`.get_aggfunc_by_name` for more information
(default "mean"). (default "mean").
method_params : dict, optional method_params : dict, optional
The parameters to pass to the aggregation method (default None). The parameters to pass to the aggregation method (default None).

View file

@ -20,10 +20,10 @@ class TemporalSNRBase(BaseMarker):
---------- ----------
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
masks : str, dict or list of dict or str, optional masks : str, dict or list of dict or str, optional
The specification of the masks to apply to regions before extracting The specification of the masks to apply to regions before extracting
signals. Check :ref:`Using Masks <using_masks>` for more details. signals. Check :ref:`Using Masks <using_masks>` for more details.

View file

@ -18,13 +18,13 @@ class TemporalSNRParcels(TemporalSNRBase):
---------- ----------
parcellation : str or list of str parcellation : str or list of str
The name(s) of the parcellation(s). Check valid options by calling The name(s) of the parcellation(s). Check valid options by calling
:func:`junifer.data.parcellations.list_parcellations`. :func:`.list_parcellations`.
agg_method : str, optional agg_method : str, optional
The method to perform aggregation using. Check valid options in The method to perform aggregation using. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default "mean"). :func:`.get_aggfunc_by_name` (default "mean").
agg_method_params : dict, optional agg_method_params : dict, optional
Parameters to pass to the aggregation function. Check valid options in Parameters to pass to the aggregation function. Check valid options in
:func:`junifer.stats.get_aggfunc_by_name` (default None). :func:`.get_aggfunc_by_name` (default None).
masks : str, dict or list of dict or str, optional masks : str, dict or list of dict or str, optional
The specification of the masks to apply to regions before extracting The specification of the masks to apply to regions before extracting
signals. Check :ref:`Using Masks <using_masks>` for more details. signals. Check :ref:`Using Masks <using_masks>` for more details.

View file

@ -19,7 +19,7 @@ class TemporalSNRSpheres(TemporalSNRBase):
---------- ----------
coords : str coords : str
The name of the coordinates list to use. See The name of the coordinates list to use. See
:func:`junifer.data.coordinates.list_coordinates` for options. :func:`.list_coordinates` for options.
radius : float, optional radius : float, optional
The radius of the sphere in mm. If None, the signal will be extracted The radius of the sphere in mm. If None, the signal will be extracted
from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker` from a single voxel. See :class:`nilearn.maskers.NiftiSpheresMasker`
@ -29,7 +29,7 @@ class TemporalSNRSpheres(TemporalSNRBase):
the spheres overlap (default is False). the spheres overlap (default is False).
agg_method : str, optional agg_method : str, optional
The aggregation method to use. The aggregation method to use.
See :func:`junifer.stats.get_aggfunc_by_name` for more information See :func:`.get_aggfunc_by_name` for more information
(default None). (default None).
agg_method_params : dict, optional agg_method_params : dict, optional
The parameters to pass to the aggregation method (default None). The parameters to pass to the aggregation method (default None).

View file

@ -99,7 +99,7 @@ def test_base_marker_subclassing() -> None:
"element": "elem", "element": "elem",
"datareader": "dr", "datareader": "dr",
}, },
} },
} }
marker = MyBaseMarker(on=["BOLD"]) marker = MyBaseMarker(on=["BOLD"])
output = marker.fit_transform(input=input_) # process output = marker.fit_transform(input=input_) # process

View file

@ -141,10 +141,7 @@ def build(
object_ = klass(**init_params) object_ = klass(**init_params)
except Exception as e: except Exception as e:
raise_error( raise_error(
msg=( msg=(f"Failed to create {step} ({name}). " f"Error: {e}"),
f"Failed to create {step} ({name}). "
f"Error: {e}"
),
klass=RuntimeError, klass=RuntimeError,
exception=e, exception=e,
) )

View file

@ -28,8 +28,8 @@ def get_aggfunc_by_name(
* ``mean`` -> :func:`numpy.mean` * ``mean`` -> :func:`numpy.mean`
* ``std`` -> :func:`numpy.std` * ``std`` -> :func:`numpy.std`
* ``trim_mean`` -> :func:`scipy.stats.trim_mean` * ``trim_mean`` -> :func:`scipy.stats.trim_mean`
* ``count`` -> :func:`junifer.stats.count` * ``count`` -> :func:`.count`
* ``select`` -> :func:`junifer.stats.select` * ``select`` -> :func:`.select`
func_params : dict, optional func_params : dict, optional
Parameters to pass to the function. Parameters to pass to the function.

View file

@ -95,8 +95,8 @@ class BaseFeatureStorage(ABC):
------- -------
dict dict
List of features in the storage. The keys are the feature MD5 to List of features in the storage. The keys are the feature MD5 to
be used in :meth:`junifer.storage.BaseFeatureStorage.read_df` be used in :meth:`.read_df` and the values are the metadata of each
and the values are the metadata of each feature. feature.
""" """
raise_error( raise_error(

View file

@ -114,8 +114,8 @@ class HDF5FeatureStorage(BaseFeatureStorage):
values are found (default True). values are found (default True).
chunk_size : int, optional chunk_size : int, optional
The chunk size to use when collecting data from element files in The chunk size to use when collecting data from element files in
:meth:`junifer.storage.HDF5FeatureStorage.collect`. If the file count :meth:`.collect`. If the file count is smaller than the value, the
is smaller than the value, the minimum is used (default 100). minimum is used (default 100).
See Also See Also
-------- --------
@ -262,8 +262,8 @@ class HDF5FeatureStorage(BaseFeatureStorage):
------- -------
dict dict
List of features in the storage. The keys are the feature MD5 to List of features in the storage. The keys are the feature MD5 to
be used in :meth:`junifer.storage.HDF5FeatureStorage.read_df` be used in :meth:`.read_df` and the values are the metadata of each
and the values are the metadata of each feature. feature.
""" """
# Read metadata # Read metadata
@ -496,9 +496,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
) -> None: ) -> None:
"""Write processed data to HDF5 (should not be called directly). """Write processed data to HDF5 (should not be called directly).
This is used primarily in This is used primarily in :meth:`.store_metadata` and ``_store_data``.
:func:`junifer.storage.HDF5FeatureStorage.store_metadata` and
``_store_data``.
Parameters Parameters
---------- ----------

View file

@ -213,8 +213,8 @@ class SQLiteFeatureStorage(PandasBaseFeatureStorage):
------- -------
dict dict
List of features in the storage. The keys are the feature MD5 to List of features in the storage. The keys are the feature MD5 to
be used in :meth:`junifer.storage.SQLiteFeatureStorage.read_df` be used in :meth:`.read_df` and the values are the metadata of each
and the values are the metadata of each feature. feature.
""" """
# Retrieve meta table from storage # Retrieve meta table from storage