From 92da3257c6867b6f54943e39345ab295703a30c4 Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Thu, 15 Aug 2019 14:27:43 +1000 Subject: hisat2: init --- tools/hisat2-align.nix | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tools/hisat2-align.nix (limited to 'tools/hisat2-align.nix') diff --git a/tools/hisat2-align.nix b/tools/hisat2-align.nix new file mode 100644 index 0000000..277b499 --- /dev/null +++ b/tools/hisat2-align.nix @@ -0,0 +1,38 @@ +{ bionix +, ref +, bamOutput ? true +, flags ? null +, indexAttrs ? {} +}: + +{ input1 +, input2 ? null +}: + +with bionix; +with lib; +with types; +with compression; + +let + fa = f: matchFiletype "hisat2-ref" { fa = _: f; } f; + fq = f: matchFiletype "hisat2-input" { fq = _: f; gz = matchFiletype' "hisat2-input" { fq = _: "<(gunzip < ${f})"; }; } f; + +in stage { + name = "hisat2-align"; + buildInputs = with pkgs; [ hisat2 bc samtools ]; + buildCommand = '' + ln -s ${fa ref} ref.fa + cores=$(echo $NIX_BUILD_CORES ${optionalString bamOutput "- 1"} | bc) + if [[ $cores -lt 1 ]] ; then + cores=1 + fi + hisat2 ${optionalString (flags != null) flags} -p $cores -x ${hisat2.index indexAttrs ref}/ \ + ${if input2 != null then "-1 ${fq input1} -2 ${fq input2}" else "-U ${fq input1}"} \ + ${optionalString bamOutput "| samtools view -b"} \ + | samtools sort -n \ + > $out + ''; + passthru.filetype = if bamOutput then filetype.bam {ref = ref; sorting = sort.name {};} else filetype.sam {ref = ref; sorting = sort.name {};}; + passthru.multicore = true; +} -- cgit v1.2.3