neurosynth

Neurosynth core tools

https://github.com/neurosynth/neurosynth

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    8 of 20 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.6%) to scientific vocabulary

Keywords from Contributors

neuroimaging feature-extraction audio brain-imaging bids mvpa decoding brain-mri brain-connectivity workflow-engine
Last synced: 10 months ago · JSON representation

Repository

Neurosynth core tools

Basic Info
  • Host: GitHub
  • Owner: neurosynth
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 2.12 MB
Statistics
  • Stars: 352
  • Watchers: 33
  • Forks: 163
  • Open Issues: 14
  • Releases: 0
Created about 15 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog License

README.md

Note: this package is no longer actively maintained; most of its functionality has been integrated into the much more expansive NiMARE package, which we recommend using instead.

What is Neurosynth?

Neurosynth is a Python package for large-scale synthesis of functional neuroimaging data.

Code status

  • tests status travis-ci.org (master branch)

  • Coverage Status

Installation

Dependencies:

  • NumPy/SciPy
  • pandas
  • NiBabel
  • ply
  • scikit-learn

We recommend installing the core scientific packages (NumPy, SciPy, pandas, sklearn) via a distribution like https://store.continuum.io/cshop/anaconda/, which will keep clutter and conflicts to a minimum. The other packages can be installed with pip using the requirements file:

> pip install -r requirements.txt

Or by name:

> pip install nibabel ply

Assuming you have those packages in working order, the easiest way to install Neurosynth is from the command line with pip:

> pip install neurosynth

Alternatively, if you want the latest development version, you can install directly from the github repo:

> pip install -e git+https://github.com/neurosynth/neurosynth.git#egg=neurosynth

Depending on your operating system, you may need superuser privileges (prefix the above line with 'sudo').

That's it! You should now be ready to roll.

Documentation

Documentation, including a full API reference, is available here(caution: work in progress).

Usage

Running analyses in Neurosynth is pretty straightforward. We're working on a user manual; in the meantime, you can take a look at the code in the /examples directory for an illustration of some common uses cases (some of the examples are in IPython Notebook format; you can view these online by entering the URL of the raw example on github into the online IPython Notebook Viewer--for example this tutorial provides a nice overview). The rest of this Quickstart guide just covers the bare minimum.

The NeuroSynth dataset resides in a separate submodule located here. Probably the easiest way to get the most recent data though is from within the Neurosynth package itself:

import neurosynth as ns
ns.dataset.download(path='.', unpack=True)

...which should download the latest database files and save them to the current directory. Alternatively, you can manually download the data files from the neurosynth-data repository. The latest dataset is always stored in current_data.tar.gz in the root folder. Older datasets are also available in the archive folder.

The dataset archive (current_data.tar.gz) contains 2 files: database.txt and features.txt. These contain the activations and meta-analysis tags for Neurosynth, respectively.

Once you have the data in place, you can generate a new Dataset instance from the database.txt file:

> from neurosynth.base.dataset import Dataset
> dataset = Dataset('data/database.txt')

This should take several minutes to process. Note that this is a memory-intensive operation, and may be very slow on machines with less than 8 GB of RAM.

Once initialized, the Dataset instance contains activation data from nearly 10,000 published neuroimaging articles. But it doesn't yet have any features attached to those data, so let's add some:

> dataset.add_features('data/features.txt')

Now our Dataset has both activation data and some features we can use to manipulate the data with. In this case, the features are just term-based tags--i.e., words that occur in the abstracts of the articles from which the dataset is drawn (for details, see this [Nature Methods] paper, or the Neurosynth website).

We can now do various kinds of analyses with the data. For example, we can use the features we just added to perform automated large-scale meta-analyses. Let's see what features we have:

> dataset.get_feature_names()
['phonetic', 'associative', 'cues', 'visually', ... ]

We can use these features--either in isolation or in combination--to select articles for inclusion in a meta-analysis. For example, suppose we want to run a meta-analysis of emotion studies. We could operationally define a study of emotion as one in which the authors used words starting with 'emo' with high frequency:

> ids = dataset.get_studies(features='emo*', frequency_threshold=0.001)

Here we're asking for a list of IDs of all studies that use words starting with 'emo' (e.g.,'emotion', 'emotional', 'emotionally', etc.) at a frequency of 1 in 1,000 words or greater (in other words, if an article has 5,000 words of text, it will only be included in our set if it uses words starting with 'emo' at least 5 times).

> len(ids)
639

The resulting set includes 639 studies.

