[Bioc-devel] Problem of circular depedencies in package
Alexis.DELABRIERE at cea.fr
Mon Sep 19 16:30:07 CEST 2016
I hope that it is the good place to ask this, as it is related to Bioconductor guidelines.
I have an issue of package dependency, I'm developing a package for the processing of mass spectrometry data(proFIA), it works on raw data which are quite heave (6 cleaned files weight 50 mega), so I wanted to provide a data package to test the functions(plasFIA) and build the vignettes. The two package are finished but I have an issue following the Bioconductor submission guidelines about submitting two packages, which require to submit the package which does not depend of the other in first :
My first package proFIA which is the processing package require plasFIA to build the vignette. I used a preprocessed object in the example to avoid 3 mins processing times in each examples, without that CHECK installation will be too long. To access the visualization function, the raw data are necessary, that's why the dependence to plasFIA is mandatory.
My second package plasFIA contains the data and the processing files. In data directory, there is an RData file which contain an object from proFIA package of class "proFIAset" to store the information about the package. The complicated part now : this object require a path to the raw file to allows the visualization function to work. So in the .onLoad function I do the following thing :
.onLoad <- function(libname, pkgname)
#Finding and loading the RData object
#Creating the new paths to raw files in the meML directory.
nms <- file.path(system.file(package="plasFIA"),"mzML",
gsub("/", .Platform$file.sep, basename(attr(plasSet, "classes")[,1])))
#Setting the new paths
plasSet at classes[,1] <- nms
plasSet at path<-file.path(find.package("plasFIA"), "mzML")
#Saving the object.
Which work, but if I don't put "proFIA" in depend "plasFIA" CHECK fails. And if I put it I have a circular dependency.
I know that a similar issue exists for "faahko" and "xcms" package in Bioconductor, and I did not find a better solution.
Do you know a solution to overcome the circular dependency or, is this okay for BioConductor in this setup ?
I just opened an issue in the contribution part or Bioconductor, so you can go there to see the code.
Laboratoire d'Analyse de Données et d'Intelligence des Systèmes,
[[alternative HTML version deleted]]
More information about the Bioc-devel