0% found this document useful (0 votes)
39 views22 pages

Exercises Kinetics

This document contains a simulation and examples demonstrating enzyme kinetics. The simulation models an enzyme reaction over time using ordinary differential equations. Example 1 analyzes experimental data on the hydrolysis of lactose catalyzed by the enzyme lactase to determine kinetic parameters using Michaelis-Menten, Lineweaver-Burk, and Eadie-Hofstee plots. Problem 1 examines the effects of different inhibitors on an enzyme reaction and calculates kinetic parameters including inhibition constants for competitive, uncompetitive, and non-competitive inhibitors. The document provides code to model the examples and solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views22 pages

Exercises Kinetics

This document contains a simulation and examples demonstrating enzyme kinetics. The simulation models an enzyme reaction over time using ordinary differential equations. Example 1 analyzes experimental data on the hydrolysis of lactose catalyzed by the enzyme lactase to determine kinetic parameters using Michaelis-Menten, Lineweaver-Burk, and Eadie-Hofstee plots. Problem 1 examines the effects of different inhibitors on an enzyme reaction and calculates kinetic parameters including inhibition constants for competitive, uncompetitive, and non-competitive inhibitors. The document provides code to model the examples and solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

EXERCISES KINETICS

PRESENTED BY:

DOMÍNGUEZ QUIROGA DANIEL DARÍO. CODE: 703162213

PRESENTED TO:

PROFESSOR ING. QCO. M.SC. PÉREZ MENDOZA JOSÉ

BIOPROCESSES

UNIVERSIDAD DEL ATLÁNTICO

CHEMICAL ENGINEERING PROGRAM

NINTH SEMESTER

BARRANQUILLA-ATLÁNTICO

March 2, 2022
Content

Simulation................................................................................................................ 3
Example 1 ............................................................................................................... 4
Problem 1 ................................................................................................................ 7
References ............................................................................................................ 11
Codes .................................................................................................................... 12
Simulation .......................................................................................................... 12
Example 1 .......................................................................................................... 13
Exercise 1 .......................................................................................................... 17
Simulation

Results

Figure 1. Profile of concentrations of enzyme reaction.


Example 1

Lactase, also known as β-galactosidase, catalyses the hydrolysis of lactose to


produce glucose and galactose from milk and whey. Experiments are carried out to
determine the kinetic parameters for the enzyme. The initial rate data are as follows.

Figure 2. Example 1.

Calculate the kinetic parameters of Michaelis-Menten.


Solution
Results
Method lineweaver-burk
The maximum rate is: 0.002257 M/min
The Km is: 0.003923 M
Method Eadie-Hofstee
The maximum rate is: 0.002271 M/min
The Km is: 0.003987 M
Method Langmuir
The maximum rate is: 0.002248 M/min
The Km is: 0.003828 M
Summary R2:
R2 value for Lineweaber-burk: 0.9960
R2 value for Eadie-Hofstee: 0.9839
R2 value for Langmuir: 0.9984
Figure 3. Michaelis-Menten.

Figure 4. Lineweaver-Burk.
Figure 5. Eadie-Hofstee.

Figure 6. Langmuir.
Problem 1

The initial rate of reaction of an enzyme catalyzed reaction was determined in the
presence of several inhibitors A, B, and C at various concentrations of substrate S.
Determine the type of inhibition and their kinetic parameters (including Ki).

Solution

Figure 7. Models for each rate: no inhibitor vs. A, B and C.

From Figure 7, the substrate has an uncompetitive inhibition with A, a competitive


inhibition with B and a non-competitive (mixed) inhibition with C.
Km and vm are calculated with regression with no inhibitor. Parameters for each
inhibition are calculated with regression for each expression.
How to calculate Ki for each inhibition is discussed below.
Competitive inhibition
𝑣𝑚 [𝑆] 𝑣𝑚 [𝑆]𝐾𝑖
𝑣= =
[𝐼] 𝐾𝑚 𝐾𝑖 + 𝐾𝑚 [𝐼] + [𝑆]𝐾𝑖
𝐾𝑚 + 𝐾𝑚 𝐾 + [𝑆]
𝑖

