Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Rachel Yin

CHEM 145 AC
Professor Vaughan
Lab 1

Introduction

“Lab 1. UV-Vis Absorption Spectroscopy, Particle in a Box” acquainted us with UV-vis


instruments and applications of the simple particle in a box model to dye molecules. As an
introduction to working in the laboratory space, we practiced using micropipettes and prepared
solutions of various concentrations. Using the absorption and wavelength results from the UV-vis
spectrometers, we were able to measure extinction coefficients and explore signal-to-noise
considerations for UV-vis spectroscopy. Measuring the UV-vis spectra Cy3, Cy5, and Cy7, we
were able to compare predictions from quantum mechanics.

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.

iv. Tabulated extinction coefficient for fluorescein: 70,000 cm^-1 * M^-1


(aatbio.com). My measurement does not agree well with the one from the
literature. List of potential sources of error in my measurement: peak absorbance
wavelength shifts depending on the pH of the solution, use of dirty cuvettes,
poorly mixed solutions, and presence of residual solutions in consequent
measurements. I believe that the source of error that was most likely significant
here was the presence of residual solutions. When the dilution is not as dilute as it
should be, the detector cannot measure the transmitted light very accurately and
thus leads to inaccurate absorption values.
Part 2, Cyanine Dyes
a. Procedure

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

provided: . For the energy change calculations from my measurements, I used


the Plank-Einstein equation and the wavelength that corresponded to peak absorbance for the
three dye solutions.

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.

Ancillary Material for Whole Report


a. Citations and Attributions

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.

b. Lab book pages (next page)

c. Python codes for all Python work


(includes Part 1 from Alessandro M. and Connor M.’s data, Part 2 from our data results,
and Part 1 from our inaccurate data results)
Lab 1 (Python codes for all Python work)

October 17, 2023

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});

plt.xlabel('wavelength [nm]',{'fontsize': fs});


plt.ylabel('absorption [AU]',{'fontsize': fs});
ax.legend();
plt.grid();

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});

plt.xlabel('concentration (µM)',{'fontsize': fs});


plt.ylabel('peak absorbance [AU]',{'fontsize': fs});
plt.grid();
plt.show();

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')

# from sorting through data


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])

b = 1 # path length of the cuvette in cm

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)))

�01, �10, �15, �20, �25, �250

[27]: (150000.0, 21400.0, 19533.333333333332, 19700.000000000004, 16720.0, 7840.0)

Flourescein Concentration Apparent extinction coefficient [(M-1)(cm-1)]


0.1 µM 150000
10 µM 21400
15 µM 19533
20 µM 19700
25 µM 16720
250 µM 7840

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});

plt.xlabel('wavelength [nm]',{'fontsize': fs});


plt.ylabel('absorption [AU]',{'fontsize': fs});
ax.legend();
plt.grid();

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});

plt.xlabel('energy [eV]',{'fontsize': fs});


plt.ylabel('absorption [AU]',{'fontsize': fs});
ax.legend();
plt.grid();

[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)

October 17, 2023

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});

plt.xlabel('wavelength [nm]',{'fontsize': fs});


plt.ylabel('absorption [AU]',{'fontsize': fs});
ax.legend();
plt.grid();

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")

ax.plot(b1, 15, label='15 µM', marker="o", markersize=10,␣


↪markerfacecolor="orange")

ax.plot(c1, 20, label='20 µM', marker="o", markersize=10,␣


↪markerfacecolor="green")

ax.plot(d1, 25, label='25 µM', marker="o", markersize=10, markerfacecolor="red")

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])

b = 1 # path length of the cuvette in cm


�10 = a1/(b*(10*(10**-6))) # apparent extinction coefficient in␣
↪(cm**-1)*(M**-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)))

�01, �10, �15, �20, �25, �250

[22]: (50000.0,
30500.000000000004,
26800.000000000004,
31200.000000000004,
28280.0,
7623.999999999999)

Flourescein Concentration Apparent extinction coefficient [(M**-1)*(cm**-1)]


0.1 µM 50000
10 µM 30500
15 µM 26800
20 µM 31200
25 µM 28280
250 µM 7624

You might also like