[Bioc-devel] Problem of circular depedencies in package

Hervé Pagès hpages at fredhutch.org
Mon Sep 19 19:00:10 CEST 2016


On 09/19/2016 07:44 AM, Benilton Carvalho wrote:
> My understanding is that plasFIA should be in the Suggests field (and not
> in Depends).

Right. That's the typical way to go. And your users will benefit
from having the software package Suggests and not Depends on the
data package, because then they won't be forced to download tens or
hundreds of mega of data that they don't need for their analysis.

Cheers,
H.

>
> On Mon, Sep 19, 2016 at 11:31 AM DELABRIÈRE Alexis <Alexis.DELABRIERE at cea.fr>
> wrote:
>
>> Hi,
>>
>> 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
>>      pfile=file.path(find.package("plasFIA"), "data","plasSet.rda")
>>      load(pfile)
>>       #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.
>>      save(plasSet,file=pfile)
>> }
>>
>> 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.
>>
>>
>> Alexis Delabriere
>> PhD Student,
>> Laboratoire d'Analyse de Données et d'Intelligence des Systèmes,
>> CEA Saclay,
>> DRT/LIST/DM2I/LADIS
>>
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the Bioc-devel mailing list