Skip to main content

Neuroscout API wrapper

Project description

pyNS 🌲

Python package 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.6.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

pyns-0.4.6-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyns-0.4.6.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for pyns-0.4.6.tar.gz
Algorithm Hash digest
SHA256 27fe92bb07697ad2019f3c8c4dae4c48aa70e45dc95b384a6ef048e89ca3182e
MD5 9ca9fc95ed61a4277febbcd0c6bf402f
BLAKE2b-256 45142c88a949e3beb129b6af8b4f6bc7293da2b5430864bada4a14e81916e113

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pyns-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for pyns-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9ccf452a97975618bda2076d00dd171da40b292ec1ad40c4e78f351074e1f181
MD5 d748645e3cdc9105bdbe3ef33768c8a0
BLAKE2b-256 e137f7915ded83075ad78a7b8c19b51c85654e4b3f351f5b1090079a7b8f9407

See more details on using hashes here.

Provenance

Supported by

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