[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: leaky pipelines and Guix
From: |
Ludovic Courtès |
Subject: |
Re: leaky pipelines and Guix |
Date: |
Fri, 12 Feb 2016 15:04:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Ricardo Wurmus <address@hidden> skribis:
> So, how could I package something like that? Is packaging the wrong
> approach here and should I really just be using “guix environment” to
> prepare a suitable environment, run the pipeline, and then exit?
Maybe packages are the wrong abstraction here?
IIUC, a pipeline is really a function that takes inputs and produces
output(s). So it can definitely be modeled as a derivation.
Perhaps as a first step you could try and write a procedure and a CLI
around it that simply runs a given pipeline:
$ guix biopipeline foo frog.dna human.dna
…
/gnu/store/…-freak.dna
The procedure itself would be along the lines of:
(define (foo-pipeline input1 input2)
(gexp->derivation "result"
#~(begin
(setenv "PATH" "/foo/bar")
(invoke-make-and-co #$input1 #$input2
#$output))))
Once you’ve done this exercise for a couple of pipelines, perhaps you’ll
find a higher-level abstraction that captures properties common to all
bioinfo pipelines?
HTH,
Ludo’.