nuova programmazione di qui.
In python che mi sto costruendo uno script che permette di inserire un tampone a pH e un aminoacido tre lettere del codice. L'output dovrebbe dire agli altri aminoacidi che dovrebbe avere interazioni elettrostatiche con. La prima iterazione sembra funzionare, però dopo che si smette di restituire un output non importa ciò che i parametri sono inseriti. La mia ipotesi è che in qualche modo i valori booleani sono stati sostituiti o qualcosa del genere. C'è un modo per ogni iterazione per avviare completamente nuovo? Vorrei che l'utente sia in grado di continuare a immettere i parametri e avere l'uscita non essere influenzato dall'iterazione precedente.
Ecco il codice (scusate se è un casino):
aaDic = {
'Arg': 12.48,
'Asp': 3.90,
'Cys': 8.37,
'Glu': 4.07,
'His': 6.04,
'Lys': 10.54,
'Tyr': 10.46,
}
while True:
x = input("Enter pH of buffer: ")
y = input("Enter three letter code for an amino acid: ")
if float(x) > float(aaDic[y]):
ProtonationInput = True
elif float(x) < float(aaDic[y]):
ProtonationInput = False
print("\n")
print("Is your amino acid,", y, ", protonated?", ProtonationInput, "\n")
print("At pH", x, y, "likely interacts with the following residues: \n")
for aa in aaDic.keys():
if float(x) > float(aaDic[aa]):
aaDic[aa] = True
elif float(x) < float(aaDic[aa]):
aaDic[aa] = False
#print(aa, aaDic[aa], "\n")
for aa in aaDic.keys():
if ProtonationInput == True:
if aaDic[aa] == False:
print(aa, "\n")
elif ProtonationInput == False:
if aaDic[aa] == True:
print(aa, "\n")
continue
Grazie in anticipo!