Team:UC Davis/Potentiostat Design Software

From 2014.igem.org

(Difference between revisions)
 
(25 intermediate revisions not shown)
Line 48: Line 48:
<br>
<br>
<b>Microcontroller Downloads</b><br>
<b>Microcontroller Downloads</b><br>
-
TeensyDuino:<br>
+
Teensyduino:<br>
Teensyduino OliView Sketch:<br>
Teensyduino OliView Sketch:<br>
<br>
<br>
<b>Software Downloads</b><br>
<b>Software Downloads</b><br>
Qt Creator:<br>
Qt Creator:<br>
-
OliView Software<br>
+
OliView Software:<br>
 +
OliView GitHub:<br>
</p>
</p>
Line 60: Line 61:
<p>
<p>
<br><br>
<br><br>
-
<a href="http://www.pjrc.com/teensy/td_download.html">Teensyduino<a><br>
+
<a href="http://www.pjrc.com/teensy/td_download.html" class="brightlink">Teensyduino</a><br>
-
<a href="https://static.igem.org/mediawiki/2014/6/6b/OliView2_0_TeensySketch.zip">OliView Teensy Sketch<a><br><br><br>
+
<a href="https://static.igem.org/mediawiki/2014/6/6b/OliView2_0_TeensySketch.zip" class="brightlink">OliView Teensy Sketch</a><br><br><br>
-
<a href="http://download.qt-project.org/official_releases/online_installers/qt-opensource-windows-x86-1.6.0-5-online.exe">Qt Creator<a><br>
+
<a href="http://www.qt.io/download-open-source" class="brightlink">Qt Creator</a><br>
-
<a href="http://github.com/UCDiGEM/OliView/archive/master.zip">OliView Software<a><br>
+
<a href="http://github.com/UCDiGEM/OliView/archive/master.zip" class="brightlink">OliView Software</a><br>
 +
<a href="http://github.com/UCDiGEM/OliView" class="brightlink">OliView GitHub</a><br>
</p>
</p>
</div>
</div>
Line 98: Line 100:
<div class="mainContainer">
<div class="mainContainer">
<div class="mainContainerLeftPic"><p>
<div class="mainContainerLeftPic"><p>
-
<img src="https://static.igem.org/mediawiki/2014/0/06/UCDavis_Arduino.png" height="450px"/>The OliView system contains two pieces of software. One program on the microcontroller of the OliView board and one desktop program. The microconotroller software was written in the Arduino IDE while the desktop software was written in the Qt Creator IDE. The primary job of the microcontroller on the OliView board is to listen for requests from the virtual serial port. The port is connected to the computer via USB. The OliView desktop software sends commands to the microcontroller which then processes the request, changes voltages/pins/switches as necessary, and outputs data back to the computer. This required a complex communication system between the microcontroller and the computer. This is evidenced by the fact that we were unable to achieve real-time plotting of the data.  
+
<img src="https://static.igem.org/mediawiki/2014/0/06/UCDavis_Arduino.png" height="400px"/>The OliView system contains two pieces of software. One program on the microcontroller of the OliView board and one desktop program. The microconotroller software was written in the Arduino IDE while the desktop software was written in the Qt Creator IDE. The primary job of the microcontroller on the OliView board is to listen for requests from the virtual serial port. The port is connected to the computer via USB.  
 +
<br><br>
 +
The OliView desktop software sends commands to the microcontroller which then processes the request, changes voltages/pins/switches as necessary, and outputs data back to the computer. There also required the ability to control the various switches on the board for electrode and amplifier operation. This required a complex communication system between the microcontroller and the computer. In the current version, we were unable to achieve real-time plotting of the data. Future revisions will aim to address this issue.<br><br>
 +
