<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://clairemcwhite.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://clairemcwhite.github.io/" rel="alternate" type="text/html" /><updated>2026-04-21T15:34:19-07:00</updated><id>https://clairemcwhite.github.io/feed.xml</id><title type="html">McWhite Lab</title><subtitle>McWhite Lab at the University of Arizona — protein language models and bioinformatics</subtitle><author><name>Claire McWhite</name><email>clairemcwhite@arizona.edu</email></author><entry><title type="html">Imitation Tacodeli Salsa Doña</title><link href="https://clairemcwhite.github.io/dona-recipe/" rel="alternate" type="text/html" title="Imitation Tacodeli Salsa Doña" /><published>2020-01-12T00:00:00-08:00</published><updated>2020-01-12T00:00:00-08:00</updated><id>https://clairemcwhite.github.io/dona-recipe</id><content type="html" xml:base="https://clairemcwhite.github.io/dona-recipe/"><![CDATA[<p><img src="https://cdn.vox-cdn.com/thumbor/N9PxU3yObBcLh4aa6EFi7UvJC5U=/0x0:5184x3456/1220x813/filters:focal(2040x1323:2868x2151):format(webp)/cdn.vox-cdn.com/uploads/chorus_image/image/54613965/IMG_3125.0.jpg" width="300" /><br />
<i>Image source: https://austin.eater.com/2017/5/4/15536524/tacodeli-salsas-packaged</i></p>

<p>Salsa doña is essentially a roasted jalapeño/garlic emulsion that is rich, spicy, and delicious. It was created by Bertha Gonzales for the Austin chain Tacodeli and you can read its <a href="https://www.austin360.com/article/20121204/ENTERTAINMENT/312049688">history here</a>. Tacodeli recently started selling containers of salsa doña, but currently only in Whole Foods in Texas, Louisiana, Oklahoma, and Arkansas.</p>

<p>Since I want this sauce constantly, and not only in Texas, Louisiana, Oklahoma, or Arkansas, this is a record of my attempts to replicate it. It came out pretty successfully in the end.</p>

<p><img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/finalcomparison.jpg" width="400" /><br />
<em>Left: Original doña sauce, Right: This recipe</em></p>

<p>There are several salsa doña recipes online, but many include extra ingredients or steps. From my comparison to the original sauce I’ve found a few key things:</p>

<ol>
  <li>The ingredients are only roasted jalapeños, roasted garlic, salt, water, and vegetable oil (or other neutral oil). i.e. no cilantro or lime</li>
  <li>The original sauce includes some jalapeño seeds, not just jalapeño flesh</li>
  <li>However, using all seeds from all peppers makes a sauce that is much spicier than the original (and the original is very spicy)</li>
  <li>It doesn’t seem like Tacodeli removes the jalapeño skins before blending</li>
  <li>During blending, adding more oil or more garlic increases richness and reduces spiciness</li>
</ol>

<p>For me, the spice level is great with something substantial like a breakfast taco, but is too spicy for eating with tortilla chips.</p>

<h3 id="final-recipe">Final recipe</h3>

<ul>
  <li>5 jalapeños</li>
  <li>10 cloves garlic (skin on) (As few as 5 cloves are fine)</li>
  <li>1 teaspoon salt (5mL)</li>
  <li>5 tablespoon vegetable oil (1/3 cup or 75mL)</li>
  <li>1 tablespoon water</li>
</ul>

<ol>
  <li>
    <p>Chop off jalapeño tops/stems, and place with garlic on baking sheet<br /> 
 <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/preroast.jpg" width="300" /></p>
  </li>
  <li>
    <p>Broil on low for 10-15 minutes, or until garlic is squishable. Broilers vary, so time may vary<br />
 <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/roasted garlic.jpg" width="300" /><br />
<em>Garlic is ready to go</em></p>
  </li>
  <li>
    <p>Remove garlic from oven</p>
  </li>
  <li>
    <p>Flip jalapeños and continue to broil on low for another 10-15 minutes, or until peppers have somewhat internally collapsed<br />
  <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/collapsing.jpg" width="300" /><br />
<em>Jalapeños are done - charred somewhat and begun to collapse in on themselves</em></p>
  </li>
  <li>
    <p>Place garlic and peppers in a closed container with a splash of water and let steam at least 15 minutes<br />
  <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/presteam.jpg" width="300" /><br />
