from Bio.Seq import Seq
import Bio.SeqIO as SeqIO
from Bio.Alphabet import generic_dna, generic_protein
# Ucitavanje sekvence HBB proteina pacijenta iz fajla.
# Data je nukleotidna sekvenca koja kodira HBB protein
sick_patient_sequence = SeqIO.read('HBS.fasta', 'fasta')
# Ceo rekord
print(sick_patient_sequence)
# Sekvenca
print(sick_patient_sequence.seq)
# Proteinska sekvenca zdravog HBB proteina
hbb = Seq('MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH', generic_dna)
print(hbb)
# translated_sick = sick_patient_sequence.seq[0:].translate() # okvir 1
# translated_sick = sick_patient_sequence.seq[1:].translate() # okvir 2
# Translirana DNK (posredstvom mRNK) u proteinsku sekvencu od treceg okvira
translated_sick = sick_patient_sequence.seq[2:].translate()
print(translated_sick)
# Prva pojava Metionina (startne aminokiseline)
translated_sick.find('M')
start_codon = translated_sick.find('M')
sliced_sequence = translated_sick[start_codon:]
# Pronalazenje prvog stop kodona od M
stop_codon = sliced_sequence.find('*')
sliced_sequence = sliced_sequence[:stop_codon]
print(sliced_sequence)
print(hbb)
print()
print(sliced_sequence)
# Pronalazenje razlika izmedju proteinskih sekvenci zdravog i bolesnog HBB
# U pitanju je srpasta anemija kod koje se, usled mutacije jednog nukleotida
# na 6. poziciji (7. ako se broji od 0) aminokiselina Glutamat (E) menja Valinom (V)
for i in range(len(hbb)):
if hbb[i] != sliced_sequence[i]:
print(f'Pos: {i}, {hbb[i]}->{sliced_sequence[i]}')