예제 #1
0
def setup():
    # Special setup fixture to create a data set with 2 shanks.
    # No need for teardown as the 'mockdata' folder will be cleared at the
    # end of the tests anyway.
    
    
    # Create mock directory if needed.
    dir = TEST_FOLDER
    if not os.path.exists(dir):
        os.mkdir(dir)
        
    # Create mock data.
    waveforms = create_waveforms(nspikes, nsamples, nchannels)
    features = create_features(nspikes, nchannels, fetdim, duration, freq)
    clusters = create_clusters(nspikes, nclusters)
    cluster_colors = create_cluster_colors(nclusters)
    masks = create_masks(nspikes, nchannels, fetdim)
    xml = create_xml(nchannels, nsamples, fetdim)
    probe = create_probe(nchannels)
    
    # Create mock files.
    save_binary(os.path.join(dir, 'test.spk.2'), waveforms)
    save_text(os.path.join(dir, 'test.fet.2'), features,
        header=nchannels * fetdim + 1)
    save_text(os.path.join(dir, 'test.aclu.2'), clusters, header=nclusters)
    save_text(os.path.join(dir, 'test.clu.2'), clusters, header=nclusters)
    save_text(os.path.join(dir, 'test.fmask.2'), masks, header=nclusters,
        fmt='%.6f')
    save_text(os.path.join(dir, 'test.xml'), xml)
    save_text(os.path.join(dir, 'test.probe'), probe)
예제 #2
0
def setup():
    
    # Create mock directory if needed.
    dir = TEST_FOLDER
        
    # Create mock data.
    waveforms = create_waveforms(nspikes, nsamples, nchannels)
    features = create_features(nspikes, nchannels, fetdim, duration, freq)
    clusters = create_clusters(nspikes, nclusters)
    
    cluster_colors = create_cluster_colors(nclusters)
    cluster_groups = create_cluster_groups(nclusters)
    cluster_info = pd.DataFrame(
            {'color': cluster_colors, 
             'group': cluster_groups}, 
         dtype=np.int32,
         index=np.unique(clusters))
    
    group_colors = create_group_colors(ngroups)
    group_names = create_group_names(ngroups)
    group_info = pd.DataFrame(
            {'color': group_colors, 
             'name': group_names}, 
         index=np.arange(ngroups))
         
    # channel_colors = create_channel_colors(nchannels)
    # channel_groups = create_channel_groups(nchannels)
    # channel_names = create_channel_names(nchannels)
    # channel_info = pd.DataFrame(
    #      {'color': channel_colors, 
    #       'group': channel_groups}, 
    #   dtype=np.int32,
    #   index=np.unique(channels))
    # 
    # channel_group_colors = create_channel_group_colors(ngroups)
    # channel_group_names = create_channel_group_names(ngroups)
    # channel_group_info = pd.DataFrame(
    #      {'color': channel_group_colors, 
    #       'name': channel_group_names}, 
    #   index=np.arange(ngroups))
         
    masks = create_masks(nspikes, nchannels, fetdim)
    xml = create_xml(nchannels, nsamples, fetdim)
    probe = create_probe(nchannels)
    
    
    # Create mock files.
    save_binary(os.path.join(dir, 'test.spk.1'), waveforms)
    save_text(os.path.join(dir, 'test.fet.1'), features,
        header=nchannels * fetdim + 1)
    save_text(os.path.join(dir, 'test.aclu.1'), clusters, header=nclusters)
    # save_cluster_info(os.path.join(dir, 'test.acluinfo.1'), cluster_info)
    # save_group_info(os.path.join(dir, 'test.groupinfo.1'), group_info)
    save_text(os.path.join(dir, 'test.clu.1'), clusters, header=nclusters)
    save_text(os.path.join(dir, 'test.fmask.1'), masks, header=nclusters,
        fmt='%.6f')
    save_text(os.path.join(dir, 'test.xml'), xml)
    save_text(os.path.join(dir, 'test.probe'), probe)
