Difference between revisions of "Team:Vilnius-Lithuania/Measurement"

(Prototype team page)
 
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{IGEM_TopBar}}
+
{{Vilnius-Lithuania/menuOverlay}}
{{Vilnius-Lithuania}}
+
{{Vilnius-Lithuania/ContentPage}}
 +
 
 
<html>
 
<html>
 
+
<head>
 
+
<style>
<div class="column full_size judges-will-not-evaluate">
+
.introContainer > span {
<h3>★  ALERT! </h3>
+
    background-image: url(https://static.igem.org/mediawiki/2020/b/ba/T--Vilnius-Lithuania--bg15.jpg);
<p>This page is used by the judges to evaluate your team for the <a href="https://2020.igem.org/Judging/Medals">medal criterion</a> or <a href="https://2020.igem.org/Judging/Awards"> award listed below</a>. </p>
+
}
<p> Delete this box in order to be evaluated for this medal criterion and/or award. See more information at <a href="https://2020.igem.org/Judging/Pages_for_Awards"> Instructions for Pages for awards</a>.</p>
+
</style>
</div>
+
    <script>
 
+
          document.getElementById("fixedOverlay").classList.add("dl");
 
+
setHeading('Best Measurement');
<div class="clear"></div>
+
    </script>
 
+
</head>
 
+
<body>
 
+
    <main id="section-text">
 
+
        <input id="headingTitleText" type="hidden" value="Best Measurement"/>
 
+
        <div class="contentBlock">
<div class="column full_size">
+
            <div class="content">
<h1>Measurement</h1>
+
                <div class="h3">Overview</div>
 
+
                <p class="content-paragraph">After integrated meetings with specialists we saw a huge need to make our tests suitable for <b>quantitative determination</b> of analyte concentration. Thus, to solve this problem we have decided to build a strong foundation by developing a <b>universal protocol</b> and a <b>Python script</b> that would detect strips and measure the signal intensity on the test line. Such an approach would facilitate the development of quantitative LFA strip tests in the future.</p>
<p>There are a lot of exciting parts in the Registry, but many parts have still not been characterized or need more characterization to make them more useful. Synthetic Biology needs great measurement approaches for characterizing parts, and efficient new methods for characterizing many parts at once. If you've done something exciting in the area of Measurement, describe it here!</p>
+
                <div class="h3">Measurement</div>
</div>
+
                <p class="content-paragraph">One of the most important things is to make such measurements repeatable by any iGEM teams in the future. Thus, we have set some rules that teams have to follow in order to obtain standardized results of the intensity on the test line. Such measurement could be performed by any <b>digital camera</b> by taking a picture at desired time points. The strips should be placed on <b>black</b> or similar color paper. The script successfully completed testing both with pictures taken with a good camera (Canon EOS 80D) and with a regular phone camera (Xiaomi Mi Mix 3).</p>
<div class="clear"></div>
+
                <div class="h3">Protocol</div>
 
+
                <p class="content-paragraph" style="margin-bottom:0;">Finally, we have written a detailed protocol and explained the Python script for such measurement. The Python script has multiple comments that will guide the user through the code and explain the most important parameters that have to be set manually. Here we briefly present the whole protocol and explain <b>key points</b> in the code that one has to follow to obtain the best results.<br><b>Steps:</b></p>
<div class="column two_thirds_size">
+
                <ol style="margin-top:8px;">
<h3>Best Measurement Special Prize</h3>
+
                    <li>Run <b>LFA assay</b> by applying analyte on the sample pad</li>
<p>If you've done excellent work in measurement, you should consider nominating your team for this special prize. Designing great measurement approaches for characterizing new or existing parts or developing and implementing an efficient new method for characterizing thousands of parts are good examples.
+
                    <li>After 20 minutes place the LFA strips on the black paper on any other <b>contrasting color</b>. Align strips as it will reduce additional editing in the script.</li>
<br><br>
+
                    <li>Take a picture of strips. We recommend <b>no more than 12</b> strips per picture.</li>
To compete for the <a href="https://2020.igem.org/Judging/Awards">Best Measurement prize</a>, please describe your work on this page and also fill out the description on the <a href="https://2020.igem.org/Judging/Judging_Form">judging form</a>.
+
                    <li>Transfer picture to the computer and open our<b> provided Python script</b>.</li>
</p>
+
                </ol>
 
+
                <p class="content-paragraph" style="margin:16px 0 0"><b>Steps inside the Python script:</b> (required user changes are marked with comment blocks in the script)</p>
</div>
+
                <ol style="margin-top:8px;">
 
+
                    <li>Specify the <b>file name</b> into the <code>cv2.imread()</code> function</li>
 
+
                    <li>Set the appropriate <b>threshold value</b> to obtain contours of strip tests (default value is 120)</li>
<div class="column third_size">
+
                    <li><b>Select and rotate</b> images if needed with appropriate rotation function <code>cv2.ROTATE_90_COUNTERCLOCKWISE, cv2.ROTATE_180, cv2.ROTATE_90_CLOCKWISE</code></li>
<div class="highlight decoration_A_full">
+
                    <li><b>Important!</b> Specify the profile line location that will measure the test line intensity. Use previously obtained images as a guide.</li>
<h3>Inspiration</h3>
+
                    <li>Select sensitivity of peak determination by changing <b>prominence value</b> (default value 0.2)</li>
<p>You can look at what other teams did to get some inspiration! <br />
+
                </ol>
Here are a few examples:</p>
+
                <p class="content-paragraph">The script can be copied straight from our wiki page or can be downloaded as a jupyter notebook file.</p>
<ul>
+
                <a href="https://2020.igem.org/wiki/index.php?title=Template:Vilnius-Lithuania/MeasurementScript&action=raw" target="_blank" download="measurement.ipynb"><button style="margin-top:0">Download .ipynb file</button></a>
<li><a href="https://2018.igem.org/Team:UC_Davis/Measurement">2018 UC Davis</a></li>
+
                <a href="https://static.igem.org/mediawiki/2020/5/51/T--Vilnius-Lithuania--measurement-script.pdf" target="_blank"><button style="margin-top:0">View PDF</button></a>
<li><a href="https://2017.igem.org/Team:TUDelft/Measurement">2017 TUDelft</a></li>
+
                <p class="content-paragraph">Example of image processing:</p>
<li><a href="https://2016.igem.org/Team:Stanford-Brown">2016 Stanford-Brown</a></li>
+
                <div class="photos-wrapper full-width">
<li><a href="https://2016.igem.org/Team:Genspace">2016 Genspace</a></li>
+
                    <div class="photos photo-grid one-part"><img src="https://static.igem.org/mediawiki/2020/9/96/T--Vilnius-Lithuania--measurementFig1.png" style="outline: none;"></div>
<li><a href="https://2015.igem.org/Team:William_and_Mary">2015 William and Mary</a></li>
+
                </div>
<li><a href="https://2014.igem.org/Team:Aachen">2014 Aachen  </a></li>
+
                <p class="photo-desc"><b>Figure 1.</b> Initial photo taken with a camera. Analyte concentrations are: 40 µM, 20 µM, 10 µM, 5 µM and 0 µM.</p>
</ul>
+
                <div class="photos-wrapper full-width">
</div>
+
                    <div class="photos photo-grid one-part"><img src="https://static.igem.org/mediawiki/2020/2/28/T--Vilnius-Lithuania--measurementFig2.png" style="outline: none;"></div>
</div>
+
                </div>
 
+
                <p class="photo-desc"><b>Figure 2.</b> Red numbers – arbitrary stirps labels.</p>
 
+
                <p class="content-paragraph">Parameters: <code>threshold = 0</code>.</p>
 +
                <div class="photos-wrapper full-width">
 +
                    <div class="photos photo-grid one-part"><img src="https://static.igem.org/mediawiki/2020/9/91/T--Vilnius-Lithuania--measurementFig3.png" style="outline: none;"></div>
 +
                </div>
 +
                <p class="photo-desc"><b>Figure 3.</b> Strips with a profile line that measures the intensity of the test line.</p>
 +
                <p class="content-paragraph">Parameters: <code>warp[3] = cv2.rotate(warp[3], cv2.ROTATE_90_CLOCKWISE), start=(150,25), end=(250,25)</code>.</p>
 +
                <div class="photos-wrapper full-width">
 +
                    <div class="photos photo-grid one-part"><img src="https://static.igem.org/mediawiki/2020/3/3f/T--Vilnius-Lithuania--measurementFig4.png" style="outline: none;"></div>
 +
                </div>
 +
                <p class="photo-desc"><b>Figure 4.</b> Final analysis picture with peak intensities. Blue color - intensity read from profile line. Yellow color – smoothed signal. Red triangles – detected peaks.</p>
 +
                <p class="content-paragraph">Parameters: <code>prominence = 0.5</code>.</p>
 +
                <div class="h3">Future Implementations</div>
 +
                <p class="content-paragraph">The protocol is very simple, so anyone could follow it in any <b>lab or home</b> conditions. It could allow other further projects without any effort quantitatively measure the test line intensity, thus calibrate their LFA design, or even such approach latter could be integrated into a software tool that would measure the intensity on the go, for example with a smartphone’s camera shot.</p>
 +
                <p class="content-paragraph">Because LFA is a very popular method with its speed and simplicity, this measurement procedure can be applied to many types of LFA tests. The same principles can be used and script code can be modified to be used in other similar types of projects where <b>quantitative determination</b> is required.</p>
 +
                <div class="h3">Calibration and normalization</div>
 +
                <p class="content-paragraph">We used a calibration procedure to validate the whole measurement process.
 +
Calibration procedure consists of 5 assays (Fig. 1) where analyte concentration is serially diluted. The picture is then analyzed via the script and intensities could be correlated to the appropriate concentration (Fig. 5).</p>
 +
                <p class="content-paragraph">In the script another precaution is made: first of all the baseline of the signal is measured from every strip and subtracted from the initial signal. Basically, every strip baseline serves as a control for that test, meaning, that different <b>lighting</b> conditions <b>should not affect</b> the final result. After that, the signal is smoothened via <b>Savitzky-Golay filter</b> to eliminate the noise. Now the peaks can be determined from the smoothened signal. However, it is important to note that the peak values are obtained from the unfiltered data as smoothing always drastically reduces the signal amplitude.</p>
 +
                <p class="content-paragraph">Every user of our measurement protocol should perform the same or similar <b>calibration experiment</b> in order to calibrate their own LFA strip test.</p>
 +
            </div>
 +
        </div>
 +
    </main>
 +
</body>
 
</html>
 
</html>
 +
{{Vilnius-Lithuania/footer}}

Latest revision as of 02:21, 19 December 2020

Overview

After integrated meetings with specialists we saw a huge need to make our tests suitable for quantitative determination of analyte concentration. Thus, to solve this problem we have decided to build a strong foundation by developing a universal protocol and a Python script that would detect strips and measure the signal intensity on the test line. Such an approach would facilitate the development of quantitative LFA strip tests in the future.

Measurement

One of the most important things is to make such measurements repeatable by any iGEM teams in the future. Thus, we have set some rules that teams have to follow in order to obtain standardized results of the intensity on the test line. Such measurement could be performed by any digital camera by taking a picture at desired time points. The strips should be placed on black or similar color paper. The script successfully completed testing both with pictures taken with a good camera (Canon EOS 80D) and with a regular phone camera (Xiaomi Mi Mix 3).

Protocol

Finally, we have written a detailed protocol and explained the Python script for such measurement. The Python script has multiple comments that will guide the user through the code and explain the most important parameters that have to be set manually. Here we briefly present the whole protocol and explain key points in the code that one has to follow to obtain the best results.
Steps:

  1. Run LFA assay by applying analyte on the sample pad
  2. After 20 minutes place the LFA strips on the black paper on any other contrasting color. Align strips as it will reduce additional editing in the script.
  3. Take a picture of strips. We recommend no more than 12 strips per picture.
  4. Transfer picture to the computer and open our provided Python script.

Steps inside the Python script: (required user changes are marked with comment blocks in the script)

  1. Specify the file name into the cv2.imread() function
  2. Set the appropriate threshold value to obtain contours of strip tests (default value is 120)
  3. Select and rotate images if needed with appropriate rotation function cv2.ROTATE_90_COUNTERCLOCKWISE, cv2.ROTATE_180, cv2.ROTATE_90_CLOCKWISE
  4. Important! Specify the profile line location that will measure the test line intensity. Use previously obtained images as a guide.
  5. Select sensitivity of peak determination by changing prominence value (default value 0.2)

The script can be copied straight from our wiki page or can be downloaded as a jupyter notebook file.

Example of image processing:

Figure 1. Initial photo taken with a camera. Analyte concentrations are: 40 µM, 20 µM, 10 µM, 5 µM and 0 µM.

Figure 2. Red numbers – arbitrary stirps labels.

Parameters: threshold = 0.

Figure 3. Strips with a profile line that measures the intensity of the test line.

Parameters: warp[3] = cv2.rotate(warp[3], cv2.ROTATE_90_CLOCKWISE), start=(150,25), end=(250,25).

Figure 4. Final analysis picture with peak intensities. Blue color - intensity read from profile line. Yellow color – smoothed signal. Red triangles – detected peaks.

Parameters: prominence = 0.5.

Future Implementations

The protocol is very simple, so anyone could follow it in any lab or home conditions. It could allow other further projects without any effort quantitatively measure the test line intensity, thus calibrate their LFA design, or even such approach latter could be integrated into a software tool that would measure the intensity on the go, for example with a smartphone’s camera shot.

Because LFA is a very popular method with its speed and simplicity, this measurement procedure can be applied to many types of LFA tests. The same principles can be used and script code can be modified to be used in other similar types of projects where quantitative determination is required.

Calibration and normalization

We used a calibration procedure to validate the whole measurement process. Calibration procedure consists of 5 assays (Fig. 1) where analyte concentration is serially diluted. The picture is then analyzed via the script and intensities could be correlated to the appropriate concentration (Fig. 5).

In the script another precaution is made: first of all the baseline of the signal is measured from every strip and subtracted from the initial signal. Basically, every strip baseline serves as a control for that test, meaning, that different lighting conditions should not affect the final result. After that, the signal is smoothened via Savitzky-Golay filter to eliminate the noise. Now the peaks can be determined from the smoothened signal. However, it is important to note that the peak values are obtained from the unfiltered data as smoothing always drastically reduces the signal amplitude.

Every user of our measurement protocol should perform the same or similar calibration experiment in order to calibrate their own LFA strip test.