diff options
Diffstat (limited to 'tools/gridss-softClipsToSplitReads.nix')
-rw-r--r-- | tools/gridss-softClipsToSplitReads.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/gridss-softClipsToSplitReads.nix b/tools/gridss-softClipsToSplitReads.nix new file mode 100644 index 0000000..8a7dca3 --- /dev/null +++ b/tools/gridss-softClipsToSplitReads.nix @@ -0,0 +1,43 @@ +{ bionix +, nixpkgs +, bwaIndexAttrs ? {} +, faidxAttrs ? {} +, alignerStreaming ? false +, flags ? null +}: + +with nixpkgs; +with lib; +with bionix.types; + +input: + +let + ref = matchFiletype "gridss-softClipsToSplitReads" { bam = x: x.ref; } input; +in + +assert (matchFileSorting "gridss-softClipsToSplitReads" { name = _: true; } input); + +stdenv.mkDerivation rec { + name = "gridss-softClipsToSplitReads"; + buildInputs = [ jre ]; + buildCommand = '' + ln -s ${ref} ref.fa + ln -s ${bionix.samtools.faidx faidxAttrs ref} ref.fa.fai + for f in ${bionix.bwa.index bwaIndexAttrs ref}/*; do + ln -s $f + done + java -Xmx2G -Dsamjdk.create_index=false \ + -cp ${bionix.gridss.jar} gridss.SoftClipsToSplitReads \ + REFERENCE_SEQUENCE=ref.fa \ + I=${input} \ + O=$out \ + ${optionalString alignerStreaming "ALIGNER_STREAMING=true"} \ + WORKER_THREADS=$NIX_BUILD_CORES + ''; + passthru.filetype = + if alignerStreaming then + filetype.bam { ref = ref; sort = sorting.none {}; } + else + input.filetype; +} |