Difference between revisions of "Team:TU Darmstadt/tech/software"

Line 1: Line 1:
 
{{TU_Darmstadt/chiTU}}
 
{{TU_Darmstadt/chiTU}}
<html>
 
    <body>
 
        <!-- Header -->
 
        <section id="header">
 
            <header>
 
                <style>
 
                #one:before {
 
                background-image: url("https://static.igem.org/mediawiki/2017/4/48/T--TU_Darmstadt--software_banner.png");
 
                height: 10em;{{TU_Darmstadt/chiTU}}
 
 
<html>
 
<html>
 
     <body>
 
     <body>
Line 156: Line 147:
 
                                     <div class="container">
 
                                     <div class="container">
 
                                         <h3>Download and further documentation</h3>
 
                                         <h3>Download and further documentation</h3>
                                        <p>
 
 
                                             <h4>Setting up your system for using HoloPyGuy</h4>
 
                                             <h4>Setting up your system for using HoloPyGuy</h4>
 +
                                            <p>
 
                                             To set it up for running, we follow the getting started section from holopy. If you use a unix based operating system, please run the following lines in command-line:
 
                                             To set it up for running, we follow the getting started section from holopy. If you use a unix based operating system, please run the following lines in command-line:
 
                                             <br>
 
                                             <br>
Line 175: Line 166:
 
                                             <h4>Get a copy of HoloPyGuy</h4>
 
                                             <h4>Get a copy of HoloPyGuy</h4>
 
<p>
 