Knowing that [𝑆] = [𝐼] by stoichiometry


1 𝐾𝑚 1 𝐾𝑚 1
= ( )( ) + +
𝑣 𝑣𝑚 [𝑆] 𝐾𝑖 𝑣𝑚 𝑣𝑚
Making
𝐾𝑚 1 𝐾𝑚
𝑏= + ;𝑚 =
𝐾𝑖 𝑣𝑚 𝑣𝑚 𝑣𝑚
By linear regression, b value is calculated, solving for ki:
1 𝐾𝑚
𝑏− =
𝑣𝑚 𝐾𝑖 𝑣𝑚
𝐾𝑚
𝑏𝑣𝑚 − 1 =
𝐾𝑖
𝐾𝑚
𝐾𝑖 =
𝑏𝑣𝑚 − 1

Uncompetitive inhibition
𝑣𝑚𝑎𝑝𝑝 [𝑆]
𝑣=
𝐾𝑑𝑎𝑝𝑝 + [𝑆]
𝑣𝑚 [𝑆] 𝑣𝑚 [𝑆]
[𝐼] [𝐼]
1+ 𝐾 1+ 𝐾 𝑣𝑚 [𝑆]𝐾𝑖
𝑖 𝑖
𝑣= = =
𝐾𝑑 [𝑆][𝐼] 𝐾𝑑 𝐾𝑖 + [𝑆]𝐾𝑖 + [𝑆][𝐼]
+ [𝑆] 𝐾𝑑 + [𝑆] + 𝐾
[𝐼] 𝑖
1+
𝐾𝑖 [𝐼]
1+ 𝐾
𝑖

1 𝐾𝑑 1 [𝑆]
= + +
𝑣 𝑣𝑚 [𝑆] 𝑣𝑚 𝑣𝑚 𝐾𝑖
[𝑆] 𝐾𝑑 [𝑆] [𝑆]2
= + +
𝑣 𝑣𝑚 𝑣𝑚 𝑣𝑚 𝐾𝑖
𝑋
= 𝑎 + 𝑏𝑋 + 𝑐𝑋 2
𝑌
1
𝐾𝑖 =
𝑣𝑚 𝑐

Non-competitive inhibition
𝑣𝑚𝑎𝑝𝑝 [𝑆]
𝑣=
𝐾𝑚 + [𝑆]

𝑣𝑚 [𝑆]
𝑣=
[𝑆]
(𝐾𝑚 + [𝑆]) (1 + )
𝐾𝑖
𝑣𝑚 [𝑆]
𝑣=
𝐾 [𝑆] [𝑆]2
𝐾𝑚 + 𝑚𝐾 + [𝑆] + 𝐾
𝑖 𝑖

𝑣𝑚 [𝑆]𝐾𝑖
𝑣=
𝐾𝑚 𝐾𝑖 + 𝐾𝑚 [𝑆] + 𝐾𝑖 [𝑆] + [𝑆]2
1 𝐾𝑚 𝐾𝑚 1 [𝑆]
= + + +
𝑣 𝑣𝑚 [𝑆] 𝑣𝑚 𝐾𝑖 𝑣𝑚 𝑣𝑚 𝐾𝑖
[𝑆] 𝐾𝑚 𝐾𝑚 [𝑆] [𝑆] [𝑆]2
= + + +
𝑣 𝑣𝑚 𝑣𝑚 𝐾𝑖 𝑣𝑚 𝑣𝑚 𝐾𝑖
[𝑆] 𝐾𝑚 𝐾𝑚 1 [𝑆]2
= +( + ) [𝑆] +
𝑣 𝑣𝑚 𝑣𝑚 𝐾𝑖 𝑣𝑚 𝑣𝑚 𝐾𝑖

