Bioconductor / AnnotationHub

Client for the Bioconductor AnnotationHub web resource
15 stars 13 forks source link

Shiny dependency #2

Closed lawremi closed 6 years ago

lawremi commented 6 years ago

Would there be any way to move interactiveDisplayBase to a Suggests? Installing shiny and all of its deps seems like overkill just to access an annotation web service.

lshep commented 6 years ago

After discussion with the team we feel it should stay in Imports. It is part of the featured functionality and there are many other users that use this feature and have asked for this feature specifically. This is something we will reevaluate and keep in mind when developing a newer version of AH.

lawremi commented 6 years ago

Why can't it just be in Suggests? The functionality will still work, it just has to load Shiny conditionally. I currently can't get Shiny to install on my Mac, which means I can't install ggbio to maintain it.

mtmorgan commented 6 years ago

the main function is a method on display(), which is a generic in interactiveDisplayBase, so cannot be exported from AnnotationHub without importing interactiveDisplayBase. Also, a common comment about AnnotationHub is the desire to have more visually-oriented navigation, so it seems like the next iteration of the hubs will increase rather than decrease reliance on shiny.

Not that this is the appropriate forum for it, but what's the problem with installing shiny on your computer?

lawremi commented 6 years ago

I guess that generic should be move somewhere, even independently of shiny.

I'll have to put some more hours into figuring out the shiny issue. It's failing to compile httpuv after I installed the custom clang 4.0.0 provided by CRAN to make rJava work (the -fopenmp issue). ggbio just has too many dependencies. The ensembldb integration was particularly costly. Somehow (not sure how) it forces me to install RMySQL, which means installing MySQL... all just to get ggbio installed. Frustrating!

hpages commented 6 years ago

Note that it's GenomicFeatures (which ggbio depends on) that requires RMySQL/MySQL. This is new in BioC 3.6 where makeTxDbFromEnsembl() was introduced for making a TxDb directly from the Ensembl MySQL server. Much faster and reliable than makeTxDbFromBiomart(). We'll slowly move away from biomaRt for making TxDb objects.

lawremi commented 6 years ago

Can we embed the mysql client source? Introducing a MySQL system dep for GenomicFeatures would be bad. Have you guys considered the Ensembl REST endpoint?

hpages commented 6 years ago

Dependency on RMySQL was introduced in GenomicFeatures only a few days before the 3.6 release as a response to last minute report of the BioMart service being broken (https://stat.ethz.ch/pipermail/bioc-devel/2017-October/012215.html). I believe the RMySQL Windows and Mac binaries distributed by CRAN are statically linked to the MySQL client. On Linux the mysql client is super easy to install. So it's not so bad. Doesn't seem to cause any problem so far (with 15-20k downloads per month for GenomicFeatures, nobody has complained AFAIK). Using the Ensembl REST service is probably the next thing to explore but it's hard to beat direct MySQL access in terms of efficiency.

lawremi commented 6 years ago

CRAN does not provide Mac binaries for R-devel, so developers will need to install MySQL manually.

hpages commented 6 years ago

Right, no Mac binaries for now but hopefully it's just a temporary situation. And it's a situation that happens only every other devel cycle. Installing MySQL on Mac is not too hard and should not be a problem for developers (we do it on the Mac builders just for EnsemblVEP). On Windows, I don't know, we don't install MySQL on the Windows builders (EnsemblVEP is not supported on this platform). But again, nobody has complained so far so either it's not too hard, or nobody does serious development on Windows, or those who do don't need GenomicFeatures.