Definition

Strong parent packages: The packages listed in the Depends, Imports and LinkingTo fields of the DESCRIPTION of a package denoted as P. They are also called the strong direct dependency packages of P. Strong parent packages are enforced to be installed when installing package P. To make it easy to discuss, in the text we always refer parent packages to strong parent packages.

Strong dependency packages: The total packages by recursively looking for parent packages. They are also called upstream packages. Note strong dependency packages contain parent packages. Strong dependency packages are enforced to be installed when installing package P.

Heaviness of a package on its child packages: For a package denoted as P, assume it has \(K_c\) child packages and the kth child is denoted as Ak. Denote \(n_{1k}\) as the number of strong dependencies of Ak, and \(n_{2k}\) as the number of strong dependencies of Ak if moving P to Suggests of Ak, the heaviness of P on its child packages denoted as \(h_c\) is calculated as follows:

\[ h_c=\frac{1}{K_c}\sum_{k=1}^{K_c}(n_{1k}-n_{2k})\]

The heaviness measures the average number of additional dependencies that P brings to its child packages.

Adjusted heaviness on child packages: Generally, the heaviness on child packages has a trend to decrease with increasing the number of child packages, since it is averaged on the children. To prioritize heavy parents with intermediate numbers of children and to decrease the heaviness values for small \(K_c\), a penalty term denoted as \(a\) is added to \(K_c\) as in the following equation where \(h_c^{adj}\) is the adjusted heaviness for a package on its children. Note \(a\) is set to the same value for all packages and \(a\) is empirically selected to 10.

\[ h_c^{adj}=\frac{1}{K_c+a}\sum_k^{K_c}(n_{1k}-n_{2k})=\frac{K_c}{K_c+a}\cdot h_c \]

Please note, the absolute value of \(h_c^{adj}\) is meaningless. It is only used for ordering packages.

Plots

The following two tabs visualize the distribution of heaviness verse number of child packages. We additionally categorize packages with adjusted heaviness > 30 as highly heavily affecting child packages and with adjusted heaviness between 15 and 30 as medianly heavily affecting child packages.

In the plots, colors (blue to yellow) are mapped to the “density” of the points distribution which are measured as the number of points in a circle with radius of 1% relative to the range both on x-axis and y-axis.

Heaviness on child packages

Adjusted heaviness on child packages

Table

The highlighted packages in previous plots are listed in the following table. Packages are ordered by adjusted heaviness values. Clicking on the package names will lead to the HTML report of its dependency heaviness analysis. The complete table for all packages is avaiable at https://docs.google.com/spreadsheets/d/1lj2hnylR-TPaRKKI2qjA19uwwsm6-Tm8pRNpbmHv5p4/edit?usp=sharing.

