Skip to content

Commit

Permalink
Merge pull request #156 from juaml/release/0.0.1
Browse files Browse the repository at this point in the history
release: 0.0.1
  • Loading branch information
synchon authored Dec 20, 2022
2 parents 49b17f9 + c939d21 commit c6508a7
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 105 deletions.
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Junifer logo](docs/images/junifer_logo.png)
![Junifer logo](docs/images/junifer_logo.png "junifer logo")

# junifer - JUelich NeuroImaging FEature extractoR

Expand Down Expand Up @@ -46,6 +46,12 @@ pip install junifer

If you use junifer in a scientific publication, we would appreciate if you cite our work. Currently, we do not have a publication, so feel free to use the project [URL](https://juaml.github.io/junifer).

## Funding

We thank the [Helmholtz Imaging Platform](https://helmholtz-imaging.de/) and
[SMHB](https://www.fz-juelich.de/en/smhb) for supporting development of Junifer.
(The funding sources had no role in the design, implementation and evaluation of the pipeline.)

## Contribution

Contributions are welcome and greatly appreciated. Please read the [guidelines](https://juaml.github.io/junifer/main/contributing.html) to get started.
Expand Down
115 changes: 115 additions & 0 deletions docs/changes/0.0.1.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
v0.0.1
------

Enhancements
~~~~~~~~~~~~

- Create the repository based on the mockup by `Fede Raimondo`_.

- Implement :class:`junifer.testing.datagrabbers.SPMAuditoryTestingDatagrabber` datagrabber
(:gh:`52` by `Fede Raimondo`_).

- Add comments to :class:`junifer.datagrabber.DataladDataGrabber` datagrabber and change to
use ``datalad-clone`` instead of ``datalad-install`` (:gh:`55` by `Benjamin Poldrack`_).

- Add an example how to use junifer and julearn in one pipeline to extract features
and do machine learning (:gh:`40` by `Leonard Sasse`_, `Nicolas Nieto`_, and `Sami Hamdan`_).

- Implement matrix storage in SQliteFeatureStorage (:gh:`42` by `Fede Raimondo`_).

- Implement :class:`junifer.markers.FunctionalConnectivityParcels` marker for functional
connectivity using a parcellation (:gh:`41` by `Amir Omidvarnia`_ and `Kaustubh R. Patil`_).

- Add documentation for the datagrabbers (by `Leonard Sasse`_,
`Nicolas Nieto`_, and `Sami Hamdan`_).

- Implement coordinate register, list and load (:gh:`11` by `Fede Raimondo`_).

- Add :class:`junifer.datagrabber.DataladAOMICID1000` datagrabber for AOMIC ID1000 dataset
including tests and creation of mock dataset for testing (:gh:`60` by `Vera Komeyer`_, `Xuan Li`_).

- Add support to access other input in the data object in the ``compute`` method
(by `Fede Raimondo`_).

- Implement :class:`junifer.markers.RSSETSMarker` marker (:gh:`51` by `Leonard Sasse`_,
`Nicolas Nieto`_, `Sami Hamdan`_).

- Implement :class:`junifer.markers.SphereAggregation` marker (by `Fede Raimondo`_).

- Implement :class:`junifer.datagrabber.DataladAOMICPIOP1` and
:class:`junifer.datagrabber.DataladAOMICPIOP2` datagrabbers for AOMIC PIOP1 and PIOP2 datasets
respectively and refactor :class:`junifer.datagrabber.DataladAOMICID1000` slightly
(:gh:`94` by `Leonard Sasse`_)

- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladCamCANVBM` datagrabber
(:gh:`99` by `Leonard Sasse`_)

- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladIXIVBM` CAT output
datagrabber for juseless (:gh:`48` by `Leonard Sasse`_).

- Upgrade storage interface for storage-like objects (:gh:`84` by `Synchon Mandal`_).

- Add missing type annotations (:gh:`74` by `Synchon Mandal`_).

- Add ``junifer wtf`` to report environment details (:gh:`33` by `Synchon Mandal`_).

- Add ``junifer selftest`` to report environment details (:gh:`9` by `Synchon Mandal`_).

- Refactor markers ``on`` attribute and ``get_valid_inputs`` to verify that the marker can
be computed on the input data types (by `Fede Raimondo`_)

- Implement :class:`junifer.configs.juseless.datagrabbers.JuselessDataladAOMICID1000VBM`
datagrabber for accessing AOMIC ID1000 VBM from juseless (:gh:`57` by `Felix Hoffstaedter`_
and `Synchon Mandal`_)

- Add test for :class:`junifer.datagrabber.DataladHCP1200` datagrabber (:gh:`93` by `Synchon Mandal`_).

- Change documentation template to furo. Fix references and standardize documentation (:gh:`114` by `Fede Raimondo`_).

- Add :class:`junifer.preprocess.fMRIPrepConfoundRemover` (:gh:`111` by `Fede Raimondo`_ and `Leonard Sasse`_).

- Implement :class:`junifer.markers.CrossParcellationFC` marker (:gh:`85` by `Leonard Sasse`_
and `Kaustubh R. Patil`_)

- Add :class:`junifer.configs.juseless.datagrabbers.JuselessUCLA` datagrabber for the UCLA dataset
available on juseless (:gh:`118` by `Leonard Sasse`_).

- Rename "atlas" to "parcellation" (:gh:`116` by `Fede Raimondo`_).

- Refactor the :class:`junifer.datagrabber.BaseDataGrabber` class to allow for easier subclassing (:gh:`123` by `Fede Raimondo`_).

- Allow custom aggregation method for :class:`junifer.markers.SphereAggregation` (:gh:`102` by `Synchon Mandal`_).

- Add support for "masks" (:gh:`79` by `Fede Raimondo`_).

- Allow :class:`junifer.markers.ParcelAggregation` to apply multiple parcellations at once (:gh:`131` by `Fede Raimondo`_).

- Introduce a singleton decorator for marker computations (:gh:`151` by `Synchon Mandal`_).

- Refactor :class:`junifer.pipeline.PipelineStepMixin` to improve its implementation and validation for pipeline steps
(:gh:`152` by `Synchon Mandal`_).

- Implement :class:`junifer.markers.ReHoParcels` and :class:`junifer.markers.ReHoSpheres` markers (:gh:`36` by `Synchon Mandal`_).

- Implement :class:`junifer.markers.AmplitudeLowFrequencyFluctuationParcels` and
:class:`junifer.markers.AmplitudeLowFrequencyFluctuationSpheres` markers (:gh:`35` by `Fede Raimondo`_).

Bugs
~~~~

- Fix a bug in which a :class:`junifer.datagrabber.PatternDataGrabber` would now work with relative ``datadir`` paths.
(:gh:`96` by `Leonard Sasse`_, fixed in :gh:`98` by `Fede Raimondo`_).

- Fix a bug in which :class:`junifer.datagrabber.DataladAOMICPIOP2` datagrabber did not use user input to
constrain elements based on tasks (:gh:`105` by `Leonard Sasse`_)

- Fix a bug in which a datalad dataset could remove a user-cloned dataset (:gh:`53` by `Fede Raimondo`_)

- 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 (:gh:`143` by `Fede Raimondo`_).

API changes
~~~~~~~~~~~

- Change the ``single_output`` default parameter in storage classes from ``False`` to ``True`` (:gh:`134` by `Fede Raimondo`_).
95 changes: 1 addition & 94 deletions docs/changes/latest.inc
Original file line number Diff line number Diff line change
Expand Up @@ -14,107 +14,14 @@

.. _current:

Current (0.0.0.dev)
Current (0.0.2.dev)
-------------------

Enhancements
~~~~~~~~~~~~

- Created a the repository based on the mockup by `Fede Raimondo`_.

- Implemented SPM Auditory testing datagrabber X (:gh:`52` by `Fede Raimondo`_).

- Added comments to datalad grabber and changed to use datalad-clone instead of
datalad-install (:gh:`55` by `Benjamin Poldrack`_).

- Added an example how to use junifer and julearn (:gh:`40` by `Leonard Sasse`_,
`Nicolas Nieto`_, and `Sami Hamdan`_) in one pipeline to extract features
and do machine learning.

- Implement matrix storage in SQliteFeatureStorage (:gh:`42` by `Fede Raimondo`_).

- Marker for functional connectivity using a parcellation (:gh:`41` by
`Amir Omidvarnia`_ and `Kaustubh R. Patil`_).

- Added documentation for the datagrabbers (by `Leonard Sasse`_,
`Nicolas Nieto`_, and `Sami Hamdan`_).

- Implement coordinate register, list and load (:gh:`11` by `Fede Raimondo`_).

- Added datagrabber for AOMIC1000 dataset including tests and creation of mock
dataset for testing (:gh:`60` by `Vera Komeyer`_, `Xuan Li`_).

- Added support to access other input in the data object in the `compute` method
(by `Fede Raimondo`_).

- Implemented the edge time series RSS marker (:gh:`51` by `Leonard Sasse`_,
`Nicolas Nieto`_, `Sami Hamdan`_).

- Implement SphereAggregation marker (by `Fede Raimondo`_).

- Implement PIOP1 and PIOP2 AOMIC datasets and refactor AOMICID1000 slightly
(:gh:`94` by `Leonard Sasse`_)

- Implement a JuselessDataladCamCANVBM datagrabber class (:gh:`99` by `Leonard Sasse`_)

- Implement IXI CAT output datagrabber for juseless (:gh:`48` by `Leonard Sasse`_).

- Upgrade storage interface for storage-like objects (:gh:`84` by `Synchon Mandal`_).

- Add missing type annotations (:gh:`74` by `Synchon Mandal`_).

- Add ``junifer wtf`` to report environment details (:gh:`33` by `Synchon Mandal`_).

- Add ``junifer selftest`` to report environment details (:gh:`9` by `Synchon Mandal`_).

- Refactor markers ``on`` attribute and ``get_valid_inputs`` to verify that the marker can be computed on the input data types (by `Fede Raimondo`_)

- Implement JuselessDataladAOMICID1000VBM datagrabber for accessing AOMIC ID 1000 VBM from juseless (:gh:`57` by `Felix Hoffstaedter`_ and `Synchon Mandal`_)

- Add test for DataladHCP1200 datagrabber (:gh:`93` by `Synchon Mandal`_).

- Change documentation template to furo. Fix references and standardize documentation (:gh:`114` by `Fede Raimondo`_).

- Add :class:`junifer.preprocess.fMRIPrepConfoundRemover` (:gh:`111` by `Fede Raimondo`_ and `Leonard Sasse`_).

- Implement CrossParcellationFC marker (:gh:`85` by `Leonard Sasse`_ and `Kaustubh R. Patil`_)

- Add datagrabber implementation for the UCLA dataset available on juseless (:gh:`118` by `Leonard Sasse`_).

- Rename "atlas" to "parcellation" (:gh:`116` by `Fede Raimondo`_).

- Refactor the :class:`junifer.datagrabber.BaseDataGrabber` class to allow for easier subclassing (:gh:`123` by `Fede Raimondo`_).

- Allow custom aggregation method for :class:`junifer.markers.SphereAggregation` (:gh:`102` by `Synchon Mandal`_).

- Add support for "masks" (:gh:`79` by `Fede Raimondo`_).

- Allow :class:`junifer.markers.ParcelAggregation` to apply multiple parcellations at once (:gh:`131` by `Fede Raimondo`_).

- Introduce a singleton decorator for marker computations (:gh:`151` by `Synchon Mandal`_).

- Refactor :class:`junifer.pipeline.PipelineStepMixin` to improve its implementation and validation for pipeline steps
(:gh:`152` by `Synchon Mandal`_).

- Implement :class:`junifer.markers.ReHoParcels` and :class:`junifer.markers.ReHoSpheres` markers (:gh:`36` by `Synchon Mandal`_).

- Implement :class:`junifer.markers.AmplitudeLowFrequencyFluctuationParcels` and :class:`junifer.markers.AmplitudeLowFrequencyFluctuationSpheres` markers (:gh:`35` by `Fede Raimondo`_).

Bugs
~~~~

- Fix a bug in which a PatternDatagrabber would now work with relative `datadir` paths.
(:gh:`96` by `Leonard Sasse`_, fixed in :gh:`98` by `Fede Raimondo`_).

- Fix a bug in which AOMIC PIOP2 datagrabber did not use user input to constrain elements based on tasks (:gh:`105` by `Leonard Sasse`_)

- Fix a bug in which a datalad dataset could remove a user-cloned dataset (:gh:`53` by `Fede Raimondo`_)

- 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 (:gh:`143` by `Fede Raimondo`_).

API changes
~~~~~~~~~~~

- Change the ``single_output`` default parameter in storage classes from ``False`` to ``True`` (:gh:`134` by `Fede Raimondo`_).
8 changes: 8 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,11 @@ Indices and tables
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`


Funding
=======

We thank the `Helmholtz Imaging Platform <https://helmholtz-imaging.de/>`_ and
`SMHB <https://www.fz-juelich.de/en/smhb>`_ for supporting development of Junifer.
(The funding sources had no role in the design, implementation and evaluation of the pipeline.)
14 changes: 7 additions & 7 deletions docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,16 @@ find a list of all external dependencies that are required for specific markers.
AFNI
----

To install AFNI, you can always follow the `AFNI official instructions
To install AFNI, you can always follow the `AFNI official instructions
<https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/background_install/main_toc.html>`_. Additionally, you can also follow
the following steps to install and configure the AFNI Docker container in your local system.

.. important::
.. important::

The AFNI Docker container wrappers add the commands required by Junifer. Using this commands have
some limitations, mostly related to handling files and paths. Junifer knows about this and uses this
commands in the proper way. Keep this in mind if you try to use the AFNI Docker wrappers outside of junifer. This
caveats and limitations are not documented.
The AFNI Docker container wrappers add the commands required by junifer. Using these commands have
some limitations, mostly related to handling files and paths. Junifer knows about this and uses these
commands in the proper way. Keep this in mind if you try to use the AFNI Docker wrappers outside of junifer.
These caveats and limitations are not documented.

1. Install Docker. You can follow the `Docker official instructions <https://docs.docker.com/get-docker/>`_.
2. Pull the AFNI Docker image from `Docker Hub <https://hub.docker.com/r/afni/afni>`_:
Expand All @@ -89,7 +89,7 @@ the following steps to install and configure the AFNI Docker container in your l
junifer setup afni-docker
Take the last line and copy it to your ``.bashrc`` or ``.zshrc`` file.
Take the last line and copy it to your ``.bashrc`` or ``.zshrc`` file.

Or, alternatively, you can exceute this command which will update the ``~/.bashrc`` for you:

Expand Down
3 changes: 1 addition & 2 deletions docs/maintaining.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pre-release.

The CI scripts will publish every tag with the format *v.X.Y.Z* to Pypi as
version "X.Y.Z". Additionally, for every push to main, it will be published
as pre-release to TestPypi.
as pre-release to PyPI.

Releasing a new version
-----------------------
Expand Down Expand Up @@ -64,4 +64,3 @@ release.
git tag -a vD.E.0.dev -m "Set next release to D.E.0"
git push origin --follow-tags
3 changes: 2 additions & 1 deletion docs/whats_new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ What's new
==========

.. include:: changes/latest.inc
.. include:: changes/0.0.1.inc
.. include:: changes/contributors.inc
.. include:: links.inc
.. include:: links.inc

0 comments on commit c6508a7

Please sign in to comment.