<em>Pre-steaming. Coffee cans are good airtight containers for this step</em><br /><br />
   <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/poststeam.jpg" width="300" /><br />
<em>Post-steaming</em></p>
  </li>
  <li>
    <p>Remove most seeds from insides of peppers, and set seeds aside. Remove any charred parts of jalapeños skins</p>
  </li>
  <li>
    <p>Remove skins from garlic cloves</p>
  </li>
  <li>
    <p>Blend peppers, garlic, oil, water, and salt on high (“liquify”) until very very smooth (and oil does not separate)<br />
   <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/blended.jpg" width="300" /><br />
<em>Fully blended</em></p>
  </li>
  <li>
    <p>Test for consistency. The sauce shouldn’t look thick, gloopy, or chunky, and should pour smoothly (like pancake batter consistency). Blend in one tablespoon of water at a time until satisfactory</p>
  </li>
  <li>
    <p>Test for spice. Jalapeños vary widely in spice level, and the original sauce can be very spicy. If not hot enough, blend in 1/10th total seeds at a time until satisfactory. If too spicy for your taste even without seeds, try rescuing by mixing with lime juice, crema mexicana, or sour cream.</p>
  </li>
  <li>
    <p>Refrigerate over night (or until cool). If it looks too thick after refrigerating, reblend with an additional tablespoon of water.</p>
  </li>
</ol>

<h3 id="results-of-experiments">Results of experiments</h3>

<h4 id="round-1">Round 1:</h4>
<ul>
  <li>De-seeded jalapeños prior to roasting, added lime juice</li>
  <li>3 jalapeños/3 garlic/0.5 tsp salt/3 tbsp oil/2 tsp lime juice</li>
  <li>Not spicy enough, missing flavor/spice from jalapeno seeds</li>
  <li>Also salsa doña definitely doesn’t have lime juice</li>
  <li>However this sauce was delicious, and the low spice level would make it a great party dip<br /><br />
  <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/round1.jpg" width="300" /><br />
<em>Left: Original doña sauce, Right: Round 1 sauce. Very good tortilla chip dip, but definitely not salsa doña</em></li>
</ul>