𝐾𝑚 1 𝐾𝑚 1
𝑏= + , 𝐾𝑖 = ( )
𝑣𝑚 𝐾𝑖 𝑣𝑚 𝑣𝑚 𝑏 − 1
𝑣𝑚
1 1
𝑐= , 𝐾𝑖 =
𝑣𝑚 𝐾𝑖 𝑣𝑚 𝑐
Results
For A:
Kd apparent = 2.6790 mM
vm apparent = 0.0209 nmole/min
Ki = 30127.4161 mM
For B:
kd apparent = 0.1891 mM
vm = 0.0993 nmole/min
Ki = -0.9879 mM

For C:
Kd = 1.7538 mM
vm apparent = 0.0252 nmole/min
Ki = -0.9863 mM
Ki = 69557.9167 mM
Finally, Ki for C = 69557.9167 mM
References

1. Marangoni, A. G. (2003). Enzyme Kinetics: a modern approach. USA. Jhon Wyley


and sons INC.
2. Shuler, M. Kargi, F. (2009). Bioprocess Engineering. Basic Concepts. New York,
USA. Prentice Hall.
3.Lehninger, Albert L., David L. Nelson, and Michael M. Cox. Lehninger Principles
of Biochemistry. Worth Publishers, 6 th ed. 2013.
4.Ingalls, Brian P. Mathematical modeling in systems biology : an introduction. MIT
Press. 2013.
Codes
Simulation
# -*- coding: utf-8 -*-

"""

Created on Fri Feb 25 08:39:30 2022

@author: Daniel Domínguez

"""

import numpy as np

import matplotlib.pyplot as plt

from scipy.integrate import odeint

def myfun(x,t):

k1 = 20

km1 = 1

k2 = 10

S = x[0]

E = x[1]

ES = x[2]

dS_dt = km1*ES - k1*S*E

dE_dt = ES*(k2+km1)-k1*S*E

dES_dt = k1*S*E - ES*(k2+km1)

dP_dt = k2*ES

return dS_dt, dE_dt, dES_dt, dP_dt

t = np.linspace(0,1,1000)

i0 = [10,2,0,0]

sol=odeint(myfun, i0, t) # Solving the function for each initial condition.

plt.figure()

plt.plot(t,sol)
plt.xlabel('Time [s]')

plt.ylabel('Concentration')

plt.legend(['S','E','ES','P'])

plt.grid()

plt.show()

Example 1
# -*- coding: utf-8 -*-

"""

Created on Mon Feb 28 09:14:18 2022

@author: Daniel Domínguez

"""

import numpy as np

import matplotlib.pyplot as plt

from sklearn.metrics import r2_score as r2

print("""Example 1: Lactase. also known as b-galactosidase, catalyses the hydrolysis of lactose to


produce glucose

and galactose from milk and whey. Experiments are carried out to determine the kinetic parameters
for

the enzyme. The initial rate data are as follows. Calculate the kinetic parameters.""")

lac_conc = np.array([2.5,2.27,1.84,1.35,1.25,0.73,0.46,0.204])

initial_reac_vel = np.array([1.94,1.91,1.85,1.80,1.78,1.46,1.17,0.779])

X = lac_conc/100

Y = initial_reac_vel/1000

# Michaelis-Menten

plt.figure()

plt.plot(X,Y)

plt.xlabel("Concentration of lactase")

plt.ylabel("Initial rate")
plt.title("Michaelis-Menten")

plt.grid()

plt.show()

# Lineweaver and Burk

plt.figure()

conc_inv = 1/X

rate_inv = 1/Y

n = len(initial_reac_vel)

sumX = sum(conc_inv)

sumY = sum(rate_inv)

sumX2 = sum(conc_inv**2)

sumY2 = sum(rate_inv**2)

sumXY = sum(conc_inv*rate_inv)

