Skip to content

Commit e31a240

Browse files
committed
small changes
+ GC content, %changed codons
1 parent 14e9252 commit e31a240

3 files changed

Lines changed: 35 additions & 6 deletions

File tree

optimize.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import sequenceIO
55
import kazusaIO
66
import optimizing
7+
import seqstats
8+
import math
79

810
import re
911

@@ -13,15 +15,16 @@ def main(argv):
1315

1416
if (len(argv) != 4):
1517
print("Usage: optimize.py [sequence file] [source taxid] [target taxid]")
18+
sys.exit()
1619

1720
seqfile = argv[1]
1821
src_taxid = argv[2]
1922
trg_taxid = argv[3]
2023

2124
seq = sequenceIO.readFile(seqfile)
2225
seqr = sequenceIO.D2R(seq)
23-
print("== INPUT SEQUENCE:")
24-
print(seqr)
26+
print("== INPUT SEQUENCE, GC: ", round(seqstats.getGC(seq)*100), "%")
27+
print(seq)
2528

2629
cuSrc = kazusaIO.getCU(src_taxid)
2730
cuTrg = kazusaIO.getCU(trg_taxid)
@@ -32,9 +35,13 @@ def main(argv):
3235

3336
for c in inCodons:
3437
outCodons.append(opt.optimize(c))
35-
36-
print("== OPTIMIZED SEQUENCE:")
37-
print("".join(outCodons))
38+
39+
res = "".join(outCodons)
40+
resd = sequenceIO.R2D(res)
41+
print("== OPTIMIZED SEQUENCE, GC: ", round(seqstats.getGC(resd)*100), "%")
42+
print(resd)
43+
44+
print("== STATS: CHANGED CODONS: ", seqstats.getChanged(seq, resd)[0], "/", seqstats.getChanged(seq, resd)[1])
3845

3946
if __name__ == '__main__':
4047
main(sys.argv)

seqstats.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import re
2+
3+
def getGC(seq):
4+
gccount = 0;
5+
for i in range(0, len(seq)):
6+
if (seq[i] == 'G' or seq[i] == 'C'):
7+
gccount += 1
8+
9+
return float(gccount)/len(seq)
10+
11+
def getChanged(seq1, seq2):
12+
seq1c = re.findall('...', seq1)
13+
seq2c = re.findall('...', seq2)
14+
changecount = 0;
15+
for i in range(0, len(seq1c)):
16+
if (seq1c[i] != seq2c[i]):
17+
changecount+=1
18+
19+
return (changecount, len(seq1c))
20+
21+
22+

sequenceIO.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def readFile(filename):
1414
ret = parseFASTA(c)
1515
# else parse raw sequence
1616
else:
17-
ret = parseRAW(c)
17+
ret = parseRaw(c)
1818
return ret
1919

2020

0 commit comments

Comments
 (0)