refs #18581
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>
throttleCPU := throttle{Max: runtime.GOMAXPROCS(0)}
for tag, variants := range seq {
tag, variants := tag, variants
throttleCPU := throttle{Max: runtime.GOMAXPROCS(0)}
for tag, variants := range seq {
tag, variants := tag, variants
- throttleCPU.Acquire()
- go func() {
- defer throttleCPU.Release()
+ throttleCPU.Go(func() error {
count := make(map[[blake2b.Size256]byte]int, len(variants))
rt := reftile[tag]
count := make(map[[blake2b.Size256]byte]int, len(variants))
rt := reftile[tag]
v := cg.Variants[idx+allele]
if v > 0 && len(variants[v].Sequence) > 0 {
count[variants[v].Blake2b]++
v := cg.Variants[idx+allele]
if v > 0 && len(variants[v].Sequence) > 0 {
count[variants[v].Blake2b]++
- if tag == cmd.debugTag {
- log.Printf("tag %d cg %s allele %d tv %d hash %x count is now %d", tag, cgname, allele, v, variants[v].Blake2b[:3], count[variants[v].Blake2b])
- }
+ }
+ if v > 0 && tag == cmd.debugTag {
+ log.Printf("tag %d cg %s allele %d tv %d hash %x count is now %d", tag, cgname, allele, v, variants[v].Blake2b[:3], count[variants[v].Blake2b])
remap[i] = rank[tv.Blake2b]
}
if tag == cmd.debugTag {
remap[i] = rank[tv.Blake2b]
}
if tag == cmd.debugTag {
- log.Printf("tag %d remap %+v", tag, remap)
+ for in, out := range remap {
+ if out > 0 {
+ log.Printf("tag %d remap %d => %d", tag, in, out)
+ }
+ }
}
variantRemap[tag-tagstart] = remap
if rt != nil {
}
variantRemap[tag-tagstart] = remap
if rt != nil {
continue
}
if cmd.filter.MaxTag >= 0 && tag > tagID(cmd.filter.MaxTag) {
continue
}
if cmd.filter.MaxTag >= 0 && tag > tagID(cmd.filter.MaxTag) {
}
remap := variantRemap[tag-tagstart]
maxv := tileVariantID(0)
}
remap := variantRemap[tag-tagstart]
maxv := tileVariantID(0)
}
}
if *onehotChunked || *onehotSingle {
}
}
if *onehotChunked || *onehotSingle {
- if tag == cmd.debugTag {
- log.WithFields(logrus.Fields{
- "cgs[2].Variants[tag*2:(tag+1)*2]": cgs[cmd.cgnames[2]].Variants[(tag-tagstart)*2 : (tag-tagstart+1)*2],
- }).Info("before tv2homhet")
- }
onehot, xrefs := cmd.tv2homhet(cgs, maxv, remap, tag, tagstart)
if tag == cmd.debugTag {
log.WithFields(logrus.Fields{
onehot, xrefs := cmd.tv2homhet(cgs, maxv, remap, tag, tagstart)
if tag == cmd.debugTag {
log.WithFields(logrus.Fields{
cols := 2 * outcol
out := make([]int16, rows*cols)
for row, name := range cmd.cgnames {
cols := 2 * outcol
out := make([]int16, rows*cols)
for row, name := range cmd.cgnames {
- out := out[row*cols:]
- outcol := 0
for col, v := range cgs[name].Variants {
tag := tagstart + tagID(col/2)
for col, v := range cgs[name].Variants {
tag := tagstart + tagID(col/2)
- if mask != nil && reftile[tag] == nil || (cmd.filter.MaxTag >= 0 && tag > tagID(cmd.filter.MaxTag)) {
+ if cmd.filter.MaxTag >= 0 && tag > tagID(cmd.filter.MaxTag) {
+ break
+ }
+ if mask != nil && reftile[tag] == nil {
- if variants, ok := seq[tag]; ok && len(variants) > int(v) && len(variants[v].Sequence) > 0 {
- out[outcol] = int16(variantRemap[tag-tagstart][v])
+ if v == 0 {
+ out[outidx] = -1 // 0 better?
+ } else if variants, ok := seq[tag]; ok && int(v) < len(variants) && len(variants[v].Sequence) > 0 {
+ out[outidx] = int16(variantRemap[tag-tagstart][v])
+ out[outidx] = -1
+ }
+ if tag == cmd.debugTag {
+ log.Printf("tag %d row %d col %d outidx %d v %d out %d", tag, row, col, outidx, v, out[outidx])