promx = sumX/n

promy = sumY/n

m = (sumX*sumY-n*sumXY)/(sumX**2-n*sumX2)

b = promy - m*promx

Rmax = 1/b

print()

print("Method lineweaver-burk")

print("The maximum rate is: ", format(Rmax,'.6f'), " M/min")

print("The Km is: ", format(Rmax*m,'.6f'), " M")

R = m*conc_inv+b

R2_LB = r2(rate_inv,R)

print()

print("R2 value for Lineweaber-burk: ", format(R2_LB,'.4f'))

plt.plot(conc_inv,rate_inv,'o',label='Datos')

plt.plot(conc_inv,R,label='Ajustes')

plt.xlabel("1/Concentration")

plt.ylabel("1/Rate")

plt.title("Linvewaver-Burk")

plt.grid()
plt.show()

# Method of Eadie-Hofstee

plt.figure()

Vs = Y/X

sumX = sum(Vs)

sumY = sum(Y)

sumX2 = sum(Vs**2)

sumY2 = sum(Y**2)

sumXY = sum(Vs*Y)

promx = sumX/n

promy = sumY/n

m = (sumX*sumY-n*sumXY)/(sumX**2-n*sumX2)

b = promy-m*promx

Rmax = b

print()

print("Method Eadie-Hofstee")

print("The maximum rate is: ", format(Rmax,'.6f'), " M/min")

print("The Km is: ", format(-m,'.6f'), " M")

R = m*Vs+b

R2_EH = r2(Y,R)

print()

print("R2 value for Eadie-Hofstee: ", format(R2_EH,'.4f'))

plt.plot(Vs,Y,'o',label='Datos')

plt.plot(Vs,R,label='Ajustes')

plt.xlabel("Vs (Rate/concentration)")

plt.ylabel("Rate")

plt.title("Eadie-Hofstee")

plt.grid()

plt.show()

# Method Langmuir
Sv = X/Y

sumX = sum(X)

sumY = sum(Sv)

sumX2 = sum(X**2)

sumY2 = sum(Sv**2)

sumXY = sum(X*Sv)

promx = sumX/n

promy = sumY/n

m = (sumX*sumY-n*sumXY)/(sumX**2-n*sumX2)

b = promy-m*promx

Rmax = 1/m

print()

print("Method Langmuir", format(Rmax,'.6f'), " M/min")

print("The Km is: ", format(b/m,'.6f'), " M")

R = m*X+b

R2_LM = r2(Sv,R)

print()

print("R2 value for Langmuir: ", format(R2_LM,'.4f'))

plt.figure()

plt.plot(X,Sv,'o',label='Datos')

plt.plot(X,R,label='Ajustes')

plt.xlabel("Sv (Concentration/Rate)")

plt.ylabel("Concentration")

plt.title("Langmuir")

plt.grid()

plt.show()

print()

print("Summary R2: ")

print()

print("R2 value for Lineweaber-burk: ", format(R2_LB,'.4f'))

print("R2 value for Eadie-Hofstee: ", format(R2_EH,'.4f'))

print("R2 value for Langmuir: ", format(R2_LM,'.4f'))


Exercise 1
# -*- coding: utf-8 -*-

"""

Created on Tue Mar 1 08:38:25 2022

@author: Daniel Domínguez

"""

# import Polynomial

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

import numpy.polynomial.polynomial as poly

Conc = np.array([0.2,0.33,0.5,1,2.5,4,5.9]).reshape(-1,1)

Rate_no_in = np.array([8.34,12.48,16.67,25,36.2,40,42.6]).reshape(-1,1)

Rate_A = np.array([3.15,5.06,7.12,13.3,26.2,28.9,31.9]).reshape(-1,1)

Rate_B = np.array([5.32,6.26,7.07,8.56,9.45,9.6,9.75]).reshape(-1,1)

