From 0c09091762accf8716ef7853dded34e1c86497aa Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Wed, 17 Apr 2019 19:06:00 +1000 Subject: snap: init --- tools/snap-align.nix | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tools/snap-align.nix (limited to 'tools/snap-align.nix') diff --git a/tools/snap-align.nix b/tools/snap-align.nix new file mode 100644 index 0000000..4647142 --- /dev/null +++ b/tools/snap-align.nix @@ -0,0 +1,37 @@ +{ bionix +, ref +, bamOutput ? true +, flags ? null +, indexAttrs ? {} +}: + +{ input1 +, input2 ? null +}: + +with bionix; +with lib; +with types; +with compression; + +let + fa = f: matchFiletype "snap-ref" { fa = _: f; } f; + fq = f: matchFiletype "snap-input" { fq = _: f; gz = matchFiletype' "snap-input" { fq = _: f; }; } f; + +in stage { + name = "snap-align"; + buildInputs = with pkgs; [ bionix.snap.app bc ] ++ optional bamOutput samtools; + buildCommand = '' + for f in /* ; do + ln -s $f + done + snap-aligner ${if input2 == null then "single" else "paired"} ${bionix.snap.index indexAttrs ref} ${fq input1} \ + ${optionalString (input2 != null) (fq input2)} \ + -o ${if bamOutput then "-bam" else "-sam" } - \ + -t $NIX_BUILD_CORES \ + ${optionalString (flags != null) flags} \ + | samtools sort -n > $out + ''; + passthru.filetype = if bamOutput then filetype.bam {ref = ref; sorting = sort.name {};} else filetype.sam {ref = ref; sorting = sort.name {};}; + passthru.multicore = true; +} -- cgit v1.2.3