Professional Documents
Culture Documents
Lab 1 Report Chem 145 Rachel Yin
Lab 1 Report Chem 145 Rachel Yin
CHEM 145 AC
Professor Vaughan
Lab 1
Introduction
Part 1, Fluorescein
a. Procedure
My lab partner and I followed the lab procedure to the best of our abilities. As a result of
confusion on the UV-vis spectrometer instructions, we did not use the plastic cap on the cuvette
when acquiring the absorbance spectra for the fluorescein solutions. Therefore, the light may not
have reached the solution entirely and more light was considered as absorbed (shown in
Ancillary Materials for Whole Report).
b. Data/Calculations/Analysis
Using the UV-vis spectrometer, I measured the absorbance of each fluorescein solution over a
range of wavelengths. Due to the inaccuracy (described in a. Procedure), I used the data from
Alessandro M. and Connor M. (* citation in four plots below). I created a plot of absorbance vs
wavelength directly from the fluorescein dilution series data, which provided one column of
absorbance values and one column of wavelength values (Plots 8.a.i, 8.a.iii, 8.a.iv). To extract
the peak absorbance wavelength, I used the “np.max” function for each solution data file and
recorded the respective concentrations (Plot 8.a.ii). To calculate the apparent extinction
coefficient, I referred to Oxtoby (Chapter 20) for Beer’s law. By using the equation: “ε =
A/(b*C)”, where ε = apparent extinction coefficient, A = peak absorption, b = path length, and C
= concentration, I calculated the coefficient for each solution (Plot 8.b).
Plot 8.a.i.
Plot 8.a.ii.
Plot 8.a.iii.
Plot 8.a.iv.
Table 8.b.
c. Results & Discussion
i. Observing my peak absorbance vs concentration plot (fluorescein main solution
series), the first three concentrations (10 µM, 15 µM, and 20 µM) approximately
follow a line as I would expect from Beer’s law. The fourth concentration, 25 µM,
deviates slightly from the ideal behavior. Nonetheless, the plot appears to have a
y-intercept of 0 and its slope seems to follow that of Beer’s law (εb).
ii. Among the 6 absorbance vs. wavelength spectra, the 0.1 µM , 25 µM, and 250
µM concentrations appeared to look “bad”. The diagram of the UV-spectrometer
(simple figure from Lab 1 Discussion slides) below shows how a concentrated
solution may result in an inaccurate measurement. It is difficult for the detector to
measure a very small fraction of transmitted light, which is the result of a
concentrated solution that absorbs a lot of light. Additionally, when molecules
aggregate, the spectra of a dye can change shape depending on the concentration
of the dye.
iii. From Table 8.b. above, not all of my extinction coefficient values agree with one
another. I trust the coefficient values for the 10 µM, 15 µM, and 20 µM
fluorescein concentration coefficients better than the others. I believe the most
accurate results come from the 10 µM, 15 µM, and 20 µM solutions, as they do
not absorb a lot of light and the light detector can measure the fraction of
transmitted light more accurately than for the other solutions.
My lab partner and I followed the lab procedure for Part 2 to the best of our abilities. We diluted
the dyes in methanol to get peak absorbances of 0.524, 0.597, and 0.597 in the range 500-800nm
for Cy3, Cy5, and Cy7 respectively. Through a process of diluting and recording the spectra
multiple times, we found that a concentration of approximately 0.00526 mM (100 µL of dye
diluted in 1900 µL of methanol) led to the desired peak absorbance.
b. Data/Calculations/Analysis
Using the UV-vis spectrometer, I measured the absorbance of each diluted dye solution (Cy3,
Cy5, and Cy7) over a range of wavelengths. I created a plot of absorbance vs wavelength directly
from the cyanine dye absorbance spectra data, which provided one column of absorbance values
and one column of wavelength values (Plot 4.a.i). To create the plot of absorbance vs energy, I
used the Plank-Einstein equation (E = (h*c)/λ) to set the wavelength values into units of eV. I
then set the x-range from 400-900 nm as 1.3776-3.0996 eV (Plot 4.a.ii). For the three respective
p values (3, 5, and 7), I calculated the theoretical predictions of energy change from the equation
Plot 4.a.i.
Plot 4.a.ii.
Plot 4.a.iii.
c. Results & Discussion
i. The predicted absorption energies are greater compared to the measured
absorption energies. Although the trends for energy vs. p agree (decreasing), the
values do not match well.
ii. The simplifications that were made in this model are using the characteristic bond
length (l) from benzene, rounding the ratio N/2 and N/2+1 to be the ni and nf
values respectively, and assuming that potential energy is constant along the
carbon-carbon double bonded chain between nitrogen atoms. To make the model
more accurate, we could potentially use the accurate carbon-carbon double bond
length in each dye molecule. We may also have to consider the effect of resonance
structures on energy change and how each atom carries charge in the molecule.
I used the data by Alessandro M. and Connor M., a big thank you to them for providing accurate
results that could be used for this lab report!
When obtaining the absorption spectrum measurements for Part 1 and Part 2 of the lab, I
collected data from the UV-vis spectrometer while my lab partner (Rin Prabhakaran) prepared
the solutions. We made sure to clean our workstation after completing the procedure and both
prepared well for the lab.
Part 1
[5]: # 8.a.i. (Acknowedlgement to Alessandro M. and Connor M.)
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 600)
A = np.loadtxt('10 microm.txt')
ax.plot(A[:,0], A[:,1], label='10 µM');
B = np.loadtxt('15 microm.txt')
ax.plot(B[:,0],B[:,1], label='15 µM');
C = np.loadtxt('20 microm.txt')
ax.plot(C[:,0],C[:,1], label='20 µM');
D = np.loadtxt('25 microm.txt')
ax.plot(D[:,0],D[:,1], label='25 µM');
fs = 15
ax.set_title('Absorbance vs Wavelength for the Fluorescein Main Dilution Series␣
↪(10-25 µM)*',{'fontsize': fs});
1
[38]: # 8.a.ii. (Acknowedlgement to Alessandro M. and Connor M.)
import numpy as np
import matplotlib.pyplot as plt
A = np.loadtxt('10 microm.txt')
B = np.loadtxt('15 microm.txt')
C = np.loadtxt('20 microm.txt')
D = np.loadtxt('25 microm.txt')
a1 = np.max(A[:,1])
b1 = np.max(B[:,1])
c1 = np.max(C[:,1])
d1 = np.max(D[:,1])
ax = plt.axes()
x = [10, 15, 20, 25]
y = [a1, b1, c1, d1]
plt.plot(x, y, marker="o")
fs = 15
ax.set_title('Peak Absorbance vs Concentration for the Fluorescein Main␣
↪Dilution Series (10-25 µM)*',{'fontsize': fs});
2
[18]: # 8.a.iii. (Acknowedlgement to Alessandro M. and Connor M.)
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 600)
D = np.loadtxt('01 microm.txt')
ax.plot(D[:,0],D[:,1])
fs = 15
ax.set_title('0.1 µM Fluorescein Absorbance vs Wavelength*',{'fontsize': fs});
plt.xlabel('wavelength [nm]',{'fontsize': fs});
plt.ylabel('absorption [AU]',{'fontsize': fs});
plt.grid();
3
[19]: # 8.a.iv. (Acknowedlgement to Alessandro M. and Connor M.)
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
D = np.loadtxt('250 microm.txt')
ax.plot(D[:,0],D[:,1])
fs = 15
ax.set_title('250 µM Fluorescein Absorbance vs Wavelength*',{'fontsize': fs});
plt.xlabel('wavelength [nm]',{'fontsize': fs});
plt.ylabel('absorption [AU]',{'fontsize': fs});
plt.grid();
4
[27]: # 8.b. (Acknowedlgement to Alessandro M. and Connor M.)
import numpy as np
A = np.loadtxt('10 microm.txt')
B = np.loadtxt('15 microm.txt')
C = np.loadtxt('20 microm.txt')
D = np.loadtxt('25 microm.txt')
E = np.loadtxt('01 microm.txt')
F = np.loadtxt('250 microm.txt')
5
�10 = a1/(b*(10*(10**-6))) # apparent extinction coefficient in␣
↪(cm**-1)*(M**-1)
�15 = b1/(b*(15*(10**-6)))
�20 = c1/(b*(20*(10**-6)))
�25 = d1/(b*(25*(10**-6)))
�01 = e1/(b*(0.1*(10**-6)))
�250 =f1/(b*(250*(10**-6)))
Part 2
[1]: # 4.a.i.
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 900)
A = np.loadtxt('cy3.txt')
ax.plot(A[:,0],A[:,1], label='Cy3 - 0.00526 mM');
B = np.loadtxt('cy5.txt')
ax.plot(B[:,0],B[:,1], label='Cy5 - 0.00526 mM');
C = np.loadtxt('cy7.txt')
ax.plot(C[:,0],C[:,1], label='Cy7 - 0.00526 mM');
fs = 15
ax.set_title('Absorbance vs Wavelength for three dyes (Cy3, Cy5, and␣
↪Cy7)',{'fontsize': fs});
6
[2]: # 4.a.ii.
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(1.377730633, 3.099893925)
A = np.loadtxt('cy3.txt')
ax.plot((((6.626*10**-34)*(2.998*10**8)*(6.242*10**18))/(A[:,0]*10**-9)),A[:
↪,1], label='Cy3 - 0.00526 mM');
B = np.loadtxt('cy5.txt')
ax.plot((((6.626*10**-34)*(2.998*10**8)*(6.242*10**18))/(B[:,0]*10**-9)),B[:
↪,1], label='Cy5 - 0.00526 mM');
C = np.loadtxt('cy7.txt')
ax.plot((((6.626*10**-34)*(2.998*10**8)*(6.242*10**18))/(C[:,0]*10**-9)),C[:
↪,1], label='Cy7 - 0.00526 mM');
fs = 15
7
ax.set_title('Absorbance vs Energy for three dyes (Cy3, Cy5, and␣
↪Cy7)',{'fontsize': fs});
[43]: # 4.a.ii.
import numpy as np
import matplotlib.pyplot as plt
A = np.loadtxt('cy3.txt')
B = np.loadtxt('cy5.txt')
C = np.loadtxt('cy7.txt')
a1 = np.max(A[:,1])
b1 = np.max(B[:,1])
c1 = np.max(C[:,1])
# Measurements
ev3 = (((6.626*(10**-34))*(2.998*10**8)*(6.242*10**18))/((544.70)*(10**-9)))
8
ev5 = (((6.626*(10**-34))*(2.998*10**8)*(6.242*10**18))/((637.80)*(10**-9)))
ev7 = (((6.626*(10**-34))*(2.998*10**8)*(6.242*10**18))/((741.40)*(10**-9)))
# Theoretical Predictions
EV3 = ((((6.626*10**-34)**2)*(3+4))/((8*(9.11*10**-31)*((0.
↪139*10**-9)**2)*((3+3)**2))))*6.242*10**18
EV5 = ((((6.626*10**-34)**2)*(5+4))/((8*(9.11*10**-31)*((0.
↪139*10**-9)**2)*((5+3)**2))))*6.242*10**18
EV7 = ((((6.626*10**-34)**2)*(7+4))/((8*(9.11*10**-31)*((0.
↪139*10**-9)**2)*((7+3)**2))))*6.242*10**18
ax = plt.axes()
x = [3, 5, 7]
y = [ev3, ev5, ev7]
plt.plot(x, y, marker="o", label='measurement')
a = [3, 5, 7]
b = [EV3, EV5, EV7]
plt.plot(a, b, marker="x", label='theoretical')
fs = 15
ax.set_title('Absorbance energy vs p (for Cy3, Cy5, Cy7)',{'fontsize': fs});
plt.xlabel('p',{'fontsize': fs});
plt.ylabel('absorbance energy [eV]',{'fontsize': fs});
plt.grid();
ax.legend();
9
10
Part 1 (Inaccurate)
Part 1
[27]: # 8.a.i.
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 600)
A = np.loadtxt('10 microM.txt')
ax.plot(A[:,0],A[:,1], label='10 µM');
B = np.loadtxt('15 microM.txt')
ax.plot(B[:,0],B[:,1], label='15 µM');
C = np.loadtxt('20 microM.txt')
ax.plot(C[:,0],C[:,1], label='20 µM');
D = np.loadtxt('25 microM.txt')
ax.plot(D[:,0],D[:,1], label='25 µM');
fs = 15
ax.set_title('Absorbance vs Wavelength for the Fluorescein Main Dilution Series␣
↪(10-25 µM)',{'fontsize': fs});
1
[26]: # 8.a.ii.
import numpy as np
import matplotlib.pyplot as plt
A = np.loadtxt('10 microM.txt')
B = np.loadtxt('15 microM.txt')
C = np.loadtxt('20 microM.txt')
D = np.loadtxt('25 microM.txt')
a1 = np.max(A[:,1])
b1 = np.max(B[:,1])
c1 = np.max(C[:,1])
d1 = np.max(D[:,1])
ax = plt.axes()
ax.plot(a1, 10, label='10 µM', marker="o", markersize=10,␣
↪markerfacecolor="blue")
fs = 15
ax.set_title('Peak Absorbance vs Concentration for the Fluorescein Main␣
↪Dilution Series (10-25 µM)',{'fontsize': fs});
2
plt.xlabel('peak absorbance [AU]',{'fontsize': fs});
plt.ylabel('concentration (µM)',{'fontsize': fs});
ax.legend();
plt.grid();
[25]: # 8.a.iii.
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 600)
D = np.loadtxt('0.1 microM.txt')
ax.plot(D[:,0],D[:,1])
fs = 15
ax.set_title('0.1 µM Fluorescein Absorbance vs Wavelength',{'fontsize': fs});
plt.xlabel('wavelength [nm]',{'fontsize': fs});
plt.ylabel('absorption [AU]',{'fontsize': fs});
plt.grid();
3
[24]: # 8.a.iv.
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes()
plt.xlim(400, 600)
D = np.loadtxt('250 microM.txt')
ax.plot(D[:,0],D[:,1])
fs = 15
ax.set_title('250 µM Fluorescein Absorbance vs Wavelength',{'fontsize': fs});
plt.xlabel('wavelength [nm]',{'fontsize': fs});
plt.ylabel('absorption [AU]',{'fontsize': fs});
plt.grid();
4
[22]: # 8.b.
import numpy as np
A = np.loadtxt('10 microM.txt')
B = np.loadtxt('15 microM.txt')
C = np.loadtxt('20 microM.txt')
D = np.loadtxt('25 microM.txt')
E = np.loadtxt('0.1 microM.txt')
F = np.loadtxt('250 microM.txt')
a1 = np.max(A[:,1])
b1 = np.max(B[:,1])
c1 = np.max(C[:,1])
d1 = np.max(D[:,1])
e1 = np.max(E[:,1])
f1 = np.max(F[:,1])
5
�15 = b1/(b*(15*(10**-6)))
�20 = c1/(b*(20*(10**-6)))
�25 = d1/(b*(25*(10**-6)))
�01 = e1/(b*(0.1*(10**-6)))
�250 =f1/(b*(250*(10**-6)))
[22]: (50000.0,
30500.000000000004,
26800.000000000004,
31200.000000000004,
28280.0,
7623.999999999999)