def test_load_recording(): recording.get_demo_recordings() nems_dir = os.path.abspath(os.path.dirname(__file__) + '/..') targz = nems_dir + '/recordings/TAR010c-18-1.tgz' rec = recording.load_recording(targz)
def test_load_recording(): get_demo_recordings(name='TAR010c.NAT.fs100.ch18.tgz') targz = join(RECORDING_DIR, 'TAR010c.NAT.fs100.ch18.tgz') rec = load_recording(targz)
def main(): import argparse relative_signals_dir = '/../recordings' signals_dir = os.path.dirname(nems.uri.__file__) + relative_signals_dir signals_dir = os.path.abspath(signals_dir) parser = argparse.ArgumentParser('Download NEMS demo data') parser.add_argument( '--directory', type=str, default=signals_dir, help= 'Storage location for recordings (defaults to <nemspath>/recordings)', ) parser.add_argument( '--unpack', action='store_true', help='Recordings compressed by default, set --unpack to decompress') args = parser.parse_args() directory = args.directory if args.directory else None unpack = args.unpack if args.unpack else None get_demo_recordings(directory, unpack)
def test_plots(): recording.get_demo_recordings(name=recording_file) rec = recording.load_recording(uri) resp = rec['resp'].rasterize() stim = rec['stim'].rasterize() epoch_regex = "^STIM_" stim_epochs = ep.epoch_names_matching(resp.epochs, epoch_regex) r = resp.as_matrix(stim_epochs) * resp.fs s = stim.as_matrix(stim_epochs) repcount = np.sum(np.isfinite(r[:, :, 0, 0]), axis=1) max_rep_id, = np.where(repcount == np.max(repcount)) t = np.arange(r.shape[-1]) / resp.fs plt.figure() ax = plt.subplot(3, 1, 1) nplt.plot_spectrogram(s[max_rep_id[-1], 0, :, :], fs=stim.fs, ax=ax, title="cell {} - stim".format(cellid)) ax = plt.subplot(3, 1, 2) nplt.raster(t, r[max_rep_id[-1], :, 0, :], ax=ax, title='raster') ax = plt.subplot(3, 1, 3) nplt.psth_from_raster(t, r[max_rep_id[-1], :, 0, :], ax=ax, title='raster', ylabel='spk/s') plt.tight_layout()
import nems.initializers import nems.recording as recording import nems.uri from nems.fitters.api import scipy_minimize from nems.signal import RasterizedSignal log = logging.getLogger(__name__) # CONFIGURATION # figure out data and results paths: signals_dir = Path(nems.NEMS_PATH) / 'recordings' modelspecs_dir = Path(nems.NEMS_PATH) / 'modelspecs' # download demo data recording.get_demo_recordings(signals_dir) datafile = signals_dir / 'TAR010c-18-1.pkl' # LOAD AND FORMAT RECORDING DATA with open(datafile, 'rb') as f: #cellid, recname, fs, X, Y, X_val, Y_val = pickle.load(f) cellid, recname, fs, X, Y, epochs = pickle.load(f) # create NEMS-format recording objects from the raw data resp = RasterizedSignal(fs, Y, 'resp', recname, chans=[cellid]) stim = RasterizedSignal(fs, X, 'stim', recname) # create the recording object from the signals signals = {'resp': resp, 'stim': stim} est = recording.Recording(signals)
import nems.xforms as xforms # ---------------------------------------------------------------------------- # GLOBAL CONFIGURATION log = logging.getLogger(__name__) # figure out data and results paths: results_dir = nems.get_setting('NEMS_RESULTS_DIR') signals_dir = nems.get_setting('NEMS_RECORDINGS_DIR') # ---------------------------------------------------------------------------- # DATA LOADING & PRE-PROCESSING # Download demo recordings recording.get_demo_recordings() datafile = os.path.join(signals_dir, "TAR010c.NAT.fs100.ch18.tgz") exptid = "TAR010c" batch = 271 cellid = "TAR010c-18-2" # SINGLE MODEL SPEC # LN model modelspecname = 'dlog-wc.18x3.g-fir.3x15-relu.1' # Simple CNN #modelspecname = 'wc.18x3-fir.1x10x3-relu.3-wc.3xR-lvl.R'
import nems.recording as recording import nems.xforms as xforms import nems.tf.cnn as cnn import nems.tf.cnnlink as cnnlink log = logging.getLogger(__name__) # ---------------------------------------------------------------------------- # CONFIGURATION # figure out data and results paths: results_dir = nems.get_setting('NEMS_RESULTS_DIR') signals_dir = nems.get_setting('NEMS_RECORDINGS_DIR') # ---------------------------------------------------------------------------- # DATA LOADING & PRE-PROCESSING """ recording.get_demo_recordings(name="TAR010c-18-1.pkl") datafile = os.path.join(signals_dir, "TAR010c-18-1.pkl") load_command = 'nems.demo.loaders.demo_loader' exptid = "TAR010c" batch = 271 cellid = "TAR010c-18-1" """ datafile = os.path.join( signals_dir, "TAR010c_272b438ce3a5643e3e474206861096ce3ffdc000.tgz") load_command = 'nems.demo.loaders.demo_loader' exptid = "TAR010c" batch = 271 siteid = "TAR010c"
import os from nems.recording import load_recording, get_demo_recordings import nems.plots.api as nplt import nems.epoch as ep #site = "TAR010c" # site = "BRT033b" site = "bbl099g" # use this line to load recording from server. #uri = 'http://hearingbrain.org/tmp/'+site+'.tgz' # alternatively download the file, save and load from local file: filename = site + '.NAT.fs200.tgz' recording_path = get_demo_recordings(name=filename) # uri = '/path/to/recording/' + site + '.tgz' uri = os.path.join(recording_path, filename) rec = load_recording(uri) epochs = rec.epochs is_stim = epochs['name'].str.startswith('STIM') stim_epoch_list = epochs[is_stim]['name'].tolist() stim_epochs = list(set(stim_epoch_list)) stim_epochs.sort() epoch = stim_epochs[11] resp = rec['resp'].rasterize()
import nems.recording as recording import nems.uri import nems.xforms as xforms # ---------------------------------------------------------------------------- # CONFIGURATION log = logging.getLogger(__name__) # figure out data and results paths: results_dir = nems.get_setting('NEMS_RESULTS_DIR') signals_dir = nems.get_setting('NEMS_RECORDINGS_DIR') # ---------------------------------------------------------------------------- # DATA LOADING & PRE-PROCESSING recording.get_demo_recordings(name="TAR010c-18-1.pkl") datafile = os.path.join(signals_dir, "TAR010c-18-1.pkl") load_command = 'nems.demo.loaders.demo_loader' exptid = "TAR010c" batch = 271 cellid = "TAR010c-18-1" # MODEL SPEC #modelspecname = 'wc.18x1.g-fir.1x15-lvl.1' modelspecname = 'dlog-wc.18x1.g-fir.1x15-lvl.1-dexp.1' #modelspecname = 'dlog-wc.18x1.g-stp.1.q.s-fir.1x15-lvl.1-dexp.1' #modelspecname = 'dlog-wc.18x2.g-do.2x15-lvl.1-dexp.1' #modelspecname = 'dlog.f-wc.18x1.g-stp.1.s-do.1x15-lvl.1' #modelspecname = 'dlog.f-wc.18x1.g-stp2.1.s-do.1x15-lvl.1'
# figure out data and results paths: nems_dir = os.path.abspath(os.path.dirname(recording.__file__) + '/..') signals_dir = nems_dir + '/recordings' modelspecs_dir = nems_dir + '/modelspecs' # ---------------------------------------------------------------------------- # DATA LOADING # # GOAL: Get your data loaded into memory as a Recording object logging.info('Loading data...') # Method #1: Load the data from a local directory # download demo data if necessary: recording.get_demo_recordings(signals_dir, name="TAR010c-18-1.tgz") # load into a recording object rec = recording.load_recording(signals_dir + "/TAR010c-18-1.tgz") # ---------------------------------------------------------------------------- # DATA PREPROCESSING # # GOAL: Split your data into estimation and validation sets so that you can # know when your model exhibits overfitting. if True: # aside - generate datasets from scratch X = rec['stim'].as_continuous() Y = rec['resp'].as_continuous()
batch = 271 cellid = "TAR010c-18-2" # 100Hz, no pupil recording_file = "TAR010c.NAT.fs100.ch18.tgz" # MODEL SPEC modelname = 'ld-sev_dlog-wc.18x1.g-fir.1x15-lvl.1-dexp.1_init-basic' # 50Hz, pupil #recording_file = "TAR010c.NAT.fs50.ch18.pup.tgz" # MODEL SPEC #modelname = 'ld-st.pup-tev_dlog-wc.18x1.g-fir.1x15-lvl.1-stategain.2-dexp.1_init.st-basic' recording.get_demo_recordings(name=recording_file) recording_uri = os.path.join(get_setting('NEMS_RECORDINGS_DIR'), recording_file) # run and return xfspec, ctx = fit_model_xform(cellid, batch, modelname, recording_uri=recording_uri, returnModel=True) ex = gui.browse_xform_fit(ctx, xfspec) # run and save to database #saveuri = fit_model_xform(cellid, batch, modelname, recording_uri=recording_uri, saveInDB=True)