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

m
Line 21: Line 21:
 
                 <div class="h3">Protocol</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 key points in the code that one has to follow to obtain the best results.<br><b>Steps:</b></p>
 
                 <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 key points in the code that one has to follow to obtain the best results.<br><b>Steps:</b></p>
                 <ol style="margin-top:0;">
+
                 <ol style="margin-top:8px;">
 
                     <li>Run the LFA assay by applying analyte on the sample pad</li>
 
                     <li>Run the LFA assay by applying analyte on the sample pad</li>
 
                     <li>After 20 minutes palace the LFA strips on the black paper on any other contrasting color. Align strips as it will reduce additional editing in the script.</li>
 
                     <li>After 20 minutes palace the LFA strips on the black paper on any other contrasting color. Align strips as it will reduce additional editing in the script.</li>
Line 27: Line 27:
 
                     <li>Transfer picture to the computer and open our provided Python script.</li>
 
                     <li>Transfer picture to the computer and open our provided Python script.</li>
 
                 </ol>
 
                 </ol>
                 <p class="content-paragraph" style="margin:0"><b>Steps inside the Python script:</b> (required user changes are marked with comment blocks in the script)</p>
+
                 <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>
                 <ol style="margin-top:0;">
+
                 <ol style="margin-top:8px;">
 
                     <li>Specify the file name into the <code>cv2.imread()</code> function</li>
 
                     <li>Specify the file name into the <code>cv2.imread()</code> function</li>
 
                     <li>Set the appropriate threshold value to obtain contours of strip tests (default value is 120)</li>
 
                     <li>Set the appropriate threshold value to obtain contours of strip tests (default value is 120)</li>
Line 37: Line 37:
 
                 <p class="content-paragraph">The script can be copied straight from our wiki page or can be downloaded as a jupyter notebook file.</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>
 
                 <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>
 
                 <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>
                 <a href="https://static.igem.org/mediawiki/2020/5/51/T--Vilnius-Lithuania--measurement-script.pdf" target="_blank" download="measurement-script.pdf"><button style="margin-top:0">Download PDF file</button></a>
+
                 <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>
 
                 <p class="content-paragraph">Example of image processing:</p>
 
                 <p class="content-paragraph">Example of image processing:</p>
 
                 <div class="photos-wrapper full-width">
 
                 <div class="photos-wrapper full-width">
Line 47: Line 47:
 
                 </div>
 
                 </div>
 
                 <p class="photo-desc"><b>Figure 2.</b> Strip detection and separation.</p>
 
                 <p class="photo-desc"><b>Figure 2.</b> Strip detection and separation.</p>
                 <p class="content-paragraph">parametrai ir rotations?</p>
+
                 <p class="content-paragraph">Rotations</p>
 
                 <div class="photos-wrapper full-width">
 
                 <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 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>
 
                 </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="photo-desc"><b>Figure 3.</b> Strips with a profile line that measures the intensity of the test line.</p>
                 <p class="content-paragraph">parametrai ir profile line</p>
+
                 <p class="content-paragraph">Parameters and Profile line</p>
 
                 <div class="photos-wrapper full-width">
 
                 <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 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>
 
                 </div>
 
                 <p class="photo-desc"><b>Figure 4.</b> Final analysis picture with peak intensities.</p>
 
                 <p class="photo-desc"><b>Figure 4.</b> Final analysis picture with peak intensities.</p>
                <p class="content-paragraph">parametrai ir profile line</p>
 
 
                 <div class="h3">Future Implementations</div>
 
                 <div class="h3">Future Implementations</div>
 
                 <p class="content-paragraph">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.</p>
 
                 <p class="content-paragraph">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.</p>
                 <p class="content-paragraph"></p>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.</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 quantitative determination is required.</p>
 
                 <div class="h3">Calibration and normalization</div>
 
                 <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 12 assays where analyte concentration is serially diluted. The picture is then analyzed via the script and intensities could be correlated to the appropriate concentration.</p>
 
                 <p class="content-paragraph">We used a calibration procedure to validate the whole measurement process. Calibration procedure consists of 12 assays where analyte concentration is serially diluted. The picture is then analyzed via the script and intensities could be correlated to the appropriate concentration.</p>

Revision as of 10:49, 27 October 2020

Overview

We would like 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 stirps 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 the LFA assay by applying analyte on the sample pad
  2. After 20 minutes palace 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. (This step is very 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. Photo of the strips.

Figure 2. Strip detection and separation.

Rotations

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

Parameters and Profile line

Figure 4. Final analysis picture with peak intensities.

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 12 assays where analyte concentration is serially diluted. The picture is then analyzed via the script and intensities could be correlated to the appropriate concentration.

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.