atomok = ['C', 'H', 'O', 'N', 'S']


# 2. feladat
def molekula_tomeg(aminosav):
    return aminosav[2] * 12 + aminosav[3] * 1 + aminosav[4] * 16 + aminosav[5] * 14 + aminosav[6] * 32


# 1. feladat
f = open("aminosav.txt")
adatok = []
i = 0
for x in f.readlines():
    if i % 7 == 0:
        adatok.append([x.strip()])
    elif i % 7 > 1:
        adatok[-1].append(int(x))
    else:
        adatok[-1].append(x.strip())
    i += 1
f.close()

# 3. feladat
ki = open("eredmeny.txt", "w")
print("3. feladat:")
print("3. feladat:", file=ki)
aminosavak = [(x[0], molekula_tomeg(x)) for x in adatok]

for x in sorted(aminosavak, key=lambda s: s[1]):
    print(*x)
    print(*x, file=ki)

# 4. feladat
print("4. feladat:")
print("4. feladat:", file=ki)
db = [0] * 5

f = open("bsa.txt")
kotesek = 0
for bsa in f:
    egy_aminosav = [x[2:7] for x in adatok if x[1] == bsa.strip()]
    for i in range(5):
        db[i] += egy_aminosav[0][i]
    kotesek += 1
db[2] -= kotesek  # oxigén atomok számának csökkentése
db[1] -= 2 * kotesek  # hidrogén atomok számának csökkentése
f.close()
for i in range(5):
    print(atomok[i] + ":", db[i], end=" ")
    print(atomok[i] + ":", db[i], end=" ", file=ki)
print()
print(file=ki)

# 5. feladat
print("5. feladat:")
print("5. feladat:", file=ki)
feherje = ""

f = open("bsa.txt")
# feherje = [x.strip() for x in f.readlines()]
szamlalo = 1
index = 1
hossz = 0
i = 0
for x in f.readlines():
    c = x.strip()
    if c in ['Y', 'W', 'F']:
        if szamlalo > hossz:
            hossz = szamlalo
            index = i
        szamlalo = 1
    i += 1
    szamlalo += 1
print("A BSA lánc leghosszabb sarabja", hossz, "kezdet helye:", index + 2 - hossz, "vége helye:", index + 1)
print("A BSA lánc leghosszabb sarabja", hossz, "kezdet helye:", index + 2 - hossz, "vége helye:", index + 1,
      file=ki)

# 6. feladat
f.seek(0)  # a fájl elejére állunk
bsa = [x.strip() for x in f.readlines()]
C = 0
for i in range(len(bsa) - 1):
    if bsa[i] == 'R' and (bsa[i + 1] == 'A' or bsa[i + 1] == 'V'):
        break
    if bsa[i] == 'C':
        C += 1
print("6. feladat\nAz első fehérjelánc részletben", C, "darab Ciszterin (C) található.")
f.close()
ki.close()
