Skip to content

Commit

Permalink
[DOC] Add JOSS badges (#815)
Browse files Browse the repository at this point in the history
* Add JOSS badges.

* Trigger new build.

* Update README.md

* Add citation to README and index.rst.

* Add duecredit citation.

* Add reference to workflow docstrings.

* Add citation to the report as well.

* Add numbers back in.
  • Loading branch information
tsalo committed Oct 25, 2021
1 parent 4d5c645 commit 28a0c46
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 21 deletions.
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
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

[![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 @@ -23,6 +24,26 @@ An important distinction is that while the ME-ICA pipeline originally performed

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
23 changes: 20 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ tedana: TE Dependent ANAlysis
: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 @@ -110,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. 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>
1. Kundu, P., Inati, S. J., Evans, J. W., Luh, W. M. & Bandettini, P. A. (2011).
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>
1. 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
10 changes: 9 additions & 1 deletion tedana/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import warnings

from .due import Doi, due
from .due import BibTeX, Doi, due
from .info import (
__author__,
__copyright__,
Expand All @@ -24,6 +24,14 @@
# cmp is not used, so ignore nipype-generated warnings
warnings.filterwarnings("ignore", r"cmp not installed")

# Citation for the package JOSS paper.
due.cite(
Doi("10.21105/joss.03669"),
description="Publication introducing tedana.",
path="tedana",
cite_module=True,
)

# Citation for the algorithm.
due.cite(
Doi("10.1016/j.neuroimage.2011.12.028"),
Expand Down
12 changes: 12 additions & 0 deletions tedana/workflows/t2smap.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ def t2smap_workflow(
"""
Estimate T2 and S0, and optimally combine data across TEs.
Please remember to cite [1]_.
Parameters
----------
data : :obj:`str` or :obj:`list` of :obj:`str`
Expand Down Expand Up @@ -219,6 +221,16 @@ def t2smap_workflow(
will have a NaN.
desc-optcom_bold.nii.gz Optimally combined timeseries.
============================= =================================================
References
----------
.. [1] 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.
Journal of Open Source Software, 6(66), 3669. doi:10.21105/joss.03669.
"""
out_dir = op.abspath(out_dir)
if not op.isdir(out_dir):
Expand Down
27 changes: 26 additions & 1 deletion tedana/workflows/tedana.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,8 @@ def tedana_workflow(
"""
Run the "canonical" TE-Dependent ANAlysis workflow.
Please remember to cite [1]_.
Parameters
----------
data : :obj:`str` or :obj:`list` of :obj:`str`
Expand Down Expand Up @@ -426,6 +428,16 @@ def tedana_workflow(
This workflow writes out several files. For a complete list of the files
generated by this workflow, please visit
https://tedana.readthedocs.io/en/latest/outputs.html
References
----------
.. [1] 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.
Journal of Open Source Software, 6(66), 3669. doi:10.21105/joss.03669.
"""
out_dir = op.abspath(out_dir)
if not op.isdir(out_dir):
Expand Down Expand Up @@ -530,7 +542,20 @@ def tedana_workflow(
elif t2smap is not None:
raise IOError("Argument 't2smap' must be an existing file.")

RepLGR.info("TE-dependence analysis was performed on input data.")
RepLGR.info(
"TE-dependence analysis was performed on input data using the tedana workflow "
"(DuPre, Salo et al., 2021)."
)
RefLGR.info(
"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. "
"Journal of Open Source Software, 6(66), 3669. doi:10.21105/joss.03669."
)

if mask and not t2smap:
# TODO: add affine check
LGR.info("Using user-defined mask")
Expand Down

0 comments on commit 28a0c46

Please sign in to comment.