Skip to content

Commit af86243

Browse files
author
Sergey Koren
committed
sort winnowmap output to avoid non-determinism
1 parent 9e94227 commit af86243

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

src/Snakefiles/3-alignTips.sm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ cat > ./combineONT.sh <<EOF
120120
#!/bin/sh
121121
set -e
122122

123-
cat {params.alignments} \\\\
124-
> ../{output.alignments}
123+
cat {params.alignments} | \\\\
124+
sort -sk1,1 -T . > ../{output.alignments}
125125

126126
EOF
127127

src/scripts/select_best_alignment.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,16 @@ def mad(values, mean):
5353

5454
if currID != parts[0]:
5555
if len(idys) > 0:
56+
assert(currID not in read_alignment_idy)
5657
read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))]
5758
#if len(idys) > 1: sys.stderr.write("Adding info for read %s which has mean %s and list %s and mad is %s sd %s\n"%(currID, statistics.median(idys), idys, mad(idys, statistics.mean(idys)), statistics.stdev(idys)))
5859
idys.clear()
5960

6061
currID = parts[0]
6162
idys.append(idy)
62-
if len(idys) > 0: read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))]
63+
if len(idys) > 0:
64+
assert(currID not in read_alignment_idy)
65+
read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))]
6366

6467
# two pass, first records median alignment identity for a read, second only keeps those within some distand from median
6568
reads=set()

0 commit comments

Comments
 (0)