diff options
author | Justin Bedo <cu@cua0.org> | 2019-05-09 14:23:53 +1000 |
---|---|---|
committer | Justin Bedo <cu@cua0.org> | 2019-05-09 14:23:53 +1000 |
commit | 6137d292d8d721490bf6ded2695cdc71755aff59 (patch) | |
tree | 7e26b12750b73120509bb886a82bea319ae688ac /tools | |
parent | 795c1ce6b03bfa1cefb628026e08371f39b86296 (diff) |
strelka: rewrite to use multiple outputs
Diffstat (limited to 'tools')
-rw-r--r-- | tools/strelka-call.nix | 10 | ||||
-rw-r--r-- | tools/strelka-callSomatic.nix | 13 | ||||
-rw-r--r-- | tools/strelka.nix | 32 |
3 files changed, 19 insertions, 36 deletions
diff --git a/tools/strelka-call.nix b/tools/strelka-call.nix index bc1e202..dc07291 100644 --- a/tools/strelka-call.nix +++ b/tools/strelka-call.nix @@ -20,9 +20,11 @@ in assert (length (unique refs) == 1); -stage { +let +out = stage { name = "strelka-call"; buildInputs = with pkgs; [ strelka ]; + outputs = [ "out" "variants" ]; buildCommand = '' ln -s ${ref} ref.fa ln -s ${bionix.samtools.faidx indexAttrs ref} ref.fa.fai @@ -48,8 +50,12 @@ stage { sed -i '/^##fileDate/d' $g sed -i '/^##startTime/d' $g done + mv variants.vcf $variants + ln -s $variants variants.vcf mkdir $out cp -r * $out ''; passthru.multicore = true; -} +}; +ft = {filetype = types.filetype.vcf {ref = ref;};}; +in out // { variants = out.variants // ft; } diff --git a/tools/strelka-callSomatic.nix b/tools/strelka-callSomatic.nix index cf4b414..cce6243 100644 --- a/tools/strelka-callSomatic.nix +++ b/tools/strelka-callSomatic.nix @@ -21,9 +21,12 @@ in assert (length (unique refs) == 1); -stage { +let + +out = stage { name = "strelka-callSomatic"; buildInputs = with pkgs; [ strelka ]; + outputs = [ "out" "indels" "snvs" ]; buildCommand = '' ln -s ${ref} ref.fa ln -s ${bionix.samtools.faidx indexAttrs ref} ref.fa.fai @@ -50,8 +53,14 @@ stage { sed -i '/^##fileDate/d' $g sed -i '/^##startTime/d' $g done + mv somatic.indels.vcf $indels + ln -s $indels somatic.indels.vcf + mv somatic.snvs.vcf $snvs + ln -s $snvs somatic.snvs.vcf mkdir $out cp -r * $out ''; passthru.multicore = true; -} +}; +ft = {filetype = types.filetype.vcf {ref = ref;};}; +in out // { indels = out.indels // ft; snvs = out.snvs // ft;} diff --git a/tools/strelka.nix b/tools/strelka.nix index d3068b5..16f4a2b 100644 --- a/tools/strelka.nix +++ b/tools/strelka.nix @@ -12,36 +12,4 @@ with types; Type: call :: {...} -> [input] -> results */ call = callBionixE ./strelka-call.nix; - /* Extract VCF file from results - Type: variants :: results -> vcf - */ - variants = - # result of call - drv: stage { - name = "strelka-call-variants"; - buildCommand = '' - ln -s ${drv}/variants/variants.vcf $out - ''; - passthru.filetype = filetype.vcf {ref=ref;}; - }; - /* Extract indels from somatic results - Type: indels :: somatic results -> vcf - */ - indels = - # result of callSomatic - drv: stage { - name = "strelka-callVariants-indels"; - buildCommand = "ln -s ${drv}/variants/somatic.indels.vcf $out"; - passthru.filetype = filetype.vcf {ref = ref;}; - }; - /* Extract SNVs from somatic results - Type: snvs :: somatic results -> vcf - */ - snvs = - # result of callSomatic - drv: stage { - name = "strelka-callVariants-snvs"; - buildCommand = "ln -s ${drv}/variants/somatic.snvs.vcf $out"; - passthru.filetype = filetype.vcf {ref = ref;}; - }; } |