diff options
Diffstat (limited to 'tools/whisper-align.nix')
-rw-r--r-- | tools/whisper-align.nix | 39 |
1 files changed, 39 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; +} |