From 20050d08b1d6b18f437d7ac44a4720f2c24d7f53 Mon Sep 17 00:00:00 2001
From: Justin Bedo <cu@cua0.org>
Date: Mon, 7 Feb 2022 14:37:43 +1100
Subject: pizzly: init

---
 default.nix           |  1 +
 tools/pizzly-app.nix  | 30 ++++++++++++++++++++++++++++++
 tools/pizzly-call.nix | 24 ++++++++++++++++++++++++
 tools/pizzly.nix      |  8 ++++++++
 4 files changed, 63 insertions(+)
 create mode 100644 tools/pizzly-app.nix
 create mode 100644 tools/pizzly-call.nix
 create mode 100644 tools/pizzly.nix

diff --git a/default.nix b/default.nix
index ab69803..1d2bad3 100644
--- a/default.nix
+++ b/default.nix
@@ -53,6 +53,7 @@ let
       genmap = callBionix ./tools/genmap.nix { };
       subread = callBionix ./tools/subread.nix { };
       hatchet = callBionix ./tools/hatchet.nix { };
+      pizzly = callBionix ./tools/pizzly.nix { };
 
       slurm-run = callPackage ./lib/slurm.nix { };
       slurm-exec = f: x: y:
diff --git a/tools/pizzly-app.nix b/tools/pizzly-app.nix
new file mode 100644
index 0000000..703e4aa
--- /dev/null
+++ b/tools/pizzly-app.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "pizzly";
+  version = "0.37.3";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "pmelsted";
+    rev = "v${version}";
+    sha256 = "sha256-VB3kYjnhg9+QMdCAbYAzf30kO8zXZlEvK913ALZiUwU=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm 755 pizzly $out/bin/pizzly
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Fusion detection from kallisto";
+    homepage = "https://github.com/pmelsted/pizzly";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jbedo ];
+  };
+}
diff --git a/tools/pizzly-call.nix b/tools/pizzly-call.nix
new file mode 100644
index 0000000..72e23bf
--- /dev/null
+++ b/tools/pizzly-call.nix
@@ -0,0 +1,24 @@
+{ bionix, kmerSize ? 31, gtf, cdna, alignScore ? 2, maxInsertSize ? 400 }:
+
+with bionix;
+with pkgs;
+
+input:
+stage {
+  name = "pizzly";
+  buildInputs = [ bionix.pizzly.app ];
+  buildCommand = ''
+    ln -s ${gtf} ref.gtf
+    ln -s ${cdna} ref.fa
+    mkdir $out
+    pizzly                          \
+      -G ref.gtf                    \
+      -C cache                      \
+      -F ref.fa                     \
+      -k ${toString kmerSize}       \
+      -o $out/output                \
+      -a ${toString alignScore}     \
+      -i ${toString maxInsertSize}  \
+      ${input}/fusion.txt
+  '';
+}
diff --git a/tools/pizzly.nix b/tools/pizzly.nix
new file mode 100644
index 0000000..4011424
--- /dev/null
+++ b/tools/pizzly.nix
@@ -0,0 +1,8 @@
+{ bionix }:
+
+with bionix;
+
+{
+  app = pkgs.callPackage ./pizzly-app.nix { };
+  call = callBionixE ./pizzly-call.nix;
+}
-- 
cgit v1.2.3