Aunque gráficamente el método es simple e intuitivo, su codificación implica un cierto desafío. Vea en las notas un ejemplo de código python.
#El sigiente código python calcula el valor de Km y Vmax por el método de
#Eisenthal & Cornish Bowden para los datos de la figura previa.
# La curva verde fue trazada con esos datos
import numpy as np
import matplotlib.pyplot as plt
import statistics as stat
susc=[60, 108, 180, 300, 480, 900, 1500, 2400, 4200, 7200]
vels=[2.09, 3.58, 5.39, 8.12, 10.2, 14.24, 17.26, 19.59, 21.51, 21.41]
try:
reads=len(susc)
Km=list(())
Vm=list(())
for ii in range(0,reads,1):
mi= vels[ii]/susc[ii]
for jj in range(ii+1,reads,1):
mj=vels[jj]/susc[jj]
Km.append(-(vels[jj]-vels[ii])/(mj-mi))
Vm.append((vels[jj]/mj-vels[ii]/mi)/(1/mj-1/mi))
#uncomment next line to print all data
#print(Km[-1],Vm[-1],ii,jj)
Km_median=stat.median(Km)
Km_MAD = stat.median([abs(number-Km_median) for number in Km])
Vm_median=stat.median(Vm)
Vm_MAD = stat.median([abs(number-Vm_median) for number in Vm])
Km_title = 'Km ± MAD={0:.2f}±{1:.3f}\nMAD is the median absolute error'.format(Km_median,Km_MAD)
Vm_title = 'Vmax ± MAD= {0:.2f}±{1:.2f}\nMAD is the median absolute error'.format(Vm_median,Vm_MAD)
# plot results
tis = 14 # fontsize
lbs = 12
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(12, 8))
axs[0].violinplot(Vm, positions=None, showmeans=False, showextrema=True, showmedians=True)
axs[0].set_title(Vm_title, fontsize=tis)
axs[0].set_ylabel('Vmax estimate', fontsize=lbs)
axs[0].set_xlabel('normalized density', fontsize=lbs)
axs[1].violinplot(Km,positions=None,showmeans=False, showextrema=True, showmedians=True)
axs[1].set_title(Km_title, fontsize=tis)
axs[1].set_ylabel('Km estimate', fontsize=lbs)
axs[1].set_xlabel('normalized density', fontsize=lbs)
except:
print(f'the number of substrate concentrations ({len(susc)}) and velocities ({len(vels)}) does not match')