- if start == 0 {
- // For now, just write all the genomes and refs
- // to the first file
- for name, cg := range tilelib.compactGenomes {
- err := encoders[start].Encode(LibraryEntry{CompactGenomes: []CompactGenome{{
- Name: name,
- Variants: cg,
- }}})
- if err != nil {
- errs <- err
- return
- }
- }
- for name, tseqs := range tilelib.refseqs {
- err := encoders[start].Encode(LibraryEntry{CompactSequences: []CompactSequence{{
- Name: name,
- TileSequences: tseqs,
- }}})
- if err != nil {
- errs <- err
- return
- }
+ if refidx := start - ntilefiles; refidx >= 0 {
+ // write each ref to its own file
+ // (they seem to load very slowly)
+ name := refnames[refidx]
+ errs <- encoders[start].Encode(LibraryEntry{CompactSequences: []CompactSequence{{
+ Name: name,
+ TileSequences: tilelib.refseqs[name],
+ }}})
+ return
+ }
+ for i := start; i < len(cgnames); i += ntilefiles {
+ err := encoders[start].Encode(LibraryEntry{CompactGenomes: []CompactGenome{{
+ Name: cgnames[i],
+ Variants: tilelib.compactGenomes[cgnames[i]],
+ }}})
+ if err != nil {
+ errs <- err
+ return