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
|
#!/usr/bin/python3
"""
Read a PAIRWISE maf from stdin and print the fraction of columns whose bases
match for each alignment.
TODO: generalize for more than two speceis.
usage: %prog < maf > out
"""
import sys
from bx.align import maf
def __main__():
maf_reader = maf.Reader(sys.stdin)
for m in maf_reader:
match = 0
total = 0
for i in range(0, m.text_size):
a = m.components[0].text[i].lower()
b = m.components[1].text[i].lower()
if a == b:
match += 1
total += 1
print(match / total)
if __name__ == "__main__":
__main__()
|