diff --git a/src/Snakefiles/3-alignTips.sm b/src/Snakefiles/3-alignTips.sm index f4e877fe..63d06941 100644 --- a/src/Snakefiles/3-alignTips.sm +++ b/src/Snakefiles/3-alignTips.sm @@ -120,8 +120,8 @@ cat > ./combineONT.sh < ../{output.alignments} +cat {params.alignments} | \\\\ + sort -sk1,1 -T . > ../{output.alignments} EOF diff --git a/src/scripts/select_best_alignment.py b/src/scripts/select_best_alignment.py index b55bff8e..fd6f9e47 100755 --- a/src/scripts/select_best_alignment.py +++ b/src/scripts/select_best_alignment.py @@ -53,13 +53,16 @@ def mad(values, mean): if currID != parts[0]: if len(idys) > 0: + assert(currID not in read_alignment_idy) read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))] #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))) idys.clear() currID = parts[0] idys.append(idy) - if len(idys) > 0: read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))] + if len(idys) > 0: + assert(currID not in read_alignment_idy) + read_alignment_idy[currID] = [statistics.median(idys), mad(idys, statistics.mean(idys))] # two pass, first records median alignment identity for a read, second only keeps those within some distand from median reads=set()