To graph our data, we've incorporated the  <a href="http://www.qcustomplot.com/">QCustomPlot library</a> released by Emanuel Eichhammer under the GNU General Public License. Accordingly, the OliView software is also being released under the GNU General Public License.
</p></div>
</p></div>
</div>
</div>
Line 106: Line 111:
</div>
</div>
<div class="mainContainer">
<div class="mainContainer">
-
<div class="mainContainerLeftPic"><p>
+
<div class="mainContainerRightPic"><p>
<img src="https://static.igem.org/mediawiki/2014/9/93/UCDavis_ElectroChemsitry.png" height="450px"/>
<img src="https://static.igem.org/mediawiki/2014/9/93/UCDavis_ElectroChemsitry.png" height="450px"/>
-
There are three types of electrochemical operations available with the OliView software: Anodic Stripping, Cyclic Voltammetry, and Potentiostatic Amperometry. Anodic stripping can be used for electropolymerization, cleaning electrodes, or to take multiple voltammograms. Cyclic voltammetry will apply triangle waves between two set voltages and record the resulting current, while potentiostatic amperometry maintains the bias at a fixed potential and records the response.  
+
There are three types of electrochemical operations available with the OliView software: Anodic Stripping, Cyclic Voltammetry, and Potentiostatic Amperometry. Anodic stripping can be used for electropolymerization, cleaning electrodes, or to take multiple voltammograms. Cyclic voltammetry will apply triangle waves between two set voltages and record the resulting current, while potentiostatic amperometry maintains the bias at a fixed potential and records the response. Potential at the working electrode is adjustable from -1 to +1 volts. The scan rate, sampling duration, and sampling rate are all adjustable as well. 
</p>
</p>
</div>
</div>
Line 118: Line 123:
<div class="mainContainer">
<div class="mainContainer">
<div class="mainContainerLeftPic"><p>
<div class="mainContainerLeftPic"><p>
-
<img src="https://static.igem.org/mediawiki/2014/e/e7/UCDavs_SigProcessing.png" width="300px"/>
+
<img src="https://static.igem.org/mediawiki/2014/e/e7/UCDavs_SigProcessing.png" height="400px"/>The open source biqaud library <sup>[1]</sup> by Nigel Redmon, was incorporated to build the signal processing functions of our program. The OliView software is capable of applying either a notch filer, a low pass filter, or a default combination of the two. The default filter includes 3-2nd order notch filters at 60 Hz, 120 Hz, & 180 Hz, and a single low pass filter at 25 Hz. This represents a filtering of mains hum as well as the first two harmonics thereof. The signal processing tab contains controls for the filter type, frequency, and quality factor. This feature turned out to be extremely useful during our potentiostatic amperometry trials. As demonstrated by the screen shot to the left, the signal conditioning increased our signal to noise ratio significantly.
-
;lsjakdfklasdf
+
</p>
</p>
</div>
</div>
Line 127: Line 131:
<div class="mainTitleHeader">
<div class="mainTitleHeader">
<p>Statistics</p>
<p>Statistics</p>
 +
</div>
 +
<div class="mainContainer">
 +
 +
<div class="mainContainerRightPic"><p>
 +
<img src="https://static.igem.org/mediawiki/2014/5/53/UCDavis_Stats.png" width="450px"/>
 +
The statistics package was written by the UC Davis iGEM team to include an adjustable data range, as well as several metrics to help quantify your results. The package has a pre-built steady-state calculator. The steady-state function does a linear regression every 100 ms to check the slope of the data. If the 100 ms section regresses to a slope close to zero, the steady state assumption is activated. This will then provide a discrete statistics analysis of the three seconds following the steady state section.
 +
<br><br>
 +
In this way, any capacitive effects during potentiostatic amperometry can be negated when we report the final current of the sample. The steady-state calculator is only applicable to potentiostatic amperometry, and may not fit all the needs of the user. Accordingly, we've included the ability to select the time range for a given statistics reading. A bracket is animated to help the user keep track of the selected time range. Statics reported in the top section to the left only apply to the selected time range.
 +
</p>
 +
</div>
</div>
</div>
<div class="mainTitleHeader">
<div class="mainTitleHeader">
<p>Enzyme Specificity</p>
<p>Enzyme Specificity</p>
 +
</div>
 +
<div class="mainContainer">
 +
<div class="mainContainerLeftPic">
 +
<p>
 +
<img src="https://static.igem.org/mediawiki/2014/8/8a/UCDavis_ESpec.png" width="450px"/>
 +
The Olive Software features a clean and user friendly interface for determining enzyme specificity. Although not all of the mathematical functions have been built into the backend, the GUI already supports the necessary measurements. As more data from signal processing becomes available, this page will give users a complete profile of the aldehyde concentrations in olive oil.
 +
You can learn more about our mathematical approach to describing our system from our <a href="https://2014.igem.org/Team:UC_Davis/Signal_Processing" class="brightlink">signal processing page</a>.
 +
Stay updated through our <a href="http://github.com/UCDiGEM/OliView" class="brightlink">GitHub</a> for the upcoming final version of Oliview, featuring a full enzyme specificity package!
 +
</p>
</div>
</div>
<div class="mainTitleHeader">
<div class="mainTitleHeader">
<p>References</p>
<p>References</p>
 +
</div>
 +
<div class="mainContainer">
 +
<p>
 +
<sup>[1]</sup> Redmon, N., (2012) <a href="http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/">Biquad C Source Code</a>.
 +
</p>
</div>
</div>

Latest revision as of 20:50, 28 December 2014

UC Davis iGEM 2014

Hardware

Hardware

Software

Software

Build Your Own

Build Your Own


Microcontroller Downloads
Teensyduino:
Teensyduino OliView Sketch:

Software Downloads
Qt Creator:
OliView Software:
OliView GitHub:

Software

> <

The software required for our project totaled more than 2,000 lines, contained in two separate programs. The desktop software features three common electrochemical measurements as well as a digital signal processing and a statistics tab. Graphs can be renamed, hidden or deleted, axis can be extended, mouse-zooming is supported, data can be exported as CSV, and a host of other features have been included to make the user experience more enjoyable. The software was extensively tested by our electrochemistry team.

Backend

The OliView system contains two pieces of software. One program on the microcontroller of the OliView board and one desktop program. The microconotroller software was written in the Arduino IDE while the desktop software was written in the Qt Creator IDE. The primary job of the microcontroller on the OliView board is to listen for requests from the virtual serial port. The port is connected to the computer via USB.

The OliView desktop software sends commands to the microcontroller which then processes the request, changes voltages/pins/switches as necessary, and outputs data back to the computer. There also required the ability to control the various switches on the board for electrode and amplifier operation. This required a complex communication system between the microcontroller and the computer. In the current version, we were unable to achieve real-time plotting of the data. Future revisions will aim to address this issue.

To graph our data, we've incorporated the QCustomPlot library released by Emanuel Eichhammer under the GNU General Public License. Accordingly, the OliView software is also being released under the GNU General Public License.

Electrochemical Measurements

There are three types of electrochemical operations available with the OliView software: Anodic Stripping, Cyclic Voltammetry, and Potentiostatic Amperometry. Anodic stripping can be used for electropolymerization, cleaning electrodes, or to take multiple voltammograms. Cyclic voltammetry will apply triangle waves between two set voltages and record the resulting current, while potentiostatic amperometry maintains the bias at a fixed potential and records the response. Potential at the working electrode is adjustable from -1 to +1 volts. The scan rate, sampling duration, and sampling rate are all adjustable as well.

Signal Conditioning

The open source biqaud library [1] by Nigel Redmon, was incorporated to build the signal processing functions of our program. The OliView software is capable of applying either a notch filer, a low pass filter, or a default combination of the two. The default filter includes 3-2nd order notch filters at 60 Hz, 120 Hz, & 180 Hz, and a single low pass filter at 25 Hz. This represents a filtering of mains hum as well as the first two harmonics thereof. The signal processing tab contains controls for the filter type, frequency, and quality factor. This feature turned out to be extremely useful during our potentiostatic amperometry trials. As demonstrated by the screen shot to the left, the signal conditioning increased our signal to noise ratio significantly.

Statistics

The statistics package was written by the UC Davis iGEM team to include an adjustable data range, as well as several metrics to help quantify your results. The package has a pre-built steady-state calculator. The steady-state function does a linear regression every 100 ms to check the slope of the data. If the 100 ms section regresses to a slope close to zero, the steady state assumption is activated. This will then provide a discrete statistics analysis of the three seconds following the steady state section.

In this way, any capacitive effects during potentiostatic amperometry can be negated when we report the final current of the sample. The steady-state calculator is only applicable to potentiostatic amperometry, and may not fit all the needs of the user. Accordingly, we've included the ability to select the time range for a given statistics reading. A bracket is animated to help the user keep track of the selected time range. Statics reported in the top section to the left only apply to the selected time range.

Enzyme Specificity

The Olive Software features a clean and user friendly interface for determining enzyme specificity. Although not all of the mathematical functions have been built into the backend, the GUI already supports the necessary measurements. As more data from signal processing becomes available, this page will give users a complete profile of the aldehyde concentrations in olive oil. You can learn more about our mathematical approach to describing our system from our signal processing page. Stay updated through our GitHub for the upcoming final version of Oliview, featuring a full enzyme specificity package!

References

[1] Redmon, N., (2012) Biquad C Source Code.