コード例 #1
0
def parse_plot_channels(channels, input_file):
    channels = channels if isinstance(channels, list) else [channels]
    channels = [none_or_int(channel) for channel in channels]
    # ToDo:
    #   * check is channel exists, even when there is no None
    #   * use annotation channel ids instead of array indices
    if None in channels:
        dim_t, channel_num = load_neo(input_file,
                                      object='analogsignal',
                                      lazy=True).shape
        for i, channel in enumerate(channels):
            if channel is None or channel >= channel_num:
                channels[i] = random.randint(0, channel_num)
    return channels
コード例 #2
0
import neo
import numpy as np
import argparse
from utils.io import load_neo

if __name__ == '__main__':
    CLI = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    CLI.add_argument("--data",
                     nargs='?',
                     type=str,
                     required=True,
                     help="path to input data in neo format")
    CLI.add_argument("--output",
                     nargs='?',
                     type=str,
                     required=True,
                     help="path of output thresholds (numpy array)")
    CLI.add_argument("--threshold", nargs='?', type=float, required=True)
    args, unknown = CLI.parse_known_args()

    asig = load_neo(args.data, 'analogsignal')

    dim_t, channel_num = asig.shape

    np.save(args.output, np.ones(channel_num) * args.threshold)
コード例 #3
0
    CLI = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    CLI.add_argument("--data",
                     nargs='?',
                     type=str,
                     required=True,
                     help="path to input data in neo format")
    CLI.add_argument("--output",
                     nargs='?',
                     type=str,
                     required=True,
                     help="path of output file")

    args = CLI.parse_args()
    block = load_neo(args.data)

    block = analogsignals_to_imagesequences(block)

    imgseq = block.filter(name='optical_flow', objects="ImageSequence")

    if imgseq:
        imgseq = imgseq[0]
    else:
        raise ValueError("Input does not contain a signal with name " \
                       + "'optical_flow'!")

    crit_point_evt = detect_critical_points(
        imgseq, block.segments[0].analogsignals[0].times)

    block.segments[0].events.append(crit_point_evt)
コード例 #4
0
                     type=str,
                     required=True,
                     help="path to input data in neo format")
    CLI.add_argument("--properties",
                     nargs='?',
                     type=lambda v: v.split(','),
                     default=[''],
                     help="paths to input data in neo format")
    CLI.add_argument("--output",
                     nargs='?',
                     type=str,
                     required=True,
                     help="path of output file")

    args = CLI.parse_args()
    waves_block = load_neo(args.waves)

    asig_names = [asig.name for asig in waves_block.segments[0].analogsignals]
    event_names = [event.name for event in waves_block.segments[0].events]

    if not args.properties or not args.properties[0]:
        args.properties = []

    for property in args.properties:
        block = load_neo(property)

        for asig in block.segments[0].analogsignals:
            if asig.name not in asig_names:
                waves_block.segments[0].analogsignals.append(asig)

        for event in block.segments[0].events:
コード例 #5
0
    return ax

if __name__ == '__main__':
    CLI = argparse.ArgumentParser()
    CLI.add_argument("--data",        nargs='?', type=str)
    CLI.add_argument("--frame_folder",nargs='?', type=str)
    CLI.add_argument("--frame_name",  nargs='?', type=str)
    CLI.add_argument("--frame_format",nargs='?', type=str)
    CLI.add_argument("--frame_rate",  nargs='?', type=none_or_float)
    CLI.add_argument("--colormap",    nargs='?', type=str)
    CLI.add_argument("--event",       nargs='?', type=none_or_str, default=None)
    CLI.add_argument("--markercolor",       nargs='?', type=str, default='k')

    args = CLI.parse_args()

    blk = load_neo(args.data)
    blk = analogsignals_to_imagesequences(blk)

    # get data
    imgseq = blk.segments[0].imagesequences[0]
    times = blk.segments[0].analogsignals[0].times  # to be replaced
    t_start = blk.segments[0].analogsignals[0].t_start  # to be replaced
    t_stop = blk.segments[0].analogsignals[0].t_stop  # to be replaced
    dim_t, dim_x, dim_y = imgseq.shape

    optical_flow = get_opticalflow(blk.segments[0].imagesequences)

    if args.event is not None:
        up_coords = get_events(blk.segments[0].events,
                               frame_times=times,
                               event_name=args.event)
コード例 #6
0
                     help="path of output figure")
    CLI.add_argument("--t_start",
                     nargs='?',
                     type=float,
                     default=0,
                     help="start time in seconds")
    CLI.add_argument("--t_stop",
                     nargs='?',
                     type=float,
                     default=10,
                     help="stop time in seconds")
    CLI.add_argument("--channels",
                     nargs='+',
                     type=none_or_int,
                     default=0,
                     help="list of channels to plot")
    args = CLI.parse_args()

    asig = load_neo(args.data, 'analogsignal', lazy=True)

    channels = parse_plot_channels(args.channels, args.data)

    asig = time_slice(asig,
                      t_start=args.t_start,
                      t_stop=args.t_stop,
                      lazy=True,
                      channel_indexes=channels)

    ax = plot_traces(asig, channels)
    save_plot(args.output)
コード例 #7
0
    CLI.add_argument("--original_data", nargs='?', type=str, required=True,
                     help="path to input data in neo format")
    CLI.add_argument("--processed_data", nargs='?', type=str, required=True,
                     help="path to input data in neo format")
    CLI.add_argument("--img_dir",  nargs='?', type=str, required=True,
                     help="path of output figure directory")
    CLI.add_argument("--img_name", nargs='?', type=str,
                     default='processed_trace_channel0.png',
                     help='example filename for channel 0')
    CLI.add_argument("--t_start", nargs='?', type=float, default=0,
                     help="start time in seconds")
    CLI.add_argument("--t_stop",  nargs='?', type=float, default=10,
                     help="stop time in seconds")
    CLI.add_argument("--channels", nargs='+', type=int, default=0,
                     help="channel to plot")
    args = CLI.parse_args()

    orig_asig = load_neo(args.original_data, 'analogsignal', lazy=False)
    orig_asig = time_slice(orig_asig, t_start=args.t_start, t_stop=args.t_stop,
                           lazy=False, channel_indexes=args.channels)

    proc_asig = load_neo(args.processed_data, 'analogsignal', lazy=False)
    proc_asig = time_slice(proc_asig, t_start=args.t_start, t_stop=args.t_stop,
                           lazy=False, channel_indexes=args.channels)

    for channel in args.channels:
        plot_traces(orig_asig, proc_asig, channel)
        output_path = os.path.join(args.img_dir,
                                   args.img_name.replace('_channel0', f'_channel{channel}'))
        save_plot(output_path)