<p>
                                            Download the latest version from hologuy and extract the files
 
                                            either from our GitHub repo our download the <a href="https://static.igem.org/mediawiki/2017/c/c9/T--TU_Darmstadt--holopyguy_software.zip">.zip</a> file.
 
 
                                            To get the latest version, it is recommended to check our git.
 
                                            You can get a copy of our repository by installing git and run in a terminal:
 
                                            <br><code>git clone https://www.github.com/iGEMDarmstadt/holopyguy.git</code><br>
 
                                            <br>
 
                                            <code>python hologuy.py</code><br>
 
                                            <br>
 
                                        </p>
 
                                    </div>
 
                                </section>
 
                                <!-- References -->
 
                                <section id="seven"><div class="container">
 
                                    <h3>References</h3>
 
                                    <p>
 
                                        <table class="ref">
 
                                            <tr>
 
                                                <td id="[1]">[1]</td>
 
                                                <td>Shiraki, A., Taniguchi, Y., Shimobaba, T., Masuda, N., Ito, T. (2012) Handheld and low-cost digital
 
                                                    holographic microscopy.
 
                                                <br><a href="http://www.arXiv.org/abs/1211.0336">arXiv:1211.0336</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[2]">[2]</td>
 
                                                <td>Cotte, Y., Toy, F., Jourdain, P., Pavillon, N., Boss, D., Magistretti, P., Marquet, P., Depeursinge
 
                                                    (2013) Marker-free phase nanoscopy <i>Nature Photonics</i>, 7 (2):113
 
                                                <br><a href="https://doi.org/10.1038/nphoton.2012.329">DOI: 10.1038/nphoton.2012.329</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[3]">[3]</td>
 
                                                <td>    Giuliano, C. B., Zhang, R., Wilson, L. G. (2014) Digital Inline Microscopy (DIHM) of Weakly-scattering
 
                                                Subjects <i>Journal of Visualized Experiments</i>, <a href="https://doi.org/10.3791/50488">DOI:10.3791/50488</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[4]">[4]</td>
 
                                                <td>Molaei, M., Sheng, J. (2014) Imaging bacterial 3D motion using digital inline holographic microscopy
 
                                                and correlation-based de-noising algorithm <i>Optics Express</i>, <a href="https://doi.org/10.1364/OE.22.032119">DOI: 10.1364/OE.22.032119</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[5]">[5]</td>
 
                                                <td> Braat, J., Dirksen, P., Janssen, A. J. E. M. (2003) Diffractive Read-Out of Optical Discs, <i>Optical Imaging</i>
 
                                                <br>Springer Verlag</td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[6]">[6]</td>
 
                                                <td>DDeng, Y., Chu, D., (2017) Coherence properties of different light sources and their effect on the image sharpness and
 
                                                    speckle of holographic displays, <i>Scientific Report</i>,
 
                                                <br><a href="https://doi.org/10.1038/s41598-017-06215-x">DOI: 10.1038/s41598-017-06215-x</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[7]">[7]</td>
 
                                                <td>Jericho, M. H., Kreuzer, H.J., (2011), Point Source Digital In-Line Holographic Microscopy, Chapter 1, Coherent Light Microscopy, <i>Springer Series in Surface Sciences 46</i>, 46
 
                                                <br><a href="https://doi.org/10.1007/978-3-642-15813-1_1">DOI: 10.1007/978-3-642-15813-1_1</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[8]">[8]</td>
 
                                                <td>Rostykus, M., Moser, C. (2017) Compact lensless off-axis transmission digital holographic microscope, <i>Optics Express</i>, <a href="https:/doi.org/10.1364/OE.25.016652">DOI: 10.1364/OE.25.016652</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[9]">[9]</td>
 
                                                <td>Reichert, C. C., Herkommer, A., Claus, D. (2016) Das Smartphone als Mikroskop, <i>AT-Fachverlag GmbH</i>,
 
                                                <br><a href="http://www.biophotonik.de">www.biophotonik.de</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[10]">[10]</td>
 
                                                <td>Moon, I., Daneshpanah, M., Anand, A., Javidi, B. (2011) Cell Identification Computational 3-D Holographic
 
                                                    Microscopy, <i>Optics & Photonics</i>, 22 (6),
 
                                                </td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[11]">[11]</td>
 
                                                <td>Greenbaum, A., Luo, W., Su, T., Göröcs, Z., Xue, L., Isikman S., Coskun, A., Mudanyali, O., Ozcan, A. (2012) Imaging
 
                                                without lenses: achievments and remaining challenges of wide-field on-chip microscopy, <it>Nature America</it>, <a href="https://doi.org/10.1038/nmeth.2114">DOI:10.1038/nmeth.2114</a></td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[12]">[12]</td>
 
                                                <td>beniroquai (2017) Blog, <a href="http://beniroquai.wordpress.com/2016/01/20/holoscope-linsenloses-holographisches-mikroskop/">https://beniroquai.wordpress.com/2016/01/20/holoscope-linsenloses-holographisches-mikroskop/</a>,
 
                                                last visited: 10/15/2017</td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[13]">[13]</td>
 
                                                <td>BDan (2015) micromanipulator, Thingiverse, <a href="http://www.thingiverse.com/thing:923865/#files">https://www.thingiverse.com/thing:923865/#files</a>,
 
                                                last visited: 10/15/2017</td>
 
                                            </tr>
 
                                            <tr>
 
                                                <td id="[14]">[14]</td>
 
                                                <td>"Do-it-yourself" project for steering HD-DVD pickup homepage: <a href="http://www.diyouware.com/">http://www.diyouware.com/</a>
 
                                                last visited: 10/15/2017</td>
 
                                            </tr>
 
<tr>
 
                                                    <td id="[15]">[15]</td>
 
                                                <td>"HoloPy, a python framework for analyzing digital holographs, <i> manoharan lab, Harvard<i> <a href="https://github.com/manoharan-lab/holopy">https://github.com/manoharan-lab/holopy</a>
 
                                                last visited: 10/18/2017</td>
 
                                            </tr>
 
<td id="[16]">[16]</td>
 
                                                <td>"HoloPy, documentation, <a href="https://holopy.readthedocs.io/en/latest/users/index.html">https://holopy.readthedocs.io/en/latest/users/index.html</a>
 
                                                last visited: 10/18/2017</td>
 
                                            </tr>
 
<tr>
 
<td id="[17]">[17]</td>
 
<td><a href="https://en.wikipedia.org/wiki/User:Egelberg">User:Egelberg</a>, <a href="https://commons.wikimedia.org/wiki/File:OpticalSetupDHM.jpg#filelinks">OpticalSetupDHM</a>, <a href="https://creativecommons.org/licenses/by-sa/3.0/legalcode">CC BY-SA 3.0</a></td>
 
