Fix duplicate entries in slice-numpy annotations.
authorTom Clegg <tom@tomclegg.ca>
Mon, 1 Nov 2021 14:27:04 +0000 (10:27 -0400)
committerTom Clegg <tom@tomclegg.ca>
Mon, 1 Nov 2021 14:42:05 +0000 (10:42 -0400)
refs #17763

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

slicenumpy.go

index fff70d7379f81aa90e50c2d917bbf5c268ffee7a..5c55b35af0a26eabb9217be302a8401e22cb0042 100644 (file)
@@ -339,7 +339,14 @@ func (cmd *sliceNumpy) RunCommand(prog string, args []string, stdin io.Reader, s
                                outcol := tag - tagID(tagstart)
                                reftilestr := strings.ToUpper(string(rt.tiledata))
                                remap := variantRemap[tag-tagstart]
+                               done := make([]bool, len(variants))
                                for v, tv := range variants {
+                                       v := remap[v]
+                                       if done[v] {
+                                               continue
+                                       } else {
+                                               done[v] = true
+                                       }
                                        if len(tv.Sequence) < taglen || !bytes.HasSuffix(rt.tiledata, tv.Sequence[len(tv.Sequence)-taglen:]) {
                                                continue
                                        }
@@ -349,7 +356,7 @@ func (cmd *sliceNumpy) RunCommand(prog string, args []string, stdin io.Reader, s
                                        diffs, _ := hgvs.Diff(reftilestr, strings.ToUpper(string(tv.Sequence)), 0)
                                        for _, diff := range diffs {
                                                diff.Position += rt.pos
-                                               fmt.Fprintf(annow, "%d,%d,%d,%s:g.%s,%s,%d,%s,%s,%s\n", tag, outcol, remap[v], rt.seqname, diff.String(), rt.seqname, diff.Position, diff.Ref, diff.New, diff.Left)
+                                               fmt.Fprintf(annow, "%d,%d,%d,%s:g.%s,%s,%d,%s,%s,%s\n", tag, outcol, v, rt.seqname, diff.String(), rt.seqname, diff.Position, diff.Ref, diff.New, diff.Left)
                                        }
                                }
                        }