public AllMultilevelCoefs(CoefArgs args) throws IOException { this.args = args; files = new Vector<File>(); keys = new Vector<String>(); coefs = new Vector<MultilevelCoefs>(); File dir = args.dir(); for (int i = 0; i < args.keys.length; i++) { keys.add(args.keys[i]); File f = CoefArgs.coefFile(dir, args.keys[i]); files.add(f); coefs.add(new MultilevelCoefs(f)); System.out.println(String.format("Loaded: %s", args.keys[i])); } }
public static void main(String[] argarray) { CoefArgs args = CoefArgs.parse(argarray); try { AllMultilevelCoefs coefs = new AllMultilevelCoefs(args); Matrix matrix = coefs.matrix(true); Matrix covar = matrix.transpose().times(matrix); SingularValueDecomposition svd = covar.svd(); Matrix U = svd.getU(); double[] d1 = normalize(column(U, 1)); double[] d2 = normalize(column(U, 2)); String[] genes = coefs.genes(); DataFrame<MultilevelCoefs.XYPoint> points = new DataFrame<MultilevelCoefs.XYPoint>(MultilevelCoefs.XYPoint.class); for (int i = 0; i < genes.length; i++) { double[] gr = row(matrix, i); double x = inner(gr, d1), y = inner(gr, d2); MultilevelCoefs.XYPoint point = new MultilevelCoefs.XYPoint(x, y, genes[i]); points.addObject(point); System.out.println(point.toString()); } System.out.println("U: "); println(U, System.out); ModelScatter scatter = new ModelScatter(); scatter.addModels(points.iterator()); scatter.setProperty(ModelScatter.colorKey, Coloring.clearer(Color.red)); coefs.save( new File( String.format( "C:\\Documents and Settings\\tdanford\\Desktop\\sigma_%s.txt", args.compare))); new ModelScatter.InteractiveFrame(scatter, "PCA"); } catch (IOException e) { e.printStackTrace(); } }