Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> 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’.