diff options
| author | Justin Bedo <cu@cua0.org> | 2019-05-02 12:17:24 +1000 | 
|---|---|---|
| committer | Justin Bedo <cu@cua0.org> | 2019-05-02 12:17:24 +1000 | 
| commit | 11b31bdad648c9af92ac6997303bc10849a7a2ef (patch) | |
| tree | da66de976952417bfaec0d21b39bf555d1b6b526 | |
| parent | e7a2705bb3818db7647c7a37ef675760c323bd26 (diff) | |
shard: Implement some basic sharding for FQ files
| -rw-r--r-- | default.nix | 5 | ||||
| -rw-r--r-- | test-tnpair.nix | 5 | 
2 files changed, 9 insertions, 1 deletions
| diff --git a/default.nix b/default.nix index d67f2eb..61f2974 100644 --- a/default.nix +++ b/default.nix @@ -68,9 +68,12 @@ let      fetchFastQGZ = attrs: with types; tagFiletype (filetype.gz (filetype.fq {})) (fetchurl attrs);      fetchFastAGZ = attrs: with types; tagFiletype (filetype.gz (filetype.fa {})) (fetchurl attrs); +    # Turn a multi-output derivation into a list of derivations +    outputDrvs = drv: map (o: lib.getAttr o drv) drv.outputs; +      # Export nixpkgs and standard library lib      pkgs = nixpkgs; -    lib = nixpkgs.lib // { types = types; }; +    lib = nixpkgs.lib // { types = types; shard = callBionix ./lib/shard.nix {};};      stage = x@{ name, ... }: { multicore = false; } // nixpkgs.stdenvNoCC.mkDerivation (x // {name = "bionix-" + name;});      # splitting/joining diff --git a/test-tnpair.nix b/test-tnpair.nix index f2e84ac..802a2bb 100644 --- a/test-tnpair.nix +++ b/test-tnpair.nix @@ -39,6 +39,10 @@ let      variants = callVariants alignments;      glvariants = strelka.call {} (builtins.attrValues alignments);      platypusVars = platypus.call {} (builtins.attrValues alignments); +    shards = pipe [ +      (shard.fastQPair 2) +      (map (bwa.align {inherit ref;})) +    ] normal.files;    };    tnpairResult = processPair tnpair; @@ -56,6 +60,7 @@ let      (ln (gridss.callVariants {} (with tnpairResult.alignments; [normal tumour])) "gridss")      (ln (gridss.call (with tnpairResult.alignments; [normal tumour])) "gridss2")      (ln (gridss.callAndAssemble (with tnpairResult.alignments; [normal tumour])) "gridss3") +    (ln (samtools.merge {} tnpairResult.shards) "alignments/merged-shards.bam")      (ln (samtools.merge {} [tnpairResult.alignments.tumour tnpairResult.alignments.normal]) "alignments/merged.bam")      (ln (samtools.merge {} [(nameSort tnpairResult.alignments.tumour) (nameSort tnpairResult.alignments.normal)]) "alignments/merged-namesorted.bam")      (ln (samtools.view { outfmt = types.toCram; } (tnpairResult.alignments.tumour)) "alignments/${tnpair.tumour.name}.cram") | 
