Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into fix_762
Browse files Browse the repository at this point in the history
  • Loading branch information
Joshua Teves committed Jan 4, 2022
2 parents aa305e3 + 64fa9d0 commit 129abd6
Show file tree
Hide file tree
Showing 18 changed files with 1,154 additions and 50 deletions.
9 changes: 9 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,15 @@
"code",
"doc"
]
},
{
"login": "manfredg",
"name": "Manfred G Kitzbichler",
"avatar_url": "https://avatars.githubusercontent.com/u/1173430?v=4",
"profile": "https://github.com/manfredg",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 5,
Expand Down
30 changes: 15 additions & 15 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Generate environment
command: |
Expand All @@ -24,7 +24,7 @@ jobs:
pip install .[tests]
fi
- save_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
paths:
- /opt/conda/envs/tedana_py37

Expand All @@ -35,7 +35,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py36-v1-{{ checksum "tedana/info.py" }}
key: conda-py36-v2-{{ checksum "tedana/info.py" }}
- run:
name: Generate environment
command: |
Expand All @@ -54,7 +54,7 @@ jobs:
mkdir /tmp/src/coverage
mv /tmp/src/tedana/.coverage /tmp/src/coverage/.coverage.py36
- save_cache:
key: conda-py36-v1-{{ checksum "tedana/info.py" }}
key: conda-py36-v2-{{ checksum "tedana/info.py" }}
paths:
- /opt/conda/envs/tedana_py36
- persist_to_workspace:
Expand All @@ -69,7 +69,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Running unit tests
command: |
Expand All @@ -91,7 +91,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py38-v1-{{ checksum "tedana/info.py" }}
key: conda-py38-v2-{{ checksum "tedana/info.py" }}
- run:
name: Generate environment
command: |
Expand All @@ -110,7 +110,7 @@ jobs:
mkdir /tmp/src/coverage
mv /tmp/src/tedana/.coverage /tmp/src/coverage/.coverage.py38
- save_cache:
key: conda-py38-v1-{{ checksum "tedana/info.py" }}
key: conda-py38-v2-{{ checksum "tedana/info.py" }}
paths:
- /opt/conda/envs/tedana_py38
- persist_to_workspace:
Expand All @@ -125,7 +125,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py39-v1-{{ checksum "tedana/info.py" }}
key: conda-py39-v2-{{ checksum "tedana/info.py" }}
- run:
name: Generate environment
command: |
Expand All @@ -144,7 +144,7 @@ jobs:
mkdir /tmp/src/coverage
mv /tmp/src/tedana/.coverage /tmp/src/coverage/.coverage.py39
- save_cache:
key: conda-py39-v1-{{ checksum "tedana/info.py" }}
key: conda-py39-v2-{{ checksum "tedana/info.py" }}
paths:
- /opt/conda/envs/tedana_py39
- persist_to_workspace:
Expand All @@ -159,7 +159,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Style check
command: |
Expand All @@ -175,7 +175,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Run integration tests
no_output_timeout: 40m
Expand All @@ -200,7 +200,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Run integration tests
no_output_timeout: 40m
Expand All @@ -225,7 +225,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Run integration tests
no_output_timeout: 40m
Expand All @@ -250,7 +250,7 @@ jobs:
steps:
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Run integration tests
no_output_timeout: 40m
Expand All @@ -277,7 +277,7 @@ jobs:
at: /tmp
- checkout
- restore_cache:
key: conda-py37-v1-{{ checksum "tedana/info.py" }}
key: conda-py37-v2-{{ checksum "tedana/info.py" }}
- run:
name: Merge coverage files
command: |
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ ENV/

# jupyter notebooks
.ipynb_checkpoints/
*.ipynb

# vim swap files
*.swp
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ Make sure to always [keep your fork up to date][link_updateupstreamwiki] with th
To test a change, you may need to set up your local repository to run a `tedana` workflow.
To do so, run
```
pip install -e .[all]
pip install -e .'[all]'
```
from within your local `tedana` repository. This should ensure all packages are correctly organized and linked on your user profile.

Expand Down
54 changes: 43 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
# tedana: TE Dependent ANAlysis

The ``tedana`` package is part of the ME-ICA pipeline, performing TE-dependent
analysis of multi-echo functional magnetic resonance imaging (fMRI) data.
``TE``-``de``pendent ``ana``lysis (``tedana``) is a Python module for denoising
multi-echo functional magnetic resonance imaging (fMRI) data.

[![Latest Version](https://img.shields.io/pypi/v/tedana.svg)](https://pypi.python.org/pypi/tedana/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tedana.svg)](https://pypi.python.org/pypi/tedana/)
[![DOI](https://zenodo.org/badge/110845855.svg)](https://zenodo.org/badge/latestdoi/110845855)
[![JOSS DOI](https://joss.theoj.org/papers/10.21105/joss.03669/status.svg)](https://doi.org/10.21105/joss.03669)
[![Zenodo DOI](https://zenodo.org/badge/110845855.svg)](https://zenodo.org/badge/latestdoi/110845855)
[![License](https://img.shields.io/badge/License-LGPL%202.0-blue.svg)](https://opensource.org/licenses/LGPL-2.1)
[![CircleCI](https://circleci.com/gh/ME-ICA/tedana.svg?style=shield)](https://circleci.com/gh/ME-ICA/tedana)
[![Documentation Status](https://readthedocs.org/projects/tedana/badge/?version=latest)](http://tedana.readthedocs.io/en/latest/?badge=latest)
Expand All @@ -19,16 +15,35 @@ multi-echo functional magnetic resonance imaging (fMRI) data.
[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


## About

``tedana`` originally came about as a part of the [ME-ICA](https://github.com/me-ica/me-ica) pipeline.
The ME-ICA pipeline originally performed both pre-processing and TE-dependent analysis of multi-echo fMRI data; however, ``tedana`` now assumes that you're working with data which has been previously preprocessed.
``TE``-``de``pendent ``ana``lysis (``tedana``) is a Python library for denoising multi-echo functional magnetic resonance imaging (fMRI) data.
``tedana`` originally came about as a part of the [ME-ICA](https://github.com/me-ica/me-ica) pipeline, although it has since diverged.
An important distinction is that while the ME-ICA pipeline originally performed both pre-processing and TE-dependent analysis of multi-echo fMRI data,
``tedana`` now assumes that you're working with data which has been previously preprocessed.

![http://tedana.readthedocs.io/](https://user-images.githubusercontent.com/7406227/40031156-57b7cbb8-57bc-11e8-8c51-5b29f2e86a48.png)

More information and documentation can be found at https://tedana.readthedocs.io.

## Citing `tedana`

If you use `tedana`, please cite the following papers, as well as our [most recent Zenodo release](https://zenodo.org/badge/latestdoi/110845855):

- DuPre, E. M., Salo, T., Ahmed, Z., Bandettini, P. A., Bottenhorn, K. L.,
Caballero-Gaudes, C., Dowdle, L. T., Gonzalez-Castillo, J., Heunis, S.,
Kundu, P., Laird, A. R., Markello, R., Markiewicz, C. J., Moia, S.,
Staden, I., Teves, J. B., Uruñuela, E., Vaziri-Pashkam, M.,
Whitaker, K., & Handwerker, D. A. (2021).
[TE-dependent analysis of multi-echo fMRI with tedana.](https://doi.org/10.21105/joss.03669)
_Journal of Open Source Software_, _6(66)_, 3669.
doi:10.21105/joss.03669.
- Kundu, P., Inati, S. J., Evans, J. W., Luh, W. M., & Bandettini, P. A. (2011).
[Differentiating BOLD and non-BOLD signals in fMRI time series using multi-echo EPI.](https://doi.org/10.1016/j.neuroimage.2011.12.028)
_NeuroImage_, _60_, 1759-1770.
- Kundu, P., Brenowitz, N. D., Voon, V., Worbe, Y., Vértes, P. E., Inati, S. J.,
Saad, Z. S., Bandettini, P. A., & Bullmore, E. T. (2013).
[Integrated strategy for improving functional connectivity mapping using multiecho fMRI.](https://doi.org/10.1073/pnas.1301725110)
_Proceedings of the National Academy of Sciences_, _110_, 16187-16192.

## Installation

### Use `tedana` with your local Python environment
Expand Down Expand Up @@ -75,6 +90,20 @@ conda deactivate
NOTE: Conda < 4.6 users will need to use the soon-to-be-deprecated option `source` rather than `conda` for the activation and deactivation steps.
You can read more about managing conda environments and this discrepancy [here](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).

You can confirm that ``tedana`` has successfully installed by launching a Python instance and running:

```python
import tedana
```

You can check that it is available through the command line interface (CLI) with:

```bash
tedana --help
```

If no error occurs, ``tedana`` has correctly installed in your environment!

### Use and contribute to `tedana` as a developer

If you aim to contribute to the `tedana` code base and/or documentation, please first read the developer installation instructions in [our contributing section](https://github.com/ME-ICA/tedana/blob/main/CONTRIBUTING.md). You can then continue to set up your preferred development environment.
Expand Down Expand Up @@ -133,6 +162,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center"><a href="https://github.com/smoia"><img src="https://avatars3.githubusercontent.com/u/35300580?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Stefano Moia</b></sub></a><br /><a href="https://github.com/ME-ICA/tedana/commits?author=smoia" title="Code">💻</a> <a href="https://github.com/ME-ICA/tedana/pulls?q=is%3Apr+reviewed-by%3Asmoia" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/ME-ICA/tedana/commits?author=smoia" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.notzaki.com/"><img src="https://avatars1.githubusercontent.com/u/9019681?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zaki A.</b></sub></a><br /><a href="https://github.com/ME-ICA/tedana/issues?q=author%3AnotZaki" title="Bug reports">🐛</a> <a href="https://github.com/ME-ICA/tedana/commits?author=notZaki" title="Code">💻</a> <a href="https://github.com/ME-ICA/tedana/commits?author=notZaki" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/manfredg"><img src="https://avatars.githubusercontent.com/u/1173430?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Manfred G Kitzbichler</b></sub></a><br /><a href="https://github.com/ME-ICA/tedana/commits?author=manfredg" title="Code">💻</a></td>
</tr>
</table>

<!-- markdownlint-restore -->
Expand Down
2 changes: 2 additions & 0 deletions docs/approach.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ This is performed in a series of steps, including:
.. image:: /_static/tedana-workflow.png
:align: center

We provide more detail on each step below.
The figures shown in this walkthrough are generated in the `provided notebooks <https://github.com/ME-ICA/tedana/tree/joss/docs/notebooks>`_.

***************
Multi-echo data
Expand Down
39 changes: 26 additions & 13 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@
tedana: TE Dependent ANAlysis
#############################

The ``tedana`` package is part of the ME-ICA pipeline, performing TE-dependent
analysis of multi-echo functional magnetic resonance imaging (fMRI) data.
``TE``-``de``\pendent ``ana``\lysis (``tedana``) is a Python module for denoising
multi-echo functional magnetic resonance imaging (fMRI) data.

.. image:: https://img.shields.io/pypi/v/tedana.svg
:target: https://pypi.python.org/pypi/tedana/
:alt: Latest Version
Expand All @@ -17,9 +12,13 @@ multi-echo functional magnetic resonance imaging (fMRI) data.
:target: https://pypi.python.org/pypi/tedana/
:alt: PyPI - Python Version

.. image:: https://joss.theoj.org/papers/10.21105/joss.03669/status.svg
:target: https://doi.org/10.21105/joss.03669
:alt: JOSS DOI

.. image:: https://zenodo.org/badge/110845855.svg
:target: https://zenodo.org/badge/latestdoi/110845855
:alt: DOI
:alt: Zenodo DOI

.. image:: https://circleci.com/gh/ME-ICA/tedana.svg?style=shield
:target: https://circleci.com/gh/ME-ICA/tedana
Expand Down Expand Up @@ -62,14 +61,15 @@ multi-echo functional magnetic resonance imaging (fMRI) data.
About
*****

``TE``-``de``pendent ``ana``lysis (``tedana``) is a Python library for denoising multi-echo functional magnetic resonance imaging (fMRI) data.
``tedana`` originally came about as a part of the `ME-ICA`_ pipeline, although it has since diverged.
An important distinction is that while the ME-ICA pipeline originally performed both pre-processing and TE-dependent analysis of multi-echo fMRI data,
``tedana`` now assumes that you're working with data which has been previously preprocessed.


.. image:: https://user-images.githubusercontent.com/7406227/40031156-57b7cbb8-57bc-11e8-8c51-5b29f2e86a48.png
:target: http://tedana.readthedocs.io/

``tedana`` originally came about as a part of the `ME-ICA`_ pipeline.
The ME-ICA pipeline originally performed both pre-processing and TE-dependent
analysis of multi-echo fMRI data; however, ``tedana`` now assumes that you're
working with data which has been previously preprocessed.

For a summary of multi-echo fMRI, which is the imaging technique ``tedana`` builds on,
visit `Multi-echo fMRI`_.

Expand Down Expand Up @@ -114,14 +114,27 @@ When using tedana, please include the following citations:
<p>
<span id="tedana_citation">tedana</span> Available from: <a id="tedana_doi_url" href="https://doi.org/10.5281/zenodo.1250561">https://doi.org/10.5281/zenodo.1250561</a>
<img src onerror='fillCitation()' alt=""/>
</p>

<p>
2. Kundu, P., Inati, S. J., Evans, J. W., Luh, W. M. & Bandettini, P. A. (2011).
2. DuPre, E. M., Salo, T., Ahmed, Z., Bandettini, P. A., Bottenhorn, K. L.,
Caballero-Gaudes, C., Dowdle, L. T., Gonzalez-Castillo, J., Heunis, S.,
Kundu, P., Laird, A. R., Markello, R., Markiewicz, C. J., Moia, S.,
Staden, I., Teves, J. B., Uruñuela, E., Vaziri-Pashkam, M.,
Whitaker, K., & Handwerker, D. A. (2021).
<a href=https://doi.org/10.21105/joss.03669>TE-dependent analysis of multi-echo fMRI with tedana.</a>
<i>Journal of Open Source Software</i>, <i>6(66)</i>, 3669.
doi:10.21105/joss.03669.
</p>

<p>
3. Kundu, P., Inati, S. J., Evans, J. W., Luh, W. M., & Bandettini, P. A. (2011).
<a href=https://doi.org/10.1016/j.neuroimage.2011.12.028>Differentiating BOLD and non-BOLD signals in fMRI time series using multi-echo EPI.</a>
<i>NeuroImage</i>, <i>60</i>, 1759-1770.
</p>

<p>
3. Kundu, P., Brenowitz, N. D., Voon, V., Worbe, Y., Vértes, P. E., Inati, S. J.,
4. Kundu, P., Brenowitz, N. D., Voon, V., Worbe, Y., Vértes, P. E., Inati, S. J.,
Saad, Z. S., Bandettini, P. A., & Bullmore, E. T. (2013).
<a href=https://doi.org/10.1073/pnas.1301725110>Integrated strategy for improving functional connectivity mapping using multiecho fMRI.</a>
<i>Proceedings of the National Academy of Sciences</i>, <i>110</i>, 16187-16192.
Expand Down
18 changes: 17 additions & 1 deletion docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,27 @@ packages will need to be installed:
- scipy
- mapca

You can then install ``tedana`` with:
You can also install several optional dependencies, notably ``duecredit``.
Please see the :doc:`FAQ <faq>` for more information on how tedana uses ``duecredit``.

After installing relevant dependencies, you can then install ``tedana`` with:

.. code-block:: bash
pip install tedana
In addition to the Python package, installing ``tedana`` will add the ``tedana``
and ``t2smap`` workflow CLIs to your path.
You can confirm that ``tedana`` has successfully installed by launching a Python instance and running:

.. code-block:: python
import tedana
You can check that it is available through the command line interface (CLI) with:

.. code-block:: bash
tedana --help
If no error occurs, ``tedana`` has correctly installed in your environment!
File renamed without changes.
File renamed without changes.
Binary file added paper/figure_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 129abd6

Please sign in to comment.