</tr>
 
                                        </table>
 
                                    </p>
 
                                </div>
 
                            </section>
 
                            <!-- Footer -->
 
                            <section id="footer">
 
                                <div class="container">
 
                                    <ul class="copyright">
 
                                        <li>Design: <a href="http://html5up.net">HTML5 UP</a></li>
 
                                    </ul>
 
                                </div>
 
                            </section>
 
                        </div>
 
                    </body>
 
                </html>
 
 
                }
 
                </style>
 
 
 
<span class="image avatar"><a href="https://2017.igem.org/Team:TU_Darmstadt"><img src="https://static.igem.org/mediawiki/2017/3/3d/LogoOWL.png" alt="home" /></a></span>
 
                    <h1 id="logo"><a href="https://2017.igem.org/Team:TU_Darmstadt">ChiTUcare</a></h1>
 
            </header>
 
            <nav id="nav">
 
                <ul>
 
                    <div class="mainmenu">
 
                        <div class="nav-follow">
 
                            <div class="nav-drop">
 
                                <li><a href="https://2017.igem.org/Team:TU_Darmstadt/project">Project</a></li>
 
                                <li><a href="https://2017.igem.org/Team:TU_Darmstadt/human_practices">Human Practices</a></li>
 
                            </div></div>
 
                            <li><a href="https://2017.igem.org/Team:TU_Darmstadt/tech" class="active">Tech</a></li></div>
 
                            <div class="nav-proj-drop">
 
                                <li><a href="https://2017.igem.org/Team:TU_Darmstadt/tech/hardware">Hardware</a></li>
 
                                <li><a href="https://2017.igem.org/Team:TU_Darmstadt/tech/software" class="active">Software</a></li>
 
                            </div>
 
                            <div class="mainmenu">
 
                                <div class="nav-follow">
 
                                    <div class="nav-drop_b">
 
                                        <li><a href="https://2017.igem.org/Team:TU_Darmstadt/team">Team</a></li>
 
                                        <li><a href="https://2017.igem.org/Team:TU_Darmstadt/judging">Judging</a></li>
 
                                    </div>
 
                                    <input type="button" div class="submenuV" onclick="toggleImage();toggleImage_b();toggleImage2();this.value=this.value=='Show menu'?'Show submenu':'Show menu'" value="Show menu">
 
                                </div></div>
 
                            </ul>
 
                        </nav>
 
                    </body>
 
                </html>
 
{{TU_Darmstadt/header-footer}}
 
