From 2afa7e2e08a6908093545d5d120c63b33af6c03f Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 3 May 2022 13:57:01 -0400 Subject: [PATCH] 19073: Remove dup tags (>1 ref placement) from tilestats bed file. refs #19073 Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- tilestats.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tilestats.go b/tilestats.go index 733b0fda82..d870d7bb7d 100644 --- a/tilestats.go +++ b/tilestats.go @@ -140,9 +140,22 @@ func (cmd *tilingStats) RunCommand(prog string, args []string, stdin io.Reader, seqnames = append(seqnames, seqname) } sort.Strings(seqnames) + // Mark duplicate tags (tags that place more than once + // on the reference) + duptag := map[tagID]bool{} + for _, seqname := range seqnames { + for _, libref := range cseq.TileSequences[seqname] { + if dup, seen := duptag[libref.Tag]; seen && !dup { + duptag[libref.Tag] = true + } + } + } for _, seqname := range seqnames { pos := 0 for _, libref := range cseq.TileSequences[seqname] { + if duptag[libref.Tag] { + continue + } tiledata := reftiledata[libref] if len(tiledata) <= taglen { err = fmt.Errorf("bogus input data: ref tile libref %v has len %d < taglen %d", libref, len(tiledata), taglen) -- 2.30.2