def test_circular_tuning_model(self): data = self.sc.parallelize([(1, array([1.5, 2.3, 6.2, 5.1, 3.4, 2.1]))]) s = array([-pi/2, -pi/3, -pi/4, pi/4, pi/3, pi/2]) model = TuningModel.load(s, "circular") params = model.fit(data) tol = 1E-4 # to handle rounding errors assert(allclose(params.map(lambda (_, v): v).collect()[0], array([0.10692, 1.61944]), atol=tol))
def test_gaussian_tuning_model(self): data = self.sc.parallelize([(1, array([1.5, 2.3, 6.2, 5.1, 3.4, 2.1]))]) s = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6]) model = TuningModel.load(s, "gaussian") params = model.fit(data) tol = 1E-4 # to handle rounding errors assert(allclose(params.map(lambda (_, v): v).collect()[0], array([0.36262, 0.01836]), atol=tol))
def test_circular_tuning_model(self): data = self.sc.parallelize([(1, array([1.5, 2.3, 6.2, 5.1, 3.4, 2.1]))]) s = array([-pi / 2, -pi / 3, -pi / 4, pi / 4, pi / 3, pi / 2]) model = TuningModel.load(s, "circular") params = model.fit(data) tol = 1E-4 # to handle rounding errors assert (allclose(params.map(lambda (_, v): v).collect()[0], array([0.10692, 1.61944]), atol=tol))
def test_gaussian_tuning_model(self): data = self.sc.parallelize([(1, array([1.5, 2.3, 6.2, 5.1, 3.4, 2.1]))]) s = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6]) model = TuningModel.load(s, "gaussian") params = model.fit(data) tol = 1E-4 # to handle rounding errors assert (allclose(params.map(lambda (_, v): v).collect()[0], array([0.36262, 0.01836]), atol=tol))
choices=("raw", "dff", "dff-highpass", "sub"), default="raw", required=False) parser.add_argument("--regressmodelfile", type=str) parser.add_argument("--regressmode", choices=("linear", "bilinear"), help="form of regression") args = parser.parse_args() sc = SparkContext(args.master, "tuning") if args.master != "local": egg = glob.glob(os.path.join(os.environ['THUNDER_EGG'], "*.egg")) sc.addPyFile(egg[0]) data = load(sc, args.datafile, args.preprocess) tuningmodel = TuningModel.load(args.tuningmodelfile, args.tuningmode) if args.regressmodelfile is not None: # use regression results regressmodel = RegressionModel.load(args.regressmodelfile, args.regressmode) betas, stats, resid = regressmodel.fit(data) params = tuningmodel.fit(betas) else: # use data params = tuningmodel.fit(data) outputdir = args.outputdir + "-tuning" save(params, outputdir, "params", "matlab")
# compute mean map vals = Stats("mean").calc(data) save(vals,outputdir,"mean_vals","matlab") # compute local cor if args.neighbourhood != 0: cor = LocalCorr(neighborhood=args.neighbourhood).calc(data) save(cor,outputdir,"local_corr","matlab") # if stim argument is not default if args.stim != '-': # parse into different stim names p = re.compile('-') stims = p.split(args.stim) # compute regression for i in range(len(stims)): modelfile = os.path.join(args.datafolder, args.basename + stims[i]) m = RegressionModel.load(modelfile, args.regressmode) betas, stats, resid = m.fit(data) t = TuningModel.load(modelfile, args.tuningmode) tune = t.fit(betas) out_name = "stats_" + stims[i] save(stats, outputdir, out_name, "matlab") out_name = "tune_" + stims[i] save(tune, outputdir, out_name, "matlab")