position int
deletion []byte
insertion []byte
+ hgvsID []byte
}
allcalls := map[string][]*call{}
var mtx sync.Mutex
if len(fields) < 8 {
return fmt.Errorf("%s line %d: wrong number of fields (%d < %d): %q", fi.Name(), lineIdx+1, len(fields), 8, line)
}
+ hgvsID := fields[3]
+ if len(hgvsID) < 2 {
+ // "=" reference or ""
+ // non-diffable tile variant
+ continue
+ }
tile, _ := strconv.ParseInt(string(fields[0]), 10, 64)
variant, _ := strconv.ParseInt(string(fields[2]), 10, 64)
position, _ := strconv.ParseInt(string(fields[5]), 10, 64)
position: int(position),
deletion: del,
insertion: ins,
+ hgvsID: hgvsID,
})
}
mtx.Lock()
if len(insertion) == 0 {
insertion = placeholder
}
- _, err = fmt.Fprintf(bufw, "%s\t%d\t.\t%s\t%s\t.\t.\t%s\n", seq, call.position, deletion, insertion, info)
+ _, err = fmt.Fprintf(bufw, "%s\t%d\t%s\t%s\t%s\t.\t.\t%s\n", seq, call.position, call.hgvsID, deletion, insertion, info)
if err != nil {
return err
}