-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtran.py
executable file
·41 lines (31 loc) · 879 Bytes
/
tran.py
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
36
37
38
39
40
41
#! /usr/bin/python3
import sys
import argparse
import signal
import numpy as np
import tools
def main(args):
inputs = tools.io.read_fasta(sys.stdin)
s1 = ''.join(next(inputs)[1])
s2 = ''.join(next(inputs)[1])
assert len(s1) == len(s2)
transitions = 0
transversions = 0
for a, b in zip(s1, s2):
if a == b:
continue
if {a, b} in [{'A', 'G'}, {'C', 'T'}]:
transitions += 1
else:
transversions += 1
print(transitions/transversions)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
args = parser.parse_args()
try:
main(args)
except BrokenPipeError:
sys.exit(128 + signal.SIGPIPE)
except KeyboardInterrupt:
sys.exit(128 + signal.SIGINT)