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)
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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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()