Package: ndx-odor-metadata
ndx-odor-metadataNWB extension to store odor stimulus metadata withDynamicTableformat. Entries that have a PubChem andstim_typesindicate odor/chemical will also be queried withpubchempyfor more information.This is in alpha development stagesWITHOUTany appropriate tests yet. Please use with discretion.RequirementThe requirements and additional development requirements can be seen inpyproject.tomlfile.Here are the minimum requirements:python >=3.8pynwb>=1.5.0,<3hdmf>=3.4.7,<4pubchempy>=1.0.4pyyaml>=5.0InstallationYou can install viapip:pipinstallndx-odor-metadataOrconda:condainstall-cfleischmannlabndx-odor-metadataOr directly from thegitrepository:pipinstallgit+https://gitlab.com/fleischmann-lab/ndx/ndx-odor-metadataUsageMain usagefromndx_odor_metadataimportOdorMetaDataodor_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 argumentsnamedtypedocdefault_valuequantity0stim_nametextStimulus name, e.g. "hexanal" or "sound"nannan1pubchem_idfloatPubChem ID,NaNindicates non-(standard)-odor stimulusnan?2raw_idtextRaw acquisition stimulus ID. Will be converted tostr.nannan3raw_id_dtypetextThe actual dtype ofraw_idvalue. Useful for (re)casting.N/A?4stim_idtextPreferred stimulus ID, which can be used to remap acquisition stimulus idraw_id. Will be converted tostr. If not explicitly given, will copy fromraw_idnan?5stim_id_dtypetextThe actual dtype ofstim_idvalue. Useful for (re)casting.N/A?6stim_typestextType(s) of stimulus, e.g. 'odor', 'sound', 'control', 'CS', 'US', ...nannan7stim_types_indexnanIndex forstim_typesnannan8stim_descriptiontextHuman-readable description, notes, comments of each stimulusN/A?9chemical_dilution_typetextType of dilution, e.g. 'volume/volume', 'vaporized'N/A?10chemical_concentrationfloatConcentration of chemicalnan?11chemical_concentration_unittextUnit of concentration, e.g. "%" or "M"N/A?12chemical_solventtextSolvent to dilute the chemicals in, e.g. 'mineral oil'N/A?13chemical_providertextProvider of the chemicals, e.g. 'Sigma'N/A?14nonchemical_detailstextInformation about non-chemical/odor stimulus, e.g. 'sound' frequenciesN/A?15is_validatedboolWhether the stimulus, if chemical/odor, is validated against PubChem (or other sources listed invalidation_info.If does not have a valid PubChem ID, this assumes to defaultFalsevalueFalse?16validation_detailstextAdditional information/details/notes about stimulus validation, e.g. source, software used & version, validation date, ...N/A?17pubchem_cidfloatPubChem CID,NaNindicates non-(standard)-odor stimulusnan?18chemical_IUPACtextOfficial chemical IUPAC nameN/A?19chemical_SMILEStextCanonical SMILESN/A?20chemical_synonymstextList of chemical synonyms?21chemical_synonyms_indexnanIndex forchemical_synonymsnan?22chemical_molecular_formulatextMolecular formula of chemical usedN/A?23chemical_molecular_weightfloatMolecular weight of chemical usednan?DemonstrationFor more detailed demonstration, please visit thedemofolder.TODOsCreate testUpdate documentation forsphinx(also update style)Publish oncondaPublish onpypiFetch pubchem data usingpubchempyUsepyproject.tomlinstead ofsetup.pyThis extension was created usingndx-template.