1- ## Can I add more arguments to the API of my App?
1+ # BIDS apps
22
3- Every BIDS App must use the mandatory arguments mentioned above, but you are
4- free to add more that are specific to the task your App will perform.
3+ !!! note
54
6- We recommend you follow the guidelines mentioned in the
7- [ BIDS extension proposal 027] ( https://bids.neuroimaging.io/bep027 )
8- for more information on specifying the API of your App.
5+ Make sure to check out the [nipreps wesbite](https://www.nipreps.org/)
6+ for more information on using and creating BIDS apps.
7+
8+ ## For users
9+
10+ ### How can I check a version of a container I have available locally?
911
10- ## How can I check a version of a container I have available locally?
12+ For many bids-app you should be able to run something like:
13+
14+ ``` bash
15+ docker run bids/example --version
16+ ```
1117
12- Inside each BIDS App there is a /version file with the version number.
18+ Inside each BIDS App there is a ` /version ` file with the version number.
1319
1420This file is automatically populated with tag used to trigger the build on the CI server.
1521
@@ -22,75 +28,36 @@ version you should refer to a specific Docker Hub tag. For example:
2228docker pull bids/example:v0.0.5
2329```
2430
25- ## How do I upload my BIDS App to the BIDS App Github org?
26-
27- You can release BIDS Apps using your own or your lab's account.
28- However, if you want to be added to the BIDS docker hub,
29- please message the
[ BIDS maintainers
] ( mailto:[email protected] ) 30- to have a repo created for you.
31-
32- If you base your code on < https://github.com/bids-apps/example > deployment on
33- docker hub will happen automatically via Circle-ci.
34-
35- If you want your App to show on the BIDS App website
36- [ here] ( https://bids-apps.neuroimaging.io/apps/ ) , you will in any case have to
37- update the ` _config.yml ` in the
38- [ BIDS App website repository] ( https://github.com/bids-apps/bids-apps.github.io.git ) .
39-
40- ## How should I version my BIDS App?
41-
42- Since most BIDS Apps are just thin wrappers around existing pipelines it would
43- be most sensible to use the same version as the software they are wrapping.
44-
45- For example in case of HCP Pipelines this would be ` v3.17.0 ` .
46-
47- ## How to tag a new release?
48-
49- ``` bash
50- git tag v0.0.1
51- git push
52- ```
31+ ## What do the analysis levels (` participant ` and ` group ` ) mean?
5332
54- ## I want to release a new version of a BIDS App, but the pipeline version is the same?
33+ Generally, ` participant ` means individual level analysis (for instance: single subject).
34+ The ` group ` level analysis can be thought of as the second step,
35+ where the input becomes the output of the ` participant ` level analysis.
5536
56- This can happen when only the runscript or the Dockerfile changed?
57- According to semantic versioning we should use the ` + ` signed followed by the build number.
58- Unfortunately Docker Hub does not support semantic versioning.
59- The best option is to use the ` - ` sign followed by the build number.
60- For example ` v3.17.0-3 ` .
37+ For example, generating statistic maps of each subject's brain could be considered ` participant ` ,
38+ while generating the average of these maps across the dataset could be considered ` group ` .
6139
62- ## Is it mandatory to first check the dataset validity using the BIDS-validator?
40+ ## For developers
6341
64- It is an extremely helpful feature to have validation of the dataset as part of your tool.
65- However, it's not considered mandatory.
66- For instance: many Apps will
67- simply fail with an error message if the dataset is not BIDS compliant.
42+ ### Getting started
6843
69- ## Is there a BIDS App template?
44+ #### Is there a BIDS App template?
7045
7146Have a look at the
72- [ example BIDS App repository] ( https://github.com/bids-apps/example ) . A
73- minimalist example of a BIDS App consisting of a Dockerfile and a simple entry
74- point script (written in this case in Python) accepting the standard BIDS Apps
75- command line arguments.
76-
77- ## What do the analysis levels (` participant ` and ` group ` ) mean?
47+ [ example BIDS App repository] ( https://github.com/bids-apps/example ) .
48+ A minimalist example of a BIDS App consisting of a Dockerfile
49+ and a simple entry point script (written in this case in Python)
50+ accepting the standard BIDS Apps command line arguments.
7851
79- Generally, ` participant ` means individual level analysis (for instance: single
80- subject) The group level analysis can be thought of as the second step, where
81- the input becomes the output of the ` participant ` level analysis.
52+ #### Which container should I use to start building my app?
8253
83- For example, generating statistic maps of each subject 's brain could be
84- considered ` participant ` , while generating the average of these maps across the
85- dataset could be considered ` group ` .
54+ The only minimum requirements of a BIDS App 's container is its ability to run your pipeline.
55+ So for example, if your App is mostly Python based it should be sufficient
56+ to start with any image that has Python and include your environment dependencies .
8657
87- ## What do we do if our application does not have any use for the group level analysis?
58+ ### API
8859
89- If your pipeline has no need for group level analysis, it is fine if it is only
90- valid for the analysis_level argument (see
91- [ fmriprep] ( https://fmriprep.readthedocs.io/en/latest/usage.html ) )
92-
93- ## What should the API of my BIDS App look like?
60+ #### What should the API of my BIDS App look like?
9461
9562The obligatory arguments of the API of any BIDS App are:
9663
@@ -104,20 +71,59 @@ with an API call that would look like this:
10471app_name bids_dir output_dir analysis_level
10572```
10673
107- ## When is a new image deposited to Docker Hub ?
74+ #### What do we do if my application does not have any use for the group level analysis ?
10875
109- Even though Docker image is being build on the CI server each time
110- you push a commit to the repository it is not automatically being pushed to Docker Hub.
111- Only if you tag a commit, push the tag to GitHub,
112- and the tests you configured pass a new image will be deposited in Docker Hub.
76+ If your pipeline has no need for group level analysis,
77+ it is fine if it is only valid for the analysis_level argument
78+ (see [ fmriprep] ( https://fmriprep.readthedocs.io/en/latest/usage.html ) ).
11379
114- ## Where can I can data to test my app
80+ #### Can I add more arguments to the API of my App?
81+
82+ Every BIDS App must use the mandatory arguments mentioned above,
83+ but you are free to add more that are specific to the task your App will perform.
84+
85+ We recommend you follow the guidelines mentioned in the [ BIDS apps specification] ( https://bids-standard.github.io/execution-spec/ )
86+ for more information on specifying the API of your App.
87+
88+ ### Testing
89+
90+ #### Where can I can get data to test my app?
11591
11692For both lightweight and full datasets to test your BIDS App, you can choose
11793from one of these
11894[ example datasets] ( https://bids-standard.github.io/bids-starter-kit/dataset_examples.html )
11995
120- ## Where should I describe changes between versions?
96+ #### Is it mandatory to first check the dataset validity using the BIDS-validator?
97+
98+ It is an extremely helpful feature to have validation of the dataset as part of your tool.
99+ However, it's not considered mandatory.
100+ For instance: many Apps will simply fail with an error message if the dataset is not BIDS compliant.
101+
102+ ### Version
103+
104+ #### How should I version my BIDS App?
105+
106+ Since most BIDS Apps are just thin wrappers around existing pipelines it would
107+ be most sensible to use the same version as the software they are wrapping.
108+
109+ For example in case of HCP Pipelines this would be ` v3.17.0 ` .
110+
111+ #### How to tag a new release?
112+
113+ ``` bash
114+ git tag v0.0.1
115+ git push
116+ ```
117+
118+ #### I want to release a new version of a BIDS App, but the pipeline version is the same?
119+
120+ This can happen when only the runscript or the Dockerfile changed?
121+ According to semantic versioning we should use the ` + ` signed followed by the build number.
122+ Unfortunately Docker Hub does not support semantic versioning.
123+ The best option is to use the ` - ` sign followed by the build number.
124+ For example ` v3.17.0-3 ` .
125+
126+ #### Where should I describe changes between versions?
121127
122128After tagging a new release it is important to provide a list of changes
123129on the GitHub Releases page.
@@ -126,13 +132,25 @@ It accepts markdown syntax and allows you to explain in detail what has changed.
126132
127133Here's an [ example] ( https://github.com/bids-apps/example/releases ) .
128134
129- ## Which container should I use to start building my app?
135+ ### Deplopying
136+
137+ #### How do I upload my BIDS App to the BIDS App Github org?
130138
131- The only minimum requirements of a BIDS App's container is its ability to run
132- your pipeline. So for example, if your App is mostly Python based it should be
133- sufficient to start with any image that has Python and include your environment
134- dependencies.
139+ You can release BIDS Apps using your own or your lab's account.
140+ However, if you want to be added to the BIDS docker hub,
141+ please message the
[ BIDS maintainers
] ( mailto:[email protected] ) 142+ to have a repo created for you.
143+
144+ If you base your code on < https://github.com/bids-apps/example > deployment
145+ on docker hub will happen automatically via Circle-ci.
135146
136- <hr >
147+ If you want your App to show on the [ BIDS website] ( https://bids-website.readthedocs.io/en/latest/tools/bids-apps.html ) ,
148+ you will have to update the ` data/tools/apps.yml ` in the
149+ [ BIDS website repository] ( https://github.com/bids-standard/bids-website/tree/main ) .
137150
138- Generated by [ FAQtory] ( https://github.com/willmcgugan/faqtory )
151+ #### When is a new image deposited to Docker Hub?
152+
153+ Even though Docker image is being build on the CI server each time
154+ you push a commit to the repository it is not automatically being pushed to Docker Hub.
155+ Only if you tag a commit, push the tag to GitHub,
156+ and the tests you configured pass a new image will be deposited in Docker Hub.
0 commit comments