Beispiel #1
0
def main():
    parser = argparse.ArgumentParser(description='CT analysis - Exporter')
    parser.add_argument('data', nargs='?', type=str, default='-')
    args = parser.parse_args()

    df = read_data([args.data])

    bgs = sorted(np.unique(df['bg']))
    if len(bgs) != 8:
        print('bgs != 8', file=sys.stderr)
        sys.exit(-1)

    sizes = np.unique(df['size'])
    if len(sizes) != 1:
        print('size != 1', file=sys.stderr)
        sys.exit(-1)

    
    
    subjects = np.unique(df['subject'])
    lst = []
    res = {"*": lst}
    
    for bg in bgs:
        part = df.loc[df['bg'] == bg]
        fgs = sorted(np.unique(part['fg']))
        
        rdat = []
        for fg in fgs:
            row = part.loc[part['fg'] == fg]            
            rdat+= [[fg, float(row['shift']), float(row['err'])]]
        lst += [rdat]
    
    s = json.dumps(res)
    print(s)
Beispiel #2
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('--data', nargs='+', type=str)
    parser.add_argument('--exclude-files', dest='fnfilter', type=str)
    parser.add_argument('experiment', nargs='?', type=str, default=None)
    parser.add_argument('subjects', nargs='*', type=str, default=None)
    args = parser.parse_args()

    args_ok = check_args(args)
    if not args_ok:
        parser.print_help(sys.stderr)
        sys.exit(-1)

    if args.experiment:
        exp = ct.Experiment.load_from_path(args.experiment)

        subjects = filter(lambda s: len(s), args.subjects) or exp.subjects
        print('[i] subjects: ' + ' '.join(subjects), file=sys.stderr)
        dfs = map(lambda subject: exp.load_result_data(subject, args.fnfilter),
                  subjects)
        df = pd.concat(dfs, ignore_index=True)
    else:
        df = read_data(args.data)
        df['subject'] = 'data'

    df.rename(columns={'fg': 'fg_abs'}, inplace=True)
    df['shift'] = df['phi'].combine(df['fg_abs'], calc_angle_shift)
    df['fg'] = df['fg_abs'].combine(df['bg'], calc_angle_shift)

    df.to_csv(sys.stdout, index=False)
Beispiel #3
0
def main():
    parser = argparse.ArgumentParser(description='CT analysis - Filter')
    parser.add_argument('data', nargs='?', type=str, default='-')
    parser.add_argument('--size', default=None)
    parser.add_argument('--no-control',
                        action='store_true',
                        default=False,
                        dest='ctrl')
    parser.add_argument('--fg', dest='fg', type=float, default=None)
    parser.add_argument('-B', '--bg', dest='bg', type=float, default=None)
    parser.add_argument('--fg-sign', dest='fg_sign', default=None)
    parser.add_argument('--subject', dest='subject', default=None)
    args = parser.parse_args()

    df = read_data([args.data])

    if args.size is not None:
        df = filter_size(df, args.size)

    if args.ctrl:
        df = filter_control(df)

    if args.fg:
        df = filter_fg_range(df, args.fg)

    if args.fg_sign:
        df = filter_fg_sign(df, args.fg_sign)

    if args.bg is not None:
        df = filter_bg(df, args.bg)

    if args.subject is not None:
        df = df[df.subject == args.subject]

    df.to_csv(sys.stdout, index=False)
Beispiel #4
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', type=str, nargs='?', default='-')
    parser.add_argument('--sizerel', default=False, action='store_true')
    parser.add_argument('--max-spread',
                        dest='maxspread',
                        default=False,
                        action='store_true')
    parser.add_argument('--sl-rel',
                        dest='slrel',
                        choices={'40', 'upper', 'mean28'},
                        default=None)

    args = parser.parse_args()
    df = read_data([args.data])

    gd = df.groupby(['bg', 'fg', 'subject'])
    x = gd.apply(calc_spread)
    x.reset_index(inplace=True)

    if args.sizerel:
        x = convert2sizerel(x, df)
        x.to_csv(sys.stdout, ignore_index=True)
    elif args.maxspread:
        x = max_spread(x)
        x.to_csv(sys.stdout, index=False)
    elif args.slrel:
        x = spread_slrel(x, df, args.slrel)
        x.to_csv(sys.stdout, index=False)
    else:
        x.to_csv(sys.stdout, index=False)

    return 0