Package Repository Number of child packages Heaviness on child packages Adjusted heaviness on child packages
Rcmdr CRAN 45 101.2 82.8
Seurat CRAN 38 85.3 67.5
lumi Bioconductor 13 114.2 64.5
RTCGA Bioconductor 9 128.0 60.6
minfi Bioconductor 38 62.4 49.4
tidyverse CRAN 89 48.4 43.5
survminer CRAN 27 58.2 42.5
taxize CRAN 12 77.4 42.2
devtools CRAN 80 47.0 41.8
GenomicScores Bioconductor 26 56.0 40.4
WGCNA CRAN 33 52.3 40.1
caret CRAN 180 41.0 38.8
car CRAN 183 40.6 38.5
brms CRAN 13 65.1 36.8
AER CRAN 22 52.6 36.2
ecospat CRAN 3 151.0 34.8
FactoMineR CRAN 52 41.2 34.5
ggpubr CRAN 125 37.0 34.3
Gviz Bioconductor 37 43.5 34.2
smacof CRAN 8 75.2 33.4
drc CRAN 17 51.1 32.1
TraMineR CRAN 7 77.1 31.8
Deducer CRAN 5 94.6 31.5
rms CRAN 54 36.8 31.0
MESS CRAN 9 63.8 30.2
fda CRAN 78 33.9 30.1
doBy CRAN 14 49.9 29.1
systemfit CRAN 16 47.3 29.1
biodb Bioconductor 9 61.0 28.9
factoextra CRAN 30 38.4 28.8
semPlot CRAN 8 64.0 28.4
Hmisc CRAN 248 29.4 28.3
ggbio Bioconductor 13 49.8 28.2
qgraph CRAN 35 35.6 27.7
ExperimentHub Bioconductor 98 30.4 27.6
matlib CRAN 7 64.6 26.6
DiagrammeR CRAN 45 32.0 26.2
agricolae CRAN 11 49.6 26.0
FlowSOM Bioconductor 4 89.0 25.4
biomod2 CRAN 2 149.5 24.9
rstanarm CRAN 7 58.0 23.9
clusterProfiler Bioconductor 34 30.7 23.8
diffcyt Bioconductor 3 103.3 23.8
flowDensity Bioconductor 3 101.0 23.3
sparklyr CRAN 17 37.1 23.3
DescTools CRAN 41 27.7 22.3
sva Bioconductor 37 28.1 22.1
pec CRAN 7 53.0 21.8
GSVA Bioconductor 16 35.3 21.7
geepack CRAN 27 29.6 21.6
VariantAnnotation Bioconductor 70 24.3 21.3
sampleSelection CRAN 3 92.0 21.2
fields CRAN 178 22.2 21.1
SpatialExperiment Bioconductor 12 38.1 20.8
DESeq2 Bioconductor 94 22.8 20.6
ensembldb Bioconductor 28 27.9 20.5
JWileymisc CRAN 3 88.7 20.5
haplo.stats CRAN 6 54.5 20.4
refund CRAN 5 60.6 20.2
MLInterfaces Bioconductor 4 69.8 19.9
lme4 CRAN 277 20.6 19.9
TFBSTools Bioconductor 9 41.9 19.8
nloptr CRAN 94 21.9 19.8
hypervolume CRAN 3 85.0 19.6
BSgenome Bioconductor 241 20.2 19.4
GenomicFeatures Bioconductor 189 20.1 19.1
beadarray Bioconductor 6 50.5 18.9
pammtools CRAN 4 66.2 18.9
flexsurv CRAN 18 29.1 18.7
forecast CRAN 125 20.1 18.6
epiR CRAN 9 39.2 18.6
klaR CRAN 9 39.2 18.6
MSnbase Bioconductor 24 26.2 18.5
phyloseq Bioconductor 27 25.4 18.5
rstan CRAN 130 19.8 18.4
kableExtra CRAN 67 21.0 18.3
dvmisc CRAN 5 53.8 17.9
missMDA CRAN 7 43.3 17.8
xcms Bioconductor 15 29.5 17.7
ChemmineR Bioconductor 12 32.3 17.6
qpgraph Bioconductor 3 76.3 17.6
pRoloc Bioconductor 2 104.0 17.3
AnnotationDbi Bioconductor 718 17.4 17.2
NMF CRAN 25 24.0 17.1
VIM CRAN 11 32.6 17.1
RTN Bioconductor 3 73.7 17.0
fdapace CRAN 10 34.0 17.0
testthat CRAN 130 18.2 16.9
biovizBase Bioconductor 9 35.2 16.7
weights CRAN 12 30.6 16.7
methylPipe Bioconductor 2 99.5 16.6
ibd CRAN 2 99.0 16.5
modeltime CRAN 8 37.0 16.4
motifStack Bioconductor 6 43.3 16.2
ArchaeoPhases CRAN 2 97.5 16.2
fda.usc CRAN 16 26.4 16.2
MBESS CRAN 11 30.9 16.2
biomaRt Bioconductor 96 17.7 16.1
adegenet CRAN 14 27.6 16.1
tmap CRAN 13 28.5 16.1
HH CRAN 6 43.0 16.1
randomForestSRC CRAN 6 42.8 16.1
affycoretools Bioconductor 1 176.0 16.0
geojsonio CRAN 10 31.6 15.8
mosaic CRAN 8 35.6 15.8
nnfor CRAN 6 42.0 15.8
golem CRAN 25 21.9 15.7
ez CRAN 10 31.1 15.6
mediation CRAN 6 41.7 15.6
sem CRAN 7 37.6 15.5
MethylAid Bioconductor 1 168.0 15.3
QFeatures Bioconductor 5 45.8 15.3
meta CRAN 16 24.8 15.3
AnnotationHub Bioconductor 97 16.7 15.2
CCA CRAN 4 53.2 15.2
timetk CRAN 15 25.2 15.1