Team:UC Davis/Potentiostat Design Software
From 2014.igem.org
(18 intermediate revisions not shown) | |||
Line 64: | Line 64: | ||
<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="https://static.igem.org/mediawiki/2014/6/6b/OliView2_0_TeensySketch.zip" class="brightlink">OliView Teensy Sketch</a><br><br><br> | ||
- | <a href="http:// | + | <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" class="brightlink">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> | <a href="http://github.com/UCDiGEM/OliView" class="brightlink">OliView GitHub</a><br> | ||
Line 100: | 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=" | + | <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> | <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. | + | 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 112: | Line 113: | ||
<div class="mainContainerRightPic"><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 122: | 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" | + | <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. |
- | + | ||
</p> | </p> | ||
</div> | </div> | ||
Line 134: | Line 134: | ||
<div class="mainContainer"> | <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
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.