Beispiel #5
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', type=str)
    parser.add_argument('--combine', action='store_true', default=False)
    parser.add_argument('--dbm', action='store_true', default=False)

    args = parser.parse_args()

    df = read_data([args.data])

    groups = ['bg', 'fg', 'subject']

    if args.combine:
        groups.remove('subject')

    gpd = df[['bg', 'fg', 'size', 'shift', 'subject']].groupby(groups,
                                                               as_index=False)
    dfg = gpd.apply(make_calc_size_diff(args.dbm))
    x = dfg.reset_index()

    if args.combine:
        subs = df['subject'].unique()
        x['subject'] = '_'.join(map(lambda x: x[:2],
                                    subs)) if len(subs) > 1 else subs[0]

    x['size'] = 40  # FIXME
    x.to_csv(sys.stdout, index=False)
Beispiel #6
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', nargs='?', type=str, default='-')
    args = parser.parse_args()

    df = read_data([args.data])
    df = df[df.bg != -1]
    dfg = df.groupby(['bg', 'fg'])
    x = dfg.apply(calc_delta)
    x = x.reset_index()
    x.to_csv(sys.stdout, index=False)
Beispiel #7
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis]')
    parser.add_argument('data', nargs='?', type=str, default='-')
    parser.add_argument('--alpha', type=float, default=0.01)

    args = parser.parse_args()
    df = read_data([args.data])

    groups = ['bg', 'subject']

    gpd = df.groupby(groups)
    dfg = gpd.apply(chi_squared_sizes)
    dfg = dfg.reset_index()
    dfg.rename(columns={'level_2': 'combination'}, inplace=True)
    test_significance(dfg, args.alpha)
    dfg.to_csv(sys.stdout, index=False)
Beispiel #8
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis [SizeRel]')
    parser.add_argument('--data', type=str, default=['-'])
    parser.add_argument('--mean', action='store_true', default=False)
    args = parser.parse_args()

    df = read_data(args.data)
    df = df[df.bg != -1]

    subjects = df['subject'].unique()
    have_avg = len(subjects) == 1 and '_' in subjects[0]

    if have_avg:
        print('[I] sizerel: using average method!', file=sys.stderr)
        x = calc_sizerel_avg(df, args)
    else:
        x = calc_sizerel(df, args)

    x.to_csv(sys.stdout, ignore_index=have_avg)
Beispiel #9
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', type=str, nargs='?', default='-')
    parser.add_argument('over', choices=['surrounds', 'size'])
    parser.add_argument('--method',
                        choices=['mean', 'regress', 'last'],
                        default='regress')
    parser.add_argument('--no-s',
                        dest='nos',
                        action='store_true',
                        default=False)

    args = parser.parse_args()
    df = read_data([args.data])

    if args.over == 'surrounds':
        slope_avg_surrounds(df, args)
    else:
        slope_avg_sizes(df, args)
Beispiel #10
0
def main():
    parser = argparse.ArgumentParser(description='CT analysis - Filter')
    parser.add_argument('--data', nargs='+', type=str, default=['-'])
    subparsers = parser.add_subparsers(help='sub-command help')

    sp_r2a = subparsers.add_parser('rel2abs', help='a help')
    sp_r2a.add_argument('--no-extend',
                        action='store_false',
                        default=True,
                        dest='extend')
    sp_r2a.set_defaults(dispatch=rel2abs)

    as_r2a = subparsers.add_parser('abs-shift', help='a help')
    as_r2a.set_defaults(dispatch=abs_shift)

    args = parser.parse_args()

    df = read_data(args.data)
    df = args.dispatch(df, args)
    df.to_csv(sys.stdout, index=False)
Beispiel #11
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('subject', type=str)
    parser.add_argument('olddata', type=str)
    parser.add_argument('data', nargs='?', type=str, default='-')
    parser.add_argument('--inner', action='store_true', default=False)
    parser.add_argument('--chi2', action='store_true', default=False)
    parser.add_argument('--alpha', type=float, default=0.01)

    args = parser.parse_args()
    df = read_data([args.data])

    if args.subject not in df.subject.unique():
        print('Subject not in new data!', file=sys.stderr)
        sys.exit(-1)

    df = df[df.subject == args.subject]
    df = df[df.size == 40]

    old_df = pd.read_csv(args.olddata)
    old_df['size'] = 40

    old_df.columns = ['bg', 'fg', 'oshift', 'oerr', 'size']
    dfi = df.set_index(['size', 'bg', 'fg'])
    dfo = old_df.set_index(['size', 'bg', 'fg'])

    kwargs = {}
    if args.chi2 or args.inner:
        kwargs['join'] = 'inner'

    dfa = pd.concat([dfi, dfo], axis=1, **kwargs)
    x = dfa.reset_index()
    x.subject = args.subject

    if args.chi2:
        test_significance(x, alpha=args.alpha)
    else:
        x.to_csv(sys.stdout, index=False)