<html>
 
                    <body>
 
                    </section>
 
                    <!-- Wrapper -->
 
                    <div id="wrapper">
 
                        <!-- Main -->
 
                        <div id="main">
 
                            <!-- One -->
 
                            <section id="one">
 
                                <div class="container">
 
                                    <header class="major">
 
                                        <h2>Software HoloPyGuy</h2>
 
                                    </header>
 
                                    <div class="post-it">
 
                                        <p>Here, we present an universal software solution which we, the team iGEM TU Darmstadt, created for digital inline holographic microscopy (DIHM).
 
                                            We therefore employed the open-source framework <b>Holopy</b> and extended the existing solution with a graphical user interface.
 
                                            The resulting software includes the connection to a raspberry pi cam as well as a control element for a commonly used blue-ray laser.
 
                                            The graphical user interface relies on the <b>Qt5</b> framework and is written in <b>Python</b>. The solution
 
                                            aims to be applicable for self-made DIHM and an ‘easy-to-use‘ hologram reconstruction suite. The project is hosted on <b>GitHub</b> under <b>MIT License</b>
 
                                            and is also available for download. A complete user manual is provided in the following section.
 
                                        </p>
 
                                    </div>
 
                                </div>
 
                            </section>
 
                            <section id="two">
 
                                <div class ="container">
 
                                    <h2>HoloPyGuy - An Introduction</h2>
 
                                    <center>
 
                                    <!--<img src="https://static.igem.org/mediawiki/2017/9/99/T--TU_Darmstadt--holopyguy.png" alt="A screenshot of v0.5 of HolopyGuy" style="width: 100%;max-width:821px;">-->
 
                                    <video src="https://static.igem.org/mediawiki/2017/0/09/T--TU_Darmstadt--holo.webm" controls poster="https://static.igem.org/mediawiki/2017/9/99/T--TU_Darmstadt--holopyguy.png" style="width:100%;max-width:821px;"></video>
 
                                        </center>
 
                                        <p>First, a reference picture, taken without a sample, needs to be provided in order to analyze a hologram. These reference pictures can be imported by choosing the panel ‘Open Background’.
 
                                            Several background pictures, which are turned into one averaged hologram, is subtracted from the sample hologram, which can
 
                                            be imported via the panel ‘Load Sample’.
 
                                            A dark field image can be generated by taking a picture without laser light if you are concerned about residual light in your setup, but it is not obligatory for each setup. The settings for
 
                                            reconstruction are controlled using the Boxes on the left. Reconstructing a hologram
 
                                            can be easily accomplished by choosing the panel ‘Hologram’.  The single settings provided will be further explained
 
                                            in the section ‘controls’. The algorithm used for reconstruction is applicable for light coming from point sources only.
 
                                            <center>
 
                                            <figure>
 
                                                <img src="https://static.igem.org/mediawiki/2017/f/f1/T--TU_Darmstadt--background3.png" alt="A reference image for a laser system." style="width:32%;max-width:1944px;margin:1.5% 2% 1.5% 0;float:left">
 
                                            </figure>
 
                                            <figure>
 
                                                <img src="https://static.igem.org/mediawiki/2017/0/09/T--TU_Darmstadt--wrongsample.png" alt="A raw hologram on the background." style="width:32%;max-width:1944px;margin:1.5% 2% 1.5% 0%;float:left">
 
                                            </figure>
 
                                            <figure>
 
                                                <img src="https://static.igem.org/mediawiki/2017/e/e4/T--TU_Darmstadt--hologram.png" alt="A reconstructed hologram with HoloPyGuy." style="width:32%;max-width:1944px;margin:1.5% 0 1.5% 0%;float:left">
 
                                                <figcaption>Figure 1. At first, a picture of the beam without sample serves as reference (left). A raw hologram has fringes around the objects of interest (middle). The reconstructed object is calculated
 
                                                by substracting the reference picture from the raw hologram and then analyzed with reverse propagation.</figcaption>
 
                                            </figure>
 
                                            </center>
 
                                        </p>
 
                                    </div>
 
                                </section>
 
                                <section id="three">
 
                                    <div class="container">
 
                                        <h3>Settings</h3>
 
                                        <p>
 
                                            All lengths are internal converted to meters. The preset values are corresponding to
 
                                            our DIHM setup.
 
                                            <table style = "width:100%">
 
                                                <tr>
 
                                                    <th>Parameters</th>
 
                                                    <th>Description</th>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Distance</td>
 
                                                    <td>The distance between cam to light source in mm</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Z min</td>
 
                                                    <td>Smallest distance from camera to calculate wavefronts</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Z max</td>
 
                                                    <td>Greatest distance from camera to object of interest</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Z steps</td>
 
                                                    <td>Number of calculate distances between Z min and Z max</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Pixel out</td>
 
                                                    <td>Size of squared hologram reconstruction. Decrease for smaller resolution but shorter computational time</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Magnification</td>
 
                                                    <td>Specifies the magnification on the output picture. Higher magnifications means higher computational costs</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Wavelength</td>
 
                                                    <td>Wavelength of the used light in nm. Blue is 480 nm</td>
 
                                                </tr>
 
                                                <tr>
 
                                                    <td>Spacing</td>
 
                                                    <td>Distance between the center of two pixels. We show how to calculate it for our photosensor.</td>
 
                                                </tr>
 
                                            </table>
 
                                        </p>
 
                                    </div>
 
                                    </section>
 
 
                                <section id="four">
 
                                    <div class="container">
 
                                        <h3>Download and further documentation</h3>
 
                                        <p>
 
                                            <h4>Setting up your system for using HoloPyGuy</h4>
 
                                            To set it up for running, we follow the getting started section from holopy. If you use a unix based operating system, please run the following lines in command-line:
 
                                            <br>
 
                                            <code>sudo apt install conda</code><br>
 
                                            <code>conda install -c conda-forge holopy</code><br>
 
                                            <br>
 
                                            This should set up the production branch of HoloPy. For Windows, the installation process is quite similar. Install Anaconda3 for your OS. Be aware that if you let the box checked in the installer, Anaconda overwirtes the default python interpreter. Then, run the following commands in the anaconda prompt:
 
                                            <br>
 
                                            <code>anaconda search holopy</code><br>
 
                                            <code>anaconda show ralex0/holopy</code><br>
 
                                            <code>conda install -c conda-forge emcee</code><br>
 
                                            <code>conda install -c conda-forge h5netcdf</code><br>
 
                                            <code>conda install --channel https://conda.anaconda.org/ralex0 holopy</code><br>
 
                                            Install hologuy requirements (a converter from QImage to NdArray)<br>
 
                                            <code>conda install -c conda-forge qimage2ndarray</code><br>
 
                                           
 
                                            <h4>Get a copy of HoloPyGuy</h4>
 
 
 
                                             Download the latest version from hologuy and extract the files
 
                                             Download the latest version from hologuy and extract the files
 
                                             either from our GitHub repo our download the <a href="https://static.igem.org/mediawiki/2017/c/c9/T--TU_Darmstadt--holopyguy_software.zip">.zip</a> file.
 
                                             either from our GitHub repo our download the <a href="https://static.igem.org/mediawiki/2017/c/c9/T--TU_Darmstadt--holopyguy_software.zip">.zip</a> file.

