From 17c6ac55c4a180d06b04d0d4f367819519ca65ba Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Fri, 7 Sep 2018 07:26:51 +1000 Subject: Changes from Tony --- abcbs_2018.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/abcbs_2018.md b/abcbs_2018.md index 4b913cd..502fbeb 100644 --- a/abcbs_2018.md +++ b/abcbs_2018.md @@ -1,12 +1,15 @@ -**Nix for reproducible research** +**Reproducible bioinformatics with Nix** -_Justin Bedő, Leon Di Stefano, and Tony Papenfuss_ +Justin Bedő, Leon Di Stefano, and Tony Papenfuss - -> A challenge for bioinformaticians is to make our computations reproducible — that is, easy to rerun, combine, and share. We show how Nix, a next generation cross-platform software deployment system, cleanly overcomes problems usually tackled with a combination of package managers (conda), containers (Docker, Singularity), and workflow engines (Toil, Ruffus). -> -> On its own Nix can be used as a package manager; it can also easily create isolated development environments and export portable containers to share with others. But with a small number of transparent and lightweight extensions, we are also able to use Nix to succinctly specify bioinformatics pipelines and to manage their execution — whether locally, in HPC environments, or in the cloud. -> -> Nix uses hash-based naming to ensure that what it builds is uniquely-specified, isolation and completeness to ensure that its build processes are deterministic, and a very simple programming language to ensure that the whole system is easy to manage. It has an extensive package collection which includes all of CRAN and Bioconductor, and while it lacks Bioconda’s coverage of standalone bioinformatics tools, we show that Bioconda packages can be called from within Nix expressions, with some attendant loss of reproducibility. Nix is well supported and general-purpose software that has been in development for over 10 years. -> -> In our talk we will use Nix to specify a typical bioinformatics pipeline, and show how it can be executed in whole or in part on an HPC queuing system, or in the cloud. +> A challenge for bioinformaticians is to make our computations reproducible — that is, easy to rerun, combine, share, and guaranteed to generate the same results. +> We show how Nix, a next generation cross-platform software deployment system, cleanly overcomes problems usually tackled with a combination of package managers (e.g. conda), containers (Docker, Singularity), and workflow engines (e.g. Toil, Ruffus). +> +> On its own Nix can be used as a package manager; it can also easily create isolated development environments and export portable containers to share with others. +> We have created a number of transparent and lightweight extensions that enable Nix to succinctly specify bioinformatics analysis environments and pipelines locally, in HPC environments, or in the cloud. +> +> Nix uses hash-based naming to ensure that what it builds is uniquely-specified, isolation and completeness to ensure that its build processes are deterministic, and a very simple programming language to ensure that the whole system is easy to manage. +> It has an extensive package collection which includes all of CRAN and Bioconductor, and while it lacks Bioconda’s coverage of standalone bioinformatics tools, we show that Bioconda packages can be called from within Nix expressions, with some attendant loss of reproducibility. +> Nix is well supported and general-purpose software that has been in development for over 10 years. +> +> Here, we will demonstrate how Nix can be used to specify a typical bioinformatics pipeline, and show how it can be executed in whole or in part on an HPC queuing system, or in the cloud. -- cgit v1.2.3