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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 5
0
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()
Esempio n. 7
0
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()
Esempio n. 8
0
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()
Esempio n. 10
0
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
Esempio n. 12
0
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
Esempio n. 13
0
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()
Esempio n. 14
0
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()
Esempio n. 16
0
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()
Esempio n. 17
0
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()
Esempio n. 18
0
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()
Esempio n. 19
0
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()
Esempio n. 20
0
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()
Esempio n. 21
0
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()
Esempio n. 22
0
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()
Esempio n. 23
0
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()
Esempio n. 24
0
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()
Esempio n. 26
0
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()
Esempio n. 27
0
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()
Esempio n. 29
0
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()
Esempio n. 30
0
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()
Esempio n. 31
0
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()
Esempio n. 32
0
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: "
Esempio n. 34
0
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()
Esempio n. 35
0
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:])
Esempio n. 36
0
"""

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
Esempio n. 38
0
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
Esempio n. 39
0
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
Esempio n. 41
0
"/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]
Esempio n. 42
0
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")
Esempio n. 43
0
"""

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()
Esempio n. 45
0
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
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:])
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
Esempio n. 48
0
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
Esempio n. 52
0
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]
Esempio n. 54
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
Esempio n. 56
0
"""

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
Esempio n. 59
0
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)