CRAN dependencies

New policy in CRAN

With the new policy of a maximum of 20 packages in Imports. Let’s see how many dependencies has each package on CRAN and Bioconductor:

CRAN

ap <- available.packages()
dp <- tools::package_dependencies(rownames(ap), db = ap, which = "Imports", 
                                  recursive = FALSE)
dp_n <- lengths(dp)
tb_dp <- sort(table(dp_n), decreasing = TRUE)
barplot(tb_dp)

Most of the packages has 0 dependencies and just 173 has 20 dependencies or more:

names(dp_n)[dp_n >= 20]
##   [1] "AdhereR"             "AFM"                 "amt"                
##   [4] "antaresViz"          "bea.R"               "BETS"               
##   [7] "bibliometrix"        "blkbox"              "blorr"              
##  [10] "bootnet"             "BrailleR"            "brms"               
##  [13] "chillR"              "CNVScope"            "codebook"           
##  [16] "codemetar"           "concurve"            "corporaexplorer"    
##  [19] "cSEM"                "ctmm"                "ctsem"              
##  [22] "dartR"               "detrendr"            "devtools"           
##  [25] "dextergui"           "diceR"               "dipsaus"            
##  [28] "distill"             "DLMtool"             "dlookr"             
##  [31] "dynwrap"             "ebirdst"             "ecd"                
##  [34] "EcoGenetics"         "ecospat"             "EdSurvey"           
##  [37] "EGAnet"              "elementR"            "emuR"               
##  [40] "enviGCMS"            "eSDM"                "fdm2id"             
##  [43] "FedData"             "finalfit"            "forestmangr"        
##  [46] "genBaRcode"          "genBart"             "geoviz"             
##  [49] "ggiraphExtra"        "ggquickeda"          "ggstatsplot"        
##  [52] "GJRM"                "GmAMisc"             "golem"              
##  [55] "graph4lg"            "healthcareai"        "highcharter"        
##  [58] "hmi"                 "hybridEnsemble"      "iCellR"             
##  [61] "inlmisc"             "IntClust"            "IOHanalyzer"        
##  [64] "ITNr"                "jmv"                 "jsmodule"           
##  [67] "JWileymisc"          "KarsTS"              "lilikoi"            
##  [70] "mafs"                "mcp"                 "memapp"             
##  [73] "metacoder"           "MetaIntegrator"      "metamicrobiomeR"    
##  [76] "metan"               "metR"                "missCompare"        
##  [79] "mlflow"              "momentuHMM"          "moveVis"            
##  [82] "MXM"                 "myTAI"               "NACHO"              
##  [85] "ncappc"              "NetworkChange"       "nlmixr"             
##  [88] "nlrx"                "oceanis"             "olsrr"              
##  [91] "oncrawlR"            "openair"             "optiSel"            
##  [94] "pak"                 "Patterns"            "phenofit"           
##  [97] "pkgdown"             "Plasmode"            "plethem"            
## [100] "PLMIX"               "plotKML"             "plotly"             
## [103] "PopGenReport"        "predictoR"           "processR"           
## [106] "psychmeta"           "psychNET"            "psychonetrics"      
## [109] "PWFSLSmoke"          "qdap"                "qgraph"             
## [112] "quanteda"            "rabhit"              "RaceID"             
## [115] "radiant.data"        "radiant.model"       "radix"              
## [118] "RAM"                 "raptr"               "RclusTool"          
## [121] "regressoR"           "reproducible"        "rhub"               
## [124] "robustSingleCell"    "RPANDA"              "RRphylo"            
## [127] "RSDA"                "rSymbiota"           "RxODE"              
## [130] "saotd"               "SCORPIUS"            "sdcMicro"           
## [133] "SDMtune"             "sen2r"               "Seurat"             
## [136] "SGP"                 "shazam"              "ShinyItemAnalysis"  
## [139] "shinyloadtest"       "sigQC"               "sismonr"            
## [142] "skpr"                "smartdata"           "smartR"             
## [145] "SpaDES.core"         "spant"               "sparklyr"           
## [148] "spatialEco"          "sptemExp"            "stacomiR"           
## [151] "statVisual"          "steemr"              "stplanr"            
## [154] "SubgrPlots"          "SWMPrExtension"      "taxize"             
## [157] "teachingApps"        "TestDimorph"         "tidymodels"         
## [160] "tidyverse"           "treespace"           "trelliscopejs"      
## [163] "uavRmp"              "ubiquity"            "userfriendlyscience"
## [166] "visvow"              "vmsbase"             "wilson"             
## [169] "windfarmGA"          "wiseR"               "Wrapped"            
## [172] "xROI"                "zooaRchGUI"

