diff --git a/docs/best_practices/ecephys.rst b/docs/best_practices/ecephys.rst index fffe593af..e2a86fb6a 100644 --- a/docs/best_practices/ecephys.rst +++ b/docs/best_practices/ecephys.rst @@ -58,6 +58,12 @@ For relative position of an electrode on a probe, use ``rel_x``, ``rel_y``, and that are close enough to share a neuron. +Avoid Duplication of Metadata +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``ElectrodeTable`` should not contain redundant information that is present somewhere else within the :ref:`nwb-schema:sec-NWBFile` . Avoid adding columns to the `ElectrodeTable` that correspond to properties of the :ref:`nwb-schema:sec-ElectricalSeries` such as ``unit``, ``offsets`` or ``channel gains`` These properties should be stored in the corresponding attributes of the :ref:`nwb-schema:sec-ElectricalSeries` object. + +As a concrete example, the package objects from the `SpikeInterface `__ package contain two properties named ``gain_to_uv`` and ``offset_to_uv`` that are used to convert the raw data to microvolts. These properties should not be stored in the `ElectrodeTable` but rather in the ``ElectricalSeries`` object as ``channel_conversion`` and ``offset`` respectively. Units Table ----------- diff --git a/docs/best_practices/general.rst b/docs/best_practices/general.rst index 2005e22f9..1f68f6f3c 100644 --- a/docs/best_practices/general.rst +++ b/docs/best_practices/general.rst @@ -68,3 +68,9 @@ Empty Strings Required free-text fields for neurodata types should not use placeholders such as empty strings (`""`), ``"no description"``, or ``"PLACEHOLDER"``. For example, the :py:attr:`description` field should always richly describe that particular neurodata type and its interpretation within the experiment. Many attributes of neurodata types in NWB are optional details to include. It is not necessary, therefore, to use placeholders for these attributes. Instead, they should not be specified at all. + + +Avoid Duplication of Metadata +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Avoid duplication of metadata across different objects. If a piece of metadata is shared between multiple objects, consider creating a separate object to store that metadata and linking to it from the other objects. This will help to keep the metadata consistent and reduce the risk of errors when updating the metadata.