-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.py
70 lines (60 loc) · 2.1 KB
/
script.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#Auteurs: Renske Wever, Elaine Hodenius en Peter Selten
#Datum: 16-03-2015
#Functie: Leest een bestand en geeft een rapport met de sequentie en gc percentage.
#Bekende bugs: geen
def main():
bestandsnaam = 'm_p53.gb'
sequentie = leesBestand(bestandsnaam)
gc_percentage = bepaalGCpercentage(sequentie)
html = schrijfHTMLrapport (gc_percentage, sequentie, bestandsnaam)
def leesBestand(bestandsnaam):
#retourneert de sequentie uit het bestand
try:
file = open(bestandsnaam)
string = ""
for line in file:
string = string+"\n"+line
file.close()
while " " in string or '\t' in string:
string = string.replace(' ',' ').replace('\t','')
regel_array = string.split("\n")
CDS = ['','']
start_check = 0
Coding = "";
for r in regel_array:
if "CDS" in r:
CDS[0] = int(r.split(" ")[2].split('..')[0].replace('<',''))
CDS[1] = int(r.split(" ")[2].split('..')[1].replace('>',''))
elif r == "ORIGIN ":
start_check = 1
elif r == "//":
start_check = 0
if start_check == 1:
k = r.split(" ")
Coding = Coding+"".join(k[2:len(k)])
return Coding[CDS[0]-1:CDS[1]]
except IOError:
print("Kan bestand niet lezen")
except Exception:
#print("ERROR")
print(traceback.format_exc())
print(sys.exc_info()[0])
def bepaalGCpercentage(sequentie):
#retourneert het GC percentage
sequentie = sequentie.upper()
aantal_c = sequentie.count('C')
aantal_g = sequentie.count('G')
percentage = ((aantal_c + aantal_g )/len(sequentie)*100)
return(percentage)
def schrijfHTMLrapport (gc_percentage, sequentie, bestandsnaam):
#schrijft html rapport
f = open(bestandsnaam + '_rapport.html','w')
f.write("<html>")
f.write("<head></head>")
f.write("<body>")
f.write("Sequentie is:" + sequentie)
f.write("GC Percentage is: " + str(gc_percentage))
f.write("</body>")
f.write("<html>")
f.close()
main()