예제 #1
0
 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))
예제 #2
0
 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))
예제 #3
0
 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))
예제 #4
0
 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))
예제 #5
0
                        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")
예제 #6
0
    # 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")