diff options
author | Justin Bedo <cu@cua0.org> | 2020-04-22 20:44:43 +1000 |
---|---|---|
committer | Justin Bedo <cu@cua0.org> | 2020-06-27 14:57:41 +1000 |
commit | 8a2778f8853ab687f83e07c4c322ab843b08f2af (patch) | |
tree | 76448ef65e5ac8c4d85fcc31e44de4269cb936ab /tools | |
parent | 7611c8798f41427c5b48a3406d8bb9e0cde9786c (diff) |
whisper: init 2.0
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; +} |