From b8caa245cb6bb4616318173b81e9207aee414859 Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Sun, 9 Feb 2020 17:57:54 +1100 Subject: lastal: init --- tools/last-align.nix | 39 +++++++++++++++++++++++++++++++++++++++ tools/last-index.nix | 21 +++++++++++++++++++++ tools/last.nix | 8 ++++++++ 3 files changed, 68 insertions(+) create mode 100644 tools/last-align.nix create mode 100644 tools/last-index.nix create mode 100644 tools/last.nix (limited to 'tools') diff --git a/tools/last-align.nix b/tools/last-align.nix new file mode 100644 index 0000000..b2c8460 --- /dev/null +++ b/tools/last-align.nix @@ -0,0 +1,39 @@ +{ bionix +, ref +, flags ? null +, indexAttrs ? {} +}: + +{ input1 +, input2 ? null +}: + +with bionix; +with lib; +with types; + +let + fa = f: matchFiletype "last-ref" { fa = _: f; } f; + fq = f: matchFiletype "last-input" { fq = _: f; } f; + fqfa = f: matchFiletype "last-input" { fq = _: f; fa = _: f; } f; + Q = f: matchFiletype "last-input" { fq = _: 1; fa = _: 0; } f; + parallel = f: matchFiletype "last-input" { fq = _: "parallel-fastq"; fa = _: "parallel-fasta"; } f; + +in stage { + name = "last-align"; + buildInputs = with pkgs; [ last ]; + buildCommand = '' + ${if (input2 != null) then "fastq-interleave ${fq input1} ${fq input2}" else "cat ${fa input1}"} | \ + ${parallel input1} -j $NIX_BUILD_CORES \ + lastal -Q${toString (Q input1)} \ + ${optionalString (input2 != null) "-i1"} \ + ${optionalString (flags != null) flags} \ + ${bionix.lastal.index indexAttrs ref}/index \ + > tmp + '' + (if input2 == null then '' + cp tmp $out + '' else '' + last-pair-probs tmp > $out + ''); + passthru.multicore = true; +} diff --git a/tools/last-index.nix b/tools/last-index.nix new file mode 100644 index 0000000..af74f65 --- /dev/null +++ b/tools/last-index.nix @@ -0,0 +1,21 @@ +{ bionix +, flags ? null +}: + +ref: + +with bionix; +with lib; +with types; + +assert (matchFiletype "last-index" { fa = _: true; } ref); + +stage { + name = "last-index"; + buildInputs = with pkgs; [ last ]; + buildCommand = '' + ln -s ${ref} ref.fa + mkdir $out + lastdb ${optionalString (flags != null) flags} $out/index ref.fa + ''; +} diff --git a/tools/last.nix b/tools/last.nix new file mode 100644 index 0000000..4e40a65 --- /dev/null +++ b/tools/last.nix @@ -0,0 +1,8 @@ +{ bionix }: + +with bionix; + +rec { + align = callBionixE ./last-align.nix; + index = callBionixE ./last-index.nix; +} -- cgit v1.2.3