Bioconductor

The interesting part is discovering how to add the repository. The trick is to make us of BiocManager::repositories():

BioC_software <- BiocManager::repositories()["BioCsoft"]
bp <- available.packages(contriburl = contrib.url(BioC_software))
dp_BioC <- tools::package_dependencies(rownames(bp), db = bp, which = "Imports", 
                                  recursive = FALSE)
dp_BioC_n <- lengths(dp_BioC)
tb_dp_BioC <- sort(table(dp_BioC_n), decreasing = TRUE)
barplot(tb_dp_BioC)

It seems that software packages on Bioconductor tend to have more dependencies than on CRAN. If this policy would be implemented on Bioconductor it would affect 175 packages:

names(dp_BioC_n)[dp_BioC_n >= 20]
##   [1] "abseqR"                "adductomicsR"          "ALPS"                 
##   [4] "AMARETTO"              "amplican"              "AneuFinder"           
##   [7] "animalcules"           "appreci8R"             "ArrayExpressHTS"      
##  [10] "arrayQualityMetrics"   "artMS"                 "ASpediaFI"            
##  [13] "ATACseqQC"             "BASiCS"                "BatchQC"              
##  [16] "bigPint"               "bioCancer"             "BiocOncoTK"           
##  [19] "BiocPkgTools"          "biovizBase"            "biscuiteer"           
##  [22] "BPRMeth"               "bsseq"                 "BUSpaRse"             
##  [25] "CAGEr"                 "CATALYST"              "celda"                
##  [28] "CEMiTool"              "ChAMP"                 "chimeraviz"           
##  [31] "chipenrich"            "ChIPpeakAnno"          "ChIPQC"               
##  [34] "ChIPseeker"            "chromVAR"              "cicero"               
##  [37] "circRNAprofiler"       "clusterExperiment"     "CNEr"                 
##  [40] "CNVPanelizer"          "CNVRanger"             "cola"                 
##  [43] "COMPASS"               "CONFESS"               "consensusDE"          
##  [46] "contiBAIT"             "crlmm"                 "crossmeta"            
##  [49] "CytoML"                "DaMiRseq"              "DAPAR"                
##  [52] "debrowser"             "deco"                  "decompTumor2Sig"      
##  [55] "DEGreport"             "DEP"                   "DepecheR"             
##  [58] "destiny"               "DEsubs"                "DiffBind"             
##  [61] "diffcyt"               "diffHic"               "diffloop"             
##  [64] "DiscoRhythm"           "dmrseq"                "Doscheda"             
##  [67] "easyRNASeq"            "EGSEA"                 "ELMER"                
##  [70] "ENmix"                 "EnrichmentBrowser"     "enrichplot"           
##  [73] "enrichTF"              "esATAC"                "EventPointer"         
##  [76] "fcoex"                 "FindMyFriends"         "flowSpy"              
##  [79] "flowWorkspace"         "GAPGOM"                "GENESIS"              
##  [82] "genomation"            "GenomicInteractions"   "GenVisR"              
##  [85] "ggbio"                 "GGtools"               "GladiaTOX"            
##  [88] "gQTLstats"             "HiCBricks"             "HiLDA"                
##  [91] "icetea"                "ideal"                 "IMAS"                 
##  [94] "ImmuneSpaceR"          "infercnv"              "iSEE"                 
##  [97] "IsoformSwitchAnalyzeR" "isomiRs"               "KnowSeq"              
## [100] "Linnorm"               "Maaslin2"              "MACPET"               
## [103] "MADSEQ"                "MEAL"                  "metagene"             
## [106] "methyAnalysis"         "methylKit"             "methyvim"             
## [109] "MIGSA"                 "minfi"                 "miRLAB"               
## [112] "miRSM"                 "MMAPPR2"               "mnem"                 
## [115] "MOFA"                  "monocle"               "motifbreakR"          
## [118] "MSstats"               "muscat"                "nethet"               
## [121] "ngsReports"            "OMICsPCA"              "openCyto"             
## [124] "openPrimeR"            "OUTRIDER"              "PathoStat"            
## [127] "PathwaySplice"         "pcaExplorer"           "perturbatr"           
## [130] "phantasus"             "phemd"                 "PhenStat"             
## [133] "PhyloProfile"          "plotGrouper"           "PrecisionTrialDrawer" 
## [136] "primirTSS"             "proBatch"              "profileplyr"          
## [139] "pRoloc"                "Prostar"               "psichomics"           
## [142] "PureCN"                "qPLEXanalyzer"         "QuasR"                
## [145] "RCAS"                  "rCGH"                  "REMP"                 
## [148] "Repitools"             "rexposome"             "RITAN"                
## [151] "RNAmodR"               "RNASeqR"               "RTCGAToolbox"         
## [154] "SC3"                   "scone"                 "scPipe"               
## [157] "scruff"                "scTensor"              "seqplots"             
## [160] "SIAMCAT"               "signatureSearch"       "singleCellTK"         
## [163] "SMITE"                 "SNPhood"               "sojourner"            
## [166] "SpatialCPie"           "TCGAbiolinks"          "TCGAbiolinksGUI"      
## [169] "TFBSTools"             "TPP"                   "trena"                
## [172] "TRONCO"                "Ularcirc"              "VariantFiltering"     
## [175] "ViSEAGO"

