Skip to main content

NWB Extension for documenting odor stimulus metadata

Project description

ndx-odor-metadata

pipeline status license

python version release pypi package conda package

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 of setup.py

This extension was created using ndx-template.

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

ndx-odor-metadata-0.1.1.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ndx_odor_metadata-0.1.1-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ndx-odor-metadata-0.1.1.tar.gz.

File metadata

  • Download URL: ndx-odor-metadata-0.1.1.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ndx-odor-metadata-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7de42b883f49e1c964d17437087b85ce95af5bb8c948ac7b13858570de8a3048
MD5 e867950643de2cbff33550de35cb28bc
BLAKE2b-256 8d0af5c8d707028accc01baf2b6e80546b250189d9462c9b6a0810763c6270e4

See more details on using hashes here.

File details

Details for the file ndx_odor_metadata-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ndx_odor_metadata-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 80ee1d4403af9d11ece87f9bb05ee07c1b02252d86e943145b65ffd55ac34368
MD5 dd86531f05f95e4e994561271fc87da0
BLAKE2b-256 5fb913cac8e6823f356f8b0e3daac48d941766ca7dd1156a1053dbae41f3cf2f

See more details on using hashes here.

Supported by

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