9 "git.arvados.org/arvados.git/sdk/go/arvados"
12 type pythonPCA struct{}
14 func (cmd *pythonPCA) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
18 fmt.Fprintf(stderr, "%s\n", err)
21 flags := flag.NewFlagSet("", flag.ContinueOnError)
22 flags.SetOutput(stderr)
23 projectUUID := flags.String("project", "", "project `UUID` for output data")
24 inputFilename := flags.String("i", "-", "input `file`")
25 err = flags.Parse(args)
26 if err == flag.ErrHelp {
29 } else if err != nil {
33 runner := arvadosContainerRunner{
34 Name: "lightning pca",
35 Client: arvados.NewClientFromEnv(),
36 ProjectUUID: *projectUUID,
40 err = runner.TranslatePaths(inputFilename)
44 runner.Prog = "python3"
45 runner.Args = []string{"-c", `import sys
47 from sklearn.decomposition import PCA
48 scipy.save(sys.argv[2], PCA(n_components=4).fit_transform(scipy.load(sys.argv[1])))`, *inputFilename, "/mnt/output/pca.npy"}
50 output, err = runner.Run()
54 fmt.Fprintln(stdout, output+"/pca.npy")