Rate_C = np.array([4.33,5.56,8.75,14.8,23.6,28.5,30]).reshape(-1,1)

inv_conc = 1/Conc

inv_rate_no_in = 1/Rate_no_in

inv_rate_A = 1/Rate_A

inv_rate_B = 1/Rate_B

inv_rate_C = 1/Rate_C

plt.figure()

plt.subplot(1,3,1)

plt.plot(inv_conc,inv_rate_no_in)

plt.plot(inv_conc,inv_rate_A)

plt.subplot(1,3,2)

plt.plot(inv_conc,inv_rate_no_in)

plt.plot(inv_conc,inv_rate_B)

plt.subplot(1,3,3)
plt.plot(inv_conc,inv_rate_no_in)

plt.plot(inv_conc,inv_rate_C)

plt.show()

# Models

# No inhibitor

model_no_in = LinearRegression().fit(inv_conc,inv_rate_no_in)

y_eval_no_in = model_no_in.predict(inv_conc)

R2_no_in = model_no_in.score(inv_conc,inv_rate_no_in)

slope_no_in = model_no_in.coef_

b_no_in = model_no_in.intercept_

#A

model_A = LinearRegression().fit(inv_conc,inv_rate_A)

y_eval_A = model_A.predict(inv_conc)

R2_A = model_A.score(inv_conc,inv_rate_A)

slope_A = model_A.coef_

b_A = model_A.intercept_

#B

model_B = LinearRegression().fit(inv_conc,inv_rate_B)

y_eval_B = model_B.predict(inv_conc)

R2_B = model_B.score(inv_conc,inv_rate_B)

slope_B = model_B.coef_

b_B = model_B.intercept_

#C

model_C = LinearRegression().fit(inv_conc,inv_rate_C)

y_eval_C = model_C.predict(inv_conc)

R2_C = model_C.score(inv_conc,inv_rate_C)

slope_C = model_C.coef_

b_C = model_C.intercept_

plt.figure()

plt.subplot(1,3,1)

plt.plot(inv_conc,y_eval_no_in)
plt.plot(inv_conc,y_eval_A)

plt.subplot(1,3,2)

plt.plot(inv_conc,y_eval_no_in)

plt.plot(inv_conc,y_eval_B)

plt.subplot(1,3,3)

plt.plot(inv_conc,y_eval_no_in)

plt.plot(inv_conc,y_eval_C)

plt.show()

print()

print("Summary: ")

print()

print("R2 no inhibitor: ", R2_no_in)

print("R2 model A: ", R2_A)

print("R2 model B: ", R2_B)

print("R2 model C: ", R2_C)

print()

print("Slopes: ")

print()

print("Slope no inhibitor: ", slope_no_in)

print("Slope model A: ", slope_A)

print("Slope model B: ", slope_B)

print("Slope model C: ", slope_C)

print()

print("Y intercepts: ")

print()

print("b no inhibitor: ", b_no_in)

print("b model A: ", b_A)

print("b model B: ", b_B)

print("b model C: ", b_C)


model = ['model A', 'model B', 'model C']

slope = [slope_no_in,slope_A,slope_B,slope_C]

b = [b_no_in,b_A,b_B,b_C]

k=1

print()

while k < len(slope):

if abs(slope[0]-slope[k] > 0.001) and abs(b[0] - b[k] < 0.001):

print("There is a competitive inhibition in: ", model[k-1])

elif abs(slope[0]-slope[k] < 0.001) and abs(b[0] - b[k] > 0.001):

print("There is an uncompetitive inhibition in: ", model[k-1])

else:

print("There is a non-competitive (mixed) inhibition in: ", model[k-1])

k = k+1

# For no inhibition: Michaelis Menten. Hanes-Woolf or Langmuir regression

Sv_ni = Conc/Rate_no_in

model_ni_HW = LinearRegression().fit(Conc,Sv_ni)

y_eval_ni_HW = model_ni_HW.predict(Conc)

