NWB Extension for documenting odor stimulus metadata
Project description
ndx-odor-metadata
NWB extension to store odor stimulus metadata with DynamicTable
format. Entries that have a PubChem and stim_types
indicate odor/chemical will also be queried with pubchempy
for more information.
This is in alpha development stages WITHOUT any appropriate tests yet. Please use with discretion.
Requirement
The requirements and additional development requirements can be seen in pyproject.toml
file.
Here are the minimum requirements:
python >=3.8
pynwb>=1.5.0,<3
hdmf>=3.4.7,<4
pubchempy>=1.0.4
pyyaml>=5.0
Installation
You can install via pip
:
pip install ndx-odor-metadata
Or conda
:
conda install -c fleischmannlab ndx-odor-metadata
Or directly from the git
repository:
pip install git+https://gitlab.com/fleischmann-lab/ndx/ndx-odor-metadata
Usage
Main usage
from ndx_odor_metadata import OdorMetaData
odor_table = OdorMetaData(name='odor_table', description='an odor table')
odor_table.add_stimulus(
pubchem_id = 7662.0,
stim_name = "3-Phenylpropyl isobutyrate",
raw_id = 3,
stim_id = 1,
stim_types = "odor",
chemical_dilution_type='vaporized',
chemical_concentration = 0.01,
chemical_concentration_unit='%',
chemical_solvent = "Mineral Oil",
chemical_provider = "Sigma",
stim_description = "Legit odor stimulus #1",
)
nwbfile.add_acquisition(odor_table)
Details on arguments
name | dtype | doc | default_value | quantity | |
---|---|---|---|---|---|
0 | stim_name | text | Stimulus name, e.g. "hexanal" or "sound" | nan | nan |
1 | pubchem_id | float | PubChem ID, NaN indicates non-(standard)-odor stimulus |
nan | ? |
2 | raw_id | text | Raw acquisition stimulus ID. Will be converted to str . |
nan | nan |
3 | raw_id_dtype | text | The actual dtype of raw_id value. Useful for (re)casting. |
N/A | ? |
4 | stim_id | text | Preferred stimulus ID, which can be used to remap acquisition stimulus id raw_id . Will be converted to str . If not explicitly given, will copy from raw_id |
nan | ? |
5 | stim_id_dtype | text | The actual dtype of stim_id value. Useful for (re)casting. |
N/A | ? |
6 | stim_types | text | Type(s) of stimulus, e.g. 'odor', 'sound', 'control', 'CS', 'US', ... | nan | nan |
7 | stim_types_index | nan | Index for stim_types |
nan | nan |
8 | stim_description | text | Human-readable description, notes, comments of each stimulus | N/A | ? |
9 | chemical_dilution_type | text | Type of dilution, e.g. 'volume/volume', 'vaporized' | N/A | ? |
10 | chemical_concentration | float | Concentration of chemical | nan | ? |
11 | chemical_concentration_unit | text | Unit of concentration, e.g. "%" or "M" | N/A | ? |
12 | chemical_solvent | text | Solvent to dilute the chemicals in, e.g. 'mineral oil' | N/A | ? |
13 | chemical_provider | text | Provider of the chemicals, e.g. 'Sigma' | N/A | ? |
14 | nonchemical_details | text | Information about non-chemical/odor stimulus, e.g. 'sound' frequencies | N/A | ? |
15 | is_validated | bool | Whether the stimulus, if chemical/odor, is validated against PubChem (or other sources listed in validation_info .If does not have a valid PubChem ID, this assumes to default False value |
False | ? |
16 | validation_details | text | Additional information/details/notes about stimulus validation, e.g. source, software used & version, validation date, ... | N/A | ? |
17 | pubchem_cid | float | PubChem CID, NaN indicates non-(standard)-odor stimulus |
nan | ? |
18 | chemical_IUPAC | text | Official chemical IUPAC name | N/A | ? |
19 | chemical_SMILES | text | Canonical SMILES | N/A | ? |
20 | chemical_synonyms | text | List of chemical synonyms | ? | |
21 | chemical_synonyms_index | nan | Index for chemical_synonyms |
nan | ? |
22 | chemical_molecular_formula | text | Molecular formula of chemical used | N/A | ? |
23 | chemical_molecular_weight | float | Molecular weight of chemical used | nan | ? |
Demonstration
For more detailed demonstration, please visit the demo
folder.
TODOs
- Create test
- Update documentation for
sphinx
(also update style) - Publish on
conda
- Publish on
pypi
- Fetch pubchem data using
pubchempy
- Use
pyproject.toml
instead ofsetup.py
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
Hashes for ndx_odor_metadata-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80ee1d4403af9d11ece87f9bb05ee07c1b02252d86e943145b65ffd55ac34368 |
|
MD5 | dd86531f05f95e4e994561271fc87da0 |
|
BLAKE2b-256 | 5fb913cac8e6823f356f8b0e3daac48d941766ca7dd1156a1053dbae41f3cf2f |