On Tue, Sep 17, 2013 at 3:03 AM, Bjoern Gruening <bjoern.gruening@gmail.com> wrote:
Hi all,
that is now implemented in:
https://bitbucket.org/galaxy/galaxy-central/pull-request/219/implementation-...
Any comments are much appreciated.
Fantastic work, I like this a lot.
Is it still to complicated?
Greg and Dave can we refactor the set_env_var functionality so we can set this automatically for the r-environment or even the python-environment?
Greg and/or Dave's comments on this point would be great. But, just to clarify this point the Python version does set its environment automatically: https://bitbucket.org/galaxy/galaxy-central/src/48fad71361b3075c85c7d365dd52... My vote is that you just add a similar command for R - even if the code for doing so is sort of verbose for right now - and then once the R/Ruby/Python (Perl?) stuff is added we revisit and refactor to remove duplicated code. Again, Greg or Dave should weigh in though :). Thanks Bjoern, great stuff! -John
If that patch will be merged my plan is to write a short wiki page with a 'best practice for R package development'. Furthermore, I will try to create a small script that will obtain the dependency tree of all the required tarballs.
Speaking of tarballs, currently I just download them and host them in a separate github repository. That is not ideal and I will start a new discussion in one of my next mails about one central place.
Thanks! Bjoern
Cool work. I was thinking something like this would be needed (https://github.com/viking/Renv), but I like your approach better.
The one think I would say is that, like Python with setup_venv, if this is best practices Galaxy should provide some high level support for this. I was thinking your package install could look something like this:
<package name="deseq2" version="1.0.17"> <install version="1.0"> <actions> <action type="setup_r_environment"> <base_r changeset_revision="bae5c9880b71" name="package_r_3_0_1" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu" /> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/BiocGenerics_0.6.0.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/IRanges_1.18.2.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/GenomicRanges_1.12.4.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/Rcpp_0.10.4.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/RcppArmadillo_0.3.900.0.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/locfit_1.5-9.1.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/Biobase_2.20.1.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/DBI_0.2-7.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/RSQLite_0.11.4.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/AnnotationDbi_1.22.6.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/xtable_1.7-1.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/XML_3.98-1.1.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/annotate_1.38.0.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/genefilter_1.42.0.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/RColorBrewer_1.0-5.tar.gz</r_package> <r_package>https://github.com/bgruening/download_store/raw/master/DESeq2-1_0_18/DESeq2_1.0.18.tar.gz</r_package> </action> <!-- Galxay provides plumbing for making package directory, settings PATH and R_LIBS and running install.packages via Rscript --> </actions> </install> </package>
Obviously, someone would need to implement the action type "setup_r_environment", but frankly I believe you have already done most (or at least a large amount) of the work in demonstrating how it should be implemented and that it is feasible.
-John
On Mon, Aug 5, 2013 at 11:10 AM, Bjoern Gruening <bjoern.gruening@gmail.com> wrote:
Dear Commissioners,
I have spent some time in prototyping an R wrapper for DESeq2 and RPy2. In the end I will skip RPy2 as dependency, because I will include a pure R-script. Currently it's more or less a prototype. My main Aim was to make R and RPy2 a first class citizen in the Tool Shed and to make it easy to write tools in R in a reproducible way.
The result looks really simple, imho: http://testtoolshed.g2.bx.psu.edu/view/bgruening/deseq2
As Ross already investigated [1] ... to make the R and a R package really reproducible is really hard or not possible at all with the R package management system. What I did is to track the dependencies down and upload the tarballs to some webspace and manually install them via install.packages().
http://testtoolshed.g2.bx.psu.edu/view/bgruening/package_deseq2_1_0_17
Steps to write a R-wrapper: - link to the package_r_3_0_1 - (optionally link to package_rpy2_2_3_6) - upload all dependencies of your R package to github/bitbucket ... - write a wrapper that is fetching these packages and install them in the right order to your own R package repository, not the basic R installation
What do you think, is that to complicated? If you agree witch such an approach I will write a "best practice" wiki page.
As a side note, this is using my 'complicated' R orphan tool dependency with atlas dependency. But I tweaked it a little bit with the new tool shed features to fail silently and fallback to a non-atlas mode. So OSX users, should be able to install it, finally :)
Thanks! Bjoern
[1] Subject: "Re: [galaxy-iuc] [Bioc-devel] finding specific (outdated!) bioc package archives?"
_______________________________________________ galaxy-iuc mailing list galaxy-iuc@lists.bx.psu.edu http://lists.bx.psu.edu/listinfo/galaxy-iuc