<h4 id="round-2-after-acquiring-doña-sauce-for-comparison-purposes-">Round 2 (after acquiring doña sauce for comparison purposes) :</h4>
<ul>
  <li>Roasted whole jalapeños, removed skins</li>
  <li>3 jalapeños/6 cloves garlic/0.5 tsp salt/3 tbsp oil</li>
  <li>Much closer to original flavor, but too spicy</li>
  <li>Consistency is too smooth (the original has more bits in it (jalapeño skins)<br /><br />
  <img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/toosmooth.jpg" width="300" /><br />
<em>Left: Original doña sauce, Right: Round 2 sauce. Original has more bits of jalapeño</em></li>
</ul>

<h4 id="round-3">Round 3:</h4>
<ul>
  <li>Roasted whole jalapeños, kept skins on, removed approximately 2/3rds of seeds</li>
  <li>5 jalapeños/10 garlic cloves/5 tbs oil/1 tsp salt<br /><br />
<img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/finalcomparison.jpg" width="300" /><br />
<em>Left: Original doña sauce, Right: Round 3 sauce. Very close in appearance and flavor, but still somewhat too spicy. Using 9/10ths of seeds in final recipe</em></li>
</ul>

<h4 id="bonus-round">Bonus round:</h4>
<ul>
  <li>Added a tablespoon of water. Fixed any consistency issues with the original recipe.</li>
</ul>]]></content><author><name>Claire McWhite</name><email>clairemcwhite@arizona.edu</email></author><summary type="html"><![CDATA[Image source: https://austin.eater.com/2017/5/4/15536524/tacodeli-salsas-packaged]]></summary></entry><entry><title type="html">LGL - the Large Graph Layout</title><link href="https://clairemcwhite.github.io/lgl-guide/" rel="alternate" type="text/html" title="LGL - the Large Graph Layout" /><published>2016-03-23T00:00:00-07:00</published><updated>2016-03-23T00:00:00-07:00</updated><id>https://clairemcwhite.github.io/lgl-guide</id><content type="html" xml:base="https://clairemcwhite.github.io/lgl-guide/"><![CDATA[<p><img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/homology_graph.jfif" width="300" />
<em>Protein Homology Graph, Edward Marcotte and Alex Adai, MOMA</em></p>

<h3 id="the-large-graph-layout-lgl">The Large Graph Layout (LGL)</h3>

<p>Last summer, I had a 500,000 node/million edge network, and no way to look at its structure. Cytoscape maxed out at about 100,000 edges, and for some reason which I can’t remember now,  I never got my network to load on the million node capable OpenOrd Layout for Gephi.</p>

<p>As nicely outlined by in Martin Krzywinski’s  <a href="http://www.hiveplot.net/">Hive Plot page</a>, even if a software is capable of laying out a giant network, it is more than likely to create an uninterpretable hairball. The Large Graph Layout (LGL) was created by Alex Adai in <a href="http://marcottelab.org/index.php/Main_Page">Edward Marcotte’s lab</a> to visualize large networks while avoiding hairballs. The algorithm itself is described in the original paper, <a href="http://www.marcottelab.org/paper-pdfs/jmb-lgl.pdf">“LGL: Creating a Map of Protein Function with an Algorithm for Visualizing Very Large Biological Networks”</a>. Basically, the algorithm first discovers disconnected clusters in the data, and then lays them out individually. LGL works radially, where each cluster begins with a seed node, and new edges are added on spheres which are force directed outwards from the existing cluster.</p>

<h4 id="lgl-examples">LGL Examples</h4>
<ul>
  <li>The Opte Project uses a minimal spanning LGL to <a href="http://www.opte.org/">map the internet</a> every few years.</li>
  <li>Aaron Swartz used LGL for a neat <a href="http://www.aaronsw.com/weblog/blogviz">visualization of blogspace in 2006</a>.</li>
  <li>The Museum of Modern Art in New York picked an LGL of protein homologies (top image) for their 2008 exhibit <a href="http://www.moma.org/interactives/exhibitions/2008/elasticmind/#/211/">“Design and the Elastic Mind”</a></li>
</ul>

<h3 id="lgl-tips">LGL tips</h3>
<p>As there aren’t many resources on using the Large Graph Layout, I wanted to do a quick post on my tips for using the software. This post is meant to supplement the <a href="http://www.opte.org/lgl/">main FAQ</a> and the <a href="https://github.com/TheOpteProject/LGL/blob/master/README.txt">README</a>. LGL is mainly maintained by the Opte Project to map the internet, and the most recent version of the software can be cloned from their <a href="https://github.com/TheOpteProject/LGL"> Github</a>, with git clone https://github.com/TheOpteProject/LGL.git.</p>

<p>Note that the lgl layout implemented on igraph lays out graphs differently (and much worse IMO) than the original LGL software. Someone inspired should fix this one day.</p>

<h4 id="formatting-and-installation-tips">Formatting and installation tips</h4>

<p>After following the README instructions to install, modify line 82 in lgl.1.d3/bin/lgl.pl to the location of the LGL perls directory</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
use lib 'home/claire/lgl.1.D3/perls/';
</code></pre></div></div>
<p>Also change line 42 to the location of the lgl binary.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#For example
my $LGLDIR = '/home/claire/lgl.1.D3/bin';
</code></pre></div></div>

<h5 id="input-format-ncol">Input format (.ncol)</h5>
<p>The input format to LGL is called .ncol, which is just a space separated list of two connected nodes with an optional third column of weight.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cat example.ncol
node1 node2 [optional weight]
</code></pre></div></div>

<p>Key points for formatting the input .ncol</p>

<ul>
  <li>Each line must be unique</li>
  <li>A node may connect to many other nodes</li>
  <li>A node cannot connect to itself</li>
  <li>If a line is B-A, there cannot also be a line A-B</li>
  <li>There can’t be blank lines</li>
  <li>There can’t be blanks in any column</li>
  <li>No header line</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>node1 node2
node1 node3 # OK
node1 node2 # Will cause error
node1 node1 # Will cause error
node2 node1 # Will cause error
node3         # Will cause error
              # Trailing blank line will cause error
</code></pre></div></div>

<h5 id="coloring-format-colors">Coloring format (.colors)</h5>

<p>LGL allows you to color both nodes and edges. In order to color edges, each pairwise edge must have an R G B value. To color individual nodes, each node must have an R G B value. RGB values must be scaled to one 1, so just divide each number of an RGB value by 255. The rules for formatting an .ncol file apply here too, i.e. no blanks, no empty lines, no redundancy, etc.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cat example.edge.colors
node1 node2 1.0 0.5 0.0 
node3 node4 0.0 1.0 0.8 
node5 node6 0.1 0.1 1.0

$ cat example.vertex.colors
node1 1.0 0.8 0.0 
node2 1.0 0.5 0.0 
node3 0.2 0.1 0.8
node4 0.0 1.0 0.8 
node5 0.6 0.5 0.5
node6 0.1 0.1 1.0
</code></pre></div></div>

<h3 id="an-lgl-workflow">An LGL workflow</h3>

<p>This is any example to make a network with colored nodes and edges. I would begin by making a file of all pairwise edges and their associated traits. It can be difficult to keep .ncol and .color files in sync, and so it will cause fewest headaches to begin with one file containing all the information to create both.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ echo "Nodes and traits"
$ cat homology.txt
node1 node2 source score rank species1 species2
protein1 protein2 blastp 150 1 mouse human
protein3 protein4 blastp 50 2 wheat rat
protein2 protein5 hmmscan 60 3 human human
</code></pre></div></div>

<p>Then take the first two columns (minus the header) to create an .ncol file. This is the file used to layout the graph</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ echo "Get node columns, remove header"
$ awk '{print $1, $2}' homology.txt  | awk '{if(NR&gt;1)print}' &gt; homology.ncol
$ cat homology.ncol
protein1 protein2
protein3 protein4
protein2 protein5
</code></pre></div></div>

<p>Then choose a trait, and create a edge.colors file. I generally select the first two columns, and a trait to color by, then just use sed to replace the trait values with the RGB value I want to color that type of edge by.</p>

<p>In this file, I want to color all edges predicted with the algorithm hmmscan red, and all edges found with blastp blue.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ echo "Get node columns and trait column"
$ awk '{print $1, $2, $3}' homology.txt  | awk '{if(NR&gt;1)print}' &gt;  homology_alg.colors.tmp

$ echo "Replace hmmscan trait with RGB value
$ sed -i 's/hmmscan/0 1 0/g' homology_alg.colors.tmp

$ echo "Replace blastp trait with RGB value
$ sed 's/blastp/0 0 0/g' homology_alg.colors.tmp &gt; homology_algorithm.edge.colors

$ cat homology_algorithm.edge.colors
protein1 protein2 0 0 0
protein3 protein4 0 0 0
protein2 protein5 0 1 0
</code></pre></div></div>

<p>I could also color each node by some trait. In this file format, each vertex must have an associated RGB value. In this case, I want to color every human protein red, and proteins from every other species blue.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ echo "Get first column of nodes and species"
$ awk '{print $1, $6}' homology.txt  | awk '{if(NR&gt;1)print}'&gt; vertex1_species.tmp

$ Get second column of nodes and species"
$ awk '{print $2, $7}' homology.txt  | awk '{if(NR&gt;1)print}'&gt; vertex2_species.tmp

$ Get unique nodes"
$ cat vertex1_species.tmp vertex2_species.tmp | sort -u &gt; homology_human.vertex.colors.tmp

$ Color human nodes red"
$ sed -i 's/human/1 0 0/' homology_human.vertex.colors.tmp

$ Color any other node blue"
$ sed 's/mouse\|wheat\|rat/0 0 1/' homology_human.vertex.colors.tmp &gt; homology_human.vertex.colors

$ cat homology.human.vertex.colors
protein1 0 0 1
protein3 0 0 1
protein2 1 0 0
protein4 0 0 1
protein5 1 0 0
</code></pre></div></div>

<h5 id="running-lgl">Running LGL</h5>

<p>I put all the above files in one folder, /homologyLGL. This folder will also be the destination for generated LGLs. 
Navigating to the lgl.x.x/ directory, modify the following options in the conf_file for a particular run.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#Locations of the folder for this run, and the .ncol file
tmpdir = 'home/claire/homologyLGL'
inputfile='home/claire/homologyLGL/homology.ncol'

#Generate a full LGL, not just the minimal spanning tree (MST)
treelayout = '1'
usemst = '0'
outputmst = '0'
#No edgeweight, so:
useoriginalweights = '0'
</code></pre></div></div>

<p>Then just run lgl. The -c options signifies that you’re using a config file</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ./bin/lgl.pl -c conf_file_homology
</code></pre></div></div>

<p>It took about 5 seconds to create my 3 line network, but it can take hours depending on the size of the network/speed of the computer. 
In ~/homologyLGL/, a folder 1455579482/ now contains all individual discrete subnetworks of the LGL</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls | head -5
0.lgl                #Network Layout
0.coords             #Node coordinates
0.coords.mst.lgl     #Minimal spanning tree network layout
0.coords.log         #Subnetwork measurements
0.coords.root        #Node used to root an individual subnetwork
0.coords.edge_levels #Levels of the subnetwork
</code></pre></div></div>

<p>~/homologyLGL/ now also contains</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>homology.lgl  #The complete network layout, created from the arrangement of the subnetworks
final.coords  #Node coordinates
final.mst.lgl #The minimal spanning tree version of the network layout
</code></pre></div></div>

<p>In order to view the LGL, run the lglview.jar program</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>java -jar ~/lgl.1.D3/lglview.jar
</code></pre></div></div>

<p>Load the lgl, and the node coordinates (File &gt; Open .lgl file &gt; homology.lgl, File &gt; Open 2D coords file &gt; final.coords)</p>

<p>Load the node colors to color all human proteins red and all others blue (File &gt; Open Vertex Color File &gt; homology.algorithm.vertex.colors) and the edge color file to color all the edges predicted with hmmscan green, and with blastp black (File &gt; Open Edge Color File &gt; homology.human.edge.colors). I changed the node size too, since the default is small.</p>

<p><img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/lglexample.png" width="500" /></p>

<p>Here’s a prettier image from lglview.jar of protein families in different species linked by predictions of orthology. This network shows good separation between the fairly densely connected submodules.</p>

<p><img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/Picture2.png" width="400" /></p>

<h3 id="high-quality-images">High quality images</h3>

<p>Use imageMaker.jar</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd ~/homologyLGL/
#imageMaker.jar arguments: ImageWidthInteger ImageHeightInteger edges.lgl coords1 coords2.
#If you have a file named "color_file" in the current directory
#It will read that in as an edge color file. By default edges are white.

#copy edge.colors file into filename color_file
cp homology_algorithm.edge.colors color_file

java -jar ~/lgl.1.D3/Java/imageMaker.jar 800 800 homology.lgl final.coords
</code></pre></div></div>
<h5 id="conclusion">Conclusion</h5>

<p>Any type of pairwise data can be quickly formatted for LGL for a quick visual diagnostic of the data structure. Since  this layout has been so useful for me to look at my data, I hope these tips will encourage others to try it out for their giant network visualization issues!</p>

<h5 id="errors-ive-run-across">Errors I’ve run across</h5>

<p>This error means line 82 in lgl.1.d3/bin/lgl.pl that points to the perl directory is a location that doesn’t exist</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmcwhite@claire:~/Programs/lgl.1.D3$ ./bin/lgl.pl -c conf_file
Can't locate ParseConfigFile.pm in @INC (you may need to install the ParseConfigFile module) (@INC contains: /home/clare/Programs/lgl.1.D3/perls/ /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at ./bin/lgl.pl line 82.
</code></pre></div></div>]]></content><author><name>Claire McWhite</name><email>clairemcwhite@arizona.edu</email></author><summary type="html"><![CDATA[Protein Homology Graph, Edward Marcotte and Alex Adai, MOMA]]></summary></entry><entry><title type="html">Eight legged treats - Making gummy water bears</title><link href="https://clairemcwhite.github.io/tardigrades/" rel="alternate" type="text/html" title="Eight legged treats - Making gummy water bears" /><published>2015-10-30T00:00:00-07:00</published><updated>2015-10-30T00:00:00-07:00</updated><id>https://clairemcwhite.github.io/tardigrades</id><content type="html" xml:base="https://clairemcwhite.github.io/tardigrades/"><![CDATA[<p><a href="clairemcwhite.github.io/tardigrades"><img src="https://raw.githubusercontent.com/clairemcwhite/clairemcwhite.github.io/master/images/closeup.jpg" width="500" /></a>
<br /><em>SEM:Bob Goldstein and Vicky Madden, <a href="http://tardigrades.bio.unc.edu/">http://tardigrades.bio.unc.edu/</a></em></p>

