From: Tom Clegg Date: Thu, 25 Nov 2021 19:41:01 +0000 (-0500) Subject: More debug messages and error checks. X-Git-Url: https://git.arvados.org/lightning.git/commitdiff_plain/ab0f3eebd739cb10951a6907f41d49d7ce6bf8b1 More debug messages and error checks. refs #18438 Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/mask.go b/mask.go index 7d614fa4aa..9daf606d66 100644 --- a/mask.go +++ b/mask.go @@ -27,6 +27,9 @@ type mask struct { } func (m *mask) Add(seqname string, start, end int) { + if m.frozen { + panic("bug: (*mask)Add() called after Freeze()") + } if m.intervals == nil { m.intervals = map[string][]interval{} } @@ -48,6 +51,17 @@ func (m *mask) Check(seqname string, start, end int) bool { return m.itrees[seqname].check(0, interval{start, end}) } +func (m *mask) Len() int { + if !m.frozen { + return 0 + } + n := 0 + for _, intervals := range m.intervals { + n += len(intervals) + } + return n +} + func (m *mask) freeze(in []interval) intervalTree { if len(in) == 0 { return nil diff --git a/slicenumpy.go b/slicenumpy.go index fe1a77497e..91e7cb2622 100644 --- a/slicenumpy.go +++ b/slicenumpy.go @@ -211,7 +211,6 @@ func (cmd *sliceNumpy) RunCommand(prog string, args []string, stdin io.Reader, s for seqname, cseq := range refseq { seqname, cseq := seqname, cseq throttleCPU.Go(func() error { - defer log.Printf("... %s done", seqname) pos := 0 for _, libref := range cseq { rt := reftile[libref.Tag] @@ -221,23 +220,30 @@ func (cmd *sliceNumpy) RunCommand(prog string, args []string, stdin io.Reader, s } pos += len(rt.tiledata) - taglen } + log.Printf("... %s done, len %d", seqname, pos) return nil }) } - throttleCPU.Wait() + err = throttleCPU.Wait() + if err != nil { + return 1 + } var mask *mask if *regionsFilename != "" { + log.Printf("loading regions from %s", *regionsFilename) mask, err = makeMask(*regionsFilename, *expandRegions) if err != nil { return 1 } - // Delete reftile entries for masked-out regions. + log.Printf("before applying mask, len(reftile) == %d", len(reftile)) + log.Printf("deleting reftile entries for regions outside %d intervals", mask.Len()) for tag, rt := range reftile { if !mask.Check(strings.TrimPrefix(rt.seqname, "chr"), rt.pos, rt.pos+len(rt.tiledata)) { delete(reftile, tag) } } + log.Printf("after applying mask, len(reftile) == %d", len(reftile)) } var toMerge [][]int16