|
feherje200605_obj.py
| |
1 class aminosav:
2 def __init__(self,lst):
3 self.az=lst[0]
4 self.b =lst[1]
5 self.C =lst[2]
6 self.H =lst[3]
7 self.O =lst[4]
8 self.N =lst[5]
9 self.S =lst[6]
10
11 def atomtomeg(self):
12 return self.C*12 + self.H*1 + self.O*16 + self.N*14 + self.S*32
13
14 def szotar(self):
15 return {'C':self.C,'H':self.H,'O':self.O,'N':self.N,'S':self.S}
16
17 matrix=[]
18
19 def kiir(ssz,sz):
20 print('********************************************************************')
21 print(f'* {ssz}. feladat - {sz}')
22 print('********************************************************************')
23
24 def F1():
25 kiir(1, 'Adatok beolvasása...')
26 fbe=open('aminosav.txt','r')
27
28 i=1
29 tmp=[]
30 for sor in fbe: # 1 2 3 4 5 6 7
31 if i<7:
32 tmp.append(sor.strip())
33 i+=1
34 else:
35 tmp.append(sor.strip()) # 7. elem itt kerül bele
36 tmp[2:]=map(int,tmp[2:])
37 matrix.append(aminosav(tmp))
38 tmp.clear()
39 i=1
40
41 print(len(matrix))
42
43 def F2():
44 for amin in matrix:
45 print(f'{amin.az} {amin.atomtomeg()}')
46
47 def F3():
48 kiir(3,'Atomtömegek rendezetten')
49 m_sorted=sorted(matrix, key=lambda x:x.atomtomeg())
50 for amin in m_sorted:
51 print(f'{amin.az} {amin.atomtomeg()}')
52
53 def F4():
54 kiir(4,'BSA összegképlete...')
55 global bsa
56 bsa=[sor.strip() for sor in open('bsa.txt','r')]
57 atom={'C':0,'H':0,'O':0,'N':0,'S':0}
58 for elem in bsa:
59 for amin in matrix:
60 if elem==amin.b:
61 for k, v in amin.szotar().items():
62 atom[k]+=v
63
64 kapcsolodas=len(bsa)-1
65 atom['H']-=2*kapcsolodas
66 atom['O']-=kapcsolodas
67 for k,v in atom.items():
68 print(f'{k} {v}',end=' ')
69 print()
70
71 def F5():
72 kiir(5,'Hasítás során keletkező leghosszabb lánc...')
73 # a Tirozin (Y), Fenilalanin (W) és a Triptofán (F) után hasít
74 hasit={'Y','W','F'}
75 maxh=[0]*3
76 kezdete=1
77 for i, elem in enumerate(bsa,start=1):
78 if elem in hasit:
79 vege=i
80 hossz=vege-kezdete+1
81 if hossz>maxh[0]:
82 maxh[0]=hossz
83 maxh[1]=kezdete
84 maxh[2]=vege
85 kezdete=vege+1
86 print(f'Leghosszabb lánc: {maxh[0]}')
87 print(f'.........kezdete: {maxh[1]}')
88 print(f'............vége: {maxh[2]}')
89
90 def F6():
91 kiir(6,'Másik hasítás során keletkező első lánc vizsgálata...')
92 # Arginin (R) után hasít, de csak akkor, ha Alinin (A) vagy Valin (V) követi
93 hasit={'RA','RV'}
94 for i in range(len(bsa)-1):
95 if bsa[i]+bsa[i+1] in hasit:
96 elso=bsa[:i+1]
97 C=elso.count('C')
98 break
99 print(f'A hasítás során keletkező első fehérjelánc részletben:\n{C} Cisztein (C) található.')
100
101 F1()
102 # F2()
103 F3()
104 F4()
105 F5()
106 F6()
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132