Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation updates #141

Merged
merged 55 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
6986e90
[BUG] inside unit_tests workflow
bclenet Aug 31, 2023
d6e67f3
Merge branch 'Inria-Empenn:main' into main
bclenet Aug 31, 2023
c3bfc53
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 4, 2023
4b30504
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 19, 2023
fd15ffc
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 21, 2023
6715950
[DOC] fix some broken links
bclenet Sep 22, 2023
57b8c86
[DOC] adding template for pipeline testing
bclenet Sep 22, 2023
2c891c2
[DOC] adding template for pipeline testing
bclenet Sep 22, 2023
552e18c
About implemented_pipelines
bclenet Sep 25, 2023
b6f21f4
Deal with test template
bclenet Sep 25, 2023
6ebe5d2
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 29, 2023
0a584dd
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 29, 2023
e284b80
Merge branch 'Inria-Empenn:main' into main
bclenet Sep 29, 2023
5774813
Merge branch 'Inria-Empenn:main' into main
bclenet Oct 5, 2023
8f12d3d
Merge branch 'Inria-Empenn:main' into main
bclenet Oct 5, 2023
7c3b6df
Merge branch 'main' into documentation
bclenet Oct 5, 2023
91dc744
Merge branch 'Inria-Empenn:main' into main
bclenet Oct 10, 2023
c10e3a4
Merge branch 'main' into documentation
bclenet Oct 13, 2023
0436fe4
[DOC] new readme for the doc
bclenet Oct 13, 2023
bfcf3dd
Changes in README.md
bclenet Oct 13, 2023
d212e1d
[DOC] slight changes to docs/README.md
bclenet Oct 13, 2023
c03e9d1
Merge branch 'Inria-Empenn:main' into main
bclenet Nov 20, 2023
fe0d25b
Merge branch 'Inria-Empenn:main' into main
bclenet Nov 22, 2023
04d5ff2
Merge branch 'Inria-Empenn:main' into main
bclenet Nov 22, 2023
6466b29
Merge branch 'main' into documentation
bclenet Nov 30, 2023
29870d5
Add links to past events
bclenet Nov 30, 2023
e4f369d
Changes in readme.md
bclenet Nov 30, 2023
142f89c
fMRI trail
bclenet Nov 30, 2023
7b7fb89
Adding trail description in contribution guide
bclenet Dec 6, 2023
23b93f6
Separate trails in contribution guide
bclenet Dec 6, 2023
6f3dd73
[TEST] Solving pytest issues with template test
bclenet Dec 6, 2023
c9ee889
Merge branch 'Inria-Empenn:main' into main
bclenet Jan 5, 2024
933e87f
Merge branch 'main' into documentation
bclenet Jan 9, 2024
5803501
Changing docker image in use
bclenet Jan 9, 2024
e297685
FSL template correction
bclenet Jan 10, 2024
9213dc4
[DOC] writing test files
bclenet Jan 10, 2024
9bfc89c
Merge branch 'Inria-Empenn:main' into main
bclenet Jan 10, 2024
d2b8452
Merge branch 'main' into documentation
bclenet Jan 10, 2024
7d5fa82
Codespell
bclenet Jan 10, 2024
11736e6
First step in writing documentation about NARPS
bclenet Jan 10, 2024
c5fd548
[DOC] completing doc about narps
bclenet Jan 11, 2024
6c9d7a3
[DOC] completing doc about narps
bclenet Jan 11, 2024
a016bdd
[DOC] completing doc about narps
bclenet Jan 11, 2024
7493f74
Merge branch 'Inria-Empenn:main' into main
bclenet Jan 11, 2024
a73f3c3
[DATALAD] change results url
bclenet Jan 11, 2024
f03f50e
Merge pull request #3 from bclenet/results
bclenet Jan 11, 2024
68ea23c
[DOC] reference to the github project for reproduction mgmt
bclenet Jan 11, 2024
f4c0c24
[DOC] adding team id choices for narps open runner
bclenet Jan 12, 2024
9120dda
Merge branch 'main' into documentation
bclenet Jan 12, 2024
6ebd536
[DOC] list of available team ids in command tools documentation
bclenet Jan 15, 2024
ecce46a
[DOC] configuration info inside INSTALL.md
bclenet Jan 16, 2024
5b46057
[DOC] configuration info inside INSTALL.md
bclenet Jan 16, 2024
a737df5
Merge branch 'Inria-Empenn:main' into main
bclenet Jan 19, 2024
b8c1fda
NARPS Exclusion comments
bclenet Jan 24, 2024
f518012
Merge branch 'main' into documentation
bclenet Jan 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ In the following, read the instruction sections where the badge corresponding to
## 1 - Choose a pipeline
`🧠 fMRI soft` `🐍 Python`

