hi,
about a year ago we had a developer's forum session devoted to this
subject, you might find useful the discussion we had starting on minute
29th here:
https://www.youtube.com/watch?v=xsM4nN85cok
part of the result of that discussion is in section 7 of this vignette:
http://bioconductor.org/packages/release/bioc/vignettes/BiocPkgTools/inst/doc/BiocPkgTools.html#dependency-burden
which illustrates how to calculate some metrics on the dependency burden
of a package using functionality we implemented in the package
BiocPkgTools, in the case of minfi, this is the output:
library(BiocPkgTools)
depdf <- buildPkgDependencyDataFrame(repo=c("BioCsoft", "CRAN"),
dependencies=c("Depends", "Imports"))
minfidepmetrics <- pkgDepMetrics("minfi", depdf)
minfidepmetrics
ImportedAndUsed Exported Usage DepOverlap
DepGainIfExcluded
DelayedArray 1 188 0.53
0.11 0
grDevices 1 112 0.89
0.01 0
data.table 1 100 1.00
0.01 1
MASS 1 78 1.28
0.04 0
limma 4 310 1.29
0.04 0
reshape 1 67 1.49
0.03 2
nlme 2 109 1.83
0.05 1
utils 4 216 1.85
0.01 0
lattice 3 144 2.08
0.05 0
BiocGenerics 5 141 3.55
0.04 0
stats 16 449 3.56
0.01 0
siggenes 2 51 3.92
0.13 3
genefilter 2 49 4.08
0.38 3
Biobase 6 128 4.69
0.05 0
GenomeInfoDb 3 60 5.00
0.09 0
preprocessCore 2 39 5.13
0.02 1
GEOquery 1 17 5.88
0.32 4
HDF5Array 5 72 6.94
0.15 4
bumphunter 1 14 7.14
0.76 25
BiocParallel 6 68 8.82
0.07 0
Biostrings 23 240 9.58
0.11 0
graphics 9 87 10.34
0.01 0
IRanges 40 254 15.75
0.06 0
S4Vectors 47 278 16.91
0.05 0
DelayedMatrixStats 14 74 18.92
0.14 2
GenomicRanges 23 106 21.70
0.12 0
RColorBrewer 1 4 25.00
0.01 1
SummarizedExperiment 23 82 28.05
0.19 0
illuminaio 1 3 33.33
0.04 2
quadprog 1 2 50.00
0.01 1
beanplot 1 1 100.00
0.01 1
mclust NA 271 NA
0.04 1
nor1mix NA 38 NA
0.02 1
so, with the exception of 'bumphunter', it doesn't look like the removal
of a single dependency will give you much gain. it seems that minfi
imports a single functionality from bumphunter:
imp <- pkgDepImports("minfi")
imp[imp$pkg %in% "bumphunter", ]
# A tibble: 1 x 2
pkg fun
<chr> <chr>
1 bumphunter bumphunter
you can explore the gain by excluding combinations of package
dependencies with the function 'pkgCombDependencyGain()':
pcd <- pkgCombDependencyGain("minfi", depdf, maxNbr=2L)
dim(pcd)
[1] 561 3
head(pcd[order(pcd$DepGain, decreasing = TRUE), ])
Packages NbrExcl DepGain
160 bumphunter, GEOquery 2 43
175 bumphunter, genefilter 2 40
98 BiocParallel, bumphunter 2 31
161 bumphunter, HDF5Array 2 29
165 bumphunter, siggenes 2 28
157 bumphunter, DelayedMatrixStats 2 27
have fun with the dependency exploration game! :)
robert.
On 3/3/21 1:28 PM, Kasper Daniel Hansen wrote:
I am happy to engage in a discussion about this, although I'm not sure that
I am ultimately interested in having two packages.
But first I would like to look at some dependency graphs. I am wondering
what makes the dependency tree this big (and my tree is smaller than yours,
but still big: library(minfi) gives me 16 attached packages and 89 loaded
packages for the current release). This includes some part of the tidyverse
which we don't really use much though (and which could probably get removed
from the package with almost no work).
What's the current best tool for dependency graphs in Bioconductor?
pkgDepTools?
Best,
Kasper
On Mon, Mar 1, 2021 at 6:24 PM Carlos Ruiz <carlos.r...@isglobal.org> wrote:
Dear Bioc developers,
I have been developing different packages to analyze DNA methylation. In
all of them, I have used minfi's class GenomicRatioSet to manage DNA
methylation data, in order to take profit of the features of
RangedSummarizedExperiment.
Although I am very happy with the potential of the class, importing its
definition from minfi, makes me add the package to imports. As minfi has a
high number of dependencies (129 in the current release), my packages end
up having hundreds of dependencies too. This is particularly problematic as
I do not use any of the other functions of minfi.
I am wondering whether it could be possible to move minfi's class (or at
least GenomicRatioSet) to a lighter package, so people developing packages
on DNA methylation could rely on this class without having to import the
whole minfi package and its dependencies.
Thank you very much,
--
Carlos Ruiz
--
This message is intended exclusively for its addressee and may contain
information that is CONFIDENTIAL and protected by professional privilege.
If
you are not the intended recipient you are hereby notified that any
dissemination, copy or disclosure of this communication is strictly
prohibited
by law. If this message has been received in error, please
immediately notify
us via e-mail and delete it.
DATA PROTECTION. We
inform you that your personal data, including your
e-mail address and data
included in your email correspondence, are included in
the ISGlobal
Foundation files. Your personal data will be used for the purpose
of
contacting you and sending information on the activities of the above
foundations. You can exercise your rights of access, rectification,
cancellation and opposition by contacting the following address:
l...@isglobal.org <mailto:l...@isglobal.org>. ISGlobal
Privacy Policy at
www.isglobal.org <http://www.isglobal.org/>.
-----------------------------------------------------------------------------------------------------------------------------
CONFIDENCIALIDAD. Este mensaje y sus anexos se dirigen exclusivamente a
su
destinatario y puede contener información confidencial, por lo que la
utilización,
divulgación y/o copia sin autorización está prohibida por la
legislación
vigente. Si ha recibido este mensaje por error, le rogamos lo
comunique
inmediatamente por esta misma vía y proceda a su destrucción.
PROTECCIÓN DE DATOS. Sus datos de carácter personal utilizados en este
envío, incluida su dirección de e-mail, forman parte de ficheros de
titularidad
de la Fundación ISGlobal para cualquier
finalidades de
contacto, relación institucional y/o envío de información sobre
sus
actividades. Los datos que usted nos pueda facilitar contestando este
correo quedarán incorporados en los correspondientes ficheros, autorizando
el
uso de su dirección de e-mail para las finalidades citadas. Puede
ejercer los
derechos de acceso, rectificación, cancelación y oposición
dirigiéndose a l...@isglobal.org <mailto:l...@isglobal.org>* *. Política
de
privacidad
en www.isglobal.org <http://www.isglobal.org/>.
[[alternative HTML version deleted]]
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
--
Robert Castelo, PhD
Associate Professor
Dept. of Experimental and Health Sciences
Universitat Pompeu Fabra (UPF)
Barcelona Biomedical Research Park (PRBB)
Dr Aiguader 88
E-08003 Barcelona, Spain
telf: +34.933.160.514
fax: +34.933.160.550
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel