Difference between revisions of "Spring 2012: Ajoke Jumoke Williams"

From Course Wiki
Jump to: navigation, search
Line 24: Line 24:
 
Matlab : programming language <br/>
 
Matlab : programming language <br/>
 
DAQ – <br/>
 
DAQ – <br/>
Piezoelectric Stages - <br/>
+
Piezoelectric Driver and Controller - TPZ001 <br/>
Bead size : 0.97 um beads used <br/>
+
Bead size: 0.97 um beads used <br/>
Lasers wavelength `< 1um <br/>
+
Lasers wavelength: 976um <br/>
  
  
Line 42: Line 42:
  
 
<h4> How we accomplished the goal(s) </h4>
 
<h4> How we accomplished the goal(s) </h4>
 +
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 and refining our centering on that axis. 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 centeringAlgorithm.
 +
The first iteration of centeringAlgorithm we designed relied heavily on the topography of the dna-tether calibration curve as seen in the figure below.
 +
[[File:Dnatethering_20mW_&_two_70mW.jpg]]
 +
The two main features we used to extract the location of the center of the dna-tether 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 <<< 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.
 +
 +
Unfortunately, we haven't had time to test our code with
  
  
Line 61: Line 70:
 
  Results of Project Steps 4  
 
  Results of Project Steps 4  
  
Results of Project Steps 5
+
<h5> GUI Code Integrated into OTKB Function </h5>
 +
function pushbuttonDNATetherCenter_Callback(hObject, eventdata, handles)

Revision as of 06:44, 29 February 2012


20.345: Bioinstrumentation Project Lab

Introduction

My role model

Hey, I'm Ajoke(not pronounced -a-joke) Williams and I'm a senior in Biology. I took 20.309 my sophomore year and it was a frightening experience;mostly because the class was really hard for me. Nevertheless the material was awesome. Because of 20.309 I received my first exposure to optics and matlab. Although 20.309 only touched on geometric optics I found thinking about light and its propagation through space and matter exciting. Fast forward to my senior fall year and I found myself taking a Modern Optics class and working in a UROP where I mostly code in matlab, which is pretty ironic since geometric optics was not my friend my sophomore year and I have never before considered myself a "programmer". My expectations for this class are to learn more about optics and how optical components are interfaced with electrical and digital components to make robust biological measurement/imaging systems, to improve my programming skills and learn how to build a PCB board. Right now I think I'm leaning towards working on the STORM imaging method for a final project.



Lab 1: Optical Trapping: UI and Instrument Control

Diagram of Electronic Control System

A.
B.
C.
D.

Instruments/Code Matlab : programming language
DAQ –
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 for when we fit the x vx. F curve to the worm chain model that the force we were calculating was mostly being applied along to axis of the stage movement during the tether’s stretching trajectory. This is necessary because the worm chain model [See Appleyard] we used models the 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.

How we accomplished the goal(s)

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 and refining our centering on that axis. 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 centeringAlgorithm. The first iteration of centeringAlgorithm we designed relied heavily on the topography of the dna-tether calibration curve as seen in the figure below. Dnatethering 20mW & two 70mW.jpg The two main features we used to extract the location of the center of the dna-tether 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 <<< 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.

Unfortunately, we haven't had time to test our code with


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
5. Proof of concept - Simulating data and testing results.
6. Testing with real DNA-tethers.

Results of Project Steps

Code

Centering Algorithm

Results of Project Steps 4 
GUI Code Integrated into OTKB Function
function pushbuttonDNATetherCenter_Callback(hObject, eventdata, handles)