[Bioc-devel] External dependencies and reproducibility in all platforms

Hervé Pagès hp@ge@@on@g|thub @end|ng |rom gm@||@com
Mon Aug 23 23:57:52 CEST 2021

Hi Fabricio,

If your package requires external software/libraries/tools in order to 
pass 'R CMD build' and 'R CMD check', then please list them in the 
SystemRequirements field of your DESCRIPTION file. In addition, we 
kindly ask you to provide an INSTALL file in the top-level folder of 
your package source tree that documents how to install these external 
deps on all the supported platforms.

BTW I'm not sure that KnowSeq or ORFik have external system 
requirements. I don't see that they have a SystemRequirements field. 
Only openPrimeR has one but it's not clear to me that the package 
actually needs all the things listed there e.g. for example MAFFT is 
listed but we don't have it on the build machines.

FWIW most packages avoid having to depend on external tools like 
SRAtoolkit, STAR or salmon by assuming that this step of the analysis 
was already taken care of, and by focusing on the downstream analysis. 
These packages often include the output of the upstream analysis as a 
small dataset and start from there.

Hope this helps,


On 23/08/2021 07:10, Fabricio de Almeida wrote:
> Dear Bioc developers,
> I am writing a package that contains external dependencies, and I'd like to know what are the best practices to submit this kind of package to Bioconductor.
> The external dependencies are standard RNA-seq analysis algorithms, such as SRAtoolkit, STAR and salmon. I have seen other Bioc packages with external dependencies, such as KnowSeq (https://bioconductor.org/packages/release/bioc/html/KnowSeq.html), ORFik (https://www.bioconductor.org/packages/release/bioc/html/ORFik.html), and openPrimeR (https://bioconductor.org/packages/release/bioc/html/openPrimeR.html), but it is not clear how they handle the dependencies in the Bioconductor build system.
> I have a conda environment containing all the dependencies + R 4.1.0, which works fine. However, conda is not the best option, as some dependencies may not exist in all OS, particularly in Windows.
> Perhaps a Docker container with the dependencies in an Ubuntu OS would ensure reproducibility in all platforms, but what should I do for the package to pass all checks in the Bioc build system?
> Any help is appreciated.
> Best,
> =========================
> Fabr�cio de Almeida Silva
> Undergraduate degree in Biological Sciences (UENF)
> MSc. candidate in Plant Biotechnology (PGBV/UENF - RJ/Brazil)
> Laborat�rio de Qu�mica e Fun��o de Prote�nas e Pept�deos (LQFPP/CBB/UENF - RJ/Brazil)
> Personal website: https://almeidasilvaf.github.io
> 	[[alternative HTML version deleted]]
> _______________________________________________
> Bioc-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

Hervé Pagès

Bioconductor Core Team
hpages.on.github using gmail.com

More information about the Bioc-devel mailing list