from thunder import ThunderContext, ICA, export if __name__ == "__main__": parser = optparse.OptionParser(description="do independent components analysis", usage="%prog datafile outputdir k c [options]") parser.add_option("--svdmethod", choices=("direct", "em"), default="direct") parser.add_option("--maxiter", type=float, default=100) parser.add_option("--tol", type=float, default=0.000001) parser.add_option("--seed", type=int, default=0) opts, args = parser.parse_args() try: datafile = args[0] outputdir = args[1] k = int(args[2]) c = int(args[3]) except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="ica") data = tsc.loadSeries(datafile).cache() model = ICA(k=k, c=c, svdmethod=opts.svdmethod, maxiter=opts.maxiter, tol=opts.tol, seed=opts.seed) result = model.fit(data) outputdir += "-ica" export(result.a, outputdir, "a", "matlab") export(result.sigs, outputdir, "sigs", "matlab")
""" Example standalone app for principal component analysis """ import argparse from thunder import ThunderContext, PCA, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="do principal components analysis") parser.add_argument("datafile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("k", type=int) parser.add_argument("--svdmethod", choices=("direct", "em"), default="direct", required=False) args = parser.parse_args() tsc = ThunderContext.start(appName="pca") data = tsc.loadSeries(args.datafile).cache() model = PCA(args.k, args.svdmethod) model.fit(data) outputdir = args.outputdir + "-pca" export(model.comps, outputdir, "comps", "matlab") export(model.latent, outputdir, "latent", "matlab") export(model.scores, outputdir, "scores", "matlab")
if __name__ == "__main__": parser = optparse.OptionParser( description="fit a regression model", usage="%prog datafile modelfile outputdir [options]") parser.add_option("--regressmode", choices=("mean", "linear", "bilinear"), help="form of regression") parser.add_option("--k", type=int, default=2) opts, args = parser.parse_args() try: datafile = args[0] modelfile = args[1] outputdir = args[2] except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="regresswithpca") data = tsc.loadSeries(datafile) model = RegressionModel.load(modelfile, opts.regressmode) # do regression betas, stats, resid = model.fit(data) pca = PCA(opts.k).fit(betas) # do PCA traj = model.fit(data, pca.comps) # get trajectories outputdir += "-regress" export(pca.comps, outputdir, "comps", "matlab") export(pca.latent, outputdir, "latent", "matlab") export(pca.scores, outputdir, "scores", "matlab") export(traj, outputdir, "traj", "matlab")
parser = argparse.ArgumentParser( description="do independent components analysis") parser.add_argument("datafile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("k", type=int) parser.add_argument("c", type=int) parser.add_argument("--svdmethod", choices=("direct", "em"), default="direct", required=False) parser.add_argument("--maxiter", type=float, default=100, required=False) parser.add_argument("--tol", type=float, default=0.000001, required=False) parser.add_argument("--seed", type=int, default=0, required=False) args = parser.parse_args() tsc = ThunderContext.start(appName="ica") data = tsc.loadSeries(args.datafile).cache() model = ICA(k=args.k, c=args.c, svdmethod=args.svdmethod, maxiter=args.maxiter, tol=args.tol, seed=args.seed) result = model.fit(data) outputdir = args.outputdir + "-ica" export(result.a, outputdir, "a", "matlab") export(result.sigs, outputdir, "sigs", "matlab")
import optparse from thunder import ThunderContext, PCA, export if __name__ == "__main__": parser = optparse.OptionParser( description="do principal components analysis", usage="%prog datafile outputdir k [options]") parser.add_option("--svdmethod", choices=("direct", "em"), default="direct") opts, args = parser.parse_args() try: datafile = args[0] outputdir = args[1] k = int(args[2]) except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="pca") data = tsc.loadSeries(datafile).cache() model = PCA(k, opts.svdmethod) model.fit(data) outputdir += "-pca" export(model.comps, outputdir, "comps", "matlab") export(model.latent, outputdir, "latent", "matlab") export(model.scores, outputdir, "scores", "matlab")
""" Example standalone app for kmeans clustering """ import argparse from thunder import ThunderContext, KMeans, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="do kmeans clustering") parser.add_argument("datafile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("k", type=int) parser.add_argument("--maxiter", type=float, default=20, required=False) parser.add_argument("--tol", type=float, default=0.001, required=False) args = parser.parse_args() tsc = ThunderContext.start(appName="kmeans") data = tsc.loadSeries(args.datafile).cache() model = KMeans(k=args.k, maxIterations=args.maxiter).fit(data) labels = model.predict(data) outputdir = args.outputdir + "-kmeans" export(model.centers, outputdir, "centers", "matlab") export(labels, outputdir, "labels", "matlab")
""" Example standalone app for mass-unvariate regression combined with PCA """ import argparse from thunder import ThunderContext, RegressionModel, PCA, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="fit a regression model") parser.add_argument("datafile", type=str) parser.add_argument("modelfile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("regressmode", choices=("mean", "linear", "bilinear"), help="form of regression") parser.add_argument("--k", type=int, default=2) args = parser.parse_args() tsc = ThunderContext.start(appName="regresswithpca") data = tsc.loadSeries(args.datafile) model = RegressionModel.load(args.modelfile, args.regressmode) # do regression betas, stats, resid = model.fit(data) pca = PCA(args.k).fit(betas) # do PCA traj = model.fit(data, pca.comps) # get trajectories outputdir = args.outputdir + "-regress" export(pca.comps, outputdir, "comps", "matlab") export(pca.latent, outputdir, "latent", "matlab") export(pca.scores, outputdir, "scores", "matlab") export(traj, outputdir, "traj", "matlab")
from thunder import ThunderContext, NMF, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="do non-negative matrix factorization") parser.add_argument("datafile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("k", type=int) parser.add_argument("--nmfmethod", choices="als", default="als", required=False) parser.add_argument("--maxiter", type=float, default=20, required=False) parser.add_argument("--tol", type=float, default=0.001, required=False) parser.add_argument("--w_hist", type=bool, default=False, required=False) parser.add_argument("--recon_hist", type=bool, default=False, required=False) args = parser.parse_args() tsc = ThunderContext.start(appName="nmf") data = tsc.loadSeries(args.datafile).cache() nmf = NMF(k=args.k, method=args.nmfmethod, maxiter=args.maxiter, tol=args.tol, w_hist=args.w_hist, recon_hist=args.recon_hist) nmf.fit(data) outputdir = args.outputdir + "-nmf" export(nmf.w, outputdir, "w", "matlab") export(nmf.h, outputdir, "h", "matlab") if args.w_hist: export(nmf.w_convergence, outputdir, "w_convergence", "matlab") if args.recon_hist: export(nmf.recon_err, outputdir, "rec_err", "matlab")
""" Example standalone app for mass-univariate regression """ import argparse from thunder import ThunderContext, RegressionModel, export if __name__ == "__main__": parser = argparse.ArgumentParser(description="fit a regression model") parser.add_argument("datafile", type=str) parser.add_argument("modelfile", type=str) parser.add_argument("outputdir", type=str) parser.add_argument("regressmode", choices=("mean", "linear", "bilinear"), help="form of regression") args = parser.parse_args() tsc = ThunderContext.start(appName="regress") data = tsc.loadText(args.datafile, args.preprocess) result = RegressionModel.load(args.modelfile, args.regressmode).fit(data) outputdir = args.outputdir + "-regress" export(result.select('stats'), outputdir, "stats", "matlab") export(result.select('betas'), outputdir, "betas", "matlab")
""" Example standalone app for calculating series statistics """ import optparse from thunder import ThunderContext, export if __name__ == "__main__": parser = optparse.OptionParser( description="compute summary statistics on time series data", usage="%prog datafile outputdir mode [options]") parser.add_option("--preprocess", action="store_true", default=False) opts, args = parser.parse_args() try: datafile = args[0] outputdir = args[1] mode = args[2] except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="stats") data = tsc.loadSeries(datafile).cache() vals = data.seriesStat(mode) outputdir += "-stats" export(vals, outputdir, "stats_" + mode, "matlab")
""" Example standalone app for calculating series statistics """ import optparse from thunder import ThunderContext, export if __name__ == "__main__": parser = optparse.OptionParser(description="compute summary statistics on time series data", usage="%prog datafile outputdir mode [options]") parser.add_option("--preprocess", action="store_true", default=False) opts, args = parser.parse_args() try: datafile = args[0] outputdir = args[1] mode = args[2] except IndexError: parser.print_usage() raise Exception("too few arguments") tsc = ThunderContext.start(appName="stats") data = tsc.loadSeries(datafile).cache() vals = data.seriesStat(mode) outputdir += "-stats" export(vals, outputdir, "stats_" + mode, "matlab")