Skip to main content

ndx-survey-data Extension for NWB

Structure for storing the survey data in a NWB file.

PyPI version codecov License

schema schema

Installation

$ pip install ndx-survey-data

Usage

from pynwb import NWBHDF5IO, NWBFile
from datetime import datetime
from ndx_survey_data.survey_definitions import nrs_survey_table
import numpy as np


nrs_survey_table.add_row(
    pain_intensity_rating=1.1,
    pain_relief_rating=5.5,
    relative_pain_intensity_rating=np.nan,
    pain_unpleasantness=np.nan,
    unix_timestamp=1588217283
)

nrs_survey_table.add_row(
    pain_intensity_rating=np.nan,
    pain_relief_rating=1,
    relative_pain_intensity_rating=6,
    pain_unpleasantness=2.7,
    unix_timestamp=1588217283
)

nrs_survey_table.add_row(
    pain_intensity_rating=5.3,
    pain_relief_rating=np.nan,
    relative_pain_intensity_rating=0.8,
    pain_unpleasantness=2.1,
    unix_timestamp=1588217283
)

nrs_survey_table.add_row(
    pain_intensity_rating=3.7,
    pain_relief_rating=np.nan,
    relative_pain_intensity_rating=6,
    pain_unpleasantness=np.nan,
    unix_timestamp=1588217283
)
nwbfile = NWBFile('description', 'id', datetime.now().astimezone())

nwbfile.create_processing_module(name='behavior', description='survey/behavioral data')

nwbfile.processing['behavior'].add(nrs_survey_table)

with NWBHDF5IO('test_nwb.nwb', 'w') as io:
    io.write(nwbfile)

with NWBHDF5IO('test_nwb.nwb', 'r', load_namespaces=True) as io:
    nwbfile = io.read()
    print(nwbfile.processing['behavior'].data_interfaces['nrs_survey_table'].to_dataframe().to_html())
pain_intensity_rating pain_relief_rating relative_pain_intensity_rating pain_unpleasantness unix_timestamp
id
0 1.1 5.5 NaN NaN 1588217283
1 NaN 1.0 6.0 2.7 1588217283
2 5.3 NaN 0.8 2.1 1588217283
3 3.7 NaN 6.0 NaN 1588217283

To add a custom survey:

from ndx_survey_data import QuestionResponse, SurveyTable

q1 = QuestionResponse(name='question1',
                      description='desc',
                      options=['option 1', 'option 2', 'option 3'])

q2 = QuestionResponse(name='question2', 
                      description='desc',
                      options=['option 1', 'option 2', 'option 3'])

q3 = QuestionResponse(name='question3', 
                      description='desc',
                      options=['option 1', 'option 2', 'option 3'])


custom_survey_table = SurveyTable(name='custom_survey_table',
                               description='desc', 
                               columns=[q1, q2, q3])

custom_survey_table.add_row(question1=1.3, question2=3.9, question3=0.2, unix_timestamp=1588217283)
custom_survey_table.add_row(question1=3.3, question2=1.4, question3=0.6, unix_timestamp=1588217283)
custom_survey_table.add_row(question1=2.5, question2=2.1, question3=2.8, unix_timestamp=1588217283)

Metadata

Release files for ndx-survey-data 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ndx-survey-data 0.2.0
File Size Uploaded
ndx-survey-data-0.2.0.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ndx-survey-data 0.2.0
File Interpreter ABI Platform
ndx_survey_data-0.2.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 22.2 kB

Release files / ndx-survey-data-0.2.0.tar.gz

Download URL ndx-survey-data-0.2.0.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
93dfc2aace4e1a00bca96468ad854cd9f91af38f945649870a2810edbbda2d5a
BLAKE2b-256 checksum
How to use checksums
bd3c5d4ee67fea041b4f3e9a61a3b7faff8fe55f2309e197471b867c2e530e3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0.post20200710 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release files / ndx_survey_data-0.2.0-py2.py3-none-any.whl

Download URL ndx_survey_data-0.2.0-py2.py3-none-any.whl
Size 7.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
87fb2869ba81e9f27a3bdb567e29bd3ccedf51cfcc35188b39be99abd1a3fe8f
BLAKE2b-256 checksum
How to use checksums
00023fdf343056ac8b5d626ab8f90a4a4ba875c69ea99d3ef62cef14846392f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0.post20200710 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page