diff --git a/.codespellrc b/.codespellrc index ad57c4b81..a38689dfe 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,7 +1,8 @@ [codespell] # in principle .ipynb can be corrected -- a good number of typos there # nwb-schema -- excluding since submodule, should have its own fixes/checks -skip = .git,*.pdf,*.svg,venvs,env,*.ipynb,nwb-schema +skip = .git,*.pdf,*.svg,venvs,env,nwb-schema +ignore-regex = ^\s*"image/\S+": ".* # it is optin in a url # potatos - demanded to be left alone, autogenerated ignore-words-list = optin,potatos diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 7a1e8dc04..7aa79c9e7 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -16,4 +16,4 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Codespell - uses: codespell-project/actions-codespell@v1 + uses: codespell-project/actions-codespell@v2 diff --git a/docs/notebooks/convert-crcns-ret-1-meisterlab-compare-nwb-1.0.6.ipynb b/docs/notebooks/convert-crcns-ret-1-meisterlab-compare-nwb-1.0.6.ipynb index c348c4bd0..65dc34188 100644 --- a/docs/notebooks/convert-crcns-ret-1-meisterlab-compare-nwb-1.0.6.ipynb +++ b/docs/notebooks/convert-crcns-ret-1-meisterlab-compare-nwb-1.0.6.ipynb @@ -39,7 +39,7 @@ "source": [ "This notebook uses the convert script and API for NWB v.1.0.6 (not the current NWB 2.0 and PyNWB) to generate NWB v1.0.6 data files and compare with the current format. This notebook is mainly for comparison purposes. The corresponding notebook for converting the MeisterLab example data to NWB 2.x is available here: https://github.com/NeurodataWithoutBorders/pynwb/blob/dev/docs/notebooks/convert-crcns-ret-1-meisterlab.ipynb .\n", "\n", - "This example is based on https://github.com/NeurodataWithoutBorders/api-python/blob/master/examples/create_scripts/crcns_ret-1.py from H5Gate (i.e., the orignal write API for NWB v1.x). A tar file with the example data is available for download from: https://portal.nersc.gov/project/crcns/download/nwb-1/example_script_data/source_data_2.tar.gz Please download and uncompress the data file and update the paths in the *Settings* section if you want to run the notebook. " + "This example is based on https://github.com/NeurodataWithoutBorders/api-python/blob/master/examples/create_scripts/crcns_ret-1.py from H5Gate (i.e., the original write API for NWB v1.x). A tar file with the example data is available for download from: https://portal.nersc.gov/project/crcns/download/nwb-1/example_script_data/source_data_2.tar.gz Please download and uncompress the data file and update the paths in the *Settings* section if you want to run the notebook. " ] }, { @@ -71,7 +71,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 3 Exectute convert using the original H5Gate API" + "# 3 Execute convert using the original H5Gate API" ] }, { @@ -1259,7 +1259,7 @@ "source": [ "Compared to the convert using NWB v1.0.x shown above, the NWB 2 convert example makes the following main changes:\n", "\n", - "* NWB 2.x uses the extension mechanism to add custom data fields rather than adding unspecified custom data directly to the file, i.e., all objects (datasets, attributes, groups etc.) are governed by a formal specification. E.g., in the original script for NWB 1.0.x, pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. For NWB 2 we create an extensions MeisterImageSeries which extens ImageSeries and stores those values as attributes pixel_size, x, y, dx, dy. For NWB 2 we chosse attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", + "* NWB 2.x uses the extension mechanism to add custom data fields rather than adding unspecified custom data directly to the file, i.e., all objects (datasets, attributes, groups etc.) are governed by a formal specification. E.g., in the original script for NWB 1.0.x, pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. For NWB 2 we create an extensions MeisterImageSeries which extens ImageSeries and stores those values as attributes pixel_size, x, y, dx, dy. For NWB 2 we chose attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", "* Change si_unit attribute to unit for compliance with the spec of ImageSeries \n", "* Moved 'source' attribute from the Module to the Interface as source is not defined in the spec for modules but only for Interface\n", "* Added missing 'source' for SpikeUnit\n", @@ -1269,7 +1269,7 @@ "* NWBContainer is now a base type of all core neurodata_types and as such `help` and `source` attributes have been added to all core types\n", "* The original script reused iterator variables in nested loops. We have updated those occurrence to avoid consusion and avoid possible errors. \n", "* The following custom metadata fields---i.e., datasets that were originally added to the file without being part of the NWB specification and without creation of corresponding extensions---have not yet been integrated with the NWB files:\n", - " * /general custom metdata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", + " * /general custom metadata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", " * SpikeUnit custom datasets with additional copies of the per-stimulus spike times (i.e., /processing/Cells/UnitTimes/cell_*/stim_* in the original version). This will require an extension for SpikeUnit.\n", " * /subject, subject/genotype, subject/species : See Issue https://github.com/NeurodataWithoutBorders/pynwb/issues/45 support for subject metadata is upcoming in PyNWB \n", " * /specifications, /specifications/nwb_core.py : See Issue hssue https://github.com/NeurodataWithoutBorders/pynwb/issues/44 will be added by PyNWB automatically" diff --git a/docs/notebooks/convert-crcns-ret-1-meisterlab.ipynb b/docs/notebooks/convert-crcns-ret-1-meisterlab.ipynb index d66a0644e..be1883f96 100644 --- a/docs/notebooks/convert-crcns-ret-1-meisterlab.ipynb +++ b/docs/notebooks/convert-crcns-ret-1-meisterlab.ipynb @@ -109,7 +109,7 @@ "This example is based on https://github.com/NeurodataWithoutBorders/api-python/blob/master/examples/create_scripts/crcns_ret-1.py from H5Gate. \n", "\n", "Compared to the NWB files generated by the original example we here use the extension mechanism to add custom data fields rather than adding unspecified custom data directly to the file, i.e., all objects (datasets, attributes, groups etc.) are governed by a formal specification.\n", - "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chosse attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", + "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chose attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", "\n", "Compared to the NWB files generated by the original example the files generated here contain the following additional main changes:\n", "\n", @@ -123,7 +123,7 @@ "* NWBContainer is now a base type of all core neurodata_types and as such `help` and `source` attributes have been added to all core types\n", "* The original script reused iterator variables in nested loops. We have updated those occurrence to avoid consusion and avoid possible errors. \n", "* The following custom metadata fields---i.e., datasets that were originally added to the file without being part of the NWB specification and without creation of corresponding extensions---have not yet been integrated with the NWB files:\n", - " * /general custom metdata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", + " * /general custom metadata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", " * SpikeUnit custom datasets with additional copies of the per-stimulus spike times (i.e., /processing/Cells/UnitTimes/cell_*/stim_* in the original version). This will require an extension for SpikeUnit.\n", " * /subject, subject/genotype, subject/species : See Issue https://github.com/NeurodataWithoutBorders/pynwb/issues/45 support for subject metadata is upcoming in PyNWB \n", " * /specifications, /specifications/nwb_core.py : See Issue https://github.com/NeurodataWithoutBorders/pynwb/issues/44 will be added by PyNWB automatically\n", @@ -591,7 +591,7 @@ "# Build the namespace\n", "ns_builder = NWBNamespaceBuilder('Extension for use in my Lab', ns_name)\n", "\n", - "# Create a custom ImageSeries to add our custom attributes and add our extenions to the namespace\n", + "# Create a custom ImageSeries to add our custom attributes and add our extensions to the namespace\n", "mis_ext = NWBGroupSpec('A custom ImageSeries to add MeisterLab custom metadata',\n", " attributes=[NWBAttributeSpec('x' , 'int', 'meister x', required=False),\n", " NWBAttributeSpec('y' , 'int', 'meister y', required=False),\n", @@ -697,7 +697,7 @@ "metadata": {}, "source": [ "We can now inspect our container class using the usual mechanisms, e.g., help. For illustration purposes, let's call help on our class. Here we can see that:\n", - "* Our custom attributes have been added to the constructor with approbriate documention describing the type and purpose we indicated in the spec for our attributes\n", + "* Our custom attributes have been added to the constructor with approbriate documentation describing the type and purpose we indicated in the spec for our attributes\n", "* From the \"Method resolution order\" documentationw we can see that our MeisterImageSeries inherits from pynwb.image.ImageSeries so that interaction mechanism from the base class are also available in our class" ] }, @@ -746,7 +746,7 @@ " | bits_per_pixel (int): Number of bit per image pixel\n", " | dimension (Iterable): Number of pixels on x, y, (and z) axes.\n", " | resolution (float): The smallest meaningful difference (in specified unit) between values in data\n", - " | conversion (float): Scalar to multiply each element by to conver to volts\n", + " | conversion (float): Scalar to multiply each element by to convert to volts\n", " | timestamps (ndarray or list or tuple or Dataset or DataChunkIterator or DataIO or TimeSeries): Timestamps for samples stored in data\n", " | starting_time (float): The timestamp of the first sample\n", " | rate (float): Sampling rate in Hz\n", @@ -885,7 +885,7 @@ "def convert_single_file(file_stimulus_data, file_meta, spike_units, electrode_meta):\n", " import h5py\n", " #########################################\n", - " # Create the NWBFile containter\n", + " # Create the NWBFile container\n", " ##########################################\n", " nwbfile = NWBFile(session_description=file_meta['description'],\n", " identifier=file_meta['identifier'],\n", diff --git a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions-and-external-stimulus.ipynb b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions-and-external-stimulus.ipynb index 73090873a..685744050 100644 --- a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions-and-external-stimulus.ipynb +++ b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions-and-external-stimulus.ipynb @@ -100,7 +100,7 @@ "This example is based on https://github.com/NeurodataWithoutBorders/api-python/blob/master/examples/create_scripts/crcns_ret-1.py from H5Gate. \n", "\n", "Compared to the NWB files generated by the original example we here use the extension mechanism to add custom data fields rather than adding unspecified custom data directly to the file, i.e., all objects (datasets, attributes, groups etc.) are governed by a formal specification.\n", - "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chosse attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", + "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chose attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", "\n", "Compared to the NWB files generated by the original example the files generated here contain the following additional main changes:\n", "\n", @@ -113,12 +113,12 @@ "* NWBContainer is now a base type of all core neurodata_types and as such `help` and `source` attributes have been added to all core types\n", "* The original script reused iterator variables in nested loops. We have updated those occurrence to avoid consusion and avoid possible errors. \n", "* The following custom metadata fields---i.e., datasets that were originally added to the file without being part of the NWB specification and without creation of corresponding extensions---have not yet been integrated with the NWB files:\n", - " * /general custom metdata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", + " * /general custom metadata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", " * SpikeUnit custom datasets with additional copies of the per-stimulus spike times (i.e., /processing/Cells/UnitTimes/cell_*/stim_* in the original version). This will require an extension for SpikeUnit.\n", " * /subject, subject/genotype, subject/species : See Issue https://bitbucket.org/lblneuro/pynwb/issues/45 support for subject metadata is upcoming in PyNWB \n", " * /specifications, /specifications/nwb_core.py : See Issue https://bitbucket.org/lblneuro/pynwb/issues/44 will be added by PyNWB automatically\n", "\n", - "For readability and to ease comparison, we include in Sectoin 6 the original example scrip from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " + "For readability and to ease comparison, we include in Sectoin 6 the original example script from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " ] }, { @@ -570,7 +570,7 @@ "# Build the namespace\n", "ns_builder = NWBNamespaceBuilder('Extension for use in my Lab', ns_name)\n", "\n", - "# Create a custom ImageSeries to add our custom attributes and add our extenions to the namespace\n", + "# Create a custom ImageSeries to add our custom attributes and add our extensions to the namespace\n", "mis_ext = NWBGroupSpec('A custom ImageSeries to add MeisterLab custom metadata',\n", " attributes=[NWBAttributeSpec('x' , 'int', 'meister x', required=False),\n", " NWBAttributeSpec('y' , 'int', 'meister y', required=False),\n", @@ -605,7 +605,7 @@ "metadata": {}, "source": [ "We can now inspect our container class using the usual mechanisms, e.g., help. For illustration purposes, let's call help on our class. Here we can see that:\n", - "* Our custom attributes have been added to the constructor with approbriate documention describing the type and purpose we indicated in the spec for our attributes\n", + "* Our custom attributes have been added to the constructor with approbriate documentation describing the type and purpose we indicated in the spec for our attributes\n", "* From the \"Method resolution order\" documentationw we can see that our MeisterImageSeries inherits from pynwb.image.ImageSeries so that interaction mechanism from the base class are also available in our class" ] }, @@ -652,7 +652,7 @@ " | bits_per_pixel (int): Number of bit per image pixel\n", " | dimension (Iterable): Number of pixels on x, y, (and z) axes.\n", " | resolution (float): The smallest meaningful difference (in specified unit) between values in data\n", - " | conversion (float): Scalar to multiply each element by to conver to volts\n", + " | conversion (float): Scalar to multiply each element by to convert to volts\n", " | timestamps (list or ndarray or TimeSeries): Timestamps for samples stored in data\n", " | starting_time (float): The timestamp of the first sample\n", " | rate (float): Sampling rate in Hz\n", @@ -887,7 +887,7 @@ "def convert_single_file(file_stimulus_data, file_meta, spike_units, electrode_meta):\n", " import h5py\n", " #########################################\n", - " # Create the NWBFile containter\n", + " # Create the NWBFile container\n", " ##########################################\n", " nwbfile = NWBFile(file_name=file_meta['output_filename'],\n", " session_description=file_meta['description'],\n", diff --git a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions.ipynb b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions.ipynb index de032a1df..a32c1869e 100644 --- a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions.ipynb +++ b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-with-custom-extensions.ipynb @@ -100,7 +100,7 @@ "This example is based on https://github.com/NeurodataWithoutBorders/api-python/blob/master/examples/create_scripts/crcns_ret-1.py from H5Gate. \n", "\n", "Compared to the NWB files generated by the original example we here use the extension mechanism to add custom data fields rather than adding unspecified custom data directly to the file, i.e., all objects (datasets, attributes, groups etc.) are governed by a formal specification.\n", - "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chosse attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", + "* Previously pixle_size, meister_x, meister_y, meister_dx, meister_dy were stored as custom datasets in ImageSeries. Here we create an extensions MeisterImageSeries which extens ImageSeries and stores that values as attributes pixel_size, x, y, dx, dy. We here chose attributes instead of datasets simply because these are small, single int and float metadata values for which attributes are more approbirate.\n", "\n", "Compared to the NWB files generated by the original example the files generated here contain the following additional main changes:\n", "\n", @@ -110,16 +110,16 @@ "* Added missing tags and description for epochs\n", "* Added /general/devices/... to describe the device\n", "* Added neurodata_type and namespace attributes for format compliance\n", - "* Instead of storing stimulus data in external HDF5 files we here store all data in the same NWB file. Added stimulus data to ImageSeries diretly and added corresponding conversion, resolution, unit, etc. attributes to ensure format compliance\n", - "* /general/extracellular_ephys has been resturctured so that alldata about the probe is now in /general/extracellular_ephys/61-channel_probe/device\n", + "* Instead of storing stimulus data in external HDF5 files we here store all data in the same NWB file. Added stimulus data to ImageSeries directly and added corresponding conversion, resolution, unit, etc. attributes to ensure format compliance\n", + "* /general/extracellular_ephys has been restructured so that alldata about the probe is now in /general/extracellular_ephys/61-channel_probe/device\n", "* The original script reused iterator variables in nested loops. We have updated those occurrence to avoid consusion and avoid possible errors. \n", "* The following custom metadata fields---i.e., datasets that were originally added to the file without being part of the NWB specification and without creation of corresponding extensions---have not yet been integrated with the NWB files:\n", - " * /general custom metdata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", + " * /general custom metadata: /notes, /random_number_generation, /related_publications. This will require extension of NWBFile to extend the spec of /general. Improvements to make this easier have been proposed for discussion at the upcoming hackathon.\n", " * SpikeUnit custom datasets with additional copies of the per-stimulus spike times (i.e., /processing/Cells/UnitTimes/cell_*/stim_* in the original version). This will require an extension for SpikeUnit.\n", " * /subject, subject/genotype, subject/species : See Issue https://bitbucket.org/lblneuro/pynwb/issues/45 support for subject metadata is upcoming in PyNWB \n", " * /specifications, /specifications/nwb_core.py : See Issue https://bitbucket.org/lblneuro/pynwb/issues/44 will be added by PyNWB automatically\n", "\n", - "For readability and to ease comparison, we include in Sectoin 6 the original example scrip from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " + "For readability and to ease comparison, we include in Sectoin 6 the original example script from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " ] }, { @@ -555,7 +555,7 @@ "# Build the namespace\n", "ns_builder = NWBNamespaceBuilder('Extension for use in my Lab', ns_name)\n", "\n", - "# Create a custom ImageSeries to add our custom attributes and add our extenions to the namespace\n", + "# Create a custom ImageSeries to add our custom attributes and add our extensions to the namespace\n", "mis_ext = NWBGroupSpec('A custom ImageSeries to add MeisterLab custom metadata',\n", " attributes=[NWBAttributeSpec('x' , 'int', 'meister x', required=False),\n", " NWBAttributeSpec('y' , 'int', 'meister y', required=False),\n", @@ -590,7 +590,7 @@ "metadata": {}, "source": [ "We can now inspect our container class using the usual mechanisms, e.g., help. For illustration purposes, let's call help on our class. Here we can see that:\n", - "* Our custom attributes have been added to the constructor with approbriate documention describing the type and purpose we indicated in the spec for our attributes\n", + "* Our custom attributes have been added to the constructor with approbriate documentation describing the type and purpose we indicated in the spec for our attributes\n", "* From the \"Method resolution order\" documentationw we can see that our MeisterImageSeries inherits from pynwb.image.ImageSeries so that interaction mechanism from the base class are also available in our class" ] }, @@ -637,7 +637,7 @@ " | bits_per_pixel (int): Number of bit per image pixel\n", " | dimension (Iterable): Number of pixels on x, y, (and z) axes.\n", " | resolution (float): The smallest meaningful difference (in specified unit) between values in data\n", - " | conversion (float): Scalar to multiply each element by to conver to volts\n", + " | conversion (float): Scalar to multiply each element by to convert to volts\n", " | timestamps (list or ndarray or TimeSeries): Timestamps for samples stored in data\n", " | starting_time (float): The timestamp of the first sample\n", " | rate (float): Sampling rate in Hz\n", @@ -871,7 +871,7 @@ "source": [ "def convert_single_file(file_stimulus_data, file_meta, spike_units, electrode_meta):\n", " #########################################\n", - " # Create the NWBFile containter\n", + " # Create the NWBFile container\n", " ##########################################\n", " nwbfile = NWBFile(file_name=file_meta['output_filename'],\n", " session_description=file_meta['description'],\n", diff --git a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-without-custom-extensions.ipynb b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-without-custom-extensions.ipynb index fc7147686..c599ba37d 100644 --- a/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-without-custom-extensions.ipynb +++ b/docs/notebooks/convert-crcns-ret-1-old/convert-crcns-ret-1-meisterlab-without-custom-extensions.ipynb @@ -105,15 +105,15 @@ "* Added missing tags and description for epochs\n", "* Added /general/devices/... to describe the device\n", "* Added neurodata_type and namespace attributes for format compliance\n", - "* Instead of storing stimulus data in external HDF5 files we here store all data in the same NWB file. Added stimulus data to ImageSeries diretly and added corresponding conversion, resolution, unit, etc. attributes to ensure format compliance\n", - "* /general/extracellular_ephys has been resturctured so that alldata about the probe is now in /general/extracellular_ephys/61-channel_probe/device\n", + "* Instead of storing stimulus data in external HDF5 files we here store all data in the same NWB file. Added stimulus data to ImageSeries directly and added corresponding conversion, resolution, unit, etc. attributes to ensure format compliance\n", + "* /general/extracellular_ephys has been restructured so that alldata about the probe is now in /general/extracellular_ephys/61-channel_probe/device\n", "* The original script reused iterator variables in nested loops. We have updated those occurrence to avoid consusion and avoid possible errors. \n", "* This notebook, currently does not store custom metadata fields (i.e., datasets that were added to the file without being part of the NWB specification and without creation of corresponding extensions). The main omitted objects are:\n", " * ImageSeries: pixle_size, meister_x, meister_y, meister_dx, meister_dy (the data of those variables is available in this notebook as part of the stimulus_data dict / curr_stimulus)\n", - " * /general custom metdata: /subject, subject/genotype, subject/species, /specifications, /specifications/nwb_core.py, /notes, /random_number_generation, /related_publications, \n", + " * /general custom metadata: /subject, subject/genotype, subject/species, /specifications, /specifications/nwb_core.py, /notes, /random_number_generation, /related_publications, \n", " * SpikeUnit custom datasets with additional copies of the per-stimulus spike times: /processing/Cells/UnitTimes/cell_*/stim_*\n", "\n", - "For readability and to ease comparison, we include in Sectoin 6 the original example scrip from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " + "For readability and to ease comparison, we include in Sectoin 6 the original example script from H5Gate. Note, the files generated by the original script are omitting a few required datasets/attributes and as such do not actually validate. " ] }, { @@ -552,7 +552,7 @@ "source": [ "def convert_single_file(file_stimulus_data, file_meta, spike_units, electrode_meta):\n", " #########################################\n", - " # Create the NWBFile containter\n", + " # Create the NWBFile container\n", " ##########################################\n", " nwbfile = NWBFile(file_name=file_meta['output_filename'],\n", " session_description=file_meta['description'],\n", diff --git a/docs/notebooks/read-Allen-Brain-Oservatory.ipynb b/docs/notebooks/read-Allen-Brain-Oservatory.ipynb index 7f5825a66..84c5288c7 100644 --- a/docs/notebooks/read-Allen-Brain-Oservatory.ipynb +++ b/docs/notebooks/read-Allen-Brain-Oservatory.ipynb @@ -185,7 +185,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Each of these three \"ophys experiments\" corresponds to a single 2-photon microscopy recording session. In each container, the particular visual stimulus that was presented is indicated by the `session_type`. Each `session_type` contains several diffferent stimulus sets; for more information, take a look at the [whitepaper](http://help.brain-map.org/display/observatory/Data+-+Visual+Coding).\n", + "Each of these three \"ophys experiments\" corresponds to a single 2-photon microscopy recording session. In each container, the particular visual stimulus that was presented is indicated by the `session_type`. Each `session_type` contains several different stimulus sets; for more information, take a look at the [whitepaper](http://help.brain-map.org/display/observatory/Data+-+Visual+Coding).\n", "\n", "Lets use pynwb to load the data from `three_session_B`. If this is the first time through this notebook this might take a minute to download these files, and will require approximately 300Mb of total disk space for the three nwb files: " ] @@ -215,7 +215,7 @@ "metadata": {}, "source": [ "# Reading legacy nwb files with pynwb:\n", - "Now that we have downloaded the nwb files using the `BrainObservatoryCache`, we can use pynwb to load the data and take a peek inside. Because this file was created from [version 1.0 of the NWB Schema](https://github.com/NeurodataWithoutBorders/specification/blob/master/version_1.0.6/NWB_file_format_specification_1.0.6.pdf>), we have to use a object called a type map to help the [NWB 2.0 schema](http://nwb-schema.readthedocs.io/en/latest/format.html) interpret the data in the \"legacy\" file. Alot has changed in the transition from NWB 1.0 to 2.0, including a more modular software architecture, a simplified (and extended) specification language, a mechanism for easy creation of custom schema extensions ([Click here for more information](http://www.nwb.org/2017/09/06/what-is-new-in-nwbn-v2-0/))." + "Now that we have downloaded the nwb files using the `BrainObservatoryCache`, we can use pynwb to load the data and take a peek inside. Because this file was created from [version 1.0 of the NWB Schema](https://github.com/NeurodataWithoutBorders/specification/blob/master/version_1.0.6/NWB_file_format_specification_1.0.6.pdf>), we have to use a object called a type map to help the [NWB 2.0 schema](http://nwb-schema.readthedocs.io/en/latest/format.html) interpret the data in the \"legacy\" file. A lot has changed in the transition from NWB 1.0 to 2.0, including a more modular software architecture, a simplified (and extended) specification language, a mechanism for easy creation of custom schema extensions ([Click here for more information](http://www.nwb.org/2017/09/06/what-is-new-in-nwbn-v2-0/))." ] }, { @@ -423,7 +423,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Lets use the allensdk to plot one of these image templates from one of the natural movies that was shown during this session. The template is has an original shape of 304x608 pixels, however this source image is stretched to fit on a 1200x1920 monitor, and warped so that scene appears flat from the perspective of the viewer, whos eye is close to the screen. For more information about the Brain Observatory Stimulus, check out the [stimulus whitepaper](http://help.brain-map.org/download/attachments/10616846/VisualCoding_VisualStimuli.pdf)" + "Lets use the allensdk to plot one of these image templates from one of the natural movies that was shown during this session. The template is has an original shape of 304x608 pixels, however this source image is stretched to fit on a 1200x1920 monitor, and warped so that scene appears flat from the perspective of the viewer, whose eye is close to the screen. For more information about the Brain Observatory Stimulus, check out the [stimulus whitepaper](http://help.brain-map.org/download/attachments/10616846/VisualCoding_VisualStimuli.pdf)" ] }, {