Difference between revisions of "Williams: Optical Trapping Lab 1"

From Course Wiki
Jump to: navigation, search
Line 1: Line 1:
<h1> Lab 1: Optical Trapping </h1>
+
[[Category:Spring 2012]]
 +
[[Category:20.345]]
 +
[[Category:20.345 Projects]]
 +
{{Template:20.345}}
  
 +
 +
<h1> Lab 1: Optical Trapping </h1>
  
 
<h4> Diagram of Electronic Control System </h4>
 
<h4> Diagram of Electronic Control System </h4>

Revision as of 00:42, 4 March 2012

20.345: Bioinstrumentation Project Lab


Lab 1: Optical Trapping

Diagram of Electronic Control System

A. To be added later.

Instruments/Code
Matlab : programming language
DAQ – National Instruments DAQ Card
Piezoelectric Driver and Controller - TPZ001
Bead size: 0.97 um beads used
Lasers wavelength: 976um


Goals: What we set out to accomplish

We set out to add functionality to the trap control software, specifically we wanted to automate centering of the DNA-tethered bead using a centering algorithm which we would write in MATLAB. To center the DNA-tethered bead we would need to learn how to talk to different electronics using DAQ and the daqtoolbox in MATLAB, how to test a code which is supposed to provide specific functionality, and a bit about the gui in MATLAB. After writing the code, our goals expanded to include writing code to simulate a typical optical trap experiment which would be used to measure the persistence length and the contour length of DNA.

Motivating the project goal

We wanted to center the bead so when we fit the x displacement vs. Force applied curve to the worm chain model that the force we were calculating was fully being applied to the DNA-tether. Centering the bead also helped ensured that, to estimate the persistence length and the contour length of the DNA , the only "displacement' of the tether in one direction is being measured. This is necessary because in the worm chain model [See Appleyard] there is a relationship between force and displacement of a linear unit of distance ( x ) of the DNA:

$ F = \frac{k_{B}}{l_{p}}[(\frac{1}{4}(1 - \frac{x}{l_{c}})^{-2} - \frac{1}{4} +\frac{x}{l_{c}}] $

where k_{B} is the Boltzmann constant, l_{c} is the contour length and l_{p} is the persistence length.

Project Steps

1. Understanding the OTKB code and figuring out how to use the variables that were already defined in OTKB.m to write our code, for ease of integration.
2. Writing a skeleton for the data acquisition and then the subsequent update of piezoelectric stage position. <br\> 3. Determining the relationship between the output piezoelectric voltage and the feedback voltage fed into the piezoelectric motor so that the stage can be centered accordingly.
4. Designing a centering algorithm

Project Steps 1-4
We first started out by creating a function called dnaTetherCentering which fed a sine waveform (only along one axis at a time) into the appropriate PiezoDriver channel. The sine waveform was set to repeat 3 cycles every time the piezoelectric controller was triggered (line ). The next step was figuring out the logical progression of steps for the code. We knew that we wanted to center the DNA-tethered bead in one axis at a time. We eventually settled on first centering the DNA tether in the x axis,centering the DNA tether in the y axis and then going back to the x axis to collect the data that will be used to fit the worm-chain model. These sequence of steps is followed with the use of the variables xcenter and ycenter, as seen in the code. The next step was to design a findCenter. The data collected from the QPD was also binned in order to smooth out the signal and remove some noise.


Dnatethering 20mW & two 70mW.jpg

The two main features we used to extract the location of the center of the DNA-tethered bead were the peak and trough of the curve. In the code, the maximum voltage reading of the QPD was found and added to the minimum voltage reading of the QPD and divided by 2.


Another algorithm implemented but not fully debugged tried to discern the dna-tether center by calculating the discrete derivative of the voltage signal from the QPD to the uniaxial position movement of the optical trap's stage. The function, essentially looks for a region with discrete derivative (which would correspond to a region were the derivative is zero) <<< 1 and and then find the voltage reading of that "plateau". Then the function checks to see if other features of a good calibration curve are present such as the large (positive and negative) slope leading to the peak on the position/voltage readout curve.


Results of Project Steps

Centering Code

GUI Code Integrated into OTKB Function

function pushbuttonDNATetherCenter_Callback(hObject, eventdata, handles)

case 'Center Sample'

               [handles.CenterPositionX handles.CenterPositionY] = DNATetherCenteringProblem(handles,...
                  uiSettings);
               waveform = [handles.CenterPositionX handles.CenterPositionY];
               guidata(handles.output, handles);
               set(handles.popupmenuStageMovementMode, 'Value', 1);
GUI code in DNATetherCentering

Displays graphs of QPD reading and stage position as you center you tether. The data collected while moving the stage in the x axis displays on the lower left graph of the gui and the data collected while moving the stage in the y axis displays on the lower right corner of the gui.
OTKB gui finding a center.png OTKB gui after Dna Tether Centering.png

      plot(handles.axes3, BinnedData(:,3),BinnedData(:,1),'b');
       hold(handles.axes3, 'on')
       plot(handles.axes3, BinnedData(centeredPositionIndexX,3), ....
          BinnedData(centeredPositionIndexX, 1),'bx','MarkerSize',20)
       hold(handles.axes3, 'off')
       plot(handles.axes4, BinnedData(:,4),BinnedData(:,2), 'r');
       hold(handles.axes4, 'on')
       plot(handles.axes4, BinnedData(centeredPositionIndexY,4),...
         BinnedData(centeredPositionIndexY, 2),'rx','MarkerSize',20)
hold(handles.axes4, 'off')