# ndx-franklab-novela Extension for NWB
# About
ndx-franklab-novela is a python package containing NWB custom extensions for Loren Frank's Lab.
# How to install
Add ndx-franklab-novela to your conda environment:
```
pip install ndx-franklab-novela
```
Or install the latest version from the repository:
```
pip install git+git://github.com/LorenFrankLab/ndx-franklab-novela
```
The original published extension maintained by NovelaNeuro can be installed using:
```
conda install -c conda-forge -c novelakrk ndx-franklab-novela
```
# Dependencies
This extension uses the [ndx-optogenetics](https://github.com/rly/ndx-optogenetics) extension.
Installing ndx-franklab-novela will install the latest version of ndx-optogenetics from PyPI.
Loading `ndx-franklab-novela` by importing `ndx_franklab_novela` will also load `ndx_optogenetics`.
# Extensions
## AssociatedFiles
Representation of associated files in NWB.
**Attributes:**
- **description** `string`: description of associated file
- **content** `string`: content of associated file
- **task_epochs** `string`: id of epochs with task that is descripted by associated files
## HeaderDevice
Representation of HeaderDevice in NWB.
**Attributes:**
- **headstage_serial** `string`: headstage_serial from header global configuration
- **headstage_smart_ref_on** `string`: headstage_smart_ref_on from header global configuration
- **realtime_mode** `string`: realtime_mode from header global configuration
- **headstage_auto_settle_on** `string`: headstage_auto_settle_on from header global configuration
- **timestamp_at_creation** `string`: timestamp_at_creation from header global configuration
- **controller_firmware_version** `string`: conntroller_firmware_version from header global configuration
- **controller_serial** `string`: conntroller_serial from header global configuration
- **save_displayed_chan_only** `string`: save_displayed_chan_only from header global configuration
- **headstage_firmware_version** `string`: headstage_firmware_version from header global configuration
- **qt_version** `string`: qt_version from header global configuration
- **compile_date** `string`: compile_date from header global configuration
- **compile_time** `string`: compile_time from header global configuration
- **file_prefix** `string`: file_prefix from header global configuration
- **headstage_gyro_sensor_on** `string`: headstage_gyro_sensor_on from header global configuration
- **headstage_mag_sensor_on** `string`: headstage_mag_sensor_on from header global configuration
- **trodes_version** `string`: trodes_version from header global configuration
- **headstage_accel_sensor_on** `string`: headstage_accel_sensor_on from header global configuration
- **commit_head** `string`: commit_head from header global configuration
- **system_time_at_creation** `string`: system_time_at_creation from header global configuration
- **file_path** `string`: file_path from header global configuration
## ShanksElectrode
Representation of electrodes of a shank in NWB.
**Attributes:**
- **name** `string`: name of the shank
- **rel_x** `float`: the rel_x value of this electrode
- **rel_y** `float`: the rel_y value of this electrode
- **rel_z** `float`: the rel_z value of this electrode
## Shank
Representation of a shank in NWB.
**Attributes:**
- **name** `string`: name of the shank
- **shanks_electrodes** `dict`: electrodes in the shank
## Probe
Representation of a probe in NWB.
**Attributes:**
- **id** `int`: unique id of the probe
- **probe_type** `string`: type of probe
- **units** `string`: units in device
- **probe_description** `string`: description of probe
- **contact_side_numbering** `bool`: Whether the electrodes were numbered in a scheme wherein the contacts were electrodes facing up toward the viewer (true) or if the numbering was based on the electrodes facing down (false). This is relevant when the goal is to determine where in the tissue each electrode contact is located. (optional)
- **contact_size** `float`: value of contact size as float
- **shanks** `dict`: shanks in the probe
## DataAcqDevice
Representation of data acquisition device in NWB.
**Attributes:**
- **system** `string`: system of device
- **amplifier** `string`: amplifier (optional)
- **adc_circuit** `string`: adc_circuit (optional)
## CameraDevice
Representation of a camera device in NWB.
**Attributes:**
- **meters_per_pixel** `float`: meters per pixel
- **model** `string`: model of this camera device
- **lens** `string`: info about lens in this camera
- **camera_name** `string`: name of this camera
- **frame_rate** `float`: frame rate of this camera (optional)
## FrankLabOptogeneticEpochsTable
An extension of the `OptogeneticEpochsTable` from [ndx-optogenetics](https://github.com/rly/ndx-optogenetics) with the following columns:
**Columns:**
- **epoch_name** `string`: name of this epoch
- **epoch_number** `int`: 1-indexed number of this epoch
- **convenience_code** `string`: convenience code of this epoch
- **epoch_type** `string`: type of this epoch
- **theta_filter_on** `bool`: whether the theta filter was on (optional)
- **theta_filter_lockout_period_in_samples** `int`: lockout period in samples for theta filter (optional)
- **theta_filter_phase_in_deg** `float`: phase in degrees for theta filter (optional)
- **theta_filter_reference_ntrode** `int`: reference ntrode for theta filter (optional)
- **spatial_filter_on** `bool`: whether the spatial filter was on (optional)
- **spatial_filter_lockout_period_in_samples** `int`: lockout period in samples for spatial filter (optional)
- **spatial_filter_region_node_coordinates_in_pixels** `float`, shape `(n_region, n_nodes, 2,)`: If the spatial filter was used, the (x, y) coordinate of each boundary-defining node for each region. _Note:_ all regions must have the same number of nodes. For regions with fewer nodes, use (-1, -1) to fill the additional xy values.'
- **spatial_filter_cameras_index** `int`: index column for spatial filter cameras (optional)
- **spatial_filter_cameras** : references to `CameraDevice` objects used for spatial filter (optional)
- **spatial_filter_cameras_cm_per_pixel** `float`: cm per pixel for spatial filter cameras (optional)
- **ripple_filter_on** `bool`: whether the ripple filter was on (optional)
- **ripple_filter_lockout_period_in_samples** `int`: lockout period in samples for ripple filter (optional)
- **ripple_filter_threshold_sd** `float`: threshold in standard deviations for ripple filter (optional)
- **ripple_filter_num_above_threshold** `int`: number of tetrodes above threshold for ripple filter (optional)
- **speed_filter_on** `bool`: Whether the speed filter was on. Closed-loop stimulation based on whether
the animal is moving fast/slow enough. (optional)
- **speed_filter_threshold_in_cm_per_s** `float`: If the speed filter was used, the threshold for detecting a fast/slow animal (optional)
- **speed_filter_on_above_threshold** `bool`: If the speed filter was used, True if active when speed above threshold. (optional)
- **stimulus_signal** `TimeSeries`: Timeseries of the delivered stimulus. Can be continuous values or time of
digital on/off events.
---
This extension was created using [ndx-template](https://github.com/nwb-extensions/ndx-template).
Raw data
{
"_id": null,
"home_page": null,
"name": "ndx-franklab-novela",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "NWB, NeurodataWithoutBorders, ndx-extension, nwb-extension",
"author": null,
"author_email": "NovelaNeurotechnologies <devops@novelaneuro.com>, Loren Frank <loren.frank@ucsf.edu>, Eric Denovellis <eric.denovellis@ucsf.edu>, Ryan Ly <rly@lbl.gov>",
"download_url": "https://files.pythonhosted.org/packages/6c/47/f96c23fc9671be1e5422744b438b7616a19840a21a91545bb75b3166da43/ndx_franklab_novela-0.2.2.tar.gz",
"platform": null,
"description": "# ndx-franklab-novela Extension for NWB\n\n# About\n\nndx-franklab-novela is a python package containing NWB custom extensions for Loren Frank's Lab.\n\n# How to install\n\nAdd ndx-franklab-novela to your conda environment:\n\n```\npip install ndx-franklab-novela\n```\n\nOr install the latest version from the repository:\n\n```\npip install git+git://github.com/LorenFrankLab/ndx-franklab-novela\n```\n\nThe original published extension maintained by NovelaNeuro can be installed using:\n\n```\nconda install -c conda-forge -c novelakrk ndx-franklab-novela\n```\n\n# Dependencies\n\nThis extension uses the [ndx-optogenetics](https://github.com/rly/ndx-optogenetics) extension.\nInstalling ndx-franklab-novela will install the latest version of ndx-optogenetics from PyPI.\nLoading `ndx-franklab-novela` by importing `ndx_franklab_novela` will also load `ndx_optogenetics`.\n\n# Extensions\n\n## AssociatedFiles\n\nRepresentation of associated files in NWB.\n\n**Attributes:**\n\n- **description** `string`: description of associated file\n- **content** `string`: content of associated file\n- **task_epochs** `string`: id of epochs with task that is descripted by associated files\n\n## HeaderDevice\n\nRepresentation of HeaderDevice in NWB.\n\n**Attributes:**\n\n- **headstage_serial** `string`: headstage_serial from header global configuration\n- **headstage_smart_ref_on** `string`: headstage_smart_ref_on from header global configuration\n- **realtime_mode** `string`: realtime_mode from header global configuration\n- **headstage_auto_settle_on** `string`: headstage_auto_settle_on from header global configuration\n- **timestamp_at_creation** `string`: timestamp_at_creation from header global configuration\n- **controller_firmware_version** `string`: conntroller_firmware_version from header global configuration\n- **controller_serial** `string`: conntroller_serial from header global configuration\n- **save_displayed_chan_only** `string`: save_displayed_chan_only from header global configuration\n- **headstage_firmware_version** `string`: headstage_firmware_version from header global configuration\n- **qt_version** `string`: qt_version from header global configuration\n- **compile_date** `string`: compile_date from header global configuration\n- **compile_time** `string`: compile_time from header global configuration\n- **file_prefix** `string`: file_prefix from header global configuration\n- **headstage_gyro_sensor_on** `string`: headstage_gyro_sensor_on from header global configuration\n- **headstage_mag_sensor_on** `string`: headstage_mag_sensor_on from header global configuration\n- **trodes_version** `string`: trodes_version from header global configuration\n- **headstage_accel_sensor_on** `string`: headstage_accel_sensor_on from header global configuration\n- **commit_head** `string`: commit_head from header global configuration\n- **system_time_at_creation** `string`: system_time_at_creation from header global configuration\n- **file_path** `string`: file_path from header global configuration\n\n## ShanksElectrode\n\nRepresentation of electrodes of a shank in NWB.\n\n**Attributes:**\n\n- **name** `string`: name of the shank\n- **rel_x** `float`: the rel_x value of this electrode\n- **rel_y** `float`: the rel_y value of this electrode\n- **rel_z** `float`: the rel_z value of this electrode\n\n## Shank\n\nRepresentation of a shank in NWB.\n\n**Attributes:**\n\n- **name** `string`: name of the shank\n- **shanks_electrodes** `dict`: electrodes in the shank\n\n## Probe\n\nRepresentation of a probe in NWB.\n\n**Attributes:**\n\n- **id** `int`: unique id of the probe\n- **probe_type** `string`: type of probe\n- **units** `string`: units in device\n- **probe_description** `string`: description of probe\n- **contact_side_numbering** `bool`: Whether the electrodes were numbered in a scheme wherein the contacts were electrodes facing up toward the viewer (true) or if the numbering was based on the electrodes facing down (false). This is relevant when the goal is to determine where in the tissue each electrode contact is located. (optional)\n- **contact_size** `float`: value of contact size as float\n- **shanks** `dict`: shanks in the probe\n\n## DataAcqDevice\n\nRepresentation of data acquisition device in NWB.\n\n**Attributes:**\n\n- **system** `string`: system of device\n- **amplifier** `string`: amplifier (optional)\n- **adc_circuit** `string`: adc_circuit (optional)\n\n## CameraDevice\n\nRepresentation of a camera device in NWB.\n\n**Attributes:**\n\n- **meters_per_pixel** `float`: meters per pixel\n- **model** `string`: model of this camera device\n- **lens** `string`: info about lens in this camera\n- **camera_name** `string`: name of this camera\n- **frame_rate** `float`: frame rate of this camera (optional)\n\n## FrankLabOptogeneticEpochsTable\n\nAn extension of the `OptogeneticEpochsTable` from [ndx-optogenetics](https://github.com/rly/ndx-optogenetics) with the following columns:\n\n**Columns:**\n\n- **epoch_name** `string`: name of this epoch\n- **epoch_number** `int`: 1-indexed number of this epoch\n- **convenience_code** `string`: convenience code of this epoch\n- **epoch_type** `string`: type of this epoch\n- **theta_filter_on** `bool`: whether the theta filter was on (optional)\n- **theta_filter_lockout_period_in_samples** `int`: lockout period in samples for theta filter (optional)\n- **theta_filter_phase_in_deg** `float`: phase in degrees for theta filter (optional)\n- **theta_filter_reference_ntrode** `int`: reference ntrode for theta filter (optional)\n- **spatial_filter_on** `bool`: whether the spatial filter was on (optional)\n- **spatial_filter_lockout_period_in_samples** `int`: lockout period in samples for spatial filter (optional)\n- **spatial_filter_region_node_coordinates_in_pixels** `float`, shape `(n_region, n_nodes, 2,)`: If the spatial filter was used, the (x, y) coordinate of each boundary-defining node for each region. _Note:_ all regions must have the same number of nodes. For regions with fewer nodes, use (-1, -1) to fill the additional xy values.'\n- **spatial_filter_cameras_index** `int`: index column for spatial filter cameras (optional)\n- **spatial_filter_cameras** : references to `CameraDevice` objects used for spatial filter (optional)\n- **spatial_filter_cameras_cm_per_pixel** `float`: cm per pixel for spatial filter cameras (optional)\n- **ripple_filter_on** `bool`: whether the ripple filter was on (optional)\n- **ripple_filter_lockout_period_in_samples** `int`: lockout period in samples for ripple filter (optional)\n- **ripple_filter_threshold_sd** `float`: threshold in standard deviations for ripple filter (optional)\n- **ripple_filter_num_above_threshold** `int`: number of tetrodes above threshold for ripple filter (optional)\n- **speed_filter_on** `bool`: Whether the speed filter was on. Closed-loop stimulation based on whether\n the animal is moving fast/slow enough. (optional)\n- **speed_filter_threshold_in_cm_per_s** `float`: If the speed filter was used, the threshold for detecting a fast/slow animal (optional)\n- **speed_filter_on_above_threshold** `bool`: If the speed filter was used, True if active when speed above threshold. (optional)\n- **stimulus_signal** `TimeSeries`: Timeseries of the delivered stimulus. Can be continuous values or time of\n digital on/off events.\n\n---\nThis extension was created using [ndx-template](https://github.com/nwb-extensions/ndx-template).\n",
"bugtrack_url": null,
"license": null,
"summary": "NWB extension to store additional metadata and data types for Loren Frank's Lab",
"version": "0.2.2",
"project_urls": {
"Bug Tracker": "https://github.com/LorenFrankLab/ndx-franklab-novela/issues",
"Changelog": "https://github.com/LorenFrankLab/ndx-franklab-novela/blob/master/CHANGELOG.md",
"Homepage": "https://github.com/LorenFrankLab/ndx-franklab-novela"
},
"split_keywords": [
"nwb",
" neurodatawithoutborders",
" ndx-extension",
" nwb-extension"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "62df202236639712759f4ff03ddcc20c25cac4dcdbb1d163bbfe16e9ef4885e1",
"md5": "826bc38507a656d9b940fe90dc621701",
"sha256": "4986efd67cd30b3aaadc0768cb1e81d48e1bff34a03a5cff0af6e85d30f106eb"
},
"downloads": -1,
"filename": "ndx_franklab_novela-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "826bc38507a656d9b940fe90dc621701",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 9139,
"upload_time": "2025-08-05T02:50:50",
"upload_time_iso_8601": "2025-08-05T02:50:50.268498Z",
"url": "https://files.pythonhosted.org/packages/62/df/202236639712759f4ff03ddcc20c25cac4dcdbb1d163bbfe16e9ef4885e1/ndx_franklab_novela-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6c47f96c23fc9671be1e5422744b438b7616a19840a21a91545bb75b3166da43",
"md5": "3a506eb56c62e47ee4c28be68604ce16",
"sha256": "e287025c784a11da0c85e42fcfd1455a9b1a6b3865891c56c5b133292b1ca0bb"
},
"downloads": -1,
"filename": "ndx_franklab_novela-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "3a506eb56c62e47ee4c28be68604ce16",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 24325,
"upload_time": "2025-08-05T02:50:51",
"upload_time_iso_8601": "2025-08-05T02:50:51.331147Z",
"url": "https://files.pythonhosted.org/packages/6c/47/f96c23fc9671be1e5422744b438b7616a19840a21a91545bb75b3166da43/ndx_franklab_novela-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 02:50:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LorenFrankLab",
"github_project": "ndx-franklab-novela",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ndx-franklab-novela"
}