diff help/help-scripts/r_dep_gen.R @ 0:84361ce36a11 draft

planemo upload commit fb90aafc93e5e63acfcdac4c27cfd865cdf06c5a-dirty
author nturaga
date Tue, 19 Apr 2016 11:10:25 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/help/help-scripts/r_dep_gen.R	Tue Apr 19 11:10:25 2016 -0400
@@ -0,0 +1,92 @@
+ packageExpand = function(packagelist,fl) {
+   res = NULL
+   for (i in c(1:length(packagelist))) {
+     s = packagelist[i]
+     ls = nchar(s)
+     spos = which(substr(fl,1,ls) == s,arr.ind=T)
+     lspos = length(spos)
+     if (lspos > 0)
+       {
+       fullname = fl[spos]
+       if (grepl('*.gz',fullname)) {
+            row = paste(ps,fullname,pe,sep='')
+            res = append(res,row)
+            }
+       }
+     }
+   return(res)
+ }
+
+ getPackages = function(packs)
+   {
+   packages = unlist(tools::package_dependencies(packs, available.packages(),
+         which=c("Depends", "Imports"), recursive=TRUE))
+   packages = union(packs, packages)
+   packages
+   }
+
+ ourargs = commandArgs(TRUE)
+ if(length(ourargs)==0){
+       print("No arguments supplied.")
+    }else{
+    for(i in 1:length(ourargs)){
+        eval(parse(text=ourargs[[i]]))
+    }
+ }
+
+ unesc = function(x) {
+   res = x
+   res = gsub('__lt__','<',res)
+   res = gsub('__gt__','>',res)
+   return(res)
+ }
+
+ our_packages = strsplit(ourpackages," ")[[1]]
+ ps=unesc(xmlprefix)
+ pe="?raw=true</package>"
+
+ print(paste('tardir=',tardir,'xmlprefix=',xmlprefix,'ourpackages=',ourpackages,'OUTPATH=',OUTPATH))
+
+
+ setRepositories(ind=1:2)
+ chooseBioCmirror(ind=7,graphics=F) # canberra - use eg 1 for FredHutch
+ chooseCRANmirror(ind=5,graphics=F) # Melbourne - use 96 for texas
+
+ ifreq = function(pkg='DESeq2') {
+ if(require(package=pkg,character.only = T)){
+   print(paste(pkg,"is loaded correctly"))
+ } else {
+   print(paste("trying to install",pkg))
+   install.packages(pkg)
+   if(require(package=pkg,character.only = T)){
+   print(paste(pkg,"installed and loaded correctly"))
+   } else {
+     stop(paste("Could not install",pkg))
+   }
+ }
+ }
+
+ ifreq(pkg="BiocInstaller")
+ ifreq(pkg="pkgDepTools")
+ ifreq(pkg="Biobase")
+
+ print.noquote('Greetings! The R you have chosen is using the following repositories:')
+ print.noquote(biocinstallRepos())
+ packages = getPackages(our_packages)
+ download.packages(pkgs=packages,destdir=tardir, type="source", repos=biocinstallRepos())
+ flist = list.files(tardir)
+ allDeps = makeDepGraph(biocinstallRepos(), type="source", keep.builtin=F, dosize=F)
+ res = NULL
+ for (i in c(1:length(our_packages))) {
+   package = our_packages[i]
+   io = getInstallOrder(package, allDeps, needed.only=FALSE)
+   ares = packageExpand(packagelist=io$packages,fl=flist)
+   res = append(res,ares)
+   }
+ ures = unique(res)
+ tout = "savedeps.xml"
+ write.table(ures,file=tout,quote=F,sep="\t",row.names=F,col.names=F)
+ write.table(ures,file=OUTPATH,quote=F,sep="\t",row.names=F,col.names=F)
+ print.noquote(res)
+ sessionInfo()
+ print.noquote(date())
\ No newline at end of file