<p>Water bears (tardigrades) have become our unofficial lab pet, partly because UT won’t let us keep vertebrates, but mainly because of how awesome they are. This <a href="http://www.nytimes.com/2015/09/08/science/the-tardigrade-water-bear.html?_r=0">New York Times article</a> is a great introduction to this eight-legged squishy micro-animal.  Also, <a href="https://www.youtube.com/watch?v=o9kPQ0GY_W8">this short documentary</a> gives a more detailed look at tardigrades under the microscope, showing off their muscle structure and digestive system.</p>

<p>Water bears sit somewhere between arthropods and nematodes on the tree of life, and spend most of their time hanging out on algae clumps and <a href="https://www.youtube.com/watch?v=xl-9bSv27WU">ineffectively swimming</a> with their stubby little legs. While water bears are generally adorable, they are most notorious for their ability to survive complete dehydration, freezing, and the cold vacuum of space.</p>

<p>In the break room one day, Ophelia and I realized that water bears resemble living gummy bears.  Water bears. Gummy bears.  We needed make water bear gummy bears!</p>

<p>Following some white board sketching with Angela and Anna and a few clay models, I decided to 3D print a plastic positive mold, and then use it to make a silicone candy mold. Using openSCAD, I made 10 water bears in the style of a gummy bears, seated in a tray to contain the silicone goo.</p>

