def create_startingtime_series(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("starting time test") settings["mode"] = "w" settings["description"] = "time series starting time test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # stime = neurodata.create_timeseries("TimeSeries", name, target) # stime.set_data([0, 1, 2, 3], unit="n/a", conversion=1, resolution=1) # stime.set_value("num_samples", 4) # stime.set_time_by_rate(0.125, 2) # stime = f.make_group("<TimeSeries>", name, path=target) stime.set_dataset("data", [0, 1, 2, 3], attrs={"unit": "n/a", "conversion":1, "resolution": 1}) stime.set_dataset("num_samples", 4) # stime.set_time_by_rate(0.125, 2) stime.set_dataset("starting_time", 0.125, attrs={ "rate":2, "unit":"Seconds"}) # stime.finalize() # neurodata.close() f.close()
def create_general_subject(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("general top test") settings["mode"] = "w" settings["description"] = "test top-level elements in /general" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # neurodata.set_metadata(SUBJECT, "SUBJECT") # neurodata.set_metadata(SUBJECT_ID, "SUBJECT_ID") # neurodata.set_metadata(SPECIES, "SPECIES") # neurodata.set_metadata(GENOTYPE, "GENOTYPE") # neurodata.set_metadata(SEX, "SEX") # neurodata.set_metadata(AGE, "AGE") # neurodata.set_metadata(WEIGHT, "WEIGHT") # g = f.make_group("subject") g.set_dataset("description", "SUBJECT") g.set_dataset("subject_id", "SUBJECT_ID") g.set_dataset("species", "SPECIES") g.set_dataset("genotype", "GENOTYPE") g.set_dataset("sex", "SEX") g.set_dataset("age", "AGE") g.set_dataset("weight", "WEIGHT") # neurodata.close() f.close()
def create_general_optogen(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier( "metadata optogenetic test") settings["mode"] = "w" settings["description"] = "test elements in /general/optogentics" settings["verbosity"] = "none" f = nwb_file.open(**settings) # neurodata.set_metadata(OPTOGEN_CUSTOM("optogen_custom"), "OPTOGEN_CUSTOM") # # # neurodata.set_metadata(OPTOGEN_SITE_DESCRIPTION("p1"), "DESCRIPTION") # neurodata.set_metadata(OPTOGEN_SITE_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(OPTOGEN_SITE_LAMBDA("p1"), "LAMBDA") # neurodata.set_metadata(OPTOGEN_SITE_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(OPTOGEN_SITE_CUSTOM("p1", "optogen_site_custom"), "OPTOGEN_SITE_CUSTOM") # g = f.make_group("optogenetics") g.set_custom_dataset("optogen_custom", "OPTOGEN_CUSTOM") p1 = g.make_group("<site_X>", "p1") p1.set_dataset("description", "DESCRIPTION") p1.set_dataset("device", "DEVICE") p1.set_dataset("excitation_lambda", "EXCITATION_LAMBDA") p1.set_dataset("location", "LOCATION") p1.set_custom_dataset("optogen_site_custom", "OPTOGEN_SITE_CUSTOM") # neurodata.close() f.close()
def create_iface_series(fname, newfile): settings = {} settings["file_name"] = fname settings["verbosity"] = "none" if newfile: settings["identifier"] = utils.create_identifier("interface timeseries example") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test interface timeseries file" else: settings["mode"] = "r+" f = nwb_file.open(**settings) # # mod = neurodata.create_module("test module") # iface = mod.create_interface("BehavioralEvents") # ts = neurodata.create_timeseries("TimeSeries", "Ones") # ts.set_data(np.ones(10), unit="Event", conversion=1.0, resolution=float('nan')) # ts.set_value("num_samples", 10) # ts.set_time(np.arange(10)) # iface.add_timeseries(ts) # iface.finalize() # mod.finalize() mod = f.make_group("<Module>", "test module") iface = mod.make_group("BehavioralEvents") ts = iface.make_group("<TimeSeries>", "Ones") ts.set_dataset("data", np.ones(10), attrs={'unit':"Event", "conversion":1.0, "resolution": float('nan')}) ts.set_dataset("num_samples", 10) ts.set_dataset("timestamps",np.arange(10)) # # neurodata.close() f.close()
def create_nodata_series(fname, name, target): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("nodata example") settings["identifier"] = utils.create_identifier("nodata example") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "time series no data test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # nodata = neurodata.create_timeseries("TimeSeries", name, target) # nodata.ignore_data() # nodata.set_time([0]) nodata = f.make_group("<TimeSeries>", name, path=target) nodata.set_dataset("timestamps", [0]) # # nodata.finalize() # neurodata.close() f.close()
def create_general_optogen(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("metadata optogenetic test") settings["mode"] = "w" settings["description"] = "test elements in /general/optogentics" settings["verbosity"] = "none" f = nwb_file.open(**settings) # neurodata.set_metadata(OPTOGEN_CUSTOM("optogen_custom"), "OPTOGEN_CUSTOM") # # # neurodata.set_metadata(OPTOGEN_SITE_DESCRIPTION("p1"), "DESCRIPTION") # neurodata.set_metadata(OPTOGEN_SITE_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(OPTOGEN_SITE_LAMBDA("p1"), "LAMBDA") # neurodata.set_metadata(OPTOGEN_SITE_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(OPTOGEN_SITE_CUSTOM("p1", "optogen_site_custom"), "OPTOGEN_SITE_CUSTOM") # g = f.make_group("optogenetics") g.set_custom_dataset("optogen_custom", "OPTOGEN_CUSTOM") p1 = g.make_group("<site_X>", "p1") p1.set_dataset("description","DESCRIPTION") p1.set_dataset("device", "DEVICE") p1.set_dataset("excitation_lambda","EXCITATION_LAMBDA") p1.set_dataset("location", "LOCATION") p1.set_custom_dataset("optogen_site_custom", "OPTOGEN_SITE_CUSTOM") # neurodata.close() f.close()
def create_notime_series(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("notime example") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test no time" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # notime = neurodata.create_timeseries("TimeSeries", name, target) # notime.ignore_time() # notime.set_data([0], unit="n/a", conversion=1, resolution=1) notime = f.make_group("<TimeSeries>", name, path=target) # following used for testing more missing_fields # notime = f.make_group("<VoltageClampSeries>", name, path=target) notime.set_dataset("data", [0], attrs={ "unit": "n/a", "conversion": 1, "resolution": 1 }) # # notime.finalize() # neurodata.close() f.close()
def create_notime_series(fname, name, target): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("notime example") settings["identifier"] = utils.create_identifier("notime example") # settings["overwrite"] = True settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test no time" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # notime = neurodata.create_timeseries("TimeSeries", name, target) # notime.ignore_time() # notime.set_data([0], unit="n/a", conversion=1, resolution=1) notime = f.make_group("<TimeSeries>", name, path=target) # following used for testing more missing_fields # notime = f.make_group("<VoltageClampSeries>", name, path=target) notime.set_dataset("data", [0], attrs={"unit":"n/a", "conversion":1, "resolution":1}) # # notime.finalize() # neurodata.close() f.close()
def create_general_subject(fname): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("general top test") settings["identifier"] = utils.create_identifier("general top test") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "test top-level elements in /general" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # neurodata.set_metadata(SUBJECT, "SUBJECT") # neurodata.set_metadata(SUBJECT_ID, "SUBJECT_ID") # neurodata.set_metadata(SPECIES, "SPECIES") # neurodata.set_metadata(GENOTYPE, "GENOTYPE") # neurodata.set_metadata(SEX, "SEX") # neurodata.set_metadata(AGE, "AGE") # neurodata.set_metadata(WEIGHT, "WEIGHT") # g = f.make_group("subject") g.set_dataset("description", "SUBJECT") g.set_dataset("subject_id", "SUBJECT_ID") g.set_dataset("species", "SPECIES") g.set_dataset("genotype", "GENOTYPE") g.set_dataset("sex", "SEX") g.set_dataset("age", "AGE") g.set_dataset("weight", "WEIGHT") # neurodata.close() f.close()
def create_isi_iface(fname, name): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("reference image test") settings["identifier"] = utils.create_identifier("reference image test") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "reference image test" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # module = neurodata.create_module(name) # iface = module.create_interface("ImagingRetinotopy") # iface.add_axis_1_phase_map([[1.0, 1.1, 1.2],[2.0,2.1,2.2]], "altitude", .1, .1) # iface.add_axis_2_phase_map([[3.0, 3.1, 3.2],[4.0,4.1,4.2]], "azimuth", .1, .1, unit="degrees") # iface.add_axis_1_power_map([[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], .1, .1) # iface.add_sign_map([[-.1, .2, -.3],[.4,-.5,.6]]) # iface.add_vasculature_image([[1,0,129],[2,144,0]], height=.22, width=.35) # iface.add_focal_depth_image([[1,0,129],[2,144,0]], bpp=8) # iface.finalize() # module.finalize() module = f.make_group("<Module>", name) iface = module.make_group("ImagingRetinotopy") # iface.add_axis_1_phase_map([[1.0, 1.1, 1.2],[2.0,2.1,2.2]], "altitude", .1, .1) iface.set_dataset("axis_1_phase_map", [[1.0, 1.1, 1.2],[2.0,2.1,2.2]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1], "unit":"degrees"}) # iface.add_axis_2_phase_map([[3.0, 3.1, 3.2],[4.0,4.1,4.2]], "azimuth", .1, .1, unit="degrees") iface.set_dataset("axis_2_phase_map", [[3.0, 3.1, 3.2],[4.0,4.1,4.2]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1], "unit":"degrees"}) iface.set_dataset("axis_descriptions", ["altitude", "azimuth"]) # iface.add_axis_1_power_map([[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], .1, .1) iface.set_dataset("axis_1_power_map", [[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1]}) # iface.add_sign_map([[-.1, .2, -.3],[.4,-.5,.6]]) iface.set_dataset("sign_map", [[-.1, .2, -.3],[.4,-.5,.6]], attrs={ "dimension": [2,3]}) # iface.add_vasculature_image([[1,0,129],[2,144,0]], height=.22, width=.35) iface.set_dataset("vasculature_image", [[1,0,129],[2,144,0]], attrs={ "field_of_view":[0.22, 0.35], "bits_per_pixel":8, "dimension":[2,3], "format": "raw"}) # iface.add_focal_depth_image([[1,0,129],[2,144,0]], bpp=8) iface.set_dataset("focal_depth_image", [[1,0,129],[2,144,0]], attrs={ "bits_per_pixel":8, "dimension":[2,3], "format": "raw"}) # iface.finalize() # module.finalize() # neurodata.close() f.close()
def create_empty_file(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("UnitTimes example") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test file with spike times in processing module" settings["verbosity"] = "none" f = nwb_file.open(**settings) return f
def create_general_intra(fname): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("general optophysiology test") settings["identifier"] = utils.create_identifier("general optophysiology test") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "test elements in /general/optophysiology" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # #neurodata.set_metadata(IMAGE_CUSTOM("image_custom"), "IMAGE_CUSTOM") g = f.make_group("optophysiology") g.set_custom_dataset("image_custom", "IMAGE_CUSTOM") # # neurodata.set_metadata(IMAGE_SITE_DESCRIPTION("p1"), "DESCRIPTION") p1 = g.make_group("<imaging_plane_X>", "p1") p1.set_dataset("description", "DESCRIPTION") # MANUAL CHECK # try storing string - -type system should balk #neurodata.set_metadata(IMAGE_SITE_MANIFOLD("p1"), "MANIFOLD") # neurodata.set_metadata(IMAGE_SITE_MANIFOLD("p1"), [[[1,2,3],[2,3,4]],[[3,4,5],[4,5,6]]]) # neurodata.set_metadata(IMAGE_SITE_INDICATOR("p1"), "INDICATOR") # neurodata.set_metadata(IMAGE_SITE_EXCITATION_LAMBDA("p1"), "EXCITATION_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_LAMBDA("p1", "red"), "CHANNEL_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_DESCRIPTION("p1", "red"), "DESCRIPTION") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_LAMBDA("p1", "green"), "CHANNEL_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_DESCRIPTION("p1", "green"), "DESCRIPTION") # neurodata.set_metadata(IMAGE_SITE_IMAGING_RATE("p1"), "IMAGING_RATE") # neurodata.set_metadata(IMAGE_SITE_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(IMAGE_SITE_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(IMAGE_SITE_CUSTOM("p1", "image_site_custom"), "IMAGE_SITE_CUSTOM") # p1.set_dataset("manifold", [[[1,2,3],[2,3,4]],[[3,4,5],[4,5,6]]]) p1.set_dataset("indicator", "INDICATOR") p1.set_dataset("excitation_lambda","EXCITATION_LAMBDA") p1_red = p1.make_group("<channel_X>", "red") p1_red.set_dataset("emission_lambda","CHANNEL_LAMBDA") p1_red.set_dataset("description","DESCRIPTION") p1_green = p1.make_group("<channel_X>", "green") p1_green.set_dataset("emission_lambda","CHANNEL_LAMBDA") p1_green.set_dataset("description","DESCRIPTION") p1.set_dataset("imaging_rate", "IMAGING_RATE") p1.set_dataset("location", "LOCATION") p1.set_dataset("device", "DEVICE") p1.set_custom_dataset("image_site_custom", "IMAGE_SITE_CUSTOM") # neurodata.close() f.close()
def create_general_top(fname): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("general top test") settings["identifier"] = utils.create_identifier("general top test") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "test top-level elements in /general" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # neurodata.set_metadata(DATA_COLLECTION, "DATA_COLLECTION") # neurodata.set_metadata(EXPERIMENT_DESCRIPTION, "EXPERIMENT_DESCRIPTION") # neurodata.set_metadata(EXPERIMENTER, "EXPERIMENTER") # neurodata.set_metadata(INSTITUTION, "INSTITUTION") # neurodata.set_metadata(LAB, "LAB") # neurodata.set_metadata(NOTES, "NOTES") # neurodata.set_metadata(PROTOCOL, "PROTOCOL") # neurodata.set_metadata(PHARMACOLOGY, "PHARMACOLOGY") # neurodata.set_metadata(RELATED_PUBLICATIONS, "RELATED_PUBLICATIONS") # neurodata.set_metadata(SESSION_ID, "SESSION_ID") # neurodata.set_metadata(SLICES, "SLICES") # neurodata.set_metadata(STIMULUS, "STIMULUS") # neurodata.set_metadata(SURGERY, "SURGERY") # neurodata.set_metadata(VIRUS, "VIRUS") # # # neurodata.set_metadata_from_file("source_script", __file__) # f.set_dataset("data_collection","DATA_COLLECTION") f.set_dataset("experiment_description","EXPERIMENT_DESCRIPTION") f.set_dataset("experimenter","EXPERIMENTER") f.set_dataset("institution","INSTITUTION") f.set_dataset("lab","LAB") f.set_dataset("notes","NOTES") f.set_dataset("protocol","PROTOCOL") f.set_dataset("pharmacology","PHARMACOLOGY") f.set_dataset("related_publications", "RELATED_PUBLICATIONS") f.set_dataset("session_id","SESSION_ID") f.set_dataset("slices","SLICES") f.set_dataset("stimulus","STIMULUS") f.set_dataset("surgery","SURGERY") f.set_dataset("virus", "VIRUS") # f.neurodata.set_metadata_from_file("source_script", __file__) f.set_dataset("source_script", utils.load_file(__file__)) # neurodata.close() f.close()
def create_linked_series(fname, root): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("link test") settings["mode"] = "w" settings["description"] = "time series link test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # first = neurodata.create_timeseries("TimeSeries", root+"1", "template") # first.ignore_time() # first.set_value("num_samples", 1) # first.set_data([1], unit="parsec", conversion=1, resolution=1e-12) # first.finalize() # first = f.make_group("<TimeSeries>", root+"1", path="/stimulus/templates") # first.ignore_time() # first.set_value("num_samples", 1) first.set_dataset("num_samples", 1) d1 = first.set_dataset("data", [1], attrs={"unit":"parsec", "conversion":1, "resolution":1e-12}) # first.finalize() # second = neurodata.create_timeseries("TimeSeries", root+"2", "stimulus") # second.set_time([2]) # second.set_value("num_samples", 1) # second.set_data_as_link(first) # second.finalize() # second = f.make_group("<TimeSeries>", root+"2", path="/stimulus/presentation") t2 = second.set_dataset("timestamps", [2]) second.set_dataset("num_samples", 1) second.set_dataset("data", d1) # third = neurodata.create_timeseries("TimeSeries", root+"3", "acquisition") # third.set_time_as_link(second) # third.set_value("num_samples", 1) # third.set_data([3], unit="parsec", conversion=1, resolution=1e-9) # third.finalize() third = f.make_group("<TimeSeries>", root+"3", path="/acquisition/timeseries") third.set_dataset("timestamps", t2) third.set_dataset("num_samples", 1) third.set_dataset("data", [3], attrs={"unit":"parsec", "conversion":1, "resolution":1e-9}) # # neurodata.close() f.close()
def create_isi_iface(fname, name): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("reference image test") settings["mode"] = "w" settings["description"] = "reference image test" settings["verbosity"] = "none" f = nwb_file.open(**settings) # module = neurodata.create_module(name) # iface = module.create_interface("ImagingRetinotopy") # iface.add_axis_1_phase_map([[1.0, 1.1, 1.2],[2.0,2.1,2.2]], "altitude", .1, .1) # iface.add_axis_2_phase_map([[3.0, 3.1, 3.2],[4.0,4.1,4.2]], "azimuth", .1, .1, unit="degrees") # iface.add_axis_1_power_map([[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], .1, .1) # iface.add_sign_map([[-.1, .2, -.3],[.4,-.5,.6]]) # iface.add_vasculature_image([[1,0,129],[2,144,0]], height=.22, width=.35) # iface.add_focal_depth_image([[1,0,129],[2,144,0]], bpp=8) # iface.finalize() # module.finalize() module = f.make_group("<Module>", name) iface = module.make_group("ImagingRetinotopy") # iface.add_axis_1_phase_map([[1.0, 1.1, 1.2],[2.0,2.1,2.2]], "altitude", .1, .1) iface.set_dataset("axis_1_phase_map", [[1.0, 1.1, 1.2],[2.0,2.1,2.2]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1], "unit":"degrees"}) # iface.add_axis_2_phase_map([[3.0, 3.1, 3.2],[4.0,4.1,4.2]], "azimuth", .1, .1, unit="degrees") iface.set_dataset("axis_2_phase_map", [[3.0, 3.1, 3.2],[4.0,4.1,4.2]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1], "unit":"degrees"}) iface.set_dataset("axis_descriptions", ["altitude", "azimuth"]) # iface.add_axis_1_power_map([[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], .1, .1) iface.set_dataset("axis_1_power_map", [[0.1, 0.2, 0.3],[0.4, 0.5, 0.6]], attrs={ "dimension": [2,3], "field_of_view": [0.1, 0.1]}) # iface.add_sign_map([[-.1, .2, -.3],[.4,-.5,.6]]) iface.set_dataset("sign_map", [[-.1, .2, -.3],[.4,-.5,.6]], attrs={ "dimension": [2,3]}) # iface.add_vasculature_image([[1,0,129],[2,144,0]], height=.22, width=.35) iface.set_dataset("vasculature_image", [[1,0,129],[2,144,0]], attrs={ "field_of_view":[0.22, 0.35], "bits_per_pixel":8, "dimension":[2,3], "format": "raw"}) # iface.add_focal_depth_image([[1,0,129],[2,144,0]], bpp=8) iface.set_dataset("focal_depth_image", [[1,0,129],[2,144,0]], attrs={ "bits_per_pixel":8, "dimension":[2,3], "format": "raw"}) # iface.finalize() # module.finalize() # neurodata.close() f.close()
def create_annotation_series(fname, name, target, newfile): settings = {} settings["file_name"] = fname if newfile: # settings["identifier"] = nwb.create_identifier("append example") settings["identifier"] = utils.create_identifier("append example") # settings["overwrite"] = True settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test append file" else: # settings["modify"] = True settings["mode"] = "r+" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # annot = neurodata.create_timeseries("AnnotationSeries", name, target) annot = f.make_group("<AnnotationSeries>", name, path="/" + target) # annot.set_description("This is an AnnotationSeries '%s' with sample data" % name) # annot.set_comment("The comment and description fields can store arbitrary human-readable data") # annot.set_source("Observation of Dr. J Doe") annot.set_attr("description", "This is an AnnotationSeries '%s' with sample data" % name) annot.set_attr("comments", "The comment and description fields can store arbitrary human-readable data") annot.set_attr("source", "Observation of Dr. J Doe") # # annot.add_annotation("Rat in bed, beginning sleep 1", 15.0) # annot.add_annotation("Rat placed in enclosure, start run 1", 933.0) # annot.add_annotation("Rat taken out of enclosure, end run 1", 1456.0) # annot.add_annotation("Rat in bed, start sleep 2", 1461.0) # annot.add_annotation("Rat placed in enclosure, start run 2", 2401.0) # annot.add_annotation("Rat taken out of enclosure, end run 2", 3210.0) # annot.add_annotation("Rat in bed, start sleep 3", 3218.0) # annot.add_annotation("End sleep 3", 4193.0) # andata = [] andata.append(("Rat in bed, beginning sleep 1", 15.0)) andata.append(("Rat placed in enclosure, start run 1", 933.0)) andata.append(("Rat taken out of enclosure, end run 1", 1456.0)) andata.append(("Rat in bed, start sleep 2", 1461.0)) andata.append(("Rat placed in enclosure, start run 2", 2401.0)) andata.append(("Rat taken out of enclosure, end run 2", 3210.0)) andata.append(("Rat in bed, start sleep 3", 3218.0)) andata.append(("End sleep 3", 4193.0)) annotations = [x[0] for x in andata] times = [x[1] for x in andata] annot.set_dataset("data",annotations) annot.set_dataset("timestamps", times) # annot.finalize() # neurodata.close() f.close()
def create_general_intra(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("general optophysiology test") settings["mode"] = "w" settings["description"] = "test elements in /general/optophysiology" settings["verbosity"] = "none" f = nwb_file.open(**settings) # #neurodata.set_metadata(IMAGE_CUSTOM("image_custom"), "IMAGE_CUSTOM") g = f.make_group("optophysiology") g.set_custom_dataset("image_custom", "IMAGE_CUSTOM") # # neurodata.set_metadata(IMAGE_SITE_DESCRIPTION("p1"), "DESCRIPTION") p1 = g.make_group("<imaging_plane_X>", "p1") p1.set_dataset("description", "DESCRIPTION") # MANUAL CHECK # try storing string - -type system should balk #neurodata.set_metadata(IMAGE_SITE_MANIFOLD("p1"), "MANIFOLD") # neurodata.set_metadata(IMAGE_SITE_MANIFOLD("p1"), [[[1,2,3],[2,3,4]],[[3,4,5],[4,5,6]]]) # neurodata.set_metadata(IMAGE_SITE_INDICATOR("p1"), "INDICATOR") # neurodata.set_metadata(IMAGE_SITE_EXCITATION_LAMBDA("p1"), "EXCITATION_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_LAMBDA("p1", "red"), "CHANNEL_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_DESCRIPTION("p1", "red"), "DESCRIPTION") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_LAMBDA("p1", "green"), "CHANNEL_LAMBDA") # neurodata.set_metadata(IMAGE_SITE_CHANNEL_DESCRIPTION("p1", "green"), "DESCRIPTION") # neurodata.set_metadata(IMAGE_SITE_IMAGING_RATE("p1"), "IMAGING_RATE") # neurodata.set_metadata(IMAGE_SITE_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(IMAGE_SITE_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(IMAGE_SITE_CUSTOM("p1", "image_site_custom"), "IMAGE_SITE_CUSTOM") # p1.set_dataset("manifold", [[[1,2,3],[2,3,4]],[[3,4,5],[4,5,6]]]) p1.set_dataset("indicator", "INDICATOR") p1.set_dataset("excitation_lambda","EXCITATION_LAMBDA") p1_red = p1.make_group("<channel_X>", "red") p1_red.set_dataset("emission_lambda","CHANNEL_LAMBDA") p1_red.set_dataset("description","DESCRIPTION") p1_green = p1.make_group("<channel_X>", "green") p1_green.set_dataset("emission_lambda","CHANNEL_LAMBDA") p1_green.set_dataset("description","DESCRIPTION") p1.set_dataset("imaging_rate", "IMAGING_RATE") p1.set_dataset("location", "LOCATION") p1.set_dataset("device", "DEVICE") p1.set_custom_dataset("image_site_custom", "IMAGE_SITE_CUSTOM") # neurodata.close() f.close()
def assemble_nwb_from_partial_files(project_dir, options): # Initialize NWB object vargs = {} vargs["file_name"] = project_dir + ".nwb" if not options.output_name == "<project_dir>.nwb": vargs["file_name"] = options.output_name vargs["identifier"] = nwb_utils.create_identifier(project_dir) vargs["mode"] = "w" try: first_infut_file = os.path.join(project_dir, "top_datasets.h5") top_h5 = h5py.File(first_infut_file, "r") vargs["start_time"] = np.array( top_h5["session_start_time"]).tolist()[0] vargs["description"] = np.array( top_h5["session_description"]).tolist()[0] top_h5.close() except: vargs["start_time"] = "session_start_time" vargs["description"] = "session_description" if os.path.exists(vargs["file_name"]): os.remove(vargs["file_name"]) nwb_object = nwb_file.open(**vargs) # nwb_object.create_group('/acquisition/images') for file in os.listdir(project_dir): if file == "top_datasets.py": pass path_str = file[0:-3] if options.verbose: print "\nInput file=", file, " path_str=", path_str, "\n" file_path = os.path.join(project_dir, file) h5_object = h5py.File(file_path, "r") # Create a pointer to the current location in H5 file groups = path_str.split(".") last_group = groups[-1] if last_group == "top_datasets": groups.pop(-1) if options.verbose: print "path_str=", path_str, " groups=", groups # Sinchronize paths between the input H5 and output NWB files curr_h5_path = "/" nwb_object = update_nwb_object(nwb_object, nwb_object, "/", h5_object, options) nwb_object.close()
def create_general_extra(fname): settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("general extracellular test") settings["identifier"] = utils.create_identifier("general extracellular test") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "test elements in /general/extracellular_ephys" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # neurodata.set_metadata(EXTRA_ELECTRODE_MAP, [[1,1,1], [1,2,3]]) # neurodata.set_metadata(EXTRA_ELECTRODE_GROUP, ["p1", "p2"]) # neurodata.set_metadata(EXTRA_IMPEDANCE, [1.0e6, 2.0e6]) # neurodata.set_metadata(EXTRA_FILTERING, "EXTRA_FILTERING") # neurodata.set_metadata(EXTRA_CUSTOM("EXTRA_CUSTOM"), "EXTRA_CUSTOM") g = f.make_group("extracellular_ephys") g.set_dataset("electrode_map", [[1,1,1], [1,2,3]]) g.set_dataset("electrode_group", ["p1", "p2"]) g.set_dataset("impedance", [1.0e6, 2.0e6]) g.set_dataset("filtering", "EXTRA_FILTERING") g.set_custom_dataset("EXTRA_CUSTOM", "EXTRA_CUSTOM") # neurodata.set_metadata(EXTRA_SHANK_DESCRIPTION("p1"), "DESCRIPTION") # neurodata.set_metadata(EXTRA_SHANK_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(EXTRA_SHANK_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(EXTRA_SHANK_CUSTOM("p1", "extra_shank_custom"), "EXTRA_SHANK_CUSTOM") p1 = g.make_group("<electrode_group_X>", "p1") p1.set_dataset("description", "DESCRIPTION") p1.set_dataset("location", "LOCATION") p1.set_dataset("device", "DEVICE") p1.set_custom_dataset("extra_shank_custom", "EXTRA_SHANK_CUSTOM") # # neurodata.set_metadata(EXTRA_SHANK_DESCRIPTION("p2"), "DESCRIPTION") # neurodata.set_metadata(EXTRA_SHANK_LOCATION("p2"), "LOCATION") # neurodata.set_metadata(EXTRA_SHANK_DEVICE("p2"), "DEVICE") # neurodata.set_metadata(EXTRA_SHANK_CUSTOM("p2", "extra_shank_custom"), "EXTRA_SHANK_CUSTOM") # p2 = g.make_group("<electrode_group_X>", "p2") p2.set_dataset("description", "DESCRIPTION") p2.set_dataset("location", "LOCATION") p2.set_dataset("device", "DEVICE") p2.set_custom_dataset("extra_shank_custom", "EXTRA_SHANK_CUSTOM") # neurodata.close() f.close()
def create_annotation_series(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("annotation example") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test file with AnnotationSeries" settings["verbosity"] = "none" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # annot = neurodata.create_timeseries("AnnotationSeries", name, target) annot = f.make_group("<AnnotationSeries>", name, path="/" + target) # annot.set_description("This is an AnnotationSeries with sample data") annot.set_attr('description', "This is an AnnotationSeries with sample data") # annot.set_comment("The comment and description fields can store arbitrary human-readable data") annot.set_attr( "comments", "The comment and desscription fields can store arbitrary human-readable data" ) # annot.set_source("Observation of Dr. J Doe") annot.set_attr("source", "Observation of Dr. J Doe") # # annot.add_annotation("Rat in bed, beginning sleep 1", 15.0) # annot.add_annotation("Rat placed in enclosure, start run 1", 933.0) # annot.add_annotation("Rat taken out of enclosure, end run 1", 1456.0) # annot.add_annotation("Rat in bed, start sleep 2", 1461.0) # annot.add_annotation("Rat placed in enclosure, start run 2", 2401.0) # annot.add_annotation("Rat taken out of enclosure, end run 2", 3210.0) # annot.add_annotation("Rat in bed, start sleep 3", 3218.0) # annot.add_annotation("End sleep 3", 4193.0) # store pretend data # all time is stored as seconds andata = [] andata.append(("Rat in bed, beginning sleep 1", 15.0)) andata.append(("Rat placed in enclosure, start run 1", 933.0)) andata.append(("Rat taken out of enclosure, end run 1", 1456.0)) andata.append(("Rat in bed, start sleep 2", 1461.0)) andata.append(("Rat placed in enclosure, start run 2", 2401.0)) andata.append(("Rat taken out of enclosure, end run 2", 3210.0)) andata.append(("Rat in bed, start sleep 3", 3218.0)) andata.append(("End sleep 3", 4193.0)) annotations = [x[0] for x in andata] times = [x[1] for x in andata] annot.set_dataset("data", annotations) annot.set_dataset("timestamps", times) # #annot.finalize() f.close()
def create_general_extra(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier( "general extracellular test") settings["mode"] = "w" settings["description"] = "test elements in /general/extracellular_ephys" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # neurodata.set_metadata(EXTRA_ELECTRODE_MAP, [[1,1,1], [1,2,3]]) # neurodata.set_metadata(EXTRA_ELECTRODE_GROUP, ["p1", "p2"]) # neurodata.set_metadata(EXTRA_IMPEDANCE, [1.0e6, 2.0e6]) # neurodata.set_metadata(EXTRA_FILTERING, "EXTRA_FILTERING") # neurodata.set_metadata(EXTRA_CUSTOM("EXTRA_CUSTOM"), "EXTRA_CUSTOM") g = f.make_group("extracellular_ephys") g.set_dataset("electrode_map", [[1, 1, 1], [1, 2, 3]]) g.set_dataset("electrode_group", ["p1", "p2"]) g.set_dataset("impedance", [1.0e6, 2.0e6]) g.set_dataset("filtering", "EXTRA_FILTERING") g.set_custom_dataset("EXTRA_CUSTOM", "EXTRA_CUSTOM") # neurodata.set_metadata(EXTRA_SHANK_DESCRIPTION("p1"), "DESCRIPTION") # neurodata.set_metadata(EXTRA_SHANK_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(EXTRA_SHANK_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(EXTRA_SHANK_CUSTOM("p1", "extra_shank_custom"), "EXTRA_SHANK_CUSTOM") p1 = g.make_group("<electrode_group_X>", "p1") p1.set_dataset("description", "DESCRIPTION") p1.set_dataset("location", "LOCATION") p1.set_dataset("device", "DEVICE") p1.set_custom_dataset("extra_shank_custom", "EXTRA_SHANK_CUSTOM") # # neurodata.set_metadata(EXTRA_SHANK_DESCRIPTION("p2"), "DESCRIPTION") # neurodata.set_metadata(EXTRA_SHANK_LOCATION("p2"), "LOCATION") # neurodata.set_metadata(EXTRA_SHANK_DEVICE("p2"), "DEVICE") # neurodata.set_metadata(EXTRA_SHANK_CUSTOM("p2", "extra_shank_custom"), "EXTRA_SHANK_CUSTOM") # p2 = g.make_group("<electrode_group_X>", "p2") p2.set_dataset("description", "DESCRIPTION") p2.set_dataset("location", "LOCATION") p2.set_dataset("device", "DEVICE") p2.set_custom_dataset("extra_shank_custom", "EXTRA_SHANK_CUSTOM") # neurodata.close() f.close()
def create_refimage(fname, name): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("reference image test") settings["mode"] = "w" settings["description"] = "reference image test" settings["verbosity"] = "none" f = nwb_file.open(**settings) # neurodata.create_reference_image([1,2,3,4,5], name, "raw", "test") f.set_dataset("<image_X>", [1,2,3,4,5], dtype="uint8", name=name, attrs={ "description": "test", "format":"raw"}) # neurodata.close() f.close()
def create_general_top(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("general top test") settings["mode"] = "w" settings["description"] = "test top-level elements in /general" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # neurodata.set_metadata(DATA_COLLECTION, "DATA_COLLECTION") # neurodata.set_metadata(EXPERIMENT_DESCRIPTION, "EXPERIMENT_DESCRIPTION") # neurodata.set_metadata(EXPERIMENTER, "EXPERIMENTER") # neurodata.set_metadata(INSTITUTION, "INSTITUTION") # neurodata.set_metadata(LAB, "LAB") # neurodata.set_metadata(NOTES, "NOTES") # neurodata.set_metadata(PROTOCOL, "PROTOCOL") # neurodata.set_metadata(PHARMACOLOGY, "PHARMACOLOGY") # neurodata.set_metadata(RELATED_PUBLICATIONS, "RELATED_PUBLICATIONS") # neurodata.set_metadata(SESSION_ID, "SESSION_ID") # neurodata.set_metadata(SLICES, "SLICES") # neurodata.set_metadata(STIMULUS, "STIMULUS") # neurodata.set_metadata(SURGERY, "SURGERY") # neurodata.set_metadata(VIRUS, "VIRUS") # # # neurodata.set_metadata_from_file("source_script", __file__) # f.set_dataset("data_collection", "DATA_COLLECTION") f.set_dataset("experiment_description", "EXPERIMENT_DESCRIPTION") f.set_dataset("experimenter", "EXPERIMENTER") f.set_dataset("institution", "INSTITUTION") f.set_dataset("lab", "LAB") f.set_dataset("notes", "NOTES") f.set_dataset("protocol", "PROTOCOL") f.set_dataset("pharmacology", "PHARMACOLOGY") f.set_dataset("related_publications", "RELATED_PUBLICATIONS") f.set_dataset("session_id", "SESSION_ID") f.set_dataset("slices", "SLICES") f.set_dataset("stimulus", "STIMULUS") f.set_dataset("surgery", "SURGERY") f.set_dataset("virus", "VIRUS") # f.neurodata.set_metadata_from_file("source_script", __file__) f.set_dataset("source_script", utils.load_file(__file__)) # neurodata.close() f.close()
def create_softlink_source(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("softlink source") settings["mode"] = "w" settings["description"] = "time series no data test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) # source = neurodata.create_timeseries("TimeSeries", name, target) source = f.make_group("<TimeSeries>", name, path=target) # source.set_data([234], unit="parsec", conversion=1, resolution=1e-3) source.set_dataset("data", [234], attrs={"unit":"parsec", "conversion":1, "resolution":1e-3}) # source.set_time([123]) source.set_dataset("timestamps", [123]) # source.finalize() # neurodata.close() f.close()
def create_nodata_series(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("nodata example") settings["mode"] = "w" settings["description"] = "time series no data test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # nodata = neurodata.create_timeseries("TimeSeries", name, target) # nodata.ignore_data() # nodata.set_time([0]) nodata = f.make_group("<TimeSeries>", name, path=target) nodata.set_dataset("timestamps", [0]) # # nodata.finalize() # neurodata.close() f.close()
def create_iface_series(fname, newfile): settings = {} settings["file_name"] = fname settings["verbosity"] = "none" if newfile: settings["identifier"] = utils.create_identifier( "interface timeseries example") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = "Test interface timeseries file" else: settings["mode"] = "r+" f = nwb_file.open(**settings) # # mod = neurodata.create_module("test module") # iface = mod.create_interface("BehavioralEvents") # ts = neurodata.create_timeseries("TimeSeries", "Ones") # ts.set_data(np.ones(10), unit="Event", conversion=1.0, resolution=float('nan')) # ts.set_value("num_samples", 10) # ts.set_time(np.arange(10)) # iface.add_timeseries(ts) # iface.finalize() # mod.finalize() mod = f.make_group("<Module>", "test module") iface = mod.make_group("BehavioralEvents") ts = iface.make_group("<TimeSeries>", "Ones") ts.set_dataset("data", np.ones(10), attrs={ 'unit': "Event", "conversion": 1.0, "resolution": float('nan') }) ts.set_dataset("num_samples", 10) ts.set_dataset("timestamps", np.arange(10)) # # neurodata.close() f.close()
def create_softlink_reader(fname, name, src_fname, src_name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("softlink reader") settings["mode"] = "w" settings["description"] = "softlink test" settings["verbosity"] = "none" f = nwb_file.open(**settings) # source = neurodata.create_timeseries("TimeSeries", name, target) # source.set_data_as_remote_link(src_fname, "acquisition/timeseries/"+src_name+"/data") # source.set_time([345]) # source.finalize() # neurodata.close() source = f.make_group("<TimeSeries>", name, path=target) # source.set_data_as_remote_link(src_fname, "acquisition/timeseries/"+src_name+"/data") extlink = "extlink:%s,%s" % (src_fname, "acquisition/timeseries/"+src_name+"/data") source.set_dataset("data", extlink) source.set_dataset("timestamps", [345]) # source.finalize() # neurodata.close() f.close()
def create_softlink_source(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("softlink source") settings["mode"] = "w" settings["description"] = "time series no data test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) # source = neurodata.create_timeseries("TimeSeries", name, target) source = f.make_group("<TimeSeries>", name, path=target) # source.set_data([234], unit="parsec", conversion=1, resolution=1e-3) source.set_dataset("data", [234], attrs={ "unit": "parsec", "conversion": 1, "resolution": 1e-3 }) # source.set_time([123]) source.set_dataset("timestamps", [123]) # source.finalize() # neurodata.close() f.close()
def create_startingtime_series(fname, name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("starting time test") settings["mode"] = "w" settings["description"] = "time series starting time test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # stime = neurodata.create_timeseries("TimeSeries", name, target) # stime.set_data([0, 1, 2, 3], unit="n/a", conversion=1, resolution=1) # stime.set_value("num_samples", 4) # stime.set_time_by_rate(0.125, 2) # stime = f.make_group("<TimeSeries>", name, path=target) stime.set_dataset("data", [0, 1, 2, 3], attrs={ "unit": "n/a", "conversion": 1, "resolution": 1 }) stime.set_dataset("num_samples", 4) # stime.set_time_by_rate(0.125, 2) stime.set_dataset("starting_time", 0.125, attrs={ "rate": 2, "unit": "Seconds" }) # stime.finalize() # neurodata.close() f.close()
def create_softlink_reader(fname, name, src_fname, src_name, target): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("softlink reader") settings["mode"] = "w" settings["description"] = "softlink test" settings["verbosity"] = "none" f = nwb_file.open(**settings) # source = neurodata.create_timeseries("TimeSeries", name, target) # source.set_data_as_remote_link(src_fname, "acquisition/timeseries/"+src_name+"/data") # source.set_time([345]) # source.finalize() # neurodata.close() source = f.make_group("<TimeSeries>", name, path=target) # source.set_data_as_remote_link(src_fname, "acquisition/timeseries/"+src_name+"/data") extlink = "extlink:%s,%s" % (src_fname, "acquisition/timeseries/" + src_name + "/data") source.set_dataset("data", extlink) source.set_dataset("timestamps", [345]) # source.finalize() # neurodata.close() f.close()
Group /general contains general metadata, i.e. metadata that applies to the entire session. This example uses the extension defined in extensions/e-general.py to add new metadata to define then add new metadata to section /general """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("add metadata to general") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings[ "description"] = "Test file demonstrating use of an extension for general" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-general.py"] f = nwb_file.open(**settings) ######################################################################## # Specifier experimenter (this dataset is part of the core NWB format) eds = f.set_dataset('experimenter', "Joseline Doe") # specify attribute to experimenter, this defined in extension file. # it is not part of the core NWB format
########################################################################### ########################################################################### ########################################################################### # ep.ts_self_check() # sys.exit(0) # prepare files orig_h5 = h5py.File(INFILE, "r") meta_h5 = h5py.File(META, "r") ifile_name = INFILE.split("/")[-1] session_id = ifile_name[15:-3] bfile_name = ifile_name[15:-3] + ".nwb" vargs = {} vargs["start_time"] = find_exp_time(meta_h5) vargs["identifier"] = ut.create_identifier(session_id) vargs["mode"] = "w" vargs[ "description" ] = "Extracellular ephys recording of mouse doing discrimination task (lick left/right), with optogenetic stimulation plus pole and auditory stimulus" vargs["file_name"] = OUTPUT_DIR + bfile_name nuo = nwb_file.open(**vargs) nuo.set_dataset("session_id", session_id) print "Reading meta data" # general an_gene_copy = parse_h5_obj(meta_h5["animalGeneCopy"])[0][0] an_gene_bg = parse_h5_obj(meta_h5["animalGeneticBackground"])[0] an_gene_mod = parse_h5_obj(meta_h5["animalGeneModification"])[0] an_gene = ( "Animal gene modification: "
def create_linked_series(fname, root): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("link test") settings["mode"] = "w" settings["description"] = "time series link test" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # # first = neurodata.create_timeseries("TimeSeries", root+"1", "template") # first.ignore_time() # first.set_value("num_samples", 1) # first.set_data([1], unit="parsec", conversion=1, resolution=1e-12) # first.finalize() # first = f.make_group("<TimeSeries>", root + "1", path="/stimulus/templates") # first.ignore_time() # first.set_value("num_samples", 1) first.set_dataset("num_samples", 1) d1 = first.set_dataset("data", [1], attrs={ "unit": "parsec", "conversion": 1, "resolution": 1e-12 }) # first.finalize() # second = neurodata.create_timeseries("TimeSeries", root+"2", "stimulus") # second.set_time([2]) # second.set_value("num_samples", 1) # second.set_data_as_link(first) # second.finalize() # second = f.make_group("<TimeSeries>", root + "2", path="/stimulus/presentation") t2 = second.set_dataset("timestamps", [2]) second.set_dataset("num_samples", 1) second.set_dataset("data", d1) # third = neurodata.create_timeseries("TimeSeries", root+"3", "acquisition") # third.set_time_as_link(second) # third.set_value("num_samples", 1) # third.set_data([3], unit="parsec", conversion=1, resolution=1e-9) # third.finalize() third = f.make_group("<TimeSeries>", root + "3", path="/acquisition/timeseries") third.set_dataset("timestamps", t2) third.set_dataset("num_samples", 1) third.set_dataset("data", [3], attrs={ "unit": "parsec", "conversion": 1, "resolution": 1e-9 }) # # neurodata.close() f.close()
import test_utils as ut # create two epochs, add different subset of tags to each # verify main epoch folder has tag attribute that contains # exactly the unique tags of each epoch and that each # epoch contains the assigned tags if __file__.startswith("./"): fname = "s" + __file__[3:-3] + ".nwb" else: fname = "s" + __file__[1:-3] + ".nwb" # borg = ut.create_new_file(fname, "Epoch tags") f = nwb_file.open(fname, mode="w", identifier=utils.create_identifier("Epoch tags"), description="softlink test", verbosity="none") tags = ["tag-a", "tag-b", "tag-c"] # epoch1 = borg.create_epoch("epoch-1", 0, 3); epoch1 = f.make_group("<epoch_X>", "epoch-1") epoch1.set_dataset("start_time", 0) epoch1.set_dataset("stop_time", 3) # for i in range(len(tags)-1): # epoch1.add_tag(tags[i+1]) epoch1.set_dataset("tags", tags[1:])
""" OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file # several settings are specified when doing so. these can be supplied within # the NWB constructor or defined in a dict, as in in this example settings = {} settings["file_name"] = OUTPUT_DIR + file_name # each file should have a descriptive globally unique identifier # that specifies the lab and this experiment session # the function nwb_utils.create_identifier() is recommended to use as it takes # the string and appends the present date and time settings["identifier"] = ut.create_identifier("motion correction example") # indicate that it's OK to overwrite exting file settings["mode"] = "w" # specify the start time of the experiment. all times in the NWB file # are relative to experiment start time # if the start time is not specified the present time will be used settings["start_time"] = "Sat Jul 04 2015 3:14:16" # provide one or two sentences that describe the experiment and what # data is in the file settings[ "description"] = "Test file demonstrating use of the MotionCorrection interface" # create the NWB file object. this manages the file
The timestamps field stores the beginning and end of intervals. The data field stores whether the interval just started (>0 value) or ended (<0 value). Different interval types can be represented in the same series by using multiple key values (eg, 1 for feature A, 2 for feature B, 3 for feature C, etc). The field data stores an 8-bit integer. This is largely an alias of a standard TimeSeries but that is identifiable as representing time intervals in a machine-readable way. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = ut.create_identifier("interval example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings["description"] = "Test file demonstrating use of the IntervalSeries" f = nwb_file.open(**settings) ######################################################################## # Make some fake interval series data # store in codes and times event_codes = [ 7, # 300 hz tone turned on -7, # 300 hz tone turned off 3, # blue light turned on 4, # 200 hz tone turned on 6, # red light turned on
OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file # several settings are specified when doing so. these can be supplied within # the NWB constructor or defined in a dict, as in in this example settings = {} settings["file_name"] = OUTPUT_DIR + file_name # each file should have a descriptive globally unique identifier # that specifies the lab and this experiment session # the function nwb.create_identifier() is recommended to use as it takes # the string and appends the present date and time #- settings["identifier"] = nwb.create_identifier("extracellular spikes example") settings["identifier"] = ut.create_identifier("extracellular spikes example") # indicate that it's OK to overwrite exting file settings["mode"] = "w" # specify the start time of the experiment. all times in the NWB file # are relative to experiment start time # if the start time is not specified the present time will be used settings["start_time"] = "Sat Jul 04 2015 3:14:16" # provide one or two sentences that describe the experiment and what # data is in the file settings[ "description"] = "Test file demonstrating a simple extracellular ephys recording" # create the NWB file object. this manages the file
This is the same as example: interval.py, except that it uses and extension (defined in extensions/e-interval.py) to add a two new datasets: - "codes" - "code_descriptions" to the IntervalSeries. The codes data set lists the numeric codes used. The "code_descriptions" data set, provides the description of each code. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("extended interval example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings[ "description"] = "Test file demonstrating use of an extended IntervalSeries" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-interval.py"] f = nwb_file.open(**settings) ######################################################################## # Make some fake interval series data # store in codes and times event_codes = [ 7, # 300 hz tone turned on at -7, # 300 hz tone turned off
Group /general contains general metadata, i.e. metadata that applies to the entire session. This example uses the extension defined in extensions/e-general.py to add new metadata to define then add new metadata to section /general """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("add metadata to general") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings["description"] = "Test file demonstrating use of an extension for general" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-general.py"] f = nwb_file.open(**settings) ######################################################################## # Specifier experimenter (this dataset is part of the core NWB format) eds = f.set_dataset('experimenter', "Joseline Doe") # specify attribute to experimenter, this defined in extension file. # it is not part of the core NWB format
"/stimulus/presentation/", which means that the metadata is added to the <CurrentClampStimulusSeries>/ and /<VoltageClampStimulusSeries>/ located at /stimulus/presentation/, but not to those located elsewhere, such as: /stimulus/templates/. This example is based on metadata stored in the Allen Institute Cell Types database NWB files. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("MyNewInterface example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings["description"] = "Test file demonstrating storing metadata for intracellular data using an extension" # specify the extensions, two are used. settings['extensions'] = ["extensions/e-intracellular.py"] f = nwb_file.open(**settings) ######################################################################## # Store some example <CurrentClampSeries>/ in /acquisition/timeseries # sample sweep data, use same data for all data = [0.77, 0.77, 0.78, 0.77, 0.79, 0.75]
The convention of having "e-" in front of the extension (and "-e" at the end of the create script name) is only used for these examples. Any name for the create script and extension(s) can be used as long as the actual name of the extension(s) are referenced by the create script and passed as parameters to nwb_validate.py when validating NWB files created using one or more extensions. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("MyClosedInterface example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings[ "description"] = "Test file demonstrating using a new Interface which is closed" # specify the extension settings['extensions'] = ["extensions/e-closed_interface.py"] f = nwb_file.open(**settings) ######################################################################## # create a module for the interface mod = f.make_group("<Module>", "my_module")
""" OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file # several settings are specified when doing so. these can be supplied within # the NWB constructor or defined in a dict, as in in this example settings = {} settings["file_name"] = OUTPUT_DIR + file_name # each file should have a descriptive globally unique identifier # that specifies the lab and this experiment session # the function nwb_utils.create_identifier() is recommended to use as it takes # the string and appends the present date and time settings["identifier"] = ut.create_identifier("annotation example") # indicate that it's OK to overwrite exting file settings["mode"] = "w" # specify the start time of the experiment. all times in the NWB file # are relative to experiment start time # if the start time is not specified the present time will be used settings["start_time"] = "Sat Jul 04 2015 3:14:16" # provide one or two sentences that describe the experiment and what # data is in the file settings[ "description"] = "Test file demonstrating use of the AbstractFeatureSeries" # create the NWB file object. this manages the file
def create_general_intra(fname): settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("general intracellular test") settings["mode"] = "w" settings["description"] = "test elements in /general/intracellular_ephys" settings["verbosity"] = "none" f = nwb_file.open(**settings) # # neurodata.set_metadata(INTRA_CUSTOM("intra_custom"), "INTRA_CUSTOM") g = f.make_group("intracellular_ephys") g.set_custom_dataset("intra_custom", "INTRA_CUSTOM") # # neurodata.set_metadata(INTRA_ELECTRODE_DESCRIPTION("p1"), "DESCRIPTION") # neurodata.set_metadata(INTRA_ELECTRODE_FILTERING("p1"), "FILTERING") # neurodata.set_metadata(INTRA_ELECTRODE_DEVICE("p1"), "DEVICE") # neurodata.set_metadata(INTRA_ELECTRODE_LOCATION("p1"), "LOCATION") # neurodata.set_metadata(INTRA_ELECTRODE_RESISTANCE("p1"), "RESISTANCE") # neurodata.set_metadata(INTRA_ELECTRODE_SEAL("p1"), "SEAL") # neurodata.set_metadata(INTRA_ELECTRODE_SLICE("p1"), "SLICE") # neurodata.set_metadata(INTRA_ELECTRODE_INIT_ACCESS_RESISTANCE("p1"), "INITIAL_ACCESS_RESISTANCE") # neurodata.set_metadata(INTRA_ELECTRODE_CUSTOM("p1", "intra_electrode_custom"), "INTRA_ELECTRODE_CUSTOM") p1 = g.make_group("<electrode_X>", "p1") p1.set_dataset("description", "DESCRIPTION") p1.set_dataset("filtering", "FILTERING") p1.set_dataset("device","DEVICE") p1.set_dataset("location","LOCATION") p1.set_dataset("resistance","RESISTANCE") p1.set_dataset("seal","SEAL") p1.set_dataset("slice","SLICE") p1.set_dataset("initial_access_resistance","INITIAL_ACCESS_RESISTANCE") p1.set_custom_dataset("intra_electrode_custom","INTRA_ELECTRODE_CUSTOM") # # neurodata.set_metadata(INTRA_ELECTRODE_DESCRIPTION("e2"), "DESCRIPTION") # neurodata.set_metadata(INTRA_ELECTRODE_FILTERING("e2"), "FILTERING") # neurodata.set_metadata(INTRA_ELECTRODE_DEVICE("e2"), "DEVICE") # neurodata.set_metadata(INTRA_ELECTRODE_LOCATION("e2"), "LOCATION") # neurodata.set_metadata(INTRA_ELECTRODE_RESISTANCE("e2"), "RESISTANCE") # neurodata.set_metadata(INTRA_ELECTRODE_SEAL("e2"), "SEAL") # neurodata.set_metadata(INTRA_ELECTRODE_SLICE("e2"), "SLICE") # neurodata.set_metadata(INTRA_ELECTRODE_INIT_ACCESS_RESISTANCE("e2"), "INITIAL_ACCESS_RESISTANCE") # neurodata.set_metadata(INTRA_ELECTRODE_CUSTOM("e2", "intra_electrode_custom"), "INTRA_ELECTRODE_CUSTOM") # e2 = g.make_group("<electrode_X>", "e2") e2.set_dataset("description", "DESCRIPTION") e2.set_dataset("filtering", "FILTERING") e2.set_dataset("device","DEVICE") e2.set_dataset("location","LOCATION") e2.set_dataset("resistance","RESISTANCE") e2.set_dataset("seal","SEAL") e2.set_dataset("slice","SLICE") e2.set_dataset("initial_access_resistance","INITIAL_ACCESS_RESISTANCE") e2.set_custom_dataset("intra_electrode_custom","INTRA_ELECTRODE_CUSTOM") # neurodata.close() f.close()
import test_utils as ut import time from nwb import nwb_file from nwb import nwb_utils as utils # creates file and modifies it multiple times if __file__.startswith("./"): fname = "s" + __file__[3:-3] + ".nwb" else: fname = "s" + __file__[1:-3] + ".nwb" settings = {} settings["file_name"] = fname settings["identifier"] = utils.create_identifier("Modification example") settings["mode"] = "w" settings["description"] = "Modified empty file" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["verbosity"] = "none" f = nwb_file.open(**settings) f.close() #time.sleep(1) settings = {} settings["file_name"] = fname settings["mode"] = "r+" settings["verbosity"] = "none" f = nwb_file.open(**settings) # need to actually change the file for SLAPI to update file_create_date
The /analysis group is reserved for results of lab-specific analysis. The extension definition is in file "extensions/e-analysis.py". The example is based on the contents of the Allen Institute for Brain Science Cell Types database NWB files. """ OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = ut.create_identifier("example /analysis group using extension.") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = ( "Test file demonstrating storing data in the /analysis group " "that is defined by an extension." ) # specify the extension (Could be more than one. Only one used now). settings["extensions"] = ["extensions/e-analysis.py"] # create the NWB file object. this manages the file print("Creating " + settings["file_name"]) f = nwb_file.open(**settings) ######################################################################## # This example, stores spike times for multiple sweeps
The convention of having "e-" in front of the extension (and "-e" at the end of the create script name) is only used for these examples. Any name for the create script and extension(s) can be used as long as the actual name of the extension(s) are referenced by the create script and passed as parameters to nwb_validate.py when validating NWB files created using one or more extensions. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("Custom module example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings[ "description"] = "Test file demonstrating using a custom module using an extension" # specify the extensions, two are used. settings['extensions'] = [ "extensions/e-timeseries.py", "extensions/e-interface.py", "extensions/e-module.py" ] f = nwb_file.open(**settings) ######################################################################## # create a module for the interface
TrajectorySeries is an extension of the SpatialSeries. The definition (i.e. extension) is in file extensions/e-trajectorySeries.py. This version uses datasets to specify the measurement names and values. (These could also be specified as text using the SpatialSeries reference_frame, dataset, but not in a defined, machine readable way). """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("trajectorySeries example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings["description"] = "Test file demonstrating creating a new TimeSeries type using an extension" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-trajectorySeries.py"] f = nwb_file.open(**settings) ######################################################################## # Make some sample data for the foo_timeseries data = np.linspace(1., 100.0, 6*4*1000).reshape(24,1000) times = np.linspace(0.0, 60.*2., 1000)
""" OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file # several settings are specified when doing so. these can be supplied within # the NWB constructor or defined in a dict, as in in this example settings = {} settings["file_name"] = OUTPUT_DIR + file_name # each file should have a descriptive globally unique identifier # that specifies the lab and this experiment session # the function nwb_utils.create_identifier() is recommended to use as it takes # the string and appends the present date and time settings["identifier"] = ut.create_identifier("abstract-feature example") # indicate that it's OK to overwrite exting file. The default mode # ("w-") does not overwrite an existing file. settings["mode"] = "w" # specify the start time of the experiment. all times in the NWB file # are relative to experiment start time # if the start time is not specified the present time will be used settings["start_time"] = "Sat Jul 04 2015 3:14:16" # provide one or two sentences that describe the experiment and what # data is in the file settings["description"] = "Test file demonstrating use of the AbstractFeatureSeries" # create the NWB File object. this manages the file
from nwb import nwb_file from nwb import nwb_utils as utils # creates file and modifies it multiple times if __file__.startswith("./"): fname = "s" + __file__[3:-3] + ".nwb" else: fname = "s" + __file__[1:-3] + ".nwb" settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["identifier"] = nwb.create_identifier("Modification example") settings["identifier"] = utils.create_identifier("Modification example") # settings["overwrite"] = True settings["mode"] = "w" settings["description"] = "Modified empty file" settings["start_time"] = "Sat Jul 04 2015 3:14:16" # neurodata = nwb.NWB(**settings) f = nwb_file.open(**settings) # neurodata.close() f.close() #time.sleep(1) settings = {} # settings["filename"] = fname settings["file_name"] = fname # settings["overwrite"] = False
if not os.path.exists(PATH): print "Source files for script '%s' not present" % os.path.basename( __file__) print "Download and put them in the 'examples/source_data' directory as instructed" print "in file examples/0_README.txt" sys.exit(1) # path to output directory OUTPUT_DIR = "../created_nwb_files/crcns_hc-3/" if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) # create nwb file settings = {} settings["file_name"] = OUTPUT_DIR + BASE + ".nwb" settings["identifier"] = ut.create_identifier("buzsaki test") settings["mode"] = "w" settings["start_time"] = DATE settings[ "description"] = "extracellular ephys CA1/MEC recordings in live behaving rat" buz = nwb_file.open(**settings) ######################################################################## # metadata section buz.set_dataset("session_id", BASE) buz.set_dataset("experimenter", "Kenji Mizuseki") buz.set_dataset("institution", "Rutgers University") buz.set_dataset("lab", "Gyuri Buzsaki") buz.set_dataset("related_publications", ut.load_file(SOURCE_DATA_DIR + "bz_files/publications.txt")) buz.set_dataset(
n = stim_pixel_cnt[name] if n_pix > n: stim_pixel_cnt[name] = n_pix else: stim_pixel_cnt[name] = n_pix for i in range(len(file_list)): fname = file_list[i][len(path):] print "Processing " + fname mfile = sio.loadmat(file_list[i], struct_as_record=True) # prepare matlab data data_info = mfile['datainfo'][0,0] # prepare output file vargs = {} vargs["start_time"] = find_exp_time(fname, data_info) vargs["identifier"] = ut.create_identifier("Meister test data") vargs["mode"] = "w" vargs["description"] ="Optical stimulation and extracellular recording of retina" vargs["file_name"] = OUTPUT_DIR + fname[:-4]+".nwb" bfile = nwb_file.open(**vargs) print "Creating " + vargs["file_name"] # get stimulus offset times stim_offset = find_stim_times(fname, data_info) stim_end = [] # for i in range(len(stim_offset)): # create stimuli # read data from mat file stimulus = mfile["stimulus"][0,i] n_frames = stimulus["Nframes"][0,0] frame = stimulus["frame"][0,0]
########################################################################### ########################################################################### ########################################################################### #ep.ts_self_check() #sys.exit(0) # prepare files orig_h5 = h5py.File(INFILE, "r") meta_h5 = h5py.File(META, "r") ifile_name = INFILE.split('/')[-1] session_id = ifile_name[15:-3] bfile_name = ifile_name[15:-3] + ".nwb" vargs = {} vargs["start_time"] = find_exp_time(meta_h5) vargs["identifier"] = ut.create_identifier(session_id) vargs["mode"] = "w" vargs["description"] = "Extracellular ephys recording of mouse doing discrimination task (lick left/right), with optogenetic stimulation plus pole and auditory stimulus" vargs["file_name"] = OUTPUT_DIR + bfile_name nuo = nwb_file.open(**vargs) nuo.set_dataset("session_id", session_id) print "Reading meta data" #general an_gene_copy = parse_h5_obj(meta_h5["animalGeneCopy"])[0][0] an_gene_bg= parse_h5_obj(meta_h5["animalGeneticBackground"])[0] an_gene_mod = parse_h5_obj(meta_h5["animalGeneModification"])[0] an_gene = "Animal gene modification: " + extract_encoded_str(an_gene_mod) +\ ";\nAnimal genetic background: " + extract_encoded_str(an_gene_bg) +\ ";\nAnimal gene copy: " + str(an_gene_copy)
""" Store additional information (defined in an extension) in an Interface. This is the same as the behavior.py example, but adds a new dataset to the BehavioralEpochs, using an extension defined in file extensions/e-behavior.py. """ OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = ut.create_identifier("behavioral interval example, with extension.") settings["mode"] = "w" settings["start_time"] = "Sat Jul 04 2015 3:14:16" settings["description"] = ("Test file demonstrating use of the BehavioralEpochs module " "interface with an extension") # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-behavior.py"] # create the NWB file object. this manages the file print("Creating " + settings["file_name"]) f = nwb_file.open(**settings) ######################################################################## # processed information is stored in modules, with each module publishing # one or more 'interfaces'. an interface is like a contract, promising
""" OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" ######################################################################## # create a new NWB file # several settings are specified when doing so. these can be supplied within # the NWB constructor or defined in a dict, as in in this example settings = {} settings["file_name"] = OUTPUT_DIR + file_name # each file should have a descriptive globally unique identifier # that specifies the lab and this experiment session # the function nwb_utils.create_identifier() is recommended to use as it takes # the string and appends the present date and time settings["identifier"] = ut.create_identifier("abstract-feature example") # indicate that it's OK to overwrite exting file. The default mode # ("w-") does not overwrite an existing file. settings["mode"] = "w" # specify the start time of the experiment. all times in the NWB file # are relative to experiment start time # if the start time is not specified the present time will be used settings["start_time"] = "Sat Jul 04 2015 3:14:16" # provide one or two sentences that describe the experiment and what # data is in the file settings[ "description"] = "Test file demonstrating use of the AbstractFeatureSeries"
print "Source files for script '%s' not present" % os.path.basename(__file__) print "Download and put them in the 'examples/source_data' directory as instructed" print "in file examples/0_README.txt" sys.exit(1) # path to output directory OUTPUT_DIR = "../created_nwb_files/crcns_hc-3/" if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) # create nwb file settings = {} settings["file_name"] = OUTPUT_DIR + BASE + ".nwb" settings["identifier"] = ut.create_identifier("buzsaki test") settings["mode"] = "w" settings["start_time"] = DATE settings["description"] = "extracellular ephys CA1/MEC recordings in live behaving rat" buz = nwb_file.open(**settings) ######################################################################## # metadata section buz.set_dataset("session_id", BASE) buz.set_dataset("experimenter", "Kenji Mizuseki") buz.set_dataset("institution", "Rutgers University") buz.set_dataset("lab", "Gyuri Buzsaki") buz.set_dataset("related_publications", ut.load_file(SOURCE_DATA_DIR + "bz_files/publications.txt")) buz.set_dataset("notes", "Rat running on linear track. Electrode impedances between 1 and 3 MOhm") buz.set_dataset("data_collection", ut.load_file(SOURCE_DATA_DIR + "bz_files/data_collection.txt"))
This is the same as example: interval.py, except that it uses and extension (defined in extensions/e-interval.py) to add a two new datasets: - "codes" - "code_descriptions" to the IntervalSeries. The codes data set lists the numeric codes used. The "code_descriptions" data set, provides the description of each code. """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("extended interval example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings["description"] = "Test file demonstrating use of an extended IntervalSeries" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-interval.py"] f = nwb_file.open(**settings) ######################################################################## # Make some fake interval series data # store in codes and times event_codes = [ 7, # 300 hz tone turned on at -7, # 300 hz tone turned off
TrajectorySeries is an extension of the SpatialSeries. The definition (i.e. extension) is in file extensions/e-trajectorySeries.py. This version uses datasets to specify the measurement names and values. (These could also be specified as text using the SpatialSeries reference_frame, dataset, but not in a defined, machine readable way). """ # create a new NWB file OUTPUT_DIR = "../created_nwb_files/" file_name = __file__[0:-3] + ".nwb" settings = {} settings["file_name"] = OUTPUT_DIR + file_name settings["identifier"] = utils.create_identifier("trajectorySeries example") settings["mode"] = "w" settings["start_time"] = "2016-04-07T03:16:03.604121" settings[ "description"] = "Test file demonstrating creating a new TimeSeries type using an extension" # specify the extension (Could be more than one. Only one used now). settings['extensions'] = ["extensions/e-trajectorySeries.py"] f = nwb_file.open(**settings) ######################################################################## # Make some sample data for the foo_timeseries data = np.linspace(1., 100.0, 6 * 4 * 1000).reshape(24, 1000) times = np.linspace(0.0, 60. * 2., 1000)