var mtx sync.Mutex
var cgs []CompactGenome
tilelib := tileLibrary{
- includeNoCalls: true,
+ retainNoCalls: true,
}
- err = tilelib.LoadGob(context.Background(), input, func(cg CompactGenome) {
+ err = tilelib.LoadGob(context.Background(), input, strings.HasSuffix(*inputFilename, ".gz"), func(cg CompactGenome) {
if *pick != "" && *pick != cg.Name {
return
}
bedbufw = bufio.NewWriter(bedout)
}
- err = cmd.export(bufw, bedout, input, tilelib.taglib.keylen, refseq, cgs)
+ err = cmd.export(bufw, bedout, input, strings.HasSuffix(*inputFilename, ".gz"), tilelib.taglib.keylen, refseq, cgs)
if err != nil {
return 1
}
return 0
}
-func (cmd *exporter) export(out, bedout io.Writer, librdr io.Reader, taglen int, refseq map[string][]tileLibRef, cgs []CompactGenome) error {
+func (cmd *exporter) export(out, bedout io.Writer, librdr io.Reader, gz bool, taglen int, refseq map[string][]tileLibRef, cgs []CompactGenome) error {
need := map[tileLibRef]bool{}
var seqnames []string
for seqname, librefs := range refseq {
log.Infof("export: loading %d tile variants", len(need))
tileVariant := map[tileLibRef]TileVariant{}
- err := DecodeLibrary(librdr, func(ent *LibraryEntry) error {
+ err := DecodeLibrary(librdr, gz, func(ent *LibraryEntry) error {
for _, tv := range ent.TileVariants {
libref := tileLibRef{Tag: tv.Tag, Variant: tv.Variant}
if need[libref] {
continue
}
tagcoverage++
- genometile := tileVariant[tileLibRef{Tag: libref.Tag, Variant: variant}]
if variant == libref.Variant {
continue
}
+ genometile := tileVariant[tileLibRef{Tag: libref.Tag, Variant: variant}]
+ if len(genometile.Sequence) == 0 {
+ // Hash is known but sequence
+ // is not, e.g., retainNoCalls
+ // was false during import
+ continue
+ }
refSequence := reftile.Sequence
// If needed, extend the reference
// sequence up to the tag at the end