Revision as of 15:42, 30 October 2017

MainPage

Software HoloPyGuy

Here, we present an universal software solution which we, the team iGEM TU Darmstadt, created for digital inline holographic microscopy (DIHM). We therefore employed the open-source framework Holopy and extended the existing solution with a graphical user interface. The resulting software includes the connection to a raspberry pi cam as well as a control element for a commonly used blue-ray laser. The graphical user interface relies on the Qt5 framework and is written in Python. The solution aims to be applicable for self-made DIHM and an ‘easy-to-use‘ hologram reconstruction suite. The project is hosted on GitHub under MIT License and is also available for download. A complete user manual is provided in the following section.

HoloPyGuy - An Introduction

First, a reference picture, taken without a sample, needs to be provided in order to analyze a hologram. These reference pictures can be imported by choosing the panel ‘Open Background’. Several background pictures, which are turned into one averaged hologram, is subtracted from the sample hologram, which can be imported via the panel ‘Load Sample’. A dark field image can be generated by taking a picture without laser light if you are concerned about residual light in your setup, but it is not obligatory for each setup. The settings for reconstruction are controlled using the Boxes on the left. Reconstructing a hologram can be easily accomplished by choosing the panel ‘Hologram’. The single settings provided will be further explained in the section ‘controls’. The algorithm used for reconstruction is applicable for light coming from point sources only.

A reference image for a laser system.
A raw hologram on the background.
A reconstructed hologram with HoloPyGuy.
Figure 1. At first, a picture of the beam without sample serves as reference (left). A raw hologram has fringes around the objects of interest (middle). The reconstructed object is calculated by substracting the reference picture from the raw hologram and then analyzed with reverse propagation.

Settings

All lengths are internal converted to meters. The preset values are corresponding to our DIHM setup.

Parameters Description
Distance The distance between cam to light source in mm
Z min Smallest distance from camera to calculate wavefronts
Z max Greatest distance from camera to object of interest
Z steps Number of calculate distances between Z min and Z max
Pixel out Size of squared hologram reconstruction. Decrease for smaller resolution but shorter computational time
Magnification Specifies the magnification on the output picture. Higher magnifications means higher computational costs
Wavelength Wavelength of the used light in nm. Blue is 480 nm
Spacing Distance between the center of two pixels. We show how to calculate it for our photosensor.

Download and further documentation

Setting up your system for using HoloPyGuy

To set it up for running, we follow the getting started section from holopy. If you use a unix based operating system, please run the following lines in command-line:
sudo apt install conda
conda install -c conda-forge holopy

