Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 482c46e

Browse files
authoredAug 3, 2024··
feat: add codespell (#17)
1 parent e5ec291 commit 482c46e

File tree

4 files changed

+230
-47
lines changed

4 files changed

+230
-47
lines changed
 

‎.github/workflows/codespell.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Codespell
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
codespell:
14+
name: Check for spelling errors
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
- name: Codespell
21+
uses: codespell-project/actions-codespell@master
22+
with:
23+
path: src

‎.github/workflows/deploy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ jobs:
3535
# The GH actions bot is used by default if you didn't specify the two fields.
3636
# You can swap them out with your own user credentials.
3737
user_name: github-actions[bot]
38-
user_email: 41898282+github-actions[bot]@users.noreply.github.com
38+
user_email: 41898282+github-actions[bot]@users.noreply.github.com

‎docs/guide/Project/Curation.md

+44-37
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,32 @@ sidebar_position: 0
55

66
# Curation
77

8-
*Curation* is the first step in creating a meta-analysis, and begins by *searching* for and *importing* studies into the project. Next, you will *review* studies for inclusion based on their relevancy to your research question. This involves **excluding** irrelevant studies, and **including** relevant ones.
8+
_Curation_ is the first step in creating a meta-analysis, and begins by _searching_ for and _importing_ studies into the project. Next, you will _review_ studies for inclusion based on their relevancy to your research question. This involves **excluding** irrelevant studies, and **including** relevant ones.
99

1010
At the end of the process, you will be ready to create a [**Studyset**](/compose-docs/guide/glossary#studyset) of related studies that are amenable for neuroimaging meta-analysis
1111

1212
## Getting Started
1313

14-
The curation interface uses columns as a way to label studies based on their current status.
15-
The left most column is the starting point and all studies imported into the project will begin there.
16-
The right most column is the **inclusion column** and is the place where studies will go to be included in the meta-analysis.
14+
The curation interface uses columns as a way to label studies based on their current status.
15+
The left most column is the starting point and all studies imported into the project will begin there.
16+
The right most column is the **inclusion column** and is the place where studies will go to be included in the meta-analysis.
1717

1818
The goal is to get studies from the left most starting column, and narrow them down to a final subset of included studies in the right most column.
1919
If a study is not eligible for inclusion at any point, it should be marked as "excluded" before reaching the inclusion column.
2020

2121
The curation step is complete when all studies have been categorized, either by being included or excluded.
2222

23-
When you first begin *Curation*, you will choose between different workflows, which vary in how rigorous or systematic the selection of studies will be.
23+
When you first begin _Curation_, you will choose between different workflows, which vary in how rigorous or systematic the selection of studies will be.
2424

2525
:::tip How specific to be?
2626

27-
Performing a systematic meta-analysis involves a substantial amount of effort. It is up to you, the researcher, how rigorous to be in this process. We reccomend thinking about your *goals* prior to starting this process so that you can have clear inclusion guidelines. If you are looking for an exploratory analysis, we reccomend following the tutorial for *automated meta-analysis*, which replaces manual curation with an automated selection of studies. Note that automated meta-analyses are not a replacement for a careful systematic meta-analysis.
28-
:::
27+
Performing a systematic meta-analysis involves a substantial amount of effort. It is up to you, the researcher, how rigorous to be in this process. We reccomend thinking about your _goals_ prior to starting this process so that you can have clear inclusion guidelines. If you are looking for an exploratory analysis, we reccomend following the tutorial for _automated meta-analysis_, which replaces manual curation with an automated selection of studies. Note that automated meta-analyses are not a replacement for a careful systematic meta-analysis.
28+
:::
2929

3030
### PRISMA Workflow
3131

3232
PRISMA stands for the **Preferred Reporting Items for Systematic Review and Meta-Analyses**. The
33-
[PRISMA guidelines](http://www.prisma-statement.org/?AspxAutoDetectCookieSupport=1) are a set of rules for reporting a
33+
[PRISMA guidelines](http://www.prisma-statement.org/?AspxAutoDetectCookieSupport=1) are a set of rules for reporting a
3434
systematic review, and are the gold standard for producing a proper, rigorous, and transparent meta-analysis.
3535

3636
If you are trying to create a rigorous [PRISMA compliant manual meta-analysis](/compose-docs/tutorial/manual) you will want to select this option.
@@ -42,14 +42,14 @@ After importing studies into neurosynth, they will be placed into the identifica
4242

4343
:::info PRISMA Summary
4444
The **Identification** column is where all imported studies are deposited into initially. As alluded to by the name, the identification
45-
column is where you identify all records yielded from your search. In this column, you wil exclude studies purely based on whether they are
45+
column is where you identify all records yielded from your search. In this column, you wil exclude studies purely based on whether they are
4646
duplicates of existing studies. All other studies are promoted.
4747

48-
The **Screening** column consists of all records that have been screened for duplicates. In this column, you want to review the titles/abstracts of studies
49-
and exclude purely based on whether they are irrelevant to your research question or domain. All other studies are promoted.
48+
The **Screening** column consists of all records that have been screened for duplicates. In this column, you want to review the titles/abstracts of studies
49+
and exclude purely based on whether they are irrelevant to your research question or domain. All other studies are promoted.
5050

51-
The **Eligibility** column consists of all records that have been screened for duplicates and irrelevant content. In this column, you want to
52-
review the full text of studies and exclude based on whether the study described aligns with the standards of the meta-analysis itself. Reasons
51+
The **Eligibility** column consists of all records that have been screened for duplicates and irrelevant content. In this column, you want to
52+
review the full text of studies and exclude based on whether the study described aligns with the standards of the meta-analysis itself. Reasons
5353
for exclusion may include wrong setting, wrong patient population, wrong intervention, wrong paragdigm, etc.
5454

5555
The **Included** column consists of all records that have passed previous levels of exclusion and can be considered for the next step of the project.
@@ -65,17 +65,17 @@ This workflow is initalized with only two columns. As before, the left most colu
6565

6666
## Importing
6767

68-
To begin importing studies into your project clicking the **IMPORT STUDIES** button.
68+
To begin importing studies into your project click the **IMPORT STUDIES** button.
6969

70-
You will be asked to choose a source, name your import, and address
70+
You will be asked to choose an import method, source, name for your import, and finally address
7171
any potential duplicate studies.
7272

7373
:::tip
74-
We recommend giving each import a meaningful name. This will be useful when you come back
74+
We recommend giving each import a meaningful name. This will be useful when you come back
7575
and want to know where a certain study was imported from.
7676
:::
7777

78-
### Import from Neurostore
78+
### Import Method 1: Import from Neurostore
7979

8080
Neurostore indexes a large number of neuroimaging studies which are ready for meta-analysis. Studies in Neurostore have been pre-processed, including extracting peak activation coordinates from Tables in the text, and computing semantic features from the abstract/full text. Neurostore also indexes studies which other users have annotated and made available to others for re-use.
8181

@@ -86,69 +86,72 @@ After entering your search, click the bottom right button to import the searched
8686
Importing from Neurostore can save you a lot of time, as these studies are much more likely to be amenable to meta-analysis, and have pre-extracted coordinates. However, note that some manual annotation may still be required to verify the coordinate extraction, and choose the relevant Analysis (i.e. contrast) for final inclusion.
8787
:::
8888

89-
### Import from PubMed
89+
### Import Method 2: Import from PubMed
9090

91-
Use this option to import studies directly from PubMed. To start, you need to go to the [PubMed Site](https://pubmed.ncbi.nlm.nih.gov/)
92-
and either enter in a search or navigate to a previously created collection.
91+
Use this option to import studies directly from PubMed. To start, you need to go to the [PubMed Site](https://pubmed.ncbi.nlm.nih.gov/)
92+
and either enter in a search or navigate to a previously created collection.
9393

9494
To import the search or collection from PubMed into neurosynth-compose, you will need a text file containing a list of PMIDs.
95-
You can obtain this by going to your collection/search and clicking the **Save** button. Set **Selection** to **All results**
95+
You can obtain this by going to your collection/search and clicking the **Save** button. Set **Selection** to **All results**
9696
and set **Format** to **PMID**. Click **Create file** and your text file containing the PMIDs will be generated and downloaded.
9797

9898
:::caution
9999
Neurosynth-Compose uses the PubMed API to import studies. As a result, the maximum number of PMIDs that can be imported at once is 1,500.
100-
If your collection has more than 1,500 PMIDs, split the import into multiple files.
100+
If your collection has more than 1,500 PMIDs, split the import into multiple files. You can select the same import name so that they are all grouped together.
101101
:::
102102

103-
### Import from BibTex/RIS/endnote
103+
### Import Method 3: Import from BibTex/RIS/endnote
104104

105105
Use this option to import studies via a .bib, .RIS, or .enw file. This may be useful if you want to import from a citation manager like Zotero.
106106

107-
### Custom Studies
107+
### Import Method 4: Custom Studies
108108

109-
If there is any record that cannot be easily imported using one of the methods listed above, you can also manually create a study. This may be necessary
109+
If there is any record that cannot be easily imported using one of the methods listed above, you can also manually create a study. This may be necessary
110110
to include resources like unpublished studies.
111111

112+
### Sleuth files
113+
114+
At the moment, it's not possible to add studies from a sleuth file into an _existing project_. To create a new project from a sleuth file, [read more here](/compose-docs/guide/glossary#studyset).
115+
112116
### Duplicates
113117

114-
If duplicates are detected in your import, you will be asked how to re-concile them by choosing which of the studies to keep by choosing "KEEP THIS STUDY". Matching duplicates will be automatically marked for exclusion. Note that as a user, you can over-ride any of these selection at any time, and choose which studies to keep or exclude.
118+
If duplicates are detected in your import, you will be asked how to reconcile them by choosing which of the studies to keep by choosing "KEEP THIS STUDY". Matching duplicates will be automatically marked for exclusion. Note that as a user, you can override any of these selections at any time, and choose which studies to keep or exclude.
115119

116120
:::info
117-
*Neurosynth Compose* does not delete studies. If a study is marked as a duplicate, it is marked as **excluded** but it is not discarded to ensure complete provenance.
121+
_Neurosynth Compose does not delete studies_. If a study is marked as a duplicate, it is marked as **excluded** but it is not discarded to ensure complete provenance.
118122
:::
119123

120124
There are two potential ways that duplicates can occur:
121125

122126
#### Duplicates are detected between the studies being imported and the studies already in the project
123127

124-
If any study being important has the same title, PMID, or DOI is the same as
128+
If any study being important has the same title, PMID, or DOI is the same as
125129
one already in the project, you will be asked reconcile these duplicates.
126130

127-
Note that if you mark a study that is already promoted as a duplicate, it will be "demoted" back to the first column and marked as "duplicate". It is reccomended to mark as duplicate the incoming study to avoid this.
131+
Note that if you mark a study that is already promoted as a duplicate, it will be "demoted" back to the first column and marked as "duplicate". It is reccomended to mark as duplicate the incoming study to avoid this.
128132

129133
#### Duplicates are detected within the file you are importing
130134

131-
Although rare, it is possible to have duplicates within a given import. For example, if within a RIS file there are duplicate entries. In this case, you will be asked to select which study to keep. Studies marked as duplicates will still be imported but marked as excluded.
135+
Although rare, it is possible to have duplicates within a given import. For example, if within a RIS file there are duplicate entries. In this case, you will be asked to select which study to keep. Studies marked as duplicates will still be imported but marked as excluded.
132136

133137
## Excluding and Promoting Studies
134138

135-
Once studies have been imported into the first column of the curation phase, they need to be reviewed for inclusion into your meta-analysis.
139+
Once studies have been imported into the first column of the curation phase, they need to be reviewed for inclusion into your meta-analysis.
136140
All studies must be either excluded or moved to the inclusion column in order to progress to the extraction phase.
137141

138-
To begin, either click on the button at the top of the column or click on any study in the column. This will open up a page which will show the study
139-
along with the following options: **PROMOTE, NEEDS REVIEW**, and **EXCLUDE**. There is also a button to **ADD TAGS** which will assign an informational tag to the study.
142+
To begin, either click on the button at the top of the column or click on any study in the column. This will open up a page which will show the study
143+
along with the following options: **PROMOTE, NEEDS REVIEW**, and **EXCLUDE**. There is also a button to **ADD TAGS** which will assign an informational tag to the study. This informational tag is a tool that allows you to mark studies with certain information - once an informational tag is created, you can filter by those tags.
140144

141145
### Exclude
142146

143-
To exclude a study, click the **EXCLUDE** button and select the exclusion reason. You can either choose from the preset exclusion reasons or you can begin
147+
To exclude a study, click the **EXCLUDE** button and select the exclusion reason. You can either choose from the preset exclusion reasons or you can begin
144148
typing to create a new one.
145149

146150
:::tip
147151
For the PRISMA workflow, the default exclusion reason wil depend on the phase you are in (identification vs screening vs eligibility), to match the PRISMA guidelines. While we do not recommend it, you can click the arrow button and start typing in the input to create a new exclusion reason.
148152
Revisit the [PRISMA workflow](./Curation#prisma-workflow) to review reccomended exclusion criteria.
149153
:::
150154

151-
152155
### Promote
153156

154157
If a study meets inclusion critera (for the current phase), click **PROMOTE** to move the study forward to the next curation column. If it is moved into the right most inclusion column, then it will be included in the meta-analysis.
@@ -157,9 +160,13 @@ If a study meets inclusion critera (for the current phase), click **PROMOTE** to
157160
For the first column (especially in a PRISMA workflow) it can be tedious to promote non-duplicates to the next column. If all duplicates have been resolved, you can exit the dialog and click **PROMOTE ALL UNCATEGORIZED STUDIES** to advance all non-duplicate studies to the next column.
158161
:::
159162

163+
## Downloading included studies
164+
165+
In order to download the studies that you have included in Curation, you can utilize our download feature. Go to curation and click "Download Included as CSV". Alternatively, you can click the dropdown and download the included studies in BibTeX format instead.
166+
160167
## On to Extraction
161168

162-
When you have categorized all imported studies by either excluding them or moving them to the inclusion column, then you have
169+
When you have categorized all imported studies by either excluding them or moving them to the inclusion column, then you have
163170
successfully completed the curation portion of the meta-analysis.
164171

165-
*Neurosynth Compose* will detect this and reveal a new button: **MOVE TO EXTRACTION PHASE**. This will move you back to the project page and get you started on the next major component to building your meta-analysis: [extraction](./Extraction).
172+
_Neurosynth Compose_ will detect this and reveal a new button: **MOVE TO EXTRACTION PHASE**. This will move you back to the project page and get you started on the next major component to building your meta-analysis: [extraction](./Extraction).

‎docs/guide/Project/index.mdx

+162-9
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,172 @@ sidebar_position: 0
55

66
# Project
77

8+
## Overview
9+
810
A project organizes the the various steps needed to create a meta-analysis from start to finish.
911

1012
Within a project you will be able to:
11-
1. **[Curate](./Project/Curation)** studies of interest and select the ones to be included in the meta-analysis
12-
2. **[Extract](./Project/Extraction)** the relevant data such as activation coordinates and other meta-data
13-
3. **[Specify](./Project/Specification)** the algorithm and corrector you would like to use
1413

15-
In each project, you can define a define a single StudySet (i.e. a collection of related studies), and one or more MetaAnalysis specifications.
14+
1. **[Curate](./Project/Curation)** studies of interest and select the ones to be included in the meta-analysis
15+
2. **[Extract](./Project/Extraction)** the relevant data such as activation coordinates and other meta-data
16+
3. **[Specify](./Project/Specification)** the algorithm and corrector you would like to use
17+
18+
In each project, you can define a single studyset (i.e. a collection of related studies defined and used in the extraction phase), and one or more meta-analysis specifications.
19+
20+
## Create a project
21+
22+
There are two ways to create a project and do your meta-analysis.
23+
24+
### Create a blank project
25+
26+
The first method is to click on the "NEW PROJECT" button in the top navigation menu. This will create a new blank project. You will then be asked to get started on the [curation phase](/compose-docs/guide/Project/Curation) in order to progress.
27+
28+
### Create a project from a sleuth file
29+
30+
The second method of creating a project is to click on the dropdown button on the right of "NEW PROJECT". This will show an option: "Create project from sleuth file". Click on that option and you will be brought to a new page to begin creating a new project from your sleuth file.
31+
32+
Please note that neurosynth-compose requires a specific format in order to proceed with the import. We require that each experiment within the sleuth file _references either a PubMed ID or a DOI_. The exact requirements are specified below:
33+
34+
#### Sleuth file format requirements
35+
36+
##### 1. File Reference.
37+
38+
This reference specifies the coordinate space and must appear at the top of the file. Do not omit the first two forward slashes.<br />
39+
40+
```
41+
// Reference=MNI
42+
```
43+
44+
##### 2. Identifier (DOI or PubMed Id)
45+
46+
The next lines of the file represents an experiment. We expect an identifier: _this can either be a DOI, a PubMedId, or both_. Do not omit the first two forward slashes.<br />
47+
48+
```
49+
// DOI=10.1038/nmeth.1635
50+
or
51+
// PubMedId=21706013
52+
or
53+
// DOI=10.1038/nmeth.1635
54+
// PubMedId=21706013
55+
```
56+
57+
##### 3. Author, year & experiment name
58+
59+
We expect a line containing the authors, year, and experiment name. The authors + year should be separated from the experiment name by a colon. There can be 1 or more lines representing multiple authors + year and experiment name. Do not omit the first two forward slashes.
60+
61+
```
62+
// Smith et al., 1996: 1 Back vs 0 Back
63+
or
64+
// Smith et al., 1996: 1 Back vs 0 Back
65+
// Graeff et al., 1995: 2 Back vs 1 Back
66+
// Edwards et al., 2017: 2 Back vs 0 Back
67+
```
68+
69+
##### 4.Subjects
70+
71+
After the lines representing one or more authors + year and experiment name, add a line for the number of subjects in the experiment.
72+
73+
```
74+
// Subjects=23
75+
```
76+
77+
##### 5. Coordinates
78+
79+
Add the X, Y, and Z coordinates. Do not add the two forward slashes. The coordinates should be **delimited by tabs**.
80+
81+
```
82+
-27 34 72
83+
-7 -8 -9
84+
10 -12 -62
85+
```
86+
87+
Your sleuth file should look something like this:
88+
89+
```
90+
// Reference=MNI
91+
// DOI=10.1016/1234567
92+
// PubMedId=67123237
93+
// Smith et al., 2019: Working Memory vs Baseline
94+
// Subjects=23
95+
-2 8 9
96+
10 -12 -62
97+
21 -14 -2
98+
0 -9 16
99+
100+
// DOI=10.217/1234568
101+
// PubMedId=23782389
102+
// Roberts et al., 1995: 2 Back vs 1 Back
103+
// Graeff et al., 2000: 1 Back vs 0 Back
104+
// Edwards et al., 2017: 2 Back vs 0 Back
105+
// Subjects=62
106+
82 12 0
107+
-27 34 72
108+
-7 -8 -9
109+
10 -12 -62
110+
```
111+
112+
#### Common Import errors
113+
114+
`Either DOI or PMID is required. (Hint: is it in the right format?) Encountered error at <...>`<br />
115+
This error indicates that neither a DOI nor PMID was found at the given line. Please check that the DOI or PubMedId given was correctly formulated.
116+
117+
```
118+
// DOI=10.1038/nmeth.1635
119+
// PubMedId=21706013
120+
```
121+
122+
`Unexpected format. (Hint: Did you omit a colon or use a semi colon instead of a colon?) Encountered error at: <...>`<br />
123+
This error indicates that neurosynth-compose expected to find a valid author + year and experiment name separated by a colon. Instead, it found a string that it did not recognize (or no experiment name was provided at all). Check that the line of the file indicated in the error message contains a correctly formulated author + year and experiment pairing like:
124+
125+
```
126+
// Roberts et al., 1995: 2 Back vs 1 Back
127+
```
128+
129+
or multiple
130+
131+
```
132+
// Roberts et al., 1995: 2 Back vs 1 Back
133+
// Graeff et al., 2000: 1 Back vs 0 Back
134+
// Edwards et al., 2017: 2 Back vs 0 Back
135+
```
136+
137+
`Expected valid DOI but did not find one. Encountered error at: <...>` <br />
138+
This error indicates that the format of the file did not adhere to the expected requirements due to an invalid DOI. Check that the line of the file indicated in the error message contains a correctly formulated DOI like: `// DOI=10.1038/nmeth.1635`
139+
140+
`At least one experiment name is required. Encountered error at: <...>`<br />
141+
This error indicates that no experiments were found at the line given by the error message. Please check that the sleuth file has at least one author + year and experiment name, or that the format is correctly formatted like: `// Smith et al., 2019: Working Memory vs Baseline`
142+
143+
`Expected valid PMID but did not find one. Encountered error at: <...>`<br />
144+
This error indicates that the format of the file did not adhere to the expected requirements due to an invalid PubMedId. Check that the line of the file indicated in the error message contains a correctly formulated PubMedId like: `// PubMedId=21706013`
145+
146+
`Encountered multiple DOIs: <...>`<br />
147+
This error indicates that multiple DOIs were discovered for the same experiment while parsing the file. Check that the line of the file indicated is part of an experiment that only has one DOI.
148+
149+
`Encountered multiple PubMed IDs: <...>`<br />
150+
This error indicates that multiple PubMedIds were discovered for the same experiment while parsing the file. Check that the line of the file indicated is part of an experiment that only has one PubMedId.
151+
152+
`Expected number of subjects. Encountered error at: <...>`<br />
153+
This error indicates that the format of the file did not adhere to the expected requirements due to an invalid Subjects field. Check that the line of the file indicated in the error message contains a correctly formulated Subjects field like: `// Subjects=23`. Make sure that it is not separated by a new line.
154+
155+
`Invalid coordinates: <...>`<br />
156+
The coordinates given were not in a valid format. Check that the line of the file indicated in the error message contains correctly formulated, tab separated coordinates. They should look like:
157+
158+
```
159+
82 12 0
160+
-27 34 72
161+
-7 -8 -9
162+
10 -12 -62
163+
10 -12 -62
164+
21 -14 -2
165+
0 -9 16
166+
```
167+
168+
`Unexpected format. Encountered error at: <...>`<br />
169+
This error indicates that neurosynth-compose tried to extract the author data from the file but was unable to do so either because the author was not provided or the string was formed in such a way that was not recognized. Check that the line of the file indicated in the error message contains a correctly formulated string like: `// Roberts et al., 1995: 2 Back vs 1 Back`
16170

171+
## Opening a project
17172

18-
You can open a specific project by logging in, navigating to the
19-
[My Projects](https://compose.neurosynth.org/projects) page, and selecting a project you've created.
173+
You can open a specific project by logging in, navigating to the
174+
[My Projects](https://compose.neurosynth.org/projects) page, and selecting a project you've created.
20175

21-
When you view a project for the first time, you'll notice that you'll default to the "Edit Project" tab.
22-
The "View Meta-Analyses" tab will be disabled and will become enabled when you have created the first meta-analysis specification
23-
for the project.
176+
When you view a project for the first time, you'll notice that you'll default to the "Edit Project" tab. Another tab, "View Meta-Analyses", will become visible when you have completed both the curation and extraction phases.

0 commit comments

Comments
 (0)
Please sign in to comment.