Not sure which pipeline to start with :thinking:? The [pipeline dashboard](https://github.com/Inria-Empenn/narps_open_pipelines/wiki/pipeline_status) provides the progress status for each pipeline. You can pick any pipeline that is not fully reproduced, i.e.: not started :red_circle: or in progress :orange_circle: .
Not sure which pipeline to start with :thinking:? The [pipeline dashboard](https://github.com/Inria-Empenn/narps_open_pipelines/wiki/pipeline_status) provides the progress status for each pipeline. You can pick a pipeline that is not fully reproduced, i.e.: not started :red_circle: or in progress :orange_circle: . Also have a look to the [pipeline reproduction management page](https://github.com/orgs/Inria-Empenn/projects/1/views/1) in order to get in touch with contributors working on the same pipeline.

> [!NOTE]
> Need more information to make a decision? The `narps_open.utils.description` module of the project, as described [in the documentation](/docs/description.md) provides easy access to all the info we have on each pipeline.
Expand Down
16 changes: 16 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,22 @@ Start a Docker container from the Docker image :
docker run -it -v PATH_TO_THE_REPOSITORY:/home/neuro/code/ nipype/nipype
```

Optionally edit the configuration file `narps_open/utils/default_config.toml` so that the referred paths match the ones inside the container. E.g.: if using the previous command line, the `directories` part of the configuration file should be :
```toml
# default_config.toml
# ...

[directories]
dataset = "/home/neuro/code/data/original/ds001734/"
reproduced_results = "/home/neuro/code/data/reproduced/"
narps_results = "/home/neuro/code/data/results/"

# ...
```

> [!NOTE]
> Further information about configuration files can be found on the page [docs/configuration.md](docs/configuration.md).

Install NARPS Open Pipelines inside the container :

```bash
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ This project is supported by Région Bretagne (Boost MIND) and by Inria (Explora

## Credits

This project is developed in the Empenn team by Boris Clenet, Elodie Germani, Jeremy Lefort-Besnard and Camille Maumet with contributions by Rémi Gau.
This project is developed in the Empenn team by Boris Clénet, Elodie Germani, Jeremy Lefort-Besnard and Camille Maumet with contributions by Rémi Gau.

In addition, this project was presented and received contributions during the following events:
- [OHBM Brainhack 2022](https://ohbm.github.io/hackathon2022/) (June 2022): Elodie Germani, Arshitha Basavaraj, Trang Cao, Rémi Gau, Anna Menacher, Camille Maumet.
- [e-ReproNim FENS NENS Cluster Brainhack](https://repro.school/2023-e-repronim-brainhack/) (June 2023) : Liz Bushby, Boris Clénet, Michael Dayan, Aimee Westbrook.
- [OHBM Brainhack 2023](https://ohbm.github.io/hackathon2023/) (July 2023): Arshitha Basavaraj, Boris Clénet, Rémi Gau, Élodie Germani, Yaroslav Halchenko, Camille Maumet, Paul Taylor.
- [ORIGAMI lab](https://neurodatascience.github.io/) hackathon (September 2023):
- [Brainhack Marseille 2023](https://brainhack-marseille.github.io/) (December 2023):
- [ORIGAMI lab](https://neurodatascience.github.io/) hackathon (September 2023):
- [OHBM Brainhack 2023](https://ohbm.github.io/hackathon2023/) (July 2023): Arshitha Basavaraj, Boris Clénet, Rémi Gau, Élodie Germani, Yaroslav Halchenko, Camille Maumet, Paul Taylor.
- [e-ReproNim FENS NENS Cluster Brainhack](https://repro.school/2023-e-repronim-brainhack/) (June 2023) : Liz Bushby, Boris Clénet, Michael Dayan, Aimee Westbrook.
- [OHBM Brainhack 2022](https://ohbm.github.io/hackathon2022/) (June 2022): Elodie Germani, Arshitha Basavaraj, Trang Cao, Rémi Gau, Anna Menacher, Camille Maumet.
3 changes: 2 additions & 1 deletion narps_open/data/description/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
from json import dumps

from narps_open.data.description import TeamDescription
from narps_open.pipelines import implemented_pipelines

def main():
""" Entry-point for the command line tool narps_description """

# Parse arguments
parser = ArgumentParser(description='Get description of a NARPS pipeline.')
parser.add_argument('-t', '--team', type=str, required=True,
help='the team ID')
help='the team ID', choices=implemented_pipelines.keys())
parser.add_argument('-d', '--dictionary', type=str, required=False,
choices=[
'general',
Expand Down
26 changes: 13 additions & 13 deletions narps_open/data/description/analysis_pipelines_comments.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ O21U No N/A 3
U26C No N/A 4 Link to shared analysis code : https://github.com/gladomat/narps
43FJ No N/A 2
C88N No N/A 3
4TQ6 Yes Resampled image offset and too large compared to template. 3
4TQ6 No Resampled image offset and too large compared to template. 3
T54A No N/A 3
2T6S No N/A 3
L7J7 No N/A 3
Expand All @@ -17,17 +17,17 @@ O6R6 No N/A 3
C22U No N/A 1 Custom Matlab script for white matter PCA confounds
3PQ2 No N/A 2
UK24 No N/A 2
4SZ2 Yes Resampled image offset from template brain. 3
4SZ2 No Resampled image offset from template brain. 3
9T8E No N/A 3
94GU No N/A 1 Multiple software dependencies : SPM + ART + TAPAS + Matlab.
I52Y No N/A 2
5G9K Yes Values in the unthresholded images are not z / t stats 3
2T7P Yes Missing thresholded images. 2 Link to shared analysis code : https://osf.io/3b57r
2T7P No Missing thresholded images. 2 Link to shared analysis code : https://osf.io/3b57r
UI76 No N/A 3
B5I6 No N/A 3
V55J Yes Bad histogram : very small values. 2
V55J No Bad histogram : very small values. 2
X19V No N/A 3
0C7Q Yes Appears to be a p-value distribution, with slight excursions below and above zero. 2
0C7Q No Appears to be a p-value distribution, with slight excursions below and above zero. 2
R5K7 No N/A 2
0I4U No N/A 2
3C6G No N/A 2
Expand All @@ -37,20 +37,20 @@ O03M No N/A 3
80GC No N/A 3
J7F9 No N/A 3
R7D1 No N/A 3 Link to shared analysis code : https://github.com/IMTAltiStudiLucca/NARPS_R7D1
Q58J Yes Bad histogram : bimodal, zero-inflated with a second distribution centered around 5. 3 Link to shared analysis code : https://github.com/amrka/NARPS_Q58J
L3V8 Yes Rejected due to large amount of missing brain in center. 2
Q58J No Bad histogram : bimodal, zero-inflated with a second distribution centered around 5. 3 Link to shared analysis code : https://github.com/amrka/NARPS_Q58J
L3V8 No Rejected due to large amount of missing brain in center. 2
SM54 No N/A 3
1KB2 No N/A 2
0H5E Yes Rejected due to large amount of missing brain in center. 2
P5F3 Yes Rejected due to large amounts of missing data across brain. 2
0H5E No Rejected due to large amount of missing brain in center. 2
P5F3 No Rejected due to large amounts of missing data across brain. 2
Q6O0 No N/A 3
R42Q No N/A 2 Uses fMRIflows, a custom software based on NiPype. Code available here : https://github.com/ilkayisik/narps_R42Q
L9G5 No N/A 2
DC61 No N/A 3
E3B6 Yes Bad histogram : very long tail, with substantial inflation at a value just below zero. 4 Link to shared analysis code : doi.org/10.5281/zenodo.3518407
E3B6 No Bad histogram : very long tail, with substantial inflation at a value just below zero. 4 Link to shared analysis code : doi.org/10.5281/zenodo.3518407
16IN Yes Values in the unthresholded images are not z / t stats 2 Multiple software dependencies : matlab + SPM + FSL + R + TExPosition + neuroim. Link to shared analysis code : https://github.com/jennyrieck/NARPS
46CD No N/A 1
6FH5 Yes Missing much of the central brain. 2
6FH5 No Missing much of the central brain. 2
K9P0 No N/A 3
9U7M No N/A 2
VG39 Yes Performed small volume corrected instead of whole-brain analysis 3
Expand All @@ -64,8 +64,8 @@ AO86 No N/A 2
L1A8 Yes Not in MNI standard space. 2
IZ20 No N/A 1
3TR7 No N/A 3
98BT Yes Rejected due to very bad normalization. 2
98BT No Rejected due to very bad normalization. 2
XU70 No N/A 1 Uses custom software : FSL + 4drealign
0ED6 No N/A 2
I07H Yes Bad histogram : bimodal, with second distribution centered around 2.5. 2
I07H No Bad histogram : bimodal, with second distribution centered around 2.5. 2
1P0Y No N/A 2
3 changes: 1 addition & 2 deletions narps_open/data/results/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@
from narps_open.data.results import ResultsCollectionFactory
from narps_open.pipelines import implemented_pipelines


def main():
""" Entry-point for the command line tool narps_results """

# Parse arguments
parser = ArgumentParser(description='Get Neurovault collection of results from NARPS teams.')
group = parser.add_mutually_exclusive_group(required = True)
group.add_argument('-t', '--teams', nargs='+', type=str, action='extend',
help='a list of team IDs')
help='a list of team IDs', choices=implemented_pipelines.keys())
group.add_argument('-a', '--all', action='store_true', help='download results from all teams')
parser.add_argument('-r', '--rectify', action='store_true', default = False, required = False,
help='rectify the results')
Expand Down
30 changes: 30 additions & 0 deletions narps_open/pipelines/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/python
# coding: utf-8

""" Provide a command-line interface for the package narps_open.pipelines """

from argparse import ArgumentParser

from narps_open.pipelines import get_implemented_pipelines

def main():
""" Entry-point for the command line tool narps_open_pipeline """

# Parse arguments
parser = ArgumentParser(description='Get description of a NARPS pipeline.')
parser.add_argument('-v', '--verbose', action='store_true',
help='verbose mode')
arguments = parser.parse_args()

# Print header
print('NARPS Open Pipelines')

# Print general information about NARS Open Pipelines
print('A codebase reproducing the 70 pipelines of the NARPS study (Botvinik-Nezer et al., 2020) shared as an open resource for the community.')

# Print pipelines
implemented_pipelines = get_implemented_pipelines()
print(f'There are currently {len(implemented_pipelines)} implemented pipelines: {implemented_pipelines}')

if __name__ == '__main__':
main()
3 changes: 2 additions & 1 deletion narps_open/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
get_participants_subset
)
from narps_open.utils.configuration import Configuration
from narps_open.pipelines import get_implemented_pipelines

class PipelineRunner():
""" A class that allows to run a NARPS pipeline. """
Expand Down Expand Up @@ -158,7 +159,7 @@ def main():
# Parse arguments
parser = ArgumentParser(description='Run the pipelines from NARPS.')
parser.add_argument('-t', '--team', type=str, required=True,
help='the team ID')
help='the team ID', choices=get_implemented_pipelines())
subjects = parser.add_mutually_exclusive_group(required=True)
subjects.add_argument('-s', '--subjects', nargs='+', type=str, action='extend',
help='a list of subjects to be selected')
Expand Down
4 changes: 3 additions & 1 deletion narps_open/tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@

import pytest

from narps_open.pipelines import get_implemented_pipelines

def main():
""" Entry-point for the command line tool narps_open_tester """

# Parse arguments
parser = ArgumentParser(description='Test the pipelines from NARPS.')
parser.add_argument('-t', '--team', type=str, required=True,
help='the team ID')
help='the team ID', choices=get_implemented_pipelines())
arguments = parser.parse_args()

sys.exit(pytest.main([
Expand Down