Beispiel #12
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', nargs='?', type=str, default='-')
    args = parser.parse_args()

    df = read_data([args.data])

    gpd = df.groupby(['fg', 'bg', 'subject'])
    x = gpd.apply(find_max)
    x.reset_index(inplace=True)

    foo = max_spread(x)
    foo.to_csv(sys.stdout, index=False)

    gx = x.groupby(['bg', 'subject'])
    imax = x.ix[gx.upper.idxmax()]
    imax.to_csv(sys.stdout, index=False)

    foo.set_index(['bg', 'subject'])
    imax.set_index(['bg', 'subject'])

    foo['dfg'] = foo['fg'] - imax['fg']
    foo.to_csv(sys.stdout, index=False)
Beispiel #13
0
def main():
    parser = argparse.ArgumentParser(description='CT - Analysis')
    parser.add_argument('data', type=str, nargs='?', default='-')
    parser.add_argument('--single', action='store_true', default=False)
    parser.add_argument('--style', nargs='*', type=str, default=['ck'])
    parser.add_argument('--color', default='seq_bmr', type=str)
    parser.add_argument('-S', '--save', dest='save', default=False, action='store_true')
    parser.add_argument('--no-legend', dest='legend', action='store_false', default=True)
    parser.add_argument('--no-title', dest='no_title', action='store_true', default=False)
    parser.add_argument('--ylim', default=None, type=float)
    parser.add_argument('--vertical', default=False, action='store_true')
    parser.add_argument('-H', '--height', dest='height', type=float, default=13.7)
    parser.add_argument('-W', '--width', dest='width', type=float, default=24.7)
    parser.add_argument('-U', '--unit', dest='unit', type=str, default='cm')
    parser.add_argument('-P', '--path', dest='path', type=str, default=None)
    parser.add_argument('-F', '--filename', dest='filename', type=str, default=None)
    parser.add_argument('--scale', default=1, type=float)
    parser.add_argument('--daylight', default=False, action='store_true')
    parser.add_argument('--annotate', default=None)
    args = parser.parse_args()

    df = read_data([args.data])
    print(df, file=sys.stderr)

    plt.style.use(args.style)

    if 'shift' in df.columns and 'N' not in df.columns:
        fig = plot_shifts_individual(df, args)
    elif 'shift' in df.columns and 'bg' not in df.columns:
        fig = plot_shifts_bgavg(df, args)
    elif 'oshift' in df.columns:
        plotter = CompareShiftPlotter(df, args)
        fig = plotter()
    elif 'shift' in df.columns:
        plotter = ShiftPlotter.make(df, args)
        if args.annotate:
            data = read_data([args.annotate])
            plotter.annotate_fgs(data)
        fig = plotter()
    elif 'delta' in df.columns:
        fig = plot_delta_combined(df, args)
    elif 'm_plus' in df.columns:
        fig = plot_sizerel(df, args)
    elif 'm_mean' in df.columns:
        fig = plot_sizerel_combined(df, args)
    elif 'duration' in df.columns:
        plotter = ShiftPlotter.make(df, args, column='duration')
        fig = plotter()
    elif 'szdiff' in df.columns:
        plotter = ShiftPlotter.make(df, args, column='szdiff')
        fig = plotter()
    elif 'spread' in df.columns and (len(df) > 10):
        #plotter = ShiftPlotter.make(df, args, column='spread')
        #fig = plotter()
        #fig = plot_spread_polar(df, args)
        fig = scatter_spread(df, args)
    elif 'spread' in df.columns or 'slope_mean_abs' in df.columns:
        fig = plot_spread_polar(df, args)
    else:
        raise ValueError('Unknown data set')

    if args.save:
        for f in fig:
            ggsave(plot=f, filename=args.filename, path=args.path,
                   width=args.width, height=args.height, units=args.unit,
                   dpi=600, scale=args.scale)
    else:
        plt.show()