Reproducibility

## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.1 (2019-07-05)
##  os       Ubuntu 19.10                
##  system   x86_64, linux-gnu           
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       Europe/Madrid               
##  date     2020-01-25                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package     * version date       lib source        
##  assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.6.0)
##  BiocManager   1.30.10 2019-11-16 [1] CRAN (R 3.6.1)
##  blogdown      0.17    2019-11-13 [1] CRAN (R 3.6.1)
##  bookdown      0.16    2019-11-22 [1] CRAN (R 3.6.1)
##  cli           2.0.1   2020-01-08 [1] CRAN (R 3.6.1)
##  crayon        1.3.4   2017-09-16 [1] CRAN (R 3.6.0)
##  digest        0.6.23  2019-11-23 [1] CRAN (R 3.6.1)
##  evaluate      0.14    2019-05-28 [1] CRAN (R 3.6.0)
##  fansi         0.4.1   2020-01-08 [1] CRAN (R 3.6.1)
##  glue          1.3.1   2019-03-12 [1] CRAN (R 3.6.0)
##  htmltools     0.4.0   2019-10-04 [1] CRAN (R 3.6.1)
##  knitr         1.27    2020-01-16 [1] CRAN (R 3.6.1)
##  magrittr      1.5     2014-11-22 [1] CRAN (R 3.6.0)
##  Rcpp          1.0.3   2019-11-08 [1] CRAN (R 3.6.1)
##  rlang         0.4.3   2020-01-24 [1] CRAN (R 3.6.1)
##  rmarkdown     2.0     2019-12-12 [1] CRAN (R 3.6.1)
##  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.6.0)
##  stringi       1.4.5   2020-01-11 [1] CRAN (R 3.6.1)
##  stringr       1.4.0   2019-02-10 [1] CRAN (R 3.6.0)
##  withr         2.1.2   2018-03-15 [1] CRAN (R 3.6.0)
##  xfun          0.12    2020-01-13 [1] CRAN (R 3.6.1)
##  yaml          2.2.0   2018-07-25 [1] CRAN (R 3.6.0)
## 
## [1] /home/lluis/R/x86_64-pc-linux-gnu-library/3.6
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library
Avatar
Lluís Revilla Sancho
Bioinformatician

Bioinformatician with interests in functional enrichment, data integration and transcriptomics.

Related