<p><em>Update: New improved mold design with 30 gummies per mold for higher throughput candy making</em> <a href="https://www.thingiverse.com/thing:3069594">link</a></p>

<p><img src="/images/waterbearthing.png" alt="Thingiverse preview" />
<br /><em><a href="https://www.thingiverse.com/thing:3069594">Link</a> to model on Thingiverse with walls or <a href="https://www.thingiverse.com/thing:1095977">Link</a> without walls</em></p>

<p>After the MakerBot printed first a too small mold and then a just right sized mold, I mixed up some food grade silicone, and left it to set in the molds overnight.</p>

<p><img src="/images/siliconsetting.jpg" alt="molds" />
<em>Removing the silicone from the plastic mold in the morning was not easy</em></p>

<p>One trip to the grocery store bulk section later, I had about two pounds of gummy bears.<br />
<img src="/images/gummybears.jpg" alt="molds" />
<em>Too many gummy bears</em></p>

<p>I melted the groups of colored gummies in bowls in the microwave, since the stovetop gave my trial run a strange caramelized flavor. After a molten mass of sugar had cooled enough to handle, I pressed balls of gummy substance into each mold. Wetting my hands made the sticky melted gummy much easier to handle.
<img src="/images/candyinmolds.jpg" alt="candy in molds" /></p>

<p>Twenty minutes in the freezer solified the water bear gummies. At this point, the texture seemed all wrong, much too soft and gooey.  However, the signature gummy bear consistency returned after overnight in the refrigerator on an oiled baking tray. A spray of canola oil over all the bears in the morning reduced the stickiness. For the clear gummies, I also added green sprinkles to imitate the balls of digested algae which are visible in the translucent water bear body under a light microscope. I finally made a few rounds of chocolate water bears, which came out a little messy, but still tasty.</p>

<p><img src="/images/alltree.jpg" alt="final product" />
<em>Algae-sprinkle, dark chocolate, and red gummy water bears</em></p>

<p>It definitely wasn’t a high throughput process but I ended up with a good number of gummy water bears, which were enjoyed at lab meeting. 
<img src="/images/allcandies.jpg" alt="candies" /></p>]]></content><author><name>Claire McWhite</name><email>clairemcwhite@arizona.edu</email></author><summary type="html"><![CDATA[SEM:Bob Goldstein and Vicky Madden, http://tardigrades.bio.unc.edu/]]></summary></entry></feed>