Once we've got a set of studies we're happy with, we can run a simple meta-analysis, prefixing all output files with the string 'emotion' to distinguish them from other analyses we might run:

> from neurosynth.analysis import meta
> ma = meta.MetaAnalysis(dataset, ids)
> ma.save_results('some_directory/emotion')

You should now have a set of Nifti-format brain images on your drive that display various meta-analytic results. The image names are somewhat cryptic; see the Documentation for details. It's important to note that the meta-analysis routines currently implemented in Neurosynth aren't very sophisticated; they're designed primarily for efficiency (most analyses should take just a few seconds), and take multiple shortcuts as compared to other packages like ALE or MKDA. But with that caveat in mind (and one that will hopefully be remedied in the near future), Neurosynth gives you a streamlined and quick way of running large-scale meta-analyses of fMRI data.

Getting help

For a more comprehensive set of examples, see this tutorial--also included in IPython Notebook form in the examples/ folder (along with several other simpler examples).

For bugs or feature requests, please create a new issue. If you run into problems installing or using the software, try posting to the Neurosynth Google group or email Tal Yarkoni.

Owner

  • Name: Neurosynth
  • Login: neurosynth
  • Kind: organization

GitHub Events

Total
  • Watch event: 29
  • Fork event: 8
Last Year
  • Watch event: 29
  • Fork event: 8

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 399
  • Total Committers: 20
  • Avg Commits per committer: 19.95
  • Development Distribution Score (DDS): 0.371
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Tal Yarkoni t****i@g****m 251
Alejandro De La Vega a****4@g****m 60
Yaroslav Halchenko d****n@o****m 30
Taylor Salo t****6@f****u 11
Alejandro de la Vega d****a@c****u 9
Elizabeth DuPre e****2@c****u 6
Russ Poldrack p****k@g****m 6
Aimi Watanabe w****i@g****m 4
Amber on abhyasa a****r@a****a 4
Tal Yarkoni t****i@c****u 3
Luke Chang l****g@g****m 3
Meng Du m****u@u****u 2
ejolly e****y@g****m 2
Chris Filo Gorgolewski c****i@g****m 2
Michael Waskom m****m@s****u 1
adelavega d****a@u****u 1
Sritam Kethireddy k****s@u****u 1
Michael Hanke m****e@g****m 1
Mike s****o@g****m 1
Yedarm Seong m****7@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 60
  • Total pull requests: 42
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 27
  • Total pull request authors: 20
  • Average comments per issue: 2.9
  • Average comments per pull request: 1.62
  • Merged pull requests: 34
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • adelavega (8)
  • yarikoptic (8)
  • tyarkoni (6)
  • ljchang (5)
  • chrisgorgo (4)
  • vsoch (4)
  • tsalo (3)
  • cvklein (2)
  • mtakemiya (2)
  • law826 (1)
  • seunggookim (1)
  • KamalakerDadi (1)
  • meng-du (1)
  • poldrack (1)
  • ehsankakaei91 (1)
Pull Request Authors
  • yarikoptic (10)
  • tsalo (4)
  • ambimorph (4)
  • tyarkoni (3)
  • poldrack (3)
  • chrisgorgo (3)
  • stymy (2)
  • ghost (1)
  • ljchang (1)
  • haoshuji (1)
  • ReinderVosDeWael (1)
  • ajuavinett (1)
  • ejolly (1)
  • mybirth0407 (1)
  • sailingpeng (1)
Top Labels
Issue Labels
bug (7) enhancement (4)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,622 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 11
  • Total versions: 9
  • Total maintainers: 1
pypi.org: neurosynth

Large-scale synthesis of functional neuroimaging data

  • Versions: 9
  • Dependent Packages: 2
  • Dependent Repositories: 11
  • Downloads: 1,622 Last month
Rankings
Dependent packages count: 3.1%
Stargazers count: 3.6%
Forks count: 4.1%
Dependent repos count: 4.4%
Average: 5.0%
Downloads: 9.8%
Maintainers (1)
Last synced: 11 months ago

Dependencies

setup.py pypi
  • biopython *
  • nibabel *
  • numpy *
  • pandas *
  • ply *
  • scikit-learn *
  • scipy *
  • six *
docs/sphinx_requirements.txt pypi
  • mock *
  • sphinxcontrib-napoleon *
requirements.txt pypi
  • biopython *
  • matplotlib *
  • nibabel >=1.2
  • numpy *
  • pandas *
  • ply *
  • scikit-learn *
  • scipy *
  • six *