aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/quip-app.nix19
-rw-r--r--tools/quip-quip.nix17
-rw-r--r--tools/quip-unquip.nix18
-rw-r--r--tools/quip.nix6
4 files changed, 60 insertions, 0 deletions
diff --git a/tools/quip-app.nix b/tools/quip-app.nix
new file mode 100644
index 0000000..422b603
--- /dev/null
+++ b/tools/quip-app.nix
@@ -0,0 +1,19 @@
+{
+ stdenv,
+ fetchFromGitHub,
+ autoreconfHook,
+ zlib,
+}:
+stdenv.mkDerivation rec {
+ name = "quip";
+
+ src = fetchFromGitHub {
+ owner = "dcjones";
+ repo = "quip";
+ rev = "9165bb5ac17a2cf2822e437df573487d7adfa1cc";
+ sha256 = "PpvgLzdiYcLyJ1JH9UzbUd29eKIlyY440HiJGYWvkrs=";
+ };
+
+ nativeBuildInputs = [autoreconfHook];
+ buildInputs = [zlib];
+}
diff --git a/tools/quip-quip.nix b/tools/quip-quip.nix
new file mode 100644
index 0000000..77cf557
--- /dev/null
+++ b/tools/quip-quip.nix
@@ -0,0 +1,17 @@
+{bionix}:
+with bionix;
+with lib.types;
+ input: let
+ ref = matchFiletype "quip" {bam = f: f.ref;} input;
+ in
+ stage {
+ name = "quip";
+ buildInputs = [quip.app];
+ buildCommand = ''
+ ln -s ${input} input.bam
+ quip -r ${ref} input.bam
+ cp input.bam.qp $out
+ '';
+ stripStorePaths = false;
+ passthru.filetype = filetype.qp input.filetype;
+ }
diff --git a/tools/quip-unquip.nix b/tools/quip-unquip.nix
new file mode 100644
index 0000000..8c9cc01
--- /dev/null
+++ b/tools/quip-unquip.nix
@@ -0,0 +1,18 @@
+{bionix}:
+with bionix;
+with lib.types;
+ input: let
+ bamft = matchFiletype "unquip" {qp = x: x;} input;
+ ref = matchFiletype' "unquip-sub" {bam = f: f.ref;} bamft;
+ in
+ stage {
+ name = "unquip";
+ buildInputs = [quip.app];
+ buildCommand = ''
+ ln -s ${input} input.bam.qp
+ unquip -r ${ref} input.bam.qp
+ cp input.bam $out
+ '';
+ stripStorePaths = false;
+ passthru.filetype = bamft;
+ }
diff --git a/tools/quip.nix b/tools/quip.nix
new file mode 100644
index 0000000..f0a57aa
--- /dev/null
+++ b/tools/quip.nix
@@ -0,0 +1,6 @@
+{bionix}:
+with bionix; {
+ app = pkgs.callPackage ./quip-app.nix {};
+ quip = callBionix ./quip-quip.nix;
+ unquip = callBionix ./quip-unquip.nix;
+}