aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJustin Bedo <cu@cua0.org>2019-08-15 14:27:06 +1000
committerJustin Bedo <cu@cua0.org>2019-08-15 14:27:06 +1000
commit3e037c4d706f5ac02c663a8d7f56703373785d29 (patch)
treea36051c85099dc0dfa46c60b7cedb97db5c554e6 /tools
parent2117e14fe6bcef6de715974b0e34a77429b4148a (diff)
SNVer: init 0.5.3
Diffstat (limited to 'tools')
-rw-r--r--tools/snver-app.nix24
-rw-r--r--tools/snver-call.nix40
-rw-r--r--tools/snver.nix10
3 files changed, 74 insertions, 0 deletions
diff --git a/tools/snver-app.nix b/tools/snver-app.nix
new file mode 100644
index 0000000..3fd30f2
--- /dev/null
+++ b/tools/snver-app.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "SNVer";
+ version = "0.5.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/snver/SNVer-${version}.tar.gz";
+ sha256 = "1y3c3gm1zdh4iz6zh1lyaaq1ks205wjm3vwx6wdsnh896xrphf5c";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ unpackPhase = ''
+ mkdir -p $out/libexec/SNVer
+ tar -zxvf $src -C $out/libexec/SNVer
+ rm -rf $out/libexec/SNVer/test
+ '';
+
+ installPhase = ''
+ mkdir $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/SNVerPool --add-flags "-jar $out/libexec/SNVer/SNVerPool.jar"
+ '';
+}
diff --git a/tools/snver-call.nix b/tools/snver-call.nix
new file mode 100644
index 0000000..645d151
--- /dev/null
+++ b/tools/snver-call.nix
@@ -0,0 +1,40 @@
+{ bionix
+, flags ? null
+, ploidy
+}:
+
+inputs:
+
+with bionix;
+with lib;
+with types;
+
+let
+ config = pkgs.writeText "pool.txt" (concatMapStringsSep "\n" (x: "${x}\t${toString ploidy}\t1") inputs);
+ getref = f: matchFiletype "SNVer-call" { bam = {ref, ...}: ref; } f;
+ refs = map getref inputs;
+ ref = head refs;
+in
+
+assert (length (unique refs) == 1);
+
+stage {
+ name = "SNVerPool";
+ buildInputs = [ snver.app ];
+ outputs = [ "out" "log" "raw" "filter" "indelfilter" "indelraw" ];
+ buildCommand = ''
+ SNVerPool -i / -c ${config} -r ${ref} -o snver
+
+ mkdir $out
+ cp snver.failed.log $log
+ ln -s $log $out/snver.failed.log
+ cp snver.filter.vcf $filter
+ ln -s $log $out/snver.filter.vcf
+ cp snver.indel.filter.vcf $indelfilter
+ ln -s $log $out/snver.indel.filter.vcf
+ cp snver.indel.raw.vcf $indelraw
+ ln -s $log $out/snver.indel.raw.vcf
+ cp snver.raw.vcf $raw
+ ln -s $log $out/snver.raw.vcf
+ '';
+}
diff --git a/tools/snver.nix b/tools/snver.nix
new file mode 100644
index 0000000..7c84777
--- /dev/null
+++ b/tools/snver.nix
@@ -0,0 +1,10 @@
+{ bionix }:
+
+with bionix;
+with pkgs;
+
+{
+ app = callPackage ./snver-app.nix {};
+
+ call = callBionix ./snver-call.nix;
+}