From 871ef64f3c43199dfa01216ac86db56650c2c8a2 Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Fri, 5 Oct 2018 16:16:20 +1000 Subject: implement types --- test-tnpair.nix | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'test-tnpair.nix') diff --git a/test-tnpair.nix b/test-tnpair.nix index 3260b7b..7deaf3b 100644 --- a/test-tnpair.nix +++ b/test-tnpair.nix @@ -14,15 +14,31 @@ in with bionix; let - ref = { seq = ./example/ref.fa; }; - alignWithRG = rg: bwa.align { inherit ref; flags = "-R'@RG\\tID:${rg}\\tSM:${rg}'";}; + fetchlocal = path: stdenv.mkDerivation { + name = baseNameOf path; + buildCommand = "ln -s ${path} $out"; + }; + fetchfq = attrs: types.tagFiletype (types.filetype.fq {}) (fetchlocal attrs); + fetchfa = attrs: types.tagFiletype (types.filetype.fa {}) (fetchlocal attrs); + + alignWithRG = rg: bwa.align { ref = fetchfa ./example/ref.fa; flags = "-R'@RG\\tID:${rg}\\tSM:${rg}'";}; sort = samtools.sort {}; flagstat = samtools.flagstat {}; check = fastqc.check {}; - callVariants = strelka.call { inherit ref; }; + callVariants = strelka.call {}; - tnpair = { tumour = {name = "mysample1"; files = {input1 = ./example/sample1-1.fq; input2 = ./example/sample1-2.fq;};}; - normal = {name = "mysample2"; files = {input1 = ./example/sample2-1.fq; input2 = ./example/sample2-1.fq;};};}; + tnpair = { + tumour = {name = "mysample1"; files = { + input1 = fetchfq ./example/sample1-1.fq; + input2 = fetchfq ./example/sample1-2.fq; + }; + }; + normal = {name = "mysample2"; files = { + input1 = fetchfq ./example/sample2-1.fq; + input2 = fetchfq ./example/sample2-1.fq; + }; + }; + }; processPair = { tumour, normal }: rec { alignments = mapAttrs (_: x: sort (alignWithRG x.name x.files)) { inherit normal tumour; }; @@ -37,8 +53,9 @@ let mkdir $out ln -s ${tnpairResult.variants} $out/strelka mkdir $out/alignments - ln -s ${tnpairResult.alignments.tumour} $out/alignments/${tnpair.tumour.name}.bam - ln -s ${tnpairResult.alignments.normal} $out/alignments/${tnpair.normal.name}.bam + ln -s ${gridss.callVariants {} (with tnpairResult.alignments; [tumour])} $out/gridss + ln -s ${samtools.view { outfmt = types.toCram; } (tnpairResult.alignments.tumour)} $out/alignments/${tnpair.tumour.name}.cram + ln -s ${samtools.view { outfmt = types.toCram; } (tnpairResult.alignments.normal)} $out/alignments/${tnpair.normal.name}.cram ln -s ${flagstat tnpairResult.alignments.tumour} $out/alignments/${tnpair.tumour.name}.flagstat ln -s ${flagstat tnpairResult.alignments.normal} $out/alignments/${tnpair.normal.name}.flagstat mkdir $out/fastqc -- cgit v1.2.3