Skip to main content

Neuroscout API wrapper

Project description

pyNS 🌲

Build Status codecov

The Neuroscout API wrapper for Python

Overview

pyNS is a python package to easily interact with the Neuroscout API.

For more API documentation, check out the Swagger API Docs: http://neuroscout.org/swagger-ui/

Installation

pyNS is supported in Python 3.4+ Use pip to install it:

pip install pyns

Quickstart

For a tutorial on how to build an analysis, see this Jupyter Notebook: https://github.com/neuroscout/pyNS/blob/master/examples/Tutorial.ipynb

We are assuming you already have valid Neuroscout API credentials (and if you dont, sign up at: neuroscout.org)

First, instantiate a Neuroscout API Client object:

from pyns import Neuroscout
neuroscout = Neuroscout(username='USERNAME', password='PASSWORD')

With the neuroscout instance, you can interact with the API. All of the major routes are linked to the main neuroscout object, and return requests Response objects.

For example we can retrieve our user profile:

>>> neuroscout.user.get()
{'email': 'user@example.com',
 'analyses': [ {'description': 'Does the brain care about language?',
  'hash_id': 'RZd',
  'modified_at': '2018-08-09T23:3',
  'name': 'My new analysis',
  'status': 'PASSED'}]]}

Or query various endpoints, such as datasets:

>>> neuroscout.datasets.get()
[{'description': {'Acknowledgements': '',
   'Authors': ['Tomoyasu Horikawa', 'Yukiyasu Kamitani'],
   'DatasetDOI': '',
   'Funding': '',
   'HowToAcknowledge': '',
   'License': '',
   'Name': 'Generic Object Decoding (fMRI on ImageNet)',
   'ReferencesAndLinks': ['Horikawa & Kamitani (2017) Generic decoding of seen and imagined objects using hierarchical visual features. Nature Communications volume 8:15037. doi:10.1038/ncomms15037']},
  'id': 1,
  'name': 'generic_object_decoding',
...
  'tasks': [{'id': 8, 'name': 'life'}]}]

For example, we could use this to get the first predictor associated with a dataset:

>>> first = neuroscout.predictors.get(dataset_id=5)[0]
{'description': 'Bounding polygon around face. y coordinate for vertex 1',
 'extracted_feature': {'created_at': '2018-04-12 00:44:14.868349',
  'description': 'Bounding polygon around face. y coordinate for vertex 1',
  'extractor_name': 'GoogleVisionAPIFaceExtractor',
  'id': 102,
  'modality': None},
 'id': 197,
 'name': 'boundingPoly_vertex1_y',
 'source': 'extracted'}

And get the predictor-events associated with that predictor:

>>> neuroscout.predictor_events.get(predictor_id=first['id'])[0:2]
[{'duration': 9.0,
  'id': '1050781',
  'onset': 114.0,
  'predictor_id': 197,
  'run_id': 2,
  'value': '13'},
 {'duration': 9.0,
  'id': '1050782',
  'onset': 114.0,
  'predictor_id': 197,
  'run_id': 26,
  'value': '13'}]

Testing

We use pytest for testing, and betamax to record HTTP requests used in test into cassettes.

To re-run tests locally set theUSER_TEST_EMAIL and USER_TEST_PWD environment variables with valid API credentials.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyns-0.4.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyns-0.4.3-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file pyns-0.4.3.tar.gz.

File metadata

  • Download URL: pyns-0.4.3.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyns-0.4.3.tar.gz
Algorithm Hash digest
SHA256 0431baf3f97d8e60d31ac56ad30ade5f372675eb06ca9ec728f6227edaf76f15
MD5 90e87e2ab54515e0d64807582c706d9e
BLAKE2b-256 a7f7d21f69ce7731044eaa86267e1ca5f7e39a04122a396bfa59c3e0a038b09f

See more details on using hashes here.

File details

Details for the file pyns-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: pyns-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyns-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 21b0872df27bf9485b0fa80abe72cb5b51fbc6821f605f2cc7eb11c094a37996
MD5 502b2cf35f50e04223212c6ecbfb7b68
BLAKE2b-256 45213906ef685ca9f398de6cdadc318fbdc1d69e99f8f8cbc13584042d8f6b14

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page