Fix some tests.
[lightning.git] / plot.go
diff --git a/plot.go b/plot.go
deleted file mode 100644 (file)
index 1d80e8a..0000000
--- a/plot.go
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright (C) The Lightning Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-package lightning
-
-import (
-       "flag"
-       "fmt"
-       "io"
-       _ "net/http/pprof"
-
-       "git.arvados.org/arvados.git/sdk/go/arvados"
-)
-
-type pythonPlot struct{}
-
-func (cmd *pythonPlot) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
-       var err error
-       defer func() {
-               if err != nil {
-                       fmt.Fprintf(stderr, "%s\n", err)
-               }
-       }()
-       flags := flag.NewFlagSet("", flag.ContinueOnError)
-       flags.SetOutput(stderr)
-       projectUUID := flags.String("project", "", "project `UUID` for output data")
-       inputFilename := flags.String("i", "-", "input `file`")
-       sampleListFilename := flags.String("samples", "", "use second column of `samples.csv` as complete list of sample IDs")
-       colormapFilename := flags.String("colormap", "", "use first two columns of `colormap.csv` as id->color mapping")
-       priority := flags.Int("priority", 500, "container request priority")
-       err = flags.Parse(args)
-       if err == flag.ErrHelp {
-               err = nil
-               return 0
-       } else if err != nil {
-               return 2
-       }
-
-       runner := arvadosContainerRunner{
-               Name:        "lightning plot",
-               Client:      arvados.NewClientFromEnv(),
-               ProjectUUID: *projectUUID,
-               RAM:         4 << 30,
-               VCPUs:       1,
-               Priority:    *priority,
-               Mounts: map[string]map[string]interface{}{
-                       "/plot.py": map[string]interface{}{
-                               "kind":    "text",
-                               "content": plotscript,
-                       },
-               },
-       }
-       err = runner.TranslatePaths(inputFilename, sampleListFilename, colormapFilename)
-       if err != nil {
-               return 1
-       }
-       runner.Prog = "python3"
-       runner.Args = []string{"/plot.py", *inputFilename, *sampleListFilename, *colormapFilename, "/mnt/output/plot.png"}
-       var output string
-       output, err = runner.Run()
-       if err != nil {
-               return 1
-       }
-       fmt.Fprintln(stdout, output+"/plot.png")
-       return 0
-}
-
-var plotscript = `
-import csv
-import os
-import os.path
-import scipy
-import sys
-
-infile = sys.argv[1]
-X = scipy.load(infile)
-
-colors = None
-if sys.argv[2]:
-    labels = {}
-    with open(sys.argv[2], 'rt') as samplelist:
-        for row in csv.reader(samplelist):
-            labels[row[1]] = '---'
-    with open(sys.argv[3], 'rt') as colormap:
-        for row in csv.reader(colormap):
-            ident=row[0]
-            label=row[1]
-            for fnm in labels:
-                if row[0] in fnm:
-                    labels[fnm] = row[1]
-    colors = []
-    labelcolors = {
-        'PUR': 'firebrick',
-        'CLM': 'firebrick',
-        'MXL': 'firebrick',
-        'PEL': 'firebrick',
-        'TSI': 'green',
-        'IBS': 'green',
-        'CEU': 'green',
-        'GBR': 'green',
-        'FIN': 'green',
-        'LWK': 'coral',
-        'MSL': 'coral',
-        'GWD': 'coral',
-        'YRI': 'coral',
-        'ESN': 'coral',
-        'ACB': 'coral',
-        'ASW': 'coral',
-        'KHV': 'royalblue',
-        'CDX': 'royalblue',
-        'CHS': 'royalblue',
-        'CHB': 'royalblue',
-        'JPT': 'royalblue',
-        'STU': 'blueviolet',
-        'ITU': 'blueviolet',
-        'BEB': 'blueviolet',
-        'GIH': 'blueviolet',
-        'PJL': 'blueviolet',
-    }
-    for fnm in sorted(labels.keys()):
-        if labels[fnm] in labelcolors:
-            colors.append(labelcolors[labels[fnm]])
-        else:
-            colors.append('black')
-
-from matplotlib.figure import Figure
-from matplotlib.patches import Polygon
-from matplotlib.backends.backend_agg import FigureCanvasAgg
-fig = Figure()
-ax = fig.add_subplot(111)
-ax.scatter(X[:,0], X[:,1], c=colors, s=60, marker='o', alpha=0.5)
-canvas = FigureCanvasAgg(fig)
-canvas.print_figure(sys.argv[4], dpi=80)
-`