Move command line tool to subdir.
[lightning.git] / annotate.go
index 7787ae231838430840d6ae4ef5631ac08750f9b6..ac34ada40fd62089ef263d3983fba75fca57661f 100644 (file)
@@ -1,4 +1,4 @@
-package main
+package lightning
 
 import (
        "bufio"
@@ -75,13 +75,13 @@ func (cmd *annotatecmd) RunCommand(prog string, args []string, stdin io.Reader,
                if err != nil {
                        return 1
                }
-               runner.Args = []string{"annotate", "-local=true", fmt.Sprintf("-variant-hash=%v", cmd.variantHash), "-max-tile-size", strconv.Itoa(cmd.maxTileSize), "-i", *inputFilename, "-o", "/mnt/output/tilevariants.tsv"}
+               runner.Args = []string{"annotate", "-local=true", fmt.Sprintf("-variant-hash=%v", cmd.variantHash), "-max-tile-size", strconv.Itoa(cmd.maxTileSize), "-i", *inputFilename, "-o", "/mnt/output/tilevariants.csv"}
                var output string
                output, err = runner.Run()
                if err != nil {
                        return 1
                }
-               fmt.Fprintln(stdout, output+"/tilevariants.tsv")
+               fmt.Fprintln(stdout, output+"/tilevariants.csv")
                return 0
        }
 
@@ -106,13 +106,13 @@ func (cmd *annotatecmd) RunCommand(prog string, args []string, stdin io.Reader,
                }
                defer output.Close()
        }
-       bufw := bufio.NewWriter(output)
+       bufw := bufio.NewWriterSize(output, 4*1024*1024)
 
        tilelib := &tileLibrary{
-               includeNoCalls:      true,
+               retainNoCalls:       true,
                retainTileSequences: true,
        }
-       err = tilelib.LoadGob(context.Background(), input, nil)
+       err = tilelib.LoadGob(context.Background(), input, strings.HasSuffix(*inputFilename, ".gz"), nil)
        if err != nil {
                return 1
        }
@@ -232,7 +232,9 @@ func (cmd *annotatecmd) annotateSequence(throttle *throttle, outch chan<- string
                for variant := 1; variant <= len(tvs); variant++ {
                        variant, hash := tileVariantID(variant), tvs[variant-1]
                        tileseq := tilelib.TileVariantSequence(tileLibRef{Tag: tag, Variant: variant})
-                       if len(tileseq) < taglen {
+                       if len(tileseq) == 0 {
+                               continue
+                       } else if len(tileseq) < taglen {
                                return fmt.Errorf("tilevar %d,%d has sequence len %d < taglen %d", tag, variant, len(tileseq), taglen)
                        }
                        var refpart []byte
@@ -275,9 +277,9 @@ func (cmd *annotatecmd) annotateSequence(throttle *throttle, outch chan<- string
                                        }
                                        refnamefield := ""
                                        if refnamecol {
-                                               refnamefield = "\t" + refname
+                                               refnamefield = "," + trimFilenameForLabel(refname)
                                        }
-                                       outch <- fmt.Sprintf("%d\t%s%s\t%s:g.%s\n", tag, varid, refnamefield, seqname, diff.String())
+                                       outch <- fmt.Sprintf("%d,%s%s,%s:g.%s\n", tag, varid, refnamefield, seqname, diff.String())
                                }
                        }()
                }