This should set up the production branch of HoloPy. For Windows, the installation process is quite similar. Install Anaconda3 for your OS. Be aware that if you let the box checked in the installer, Anaconda overwirtes the default python interpreter. Then, run the following commands in the anaconda prompt:
anaconda search holopy
anaconda show ralex0/holopy
conda install -c conda-forge emcee
conda install -c conda-forge h5netcdf
conda install --channel https://conda.anaconda.org/ralex0 holopy
Install hologuy requirements (a converter from QImage to NdArray)
conda install -c conda-forge qimage2ndarray

Get a copy of HoloPyGuy

Download the latest version from hologuy and extract the files either from our GitHub repo our download the .zip file. To get the latest version, it is recommended to check our git. You can get a copy of our repository by installing git and run in a terminal:
git clone https://www.github.com/iGEMDarmstadt/holopyguy.git

python hologuy.py

References

[1] Shiraki, A., Taniguchi, Y., Shimobaba, T., Masuda, N., Ito, T. (2012) Handheld and low-cost digital holographic microscopy.
arXiv:1211.0336
[2] Cotte, Y., Toy, F., Jourdain, P., Pavillon, N., Boss, D., Magistretti, P., Marquet, P., Depeursinge (2013) Marker-free phase nanoscopy Nature Photonics, 7 (2):113
DOI: 10.1038/nphoton.2012.329
[3] Giuliano, C. B., Zhang, R., Wilson, L. G. (2014) Digital Inline Microscopy (DIHM) of Weakly-scattering Subjects Journal of Visualized Experiments, DOI:10.3791/50488
[4] Molaei, M., Sheng, J. (2014) Imaging bacterial 3D motion using digital inline holographic microscopy and correlation-based de-noising algorithm Optics Express, DOI: 10.1364/OE.22.032119
[5] Braat, J., Dirksen, P., Janssen, A. J. E. M. (2003) Diffractive Read-Out of Optical Discs, Optical Imaging
Springer Verlag
[6] DDeng, Y., Chu, D., (2017) Coherence properties of different light sources and their effect on the image sharpness and speckle of holographic displays, Scientific Report,
DOI: 10.1038/s41598-017-06215-x
[7] Jericho, M. H., Kreuzer, H.J., (2011), Point Source Digital In-Line Holographic Microscopy, Chapter 1, Coherent Light Microscopy, Springer Series in Surface Sciences 46, 46
DOI: 10.1007/978-3-642-15813-1_1
[8] Rostykus, M., Moser, C. (2017) Compact lensless off-axis transmission digital holographic microscope, Optics Express, DOI: 10.1364/OE.25.016652
[9] Reichert, C. C., Herkommer, A., Claus, D. (2016) Das Smartphone als Mikroskop, AT-Fachverlag GmbH,
www.biophotonik.de
[10] Moon, I., Daneshpanah, M., Anand, A., Javidi, B. (2011) Cell Identification Computational 3-D Holographic Microscopy, Optics & Photonics, 22 (6),
[11] Greenbaum, A., Luo, W., Su, T., Göröcs, Z., Xue, L., Isikman S., Coskun, A., Mudanyali, O., Ozcan, A. (2012) Imaging without lenses: achievments and remaining challenges of wide-field on-chip microscopy, Nature America, DOI:10.1038/nmeth.2114
[12] beniroquai (2017) Blog, https://beniroquai.wordpress.com/2016/01/20/holoscope-linsenloses-holographisches-mikroskop/, last visited: 10/15/2017
[13] BDan (2015) micromanipulator, Thingiverse, https://www.thingiverse.com/thing:923865/#files, last visited: 10/15/2017
[14] "Do-it-yourself" project for steering HD-DVD pickup homepage: http://www.diyouware.com/ last visited: 10/15/2017
[15] "HoloPy, a python framework for analyzing digital holographs, manoharan lab, Harvard https://github.com/manoharan-lab/holopy last visited: 10/18/2017
[16] "HoloPy, documentation, https://holopy.readthedocs.io/en/latest/users/index.html last visited: 10/18/2017
[17] User:Egelberg, OpticalSetupDHM, CC BY-SA 3.0