예제 #3
0
def setup():
    # Create mock directory if needed.
    dir = TEST_FOLDER
    if not os.path.exists(dir):
        os.mkdir(dir)
        
    dat = create_trace(nsamples, nchannels)
    
    # Create mock DAT file.
    save_binary(os.path.join(dir, 'test.dat'), dat)
예제 #4
0
def setup():
    # Create mock directory if needed.
    dir = TEST_FOLDER
    if not os.path.exists(dir):
        os.mkdir(dir)
        
    # Create 2 DAT files with nsamples and 2*nsamples samples, respectively.
    # The generated KWD file must have 3*nsamples samples.
    dat1 = create_trace(nsamples, nchannels)
    dat2 = create_trace(nsamples * 2, nchannels)
    
    # Create mock DAT file.
    save_binary(os.path.join(dir, 'test1.dat'), dat1)
    save_binary(os.path.join(dir, 'test2.dat'), dat2)
예제 #5
0
def setup():

    # Create mock directory if needed.
    dir = TEST_FOLDER

    # Create mock data.
    waveforms = create_waveforms(nspikes, nsamples, nchannels)
    features = create_features(nspikes, nchannels, fetdim, duration, freq)
    clusters = create_clusters(nspikes, nclusters)

    cluster_colors = create_cluster_colors(nclusters)
    cluster_groups = create_cluster_groups(nclusters)
    cluster_info = pd.DataFrame(
        {
            'color': cluster_colors,
            'group': cluster_groups
        },
        dtype=np.int32,
        index=np.unique(clusters))

    group_colors = create_group_colors(ngroups)
    group_names = create_group_names(ngroups)
    group_info = pd.DataFrame({
        'color': group_colors,
        'name': group_names
    },
                              index=np.arange(ngroups))

    masks = create_masks(nspikes, nchannels, fetdim)
    xml = create_xml(nchannels, nsamples, fetdim)
    probe = create_probe(nchannels)

    # Create mock files.
    save_binary(os.path.join(dir, 'test.spk.1'), waveforms)
    save_text(os.path.join(dir, 'test.fet.1'),
              features,
              header=nchannels * fetdim + 1)
    save_text(os.path.join(dir, 'test.aclu.1'), clusters, header=nclusters)
    save_text(os.path.join(dir, 'test.clu.1'), clusters, header=nclusters)
    save_text(os.path.join(dir, 'test.fmask.1'),
              masks,
              header=nclusters,
              fmt='%.6f')
    save_text(os.path.join(dir, 'test.xml'), xml)
    save_text(os.path.join(dir, 'test.probe'), probe)
예제 #6
0
def test_memmap_numpy():
    folder = tempfile.gettempdir()
    filename = os.path.join(folder, 'memmapb')

    dtype = np.int16
    freq = 20000.
    duration = 10.
    nchannels = 32
    nsamples = int(freq * duration)

    x = np.random.randint(size=(nsamples, nchannels), low=0,
                          high=1000).astype(dtype)
    save_binary(filename, x)

    m = read_dat(filename, nchannels=nchannels, dtype=dtype)

    slices = (slice(1000, 10000, 4), slice(2, 30, 3))

    assert m.shape == x.shape
    np.testing.assert_equal(x[slices], m[slices])
예제 #7
0
def test_memmap_numpy():
    folder = tempfile.gettempdir()
    filename = os.path.join(folder, 'memmapb')
    
    dtype = np.int16
    freq = 20000.
    duration = 10.
    nchannels = 32
    nsamples = int(freq * duration)
    
    x = np.random.randint(size=(nsamples, nchannels), 
        low=0, high=1000).astype(dtype)
    save_binary(filename, x)
    
    m = read_dat(filename, nchannels=nchannels, dtype=dtype)
    
    slices = (slice(1000, 10000, 4), slice(2, 30, 3))
    
    assert m.shape == x.shape
    np.testing.assert_equal(x[slices], m[slices])
    
    
    
예제 #8
0
"""Generate a DAT file with random raw data."""
from kwiklib.dataio import save_binary
from kwiklib.dataio.tests.mock_data import create_trace

nsamples = 20000. * 60
nchannels = 32
filename = "myexperiment.dat"
dat = create_trace(nsamples, nchannels)
save_binary(filename, dat)