R2_ni_HW = model_ni_HW.score(Conc,Sv_ni)

slope_ni_HW = model_ni_HW.coef_

vm = slope_ni_HW

b_ni_HW = model_ni_HW.intercept_

km = b_ni_HW/slope_ni_HW

# For A: Uncompetitive inhibition. Hanes-Woolf or Langmuir regression

Sv_A = Conc/Rate_A

model_A_HW = LinearRegression().fit(Conc,Sv_A)

y_eval_A_HW = model_A_HW.predict(Conc)

R2_A_HW = model_A_HW.score(Conc,Sv_A)

slope_A_HW = model_A_HW.coef_

vmapp_A = slope_A_HW

b_A_HW = model_A_HW.intercept_

kdapp_A = b_A_HW/slope_A_HW
# Finding ki

Conc = np.array([0.2,0.33,0.5,1,2.5,4,5.9])

Rate_A = np.array([3.15,5.06,7.12,13.3,26.2,28.9,31.9])

Sv_A = Conc/Rate_A

model_ki_A = poly.polyfit(Conc,Sv_A,2)

c = model_ki_A[2]

ki_A = 1/(vm*c)

# For B: Competitive inhibition. Hanes-Woolf or Langmuir regression

Conc = Conc.reshape(-1,1)

Sv_B = Conc/Rate_B

model_B_HW = LinearRegression().fit(Conc,Sv_B)

y_eval_B_HW = model_B_HW.predict(Conc)

R2_B_HW = model_B_HW.score(Conc,Sv_B)

slope_B_HW = model_B_HW.coef_

vm_B = slope_B_HW

b_B_HW = model_B_HW.intercept_

kdapp_B = b_B_HW/slope_B_HW

# Finding ki

b_model_ki_B = b_B

ki_B = km/(b_B*vm-1)

# For C: Non-competitive inhibition (mixed). Hanes-Woolf or Langmuir regression

Conc = np.array([0.2,0.33,0.5,1,2.5,4,5.9]).reshape(-1,1)

Sv_C = Conc/Rate_C

model_C_HW = LinearRegression().fit(Conc,Sv_C)

y_eval_C_HW = model_C_HW.predict(Conc)

R2_C_HW = model_C_HW.score(Conc,Sv_C)

slope_C_HW = model_C_HW.coef_

vmapp_C = slope_C_HW

b_C_HW = model_C_HW.intercept_

kd_C = b_C_HW/slope_C_HW

# Finding ki

Conc = np.array([0.2,0.33,0.5,1,2.5,4,5.9])
Rate_C = np.array([4.33,5.56,8.75,14.8,23.6,28.5,30])

Sv_C = Conc/Rate_C

model_ki_C = poly.polyfit(Conc,Sv_C,2)

b = model_ki_C[1]

c = model_ki_C[2]

ki_C_1 = (km/vm)*(1/(b-1/vm))

ki_C_2 = 1/(vm*c)

print()

print("Results: ")

print()

print("For A: ")

print("Kd apparent = ", format(float(kdapp_A),'.4f'), " mM")

print("vm apparent = ", format(float(vmapp_A),'.4f'), " nmole/min")

print("Ki = ", format(float(ki_A),'.4f'), " mM")

print()

print("For B: ")

print("kd apparent = ", format(float(kdapp_B),'.4f'), " mM")

print("vm = ", format(float(vm_B),'.4f'), " nmole/min")

print("Ki = ", format(float(ki_B),'.4f'), " mM")

print()

print("For C: ")

print("Kd = ", format(float(kd_C),'.4f'), " mM")

print("vm apparent = ", format(float(vmapp_C),'.4f'), " nmole/min")

print("Ki = ", format(float(ki_C_1),'.4f'), " mM")

print("Ki = ", format(float(ki_C_2),'.4f'), " mM")

print("Finally, Ki for C = 69557.9167 mM")

You might also like