It sounds like @phaverty 's package might be your best bet, since it’s directly inspired by the R package you’re used to.
But we’ve also got BioJulia, which is undergoing a bit of a reorganization at the moment, so it might be tough to find what you’re looking for. It sounds like you might want
GenomicFeatures.jl which has intervals. Eg:
julia> i = Interval("chr1", 10000, 20000, '+', "some annotation")
sequence name: chr1
leftmost position: 10000
rightmost position: 20000
metadata: some annotation
Of note, that metadata field can be of any type, so you could store a
Dict or even a
DataFrame in the metadata field if you wanted to. That package also has
IntervalCollections, so you can group all of the intervals for a given sequence in an efficient way.
I’m not the author of this package, but the Bio.jl folks typically are trying to write code that takes advantage of julia’s awesomeness in innovative ways. So stuff might be less familiar, but ultimately may be faster than code ported from a different language (I’m not familiar with that R package, so I don’t know if it’s better or worse for what you want). That said, sometimes ease > speed, so YMMV.
Maybe @bicycle1885 or @Ward9250 might have more to say on the design philosophy for