diff --git a/docs/introduction/TeamGrid.js b/docs/introduction/TeamGrid.js index 7a210f2..f6d346c 100644 --- a/docs/introduction/TeamGrid.js +++ b/docs/introduction/TeamGrid.js @@ -94,7 +94,7 @@ const TeamMemberCard = ({ name, title, affiliation, imageUrl, websiteUrl, github title: 'Graduate Student', affiliation: 'Florida International University', imageUrl: useBaseUrl('team/pedraza.jpg'), - githubProfile: 'https://github./julioAPeraza' + githubProfile: 'https://github.com/julioAPeraza' }, { id: 9, @@ -103,7 +103,7 @@ const TeamMemberCard = ({ name, title, affiliation, imageUrl, websiteUrl, github affiliation: 'Stanford University', imageUrl: useBaseUrl('team/poldrack.jpg'), websiteUrl: 'http://poldracklab.org/', - githubProfile: 'https://github./poldrack' + githubProfile: 'https://github.com/poldrack' }, { @@ -120,7 +120,7 @@ const TeamMemberCard = ({ name, title, affiliation, imageUrl, websiteUrl, github title: 'Graduate Student', affiliation: 'Oxford University', imageUrl: useBaseUrl('team/yu.jpg'), - githubProfile: 'https://github./yifan0330' + githubProfile: 'https://github.com/yifan0330' } ]; diff --git a/docs/tutorial/large-scale.md b/docs/tutorial/automated.md similarity index 83% rename from docs/tutorial/large-scale.md rename to docs/tutorial/automated.md index 56ce32c..fdcd269 100644 --- a/docs/tutorial/large-scale.md +++ b/docs/tutorial/automated.md @@ -1,6 +1,6 @@ --- sidebar_label: 'Automated Meta-Analysis' -sidebar_position: 3 +sidebar_position: 2 --- # Exporatory automated large-scale meta-analysis \ No newline at end of file diff --git a/docs/tutorial/image.png b/docs/tutorial/image.png new file mode 100644 index 0000000..2c7b5bd Binary files /dev/null and b/docs/tutorial/image.png differ diff --git a/docs/tutorial/index.mdx b/docs/tutorial/index.mdx index 2bf1e25..74bedb1 100644 --- a/docs/tutorial/index.mdx +++ b/docs/tutorial/index.mdx @@ -6,44 +6,43 @@ import { Grid, Card, CardContent, Typography, Button } from '@mui/material'; import { Link } from 'react-router-dom'; -Neurosynth-Compose supports a range of use cases, from a finely controlled *manual-meta analysis* to a fully automated *large-scale meta-analysis*. - - -Below is an overview of three uses cases, with links to tutorials for each one. +Neurosynth Compose supports a range of different workflows, from exploratory large-scale automated analyses to highly curated and rigorous manual analyses. +The choice of workflow depends on the research question and the available resources. Note that you can choose to blend approaches from these two +ends of the spectrum, depending on your needs. Learn more about the different workflows by following the tutorials below.
- + - Automated + Manual - Fast exploratory analysis.

+ Most stringent and rigorous.

    -
  • Query studies at scale
  • -
  • Search using terms, topics or activation coordinates
  • -
  • Replicate results from original Neurosynth
  • -
  • Immediate results, ideal for a exploratory analysis
  • +
  • Search across multiple sources, such as: PubMed, Web of Science, NeuroStore
  • +
  • Careful curation for inclusion/exclusion criteria
  • +
  • Extract coordinates from studies not already indexed
  • +
  • Meets PRISMA guidelines
- + - Manual + Automated - Most stringent and rigorous.

+ Fast exploratory analysis.

    -
  • Search across multiple sources, such as: PubMed, Web of Science, NeuroStore
  • -
  • Careful curation for inclusion/exclusion criteria
  • -
  • Extract coordinates from studies not already indexed
  • -
  • Meets PRISMA guidelines
  • +
  • Query studies at scale
  • +
  • Search using terms, topics or activation coordinates
  • +
  • Replicate results from original Neurosynth
  • +
  • Immediate results, ideal for a exploratory analysis
diff --git a/docs/tutorial/manual.md b/docs/tutorial/manual.md index a66a76a..65b8746 100644 --- a/docs/tutorial/manual.md +++ b/docs/tutorial/manual.md @@ -1 +1,318 @@ -# Manual Meta-Analysis \ No newline at end of file +# Manual Meta-Analysis + +import { Card, CardContent, Typography, Button } from '@mui/material'; +import { FaDownload } from 'react-icons/fa' + +:::info +This is a condensed adaptation of a course taught at OHBM 2023. +See the [course materials](https://neurostuff.github.io/meta-analysis-book/ohbm_course_intro.html) for a complete overview. +::: + +In this tutorial, we demonstrate how to create a custom, manual meta-analysis. + +*Neurosynth Compose* provides a streamlined workflow to facilitate study selection and +data extraction. You can then easily specify a meta-analysis and execute it in the cloud, +rapidly generating results that you can inspect and share. + +:::tip +We will perform a slimmed down replication of the following meta-analysis: +[Neurobiological impact of nicotinic acetylcholine receptor agonists: An ALE meta-analysis of pharmacological neuroimaging studies](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4494985/). + +For more guidance on how to choose a topic for meta-analysis, see the [PRISMA statement](https://www.bmj.com/content/372/bmj.n71) and the [10 simple rules for neuroimaging meta-analyses](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5918306/). +::: + +## Creating a new Project + +*Projects* contain all the Steps necessary to create a new meta-analysis in Neurosynth Compose. +We'll step through this process in detail. + +To get started, *sign in*, and select **New Project**. +Give your project a *Name* and a *Description*. You can always change these later. + +![Description](/tutorial/create_project.png) + +You'll now see the Project page, showing the three stages of a meta-analysis: +**Search & Curate, Extract & Annotate** and **Specify Meta-Analyses**. + +![New Project](/tutorial/new_project_view.png). + +## Search & Curate + +The first step in a meta-analysis is to *Search* for studies, and *Curate* these studies into a +final *StudySet* that contains the studies we want to include in a Meta-Analysis. + +To get started, we must choose a Curation workflow. There are three options: Simple, PRISMA and Custom. The main difference between these options is the number of review steps involved in creating a final list of studies. **For a rigorous Manual Meta-Analysis, select "PRISMA".** + +:::tip +Reviewers typically require Preferred Reporting Items for Systematic Reviews and Meta-Analyses (PRISMA) reporting +for gold-standard meta-analyses. The PRISMA guidelines ensure a systematic selection and reporting process. +However, a Simple workflow may be useful for exploratory and automated meta-analyses. +::: + +Next, you will be presented with the Curation board, consisting of four columns representing +the steps of a PRISMA workflow: + +* **Identification**: Remove duplicate studies + +* **Screening**: Remove irrelevant studies + +* **Elibility**: Remove studies that do not meet inclusion criteria or do not have retrievable information + +* **Included**: Double check the studies and view which studies will be included in the meta-analysis + +The overall goal is to go from a large number of studies from a broad search results, to only the +studies that are relevant to your research question. These steps should be completed in order! + +### Importing studies + +But first, we must add studies to our Project. Click the **Import Studies** button. + +You can search for studies within the *NeuroStore* database—which we maintain and indexes over 20,000 pre-processed neuroimaging studies—or from external sources, such as PubMed or a Ciation manager file. + +![Import Studies](/tutorial/import_studies_options.png). + +*Import via NeuroStore* is simpler and faster, as these studies already exist on in our system +and have pre-extracted imaging data (e.g. coordinates). +As a result, there will be fewer irrelevant studies to exclude, and less data extraction to complete. + +However, *searching other sources* is often recommended for a comprehensive literature search, as a single source can never index all possible studies. + +To replicate the Nicotine meta-analysis, we will replicate the author's PubMed search. + +:::info +Searching NeuroStore is a valid option for a manual meta-analysis to balance rigor and efficiency. To learn more, see the [Automated Meta-Analysis tutorial](./automated.md). +::: + +#### Searching PubMed + +We can export any PubMed search result to file, and import that file into Neurosynth Compose. +In this example, we perform the following search which in the [PubMed](https://pubmed.ncbi.nlm.nih.gov/) search field: + +``` +("fMRI" OR "PET" OR "neuroimaging" OR "Functional magnetic resonance imaging" OR "functional MRI") +AND ("nicotine" OR "cigarette" OR "smok*" OR "DMXB-A") +``` + +This results in over 3,000 studies that are potentially relevant for this meta-analysis. + +Next, we save the results to `PMID` format, with a PubMed ID on each line. + +![Download PubMed](/tutorial/download_search_results.png) + +:::info +Reviewing 3,000 studies can take a long time! +Only a small percentage of these studies will meet all inclusion criteria. For the sake of the tutorial, we provide a shortened list of [PUBMED IDS](tutorial_pmids.txt). +::: + +We can import this file into our Project by clicking **Upload File**. Give this import a name for future reference. +All studies imported from this search will be **Tagged** with the search name. + +![Import name](/tutorial/import_name.png) + +### Identification + +All the imported studies are now visible in the first column of our PRISMA curation board. + +![Identification](/tutorial/identification.png) + +The purpose **Identification** is to find *duplicate studies*, which is common when importing from multiple sources. +*Neurosynth Compose* will automatically find potential duplicates (based on the Title, DOI, and PMID). +However, you can also manually review studies to identify any duplicates we might have missed. + +To review studies, click on the **Identification** column header, or an individual study. +For each study, you can choose to "Promote" it to the next phase, "Exclude" as a duplicate, or flag for later review. + +![Identification review](/tutorial/identification_review.png) + +:::tip +To remain PRISMA compliant, you should only exclude studies for being a duplicate in the Identification step. +::: + +In this example, there are no duplicates. To quickly advance, click **Promote All Uncategorized Studies** under *Identification*. + +### Screening + +The goal of *Screening* is to determine if imported studies are relevant to your research question, based on the the Tile +and Abstract of each. + +To begin, click on the Screening column header from the main Curation board. The interface is +identical to the previous phase, except the default Exclusion reason is now **irrelevant**. + +Go ahead and review all 13 studies to determine if they are relevant to the topic of *"Nicotime administration*". +Any studies that are not relevant will remain in this column and not advance. + +### Eligibility + +The goal *Eligibility* is to determine studies meet the eligibility criteria of your meta-analysis. +You will need to read the **full text** to make this determination. + +:::note +The eligibility criteria depends on your research question! +This is where your expertise is most necessary, in order to create an interesting research question, +and filter studies accordingly. The results of this step depends on the researcher, and there may be reasonable scientific disagrements. +::: + +To begin, click on the "Eligibility" column header, or a study, as before. + +![Custom Eligibility](/tutorial/custom_exclusion.png) + +For this example, we will include studies that meet these criteria: + + * fMRI or PET + * Reported brain activity in stereotaxic coordinates (Talairach or MNI space) + * Reported a set of coordinates (i.e., foci) from a within-subjects or between-subjects contrast assessing the effects of nAChR agonist administration (i.e., pharmacological administration or cigarette smoking) relative to a baseline condition (i.e., placebo administration or smoking-abstinence condition) + * Examined brain activity using a cognitive or affective task paradigm or at rest. + * Studies examining functional connectivity, brain morphology, or neurochemistry are excluded. + +For this tutorial, go ahead and review all studies in this column, and Promote relevant studies to the next phase. + +:::tip +Given that this phase is more open-ended, there is no default Exclusion reason. We provide four default options for you, and +you may define custom Exclusion reasons if you see fit. +::: + +:::tip +For open source studies, we will link to the article full text (PDF). If not available, click +"view article link" to view article's PubMed page, and access the full text using your credentials. +::: + +### Included + +Congratulations! Once you have reviewed all studies, you should have a set of studies that you want to include in your meta-analysis. + +At this point, you can review this final list, and view a PRISMA diagram visually outlining your review process: + +![PRISMA](/tutorial/prisma_diagram.png) + +To finish *Curation*, and create a final StudySet, click *Move on to Extraction* at the top right. + +## Extract and Annotation + +The goal of this phase is to **extract data** from the text of studies (such as coordinates) +that will be used in the meta-analysis. You will also want to **annotate** relevant Study meta-data. +Most commonly, for each Study you will designate which Analyses (i.e. Contrasts) to included in your meta-analysis. + +:::tip +Studies that are already indexed by NeuroStore will have automatically extracted data (such as coordinates) +saving you a lot of time and effort. However, you may want to verify and improve this information. +::: + +### Ingestion + +But first, we must create a StudySet containing your studies! + +New studies not in the NeuroStore database will be created, and studies that match existing studies will be added to a newly created StudySet. + +:::info +Studies in NeuroStore have multiple Versions, including those created by other users, as well as the original copy. + +If you ingest a study that is already indexed in the database, we will match to the newest possible Version, by default. +Ideally, this will be a Version that another user has already improved, saving you even more time! + +You can switch Study Versions at anytime (including to the original automate copy) by clicking *Switch Study Version* at the bottom +of Study's page. Any edits you make will automatically be saved as a new Version. +::: + +### Editing studies + +Once your StudySet is created, it's time to edit studies. You will see a list of your studies: + +![Extraction](/tutorial/extraction_and_annotation.png) + +Click on any Study to edit: + +![Extraction study view](/tutorial/annotate_and_extract_study.png) + +#### Analysis Data + +Let's start by editing a Study's Analyses. + +*Analyses* are results reported in a given study from a specific analysis. You may know this as "Contrasts". + +For new studies, we will not have any data, and it is necessary to manually enter these data from the text of a study. + +![Extraction study view](/tutorial/study_with_no_analyses.png) + +For studies with no data, you can create new Analyses, and input the Coordinates reported in the text: + +![Extraction study view](/tutorial/add_coordinates.png) + +Fortunately, for studies already indexed by NeuroStore, we will already have pre-extracted Coordinates. You can use this same interface to verify and correct these data. + +:::caution +Automatically extracted coordinates can contain a number of errors. Mostly commonly, several distinct Analyses (i.e. contrasts), will get grouped into a single Analyses. You will want to create new Analyses to split up the Coordinates into distinct units. + +Another common error is that Analyses are duplicated, meaning you may want to delete extra Analyses. +::: + +:::tip +You can copy and paste coordinates from Microsoft Excel or Google Sheets. +::: + +#### Annotations + +A key goal of the Extraction phase, is to add Annotations that can help us distinguish Analyses, and include/exclude specific Analyses from a meta-analysis. Annotations are simply columns of data with a value for all Analyses within a StudySet. + +Annotations can be explained as a way to categorize analyses within each study. For example, they can be categorized by task (e.g., Stroop, N-back, etc.), by modality (e.g., fMRI, PET, etc.), or by any other category that you want to use to filter the analyses. + +:::tip +By default, a single Annotation called "included" is created, which includes all Analyses. +You can modify this Annotation to select the relevant Analyses of interest to your research question +::: + +For this replication, we are interested in the effects of nAChR agonists on the brain, which can either be excitatory or inhibitory, so we add both an “activation” and “deactivation” column. + +First create an Annotation. From the main Extraction page, click "View Annoations" on the top right. Here you can view all annotations and the value for each Analyses, as well as create new Annotations. You can choose the data type of each column as either a Number, String, or Boolean. Selected a Boolean data type for the “activation” and “deactivation” columns, which will allow you to filter the analyses by whether they are excitatory or inhibitory. By default you will have an “include” column to help get you started. + +Below, I am creating a new Annotation for "deactivations" + +![annotation for a study](/tutorial/annotation_create.png) + +Now, when I look at a study, I can edit the value for Analyses, assigning each group of coordinates as "activations" or "deactivations": + +![annotation for a study](/tutorial/annotation_view.png) + +## Meta-analysis specification + +You are finally ready to specify a meta-analysis! + +![start meta-analysis specification](/tutorial/proceed_meta_analysis.png) + +After clicking **"+ Meta-Analysis Specification"**, you'll see the following dialog: + +![Meta-analysis wizard](/tutorial/ma_wizard.png) + +For each Meta-Analysis, you will select an Annotation to filter the Analyses to include. +Remember, by default, the "included" column will be created and include *all* Analyses. + + +Next, you will **select a meta-analysis Algorithm and Corrector**: + +![Meta-analysis algorithm](/tutorial/ma_algorithm.png) + +A variety of common meta-analysis algirithms such as "ALE" and "MKDA" are available, as well as two +strategies for controling for multiple comparisons: FDR (false detection rate) and FWE (family wise error). + +For this example, we'll choose "MKDADensity" and and "FDRCorrection". You can modify the parameters for each, if you want, +but we provide sane defaults for all. + +:::tip +Learn more about meta-analysis algorithms in the [NiMARE Documentation](https://nimare.readthedocs.io/en/stable/index.html) +::: + +Next, you'll give your meta-analysis a name, and review the details of your specification. + +![Meta-analysis review](/tutorial/ma_review.png) + +:::tip +You can define multiple Meta-Analysis specifications in a Project, paired to the same StudySet +::: + +## Run your meta-analysis! + +Congratulations! You now have a Meta-Analysis specification that is ready to run. + +You can execute your Meta-Analysis for free in the cloud on Google Colab by copying the unique *meta-analysis id* +and pasting it into our Google Colab notebook. + +![Meta-analysis run](/tutorial/ma_run.png) \ No newline at end of file diff --git a/static/tutorial/add_coordinates.png b/static/tutorial/add_coordinates.png new file mode 100644 index 0000000..a7af3d1 Binary files /dev/null and b/static/tutorial/add_coordinates.png differ diff --git a/static/tutorial/annotate_and_extract_study.png b/static/tutorial/annotate_and_extract_study.png new file mode 100644 index 0000000..3f17478 Binary files /dev/null and b/static/tutorial/annotate_and_extract_study.png differ diff --git a/static/tutorial/annotation_create.png b/static/tutorial/annotation_create.png new file mode 100644 index 0000000..a0a5494 Binary files /dev/null and b/static/tutorial/annotation_create.png differ diff --git a/static/tutorial/annotation_view.png b/static/tutorial/annotation_view.png new file mode 100644 index 0000000..6c78d15 Binary files /dev/null and b/static/tutorial/annotation_view.png differ diff --git a/static/tutorial/create_project.png b/static/tutorial/create_project.png new file mode 100644 index 0000000..c1435e8 Binary files /dev/null and b/static/tutorial/create_project.png differ diff --git a/static/tutorial/custom_exclusion.png b/static/tutorial/custom_exclusion.png new file mode 100644 index 0000000..15d1305 Binary files /dev/null and b/static/tutorial/custom_exclusion.png differ diff --git a/static/tutorial/display_imported_stubs_1.png b/static/tutorial/display_imported_stubs_1.png new file mode 100644 index 0000000..ad8bd27 Binary files /dev/null and b/static/tutorial/display_imported_stubs_1.png differ diff --git a/static/tutorial/download_search_results.png b/static/tutorial/download_search_results.png new file mode 100644 index 0000000..7853e73 Binary files /dev/null and b/static/tutorial/download_search_results.png differ diff --git a/static/tutorial/empty_curation_board.png b/static/tutorial/empty_curation_board.png new file mode 100644 index 0000000..77e307b Binary files /dev/null and b/static/tutorial/empty_curation_board.png differ diff --git a/static/tutorial/extraction_and_annotation.png b/static/tutorial/extraction_and_annotation.png new file mode 100644 index 0000000..3ef88fe Binary files /dev/null and b/static/tutorial/extraction_and_annotation.png differ diff --git a/static/tutorial/identification.png b/static/tutorial/identification.png new file mode 100644 index 0000000..cf90ee1 Binary files /dev/null and b/static/tutorial/identification.png differ diff --git a/static/tutorial/identification_review.png b/static/tutorial/identification_review.png new file mode 100644 index 0000000..dfca514 Binary files /dev/null and b/static/tutorial/identification_review.png differ diff --git a/static/tutorial/import_name.png b/static/tutorial/import_name.png new file mode 100644 index 0000000..ce15290 Binary files /dev/null and b/static/tutorial/import_name.png differ diff --git a/static/tutorial/import_pmid.png b/static/tutorial/import_pmid.png new file mode 100644 index 0000000..842fb05 Binary files /dev/null and b/static/tutorial/import_pmid.png differ diff --git a/static/tutorial/import_studies_options.png b/static/tutorial/import_studies_options.png new file mode 100644 index 0000000..3aa8446 Binary files /dev/null and b/static/tutorial/import_studies_options.png differ diff --git a/static/tutorial/ma_algorithm.png b/static/tutorial/ma_algorithm.png new file mode 100644 index 0000000..46c8615 Binary files /dev/null and b/static/tutorial/ma_algorithm.png differ diff --git a/static/tutorial/ma_review.png b/static/tutorial/ma_review.png new file mode 100644 index 0000000..0fc947f Binary files /dev/null and b/static/tutorial/ma_review.png differ diff --git a/static/tutorial/ma_run.png b/static/tutorial/ma_run.png new file mode 100644 index 0000000..d4a218d Binary files /dev/null and b/static/tutorial/ma_run.png differ diff --git a/static/tutorial/ma_wizard.png b/static/tutorial/ma_wizard.png new file mode 100644 index 0000000..1e008ab Binary files /dev/null and b/static/tutorial/ma_wizard.png differ diff --git a/static/tutorial/new_project_view.png b/static/tutorial/new_project_view.png new file mode 100644 index 0000000..d6f7f7d Binary files /dev/null and b/static/tutorial/new_project_view.png differ diff --git a/static/tutorial/prisma_diagram.png b/static/tutorial/prisma_diagram.png new file mode 100644 index 0000000..ab2bfbf Binary files /dev/null and b/static/tutorial/prisma_diagram.png differ diff --git a/static/tutorial/proceed_meta_analysis.png b/static/tutorial/proceed_meta_analysis.png new file mode 100644 index 0000000..16c0ce1 Binary files /dev/null and b/static/tutorial/proceed_meta_analysis.png differ diff --git a/static/tutorial/select_prisma.png b/static/tutorial/select_prisma.png new file mode 100644 index 0000000..7f30a6e Binary files /dev/null and b/static/tutorial/select_prisma.png differ diff --git a/static/tutorial/study_with_no_analyses.png b/static/tutorial/study_with_no_analyses.png new file mode 100644 index 0000000..be31a6e Binary files /dev/null and b/static/tutorial/study_with_no_analyses.png differ diff --git a/static/tutorial/tutorial_pmids.txt b/static/tutorial/tutorial_pmids.txt new file mode 100644 index 0000000..e4b41fd --- /dev/null +++ b/static/tutorial/tutorial_pmids.txt @@ -0,0 +1,13 @@ +20331560 +20862456 +21199958 +21544072 +21243486 +19713300 +21530557 +21331518 +20728875 +21527291 +21270772 +20688176 +20731637 diff --git a/static/tutorial/view_annotations.png b/static/tutorial/view_annotations.png new file mode 100644 index 0000000..e2b5308 Binary files /dev/null and b/static/tutorial/view_annotations.png differ