library(Biostrings)
library(rtracklayer)
danRer10 <- import("danRer10.2bit")

seqlevels1 <- paste0("chr", c(1:25, "M"))

tmp <- CharacterList(strsplit(names(danRer10), "_"))
npart <- elementNROWS(tmp)
stopifnot(all(npart <= 2L))

idx1 <- which(npart == 1L)
stopifnot(setequal(names(danRer10)[idx1], seqlevels1))

idx2 <- which(npart == 2L)
m2 <- matrix(unlist(tmp[idx2]), ncol=2L, byrow=TRUE)
stopifnot(all(m2[ , 1L] == "chrUn"))
oo2 <- order(m2[ , 2L])
seqlevels2 <- names(danRer10)[idx2[oo2]]

danRer10_seqlevels <- c(seqlevels1, seqlevels2)

export(danRer10[danRer10_seqlevels], "danRer10.sorted.2bit")

