blob: 3c0fc08d83e0250de166a56e58f2a753903bdd15 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
{ bionix
, flags ? null
}:
{primary, secondary}:
with bionix;
with lib;
with types;
let
isSortedBam = matchFiletype "xenomapper-allocate" {bam = matchSorting "xenomapper-allocate" { coord = _: false; name = _: true; none = _: false; }; };
outs = [ "primary_specific" "primary_multi" "secondary_specific" "secondary_multi" "unassigned" "unresolved"];
in
assert isSortedBam primary;
assert isSortedBam secondary;
stage {
name = "xenomapper-allocate";
buildInputs = with pkgs; [ samtools python3Packages.xenomapper ];
outputs = [ "out" ] ++ outs;
buildCommand = ''
xenomapper ${optionalString (flags != null) flags} \
--primary_bam ${primary} --secondary_bam ${secondary} \
${concatMapStringsSep " " (out: "--${out} >(samtools view -bS - > ${"$" + out})") outs}
mkdir -p $out
for x in ${concatStringsSep " " outs} ; do
ln -s ''${!x} $out/$x.bam
done
'';
}
|