aboutsummaryrefslogtreecommitdiff
path: root/tools/facets-call.nix
diff options
context:
space:
mode:
authorJustin Bedo <cu@cua0.org>2019-01-10 12:20:51 +1100
committerJustin Bedo <cu@cua0.org>2019-01-10 12:20:51 +1100
commit9a70a25d6b7771df7ca53fcc34d61f582296e384 (patch)
tree5de101f321f25fe48f4b3cbfd24103c5d84b8104 /tools/facets-call.nix
parent5cb6f6001ea3aefd52ebaf42c1714343d51a8822 (diff)
facets: init
Diffstat (limited to 'tools/facets-call.nix')
-rw-r--r--tools/facets-call.nix24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/facets-call.nix b/tools/facets-call.nix
new file mode 100644
index 0000000..021cacc
--- /dev/null
+++ b/tools/facets-call.nix
@@ -0,0 +1,24 @@
+{bionix}:
+
+{vcf, bams}:
+
+with bionix;
+with types;
+with lib;
+
+assert (matchFiletype "facets-call-vcf" { vcf = _: true; } vcf);
+assert (all (matchFiletype "facets-call-bam" { bam = _: true; }) bams);
+assert (all (matchFileSorting "facets-call-bam" { coord = _: true; }) bams);
+
+stage {
+ name = "facets";
+ buildInputs = [ facets.app ];
+ buildCommand = ''
+ # Facets requires lexical sorting on the VCF files
+ grep '^#' ${vcf} > input.vcf
+ grep -v '^#' ${vcf} | LC_ALL=C sort -t $'\t' -k1,1 -k2,2n >> input.vcf || true
+
+ # Now actually run facets
+ snp-pileup input.vcf $out ${concatStringsSep " " bams}
+ '';
+}