Доступ к значениям с помощью pandaPython

Программы на Python
Anonymous
Доступ к значениям с помощью panda

Сообщение Anonymous »

Я работаю над получением дипольной энергии взаимодействий аминокислот и макродиполя. Я использовал только те аминокислоты, которые имеют ионную активность и могут иметь заряд в воде. У меня есть таблица, в которой указаны расстояния между аминокислотой и макродиполем для каждого остатка, которую я использую для расчета потенциала, а затем энергии диполя. Я считаю, что в моем текущем коде я неправильно получаю доступ к данным и не знаю, как это сделать. Никогда раньше не использовал panda и не знаю, устанавливаю ли я неправильные условия.
Основной код:

Код: Выделить всё

def main():

sequence = input("Enter your sequence: ").strip().upper()
while True:
try:
temperature_kelv = float(input("Enter your temperature in K: "))
break
except ValueError:
print("Invalid input.  Please enter a numeric value for temperature.")

# convert kelvin to celsius
temperature_cels = temperature_kelv - 273.0

# extract segments after obtaining sequence
segments = extract_segments(sequence)

for segment, n_cap, c_cap in segments:
print (f"Segment: {segment}, N-cap: {n_cap}, C-cap: {c_cap}")
И это дипольная функция, которую я реализую для получения дипольной энергии.

Код: Выделить всё

    charge_dict = {
'D': -1,  # Aspartate
'E': -1,  # Glutamate
'K': 1,   # Lysine
'R': 1,   # Arginine
'H': 1    # Histidine
}

# Function to calculate dipole energy
def dipole_energy(segment, dipoleN_df, dipoleC_df, charge_dict):
dipole_energies = []
for i in range(len(segment)):
residue = segment[i]

if residue == ['D', 'E', 'K', 'R', 'H']:
if i == 1:
distance_N = dipoleN_df.at[residue, "N-Cap"]
distance_C = dipoleC_df.at[residue, "C-Cap"]
if i == 2:
distance_N = dipoleN_df.at[residue, "N1"]
distance_C = dipoleC_df.at[residue, "C1"]
if i == 3:
distance_N = dipoleN_df.at[residue, "N2"]
distance_C = dipoleC_df.at[residue, "C2"]
if i == 4:
distance_N = dipoleN_df.at[residue, "N3"]
distance_C = dipoleC_df.at[residue, "C3"]
if i == 5:
distance_N = dipoleN_df.at[residue, "N4"]
distance_C = dipoleC_df.at[residue, "C4"]
if i == 6:
distance_N = dipoleN_df.at[residue, "N5"]
distance_C = dipoleC_df.at[residue, "C5"]
if i == 7:
distance_N = dipoleN_df.at[residue, "N6"]
distance_C = dipoleC_df.at[residue, "C6"]
if i == 8:
distance_N = dipoleN_df.at[residue, "N7"]
distance_C = dipoleC_df.at[residue, "C7"]
if i == 9:
distance_N = dipoleN_df.at[residue, "N8"]
distance_C = dipoleC_df.at[residue, "C8"]
if i == 10:
distance_N = dipoleN_df.at[residue, "N9"]
distance_C = dipoleC_df.at[residue, "C9"]
if i == 11:
distance_N = dipoleN_df.at[residue, "N10"]
distance_C = dipoleC_df.at[residue, "C10"]
if i == 12:
distance_N = dipoleN_df.at[residue, "N11"]
distance_C = dipoleC_df.at[residue, "C11"]
if i == 13:
distance_N = dipoleN_df.at[residue, "N12"]
distance_C = dipoleC_df.at[residue, "C12"]
if i == 14:
distance_N = dipoleN_df.at[residue, "N13"]
distance_C = dipoleC_df.at[residue, "C13"]

# Convert distances from angstroms to meters
distance_N_m = distance_N * 1e-10
distance_C_m = distance_C * 1e-10

# Compute the electrostatic potential at the residue
potential_N = (1 / (4 * np.pi * epsilon_0)) * (Q * L / distance_N_m**2)
potential_C = (1 / (4 * np.pi * epsilon_0)) * (Q * L / distance_C_m**2)

# Get the charge of the residue
charge = charge_dict.get(residue)

# Compute the dipole energy
dipole_energy = charge * (potential_N + potential_C)
else:
dipole_energy = 0.0

dipole_energies.append(dipole_energy)

return dipole_energies
CSV-файлы distance_N и distance_C — это документы, похожие на

Код: Выделить всё

res N-cap, N1, N2, N3 ...
E.   1.     0.5.  3.8 ....
D .....

и так далее.
Может ли кто-нибудь помочь мне правильно получить доступ к данным?? Как мне это сделать?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/788 ... sing-panda

Вернуться в «Python»