tidyomics / plyranges

A grammar of genomic data transformation
https://tidyomics.github.io/plyranges/
140 stars 18 forks source link

how flat is too flat? #48

Closed sa-lee closed 5 years ago

sa-lee commented 6 years ago

for things like join_overlap_inner_within_directed() have we gone too far? should we be passing things to arguments here instead? I'm not sure how much of a big deal this is with tab completion in most IDEs but it does seem inelegant.

lawremi commented 6 years ago

If that's the worst case, then I think we are OK. We have two discrete-valued parameters and need to consider all possible combinations. The autocomplete not only compensates for the length of the names: it brings the advantage of discoverability.

One question about this particular case: is it obvious which range is within the other? Is the query inside the subject or the other way around? Do we need to clarify that by something like:

join_overlap_inner_directed(query, within(subject))

which might make it obvious that the query is within the subject? This might be taking the casting too far; it's certainly not as discoverable.

You could take this further and use it to return to dplyr join verbs:

inner_join(query, over(subject))
inner_join(query, over_directed(subject))
inner_join(query, within_directed(subject))
inner_join(query, intersect(subject))
inner_join(query, intersect_within_directed(subject)) # gets bad
left_join(query, over(subject))

etc.