diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/whisper-align.nix | 39 | ||||
-rw-r--r-- | tools/whisper-index.nix | 21 | ||||
-rw-r--r-- | tools/whisper.nix | 9 |
3 files changed, 69 insertions, 0 deletions
diff --git a/tools/whisper-align.nix b/tools/whisper-align.nix new file mode 100644 index 0000000..5620fe3 --- /dev/null +++ b/tools/whisper-align.nix @@ -0,0 +1,39 @@ +{ bionix +, ref +, bamOutput ? true +, flags ? null +, indexAttrs ? {} +}: + +{ input1 +, input2 ? null +}: + +with bionix; +with lib; +with types; +with compression; + +let + fa = f: matchFiletype "whisper-ref" { fa = _: f; } f; + fq = f: matchFiletype "whisper-input" { fq = _: f; gz = matchFiletype' "whisper-input" { fq = _: f; }; } f; + +in stage { + name = "whisper-mem"; + buildInputs = [ whisper.app ]; + buildCommand = '' + ln -s ${fa ref} ref.fa + for f in ${bionix.whisper.index indexAttrs ref}/* ; do + ln -s $f + done + whisper ${optionalString (flags != null) flags} -t $NIX_BUILD_CORES \ + ${optionalString bamOutput "-store-BAM"} \ + ${optionalString (input2 != null) "-rp"} \ + -stdout \ + index ${fq input1} \ + ${optionalString (input2 != null) (fq input2)} \ + > $out + ''; + passthru.filetype = if bamOutput then filetype.bam {ref = ref; sorting = sort.name {};} else filetype.sam {ref = ref; sorting = sort.name {};}; + passthru.multicore = true; +} diff --git a/tools/whisper-index.nix b/tools/whisper-index.nix new file mode 100644 index 0000000..675af7d --- /dev/null +++ b/tools/whisper-index.nix @@ -0,0 +1,21 @@ +{ bionix +, flags ? null +}: + +ref: + +with bionix; +with lib; +with types; + +assert (matchFiletype "whisper-index" { fa = _: true; } ref); + +stage { + name = "whisper-index"; + buildInputs = [ whisper.app ]; + buildCommand = '' + ln -s ${ref} ref.fa + mkdir $out + whisper-index ${optionalString (flags != null) flags} index ref.fa $out $TMPDIR + ''; +} diff --git a/tools/whisper.nix b/tools/whisper.nix new file mode 100644 index 0000000..244a410 --- /dev/null +++ b/tools/whisper.nix @@ -0,0 +1,9 @@ +{ bionix }: + +with bionix; + +rec { + app = pkgs.callPackage ./whisper-app.nix {}; + index = callBionixE ./whisper-index.nix; + align = callBionixE ./whisper-align.nix; +} |