NWB extensions for storing hierarchical behavioral data
Project description
ndx-hierarchical-behavioral-data Extension for NWB
Installation
Usage
Use pre-made hierarchical transcription tables:
from ndx_hierarchical_behavioral_data.definitions.transcription import phonemes, syllables, words, sentences
phonemes.add_column('max_pitch', 'maximum pitch for this phoneme. NaN for unvoiced')
for i, p in enumerate('abcdefghijkl'):
phonemes.add_interval(label=p, start_time=float(i), stop_time=float(i+1), max_pitch=i**2)
syllables.add_interval(label='abc', next_tier=[0, 1, 2])
syllables.add_interval(label='def', next_tier=[3, 4, 5])
syllables.add_interval(label='ghi', next_tier=[6, 7, 8])
syllables.add_interval(label='jkl', next_tier=[9, 10, 11])
words.add_column('emphasis', 'boolean indicating whether this word was emphasized')
words.add_interval(label='A-F', next_tier=[0, 1], emphasis=False)
words.add_interval(label='G-L', next_tier=[2, 3], emphasis=True)
sentences.add_interval(label='A-L', next_tier=[0, 1])
View individual tiers:
sentences.to_dataframe()
label | start_time | stop_time | next_tier | |
---|---|---|---|---|
id | ||||
0 | A-L | 0.0 | 12.0 | label start_time stop_time \\id ... |
words.to_dataframe()
label | start_time | stop_time | next_tier | emphasis | |
---|---|---|---|---|---|
id | |||||
0 | A-F | 0.0 | 6.0 | label start_time stop_time \\ id 0 abc 0.0 3.0 1 def 3.0 6.0 next_tier id 0 start_time stop_time label max_pitch id 0 0.0 1.0 a 0 1 1.0 2.0 b 1 2 2.0 3.0 c 4 1 start_time stop_time label max_pitch id 3 3.0 4.0 d 9 4 4.0 5.0 e 16 5 5.0 6.0 f 25 | False |
1 | G-L | 6.0 | 12.0 | label start_time stop_time \\ id 2 ghi 6.0 9.0 3 jkl 9.0 12.0 next_tier id 2 start_time stop_time label max_pitch id 6 6.0 7.0 g 36 7 7.0 8.0 h 49 8 8.0 9.0 i 64 3 start_time stop_time label max_pitch id 9 9.0 10.0 j 81 10 10.0 11.0 k 100 11 11.0 12.0 l 121 | True |
syllables.to_dataframe()
label | start_time | stop_time | next_tier | |
---|---|---|---|---|
id | ||||
0 | abc | 0.0 | 3.0 | start_time stop_time label id 0 0.0 1.0 a 1 1.0 2.0 b 2 2.0 3.0 c |
1 | def | 3.0 | 6.0 | start_time stop_time label id 3 3.0 4.0 d 4 4.0 5.0 e 5 5.0 6.0 f |
2 | ghi | 6.0 | 9.0 | start_time stop_time label id 6 6.0 7.0 g 7 7.0 8.0 h 8 8.0 9.0 i |
3 | jkl | 9.0 | 12.0 | start_time stop_time label id 9 9.0 10.0 j 10 10.0 11.0 k 11 11.0 12.0 l |
phonemes.to_dataframe()
start_time | stop_time | label | max_pitch | |
---|---|---|---|---|
id | ||||
0 | 0.0 | 1.0 | a | 0 |
1 | 1.0 | 2.0 | b | 1 |
2 | 2.0 | 3.0 | c | 4 |
3 | 3.0 | 4.0 | d | 9 |
4 | 4.0 | 5.0 | e | 16 |
5 | 5.0 | 6.0 | f | 25 |
6 | 6.0 | 7.0 | g | 36 |
7 | 7.0 | 8.0 | h | 49 |
8 | 8.0 | 9.0 | i | 64 |
9 | 9.0 | 10.0 | j | 81 |
10 | 10.0 | 11.0 | k | 100 |
11 | 11.0 | 12.0 | l | 121 |
Hierarchical dataframe:
sentences.to_hierarchical_dataframe()
source_table | phonemes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
label | id | start_time | stop_time | label | max_pitch | ||||||||||||
sentences_id | sentences_label | sentences_start_time | sentences_stop_time | words_id | words_label | words_start_time | words_stop_time | words_emphasis | syllables_id | syllables_label | syllables_start_time | syllables_stop_time | |||||
0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 0 | 0.0 | 1.0 | a | 0 |
3.0 | 1 | 1.0 | 2.0 | b | 1 | ||||||||||||
3.0 | 2 | 2.0 | 3.0 | c | 4 | ||||||||||||
1 | def | 3.0 | 6.0 | 3 | 3.0 | 4.0 | d | 9 | |||||||||
6.0 | 4 | 4.0 | 5.0 | e | 16 | ||||||||||||
6.0 | 5 | 5.0 | 6.0 | f | 25 | ||||||||||||
1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 6 | 6.0 | 7.0 | g | 36 | ||||
9.0 | 7 | 7.0 | 8.0 | h | 49 | ||||||||||||
9.0 | 8 | 8.0 | 9.0 | i | 64 | ||||||||||||
3 | jkl | 9.0 | 12.0 | 9 | 9.0 | 10.0 | j | 81 | |||||||||
12.0 | 10 | 10.0 | 11.0 | k | 100 | ||||||||||||
12.0 | 11 | 11.0 | 12.0 | l | 121 |
Hierachical columns, flattened rows:
sentences.to_hierarchical_dataframe(flat_column_index=True)
id | start_time | stop_time | label | max_pitch | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sentences_id | sentences_label | sentences_start_time | sentences_stop_time | words_id | words_label | words_start_time | words_stop_time | words_emphasis | syllables_id | syllables_label | syllables_start_time | syllables_stop_time | |||||
0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 0 | 0.0 | 1.0 | a | 0 |
3.0 | 1 | 1.0 | 2.0 | b | 1 | ||||||||||||
3.0 | 2 | 2.0 | 3.0 | c | 4 | ||||||||||||
1 | def | 3.0 | 6.0 | 3 | 3.0 | 4.0 | d | 9 | |||||||||
6.0 | 4 | 4.0 | 5.0 | e | 16 | ||||||||||||
6.0 | 5 | 5.0 | 6.0 | f | 25 | ||||||||||||
1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 6 | 6.0 | 7.0 | g | 36 | ||||
9.0 | 7 | 7.0 | 8.0 | h | 49 | ||||||||||||
9.0 | 8 | 8.0 | 9.0 | i | 64 | ||||||||||||
3 | jkl | 9.0 | 12.0 | 9 | 9.0 | 10.0 | j | 81 | |||||||||
12.0 | 10 | 10.0 | 11.0 | k | 100 | ||||||||||||
12.0 | 11 | 11.0 | 12.0 | l | 121 |
Denormalized dataframe:
sentences.to_denormalized_dataframe()
source_table | sentences | words | syllables | phonemes | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
label | id | label | start_time | stop_time | id | label | start_time | stop_time | emphasis | id | label | start_time | stop_time | id | start_time | stop_time | label | max_pitch |
0 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 0 | 0.0 | 1.0 | a | 0 |
1 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 1 | 1.0 | 2.0 | b | 1 |
2 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 2 | 2.0 | 3.0 | c | 4 |
3 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 3 | 3.0 | 4.0 | d | 9 |
4 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 4 | 4.0 | 5.0 | e | 16 |
5 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 5 | 5.0 | 6.0 | f | 25 |
6 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 6 | 6.0 | 7.0 | g | 36 |
7 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 7 | 7.0 | 8.0 | h | 49 |
8 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 8 | 8.0 | 9.0 | i | 64 |
9 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 9 | 9.0 | 10.0 | j | 81 |
10 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 10 | 10.0 | 11.0 | k | 100 |
11 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 11 | 11.0 | 12.0 | l | 121 |
Denormalized dataframe with flattened columns:
sentences.to_denormalized_dataframe(flat_column_index=True)
sentences_id | sentences_label | sentences_start_time | sentences_stop_time | words_id | words_label | words_start_time | words_stop_time | words_emphasis | syllables_id | syllables_label | syllables_start_time | syllables_stop_time | id | start_time | stop_time | label | max_pitch | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 0 | 0.0 | 1.0 | a | 0 |
1 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 1 | 1.0 | 2.0 | b | 1 |
2 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 0 | abc | 0.0 | 3.0 | 2 | 2.0 | 3.0 | c | 4 |
3 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 3 | 3.0 | 4.0 | d | 9 |
4 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 4 | 4.0 | 5.0 | e | 16 |
5 | 0 | A-L | 0.0 | 12.0 | 0 | A-F | 0.0 | 6.0 | False | 1 | def | 3.0 | 6.0 | 5 | 5.0 | 6.0 | f | 25 |
6 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 6 | 6.0 | 7.0 | g | 36 |
7 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 7 | 7.0 | 8.0 | h | 49 |
8 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 2 | ghi | 6.0 | 9.0 | 8 | 8.0 | 9.0 | i | 64 |
9 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 9 | 9.0 | 10.0 | j | 81 |
10 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 10 | 10.0 | 11.0 | k | 100 |
11 | 0 | A-L | 0.0 | 12.0 | 1 | G-L | 6.0 | 12.0 | True | 3 | jkl | 9.0 | 12.0 | 11 | 11.0 | 12.0 | l | 121 |
This extension was created using ndx-template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ndx-hierarchical-behavioral-data-0.1.0.tar.gz
.
File metadata
- Download URL: ndx-hierarchical-behavioral-data-0.1.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4ca913febc7cf63ef7f11acc583eae1de232e4bfcb6c11bde468db5cef0dea3 |
|
MD5 | 9c0a526e5b4859a0aeeae9d5dbbcac77 |
|
BLAKE2b-256 | 725dc0e1779736bd189e48a268b559aa5741dd6f0d4e7adf5775f3fd8ca2bc78 |
File details
Details for the file ndx_hierarchical_behavioral_data-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: ndx_hierarchical_behavioral_data-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd701679b8258605ed346291b907ac461e662650d5eed4d0d9e8b300597c3fd5 |
|
MD5 | e3d6eaa6254ae071ff1d231447282cd4 |
|
BLAKE2b-256 | 106170b793e7212119ccfa1b85d30926a3e99dc2c0a72473c59d6b3b9b0838af |