<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ed&#039;s Big Plans &#187; Mathematical Modeling</title>
	<atom:link href="http://eddiema.ca/tag/mathematical-modeling/feed/" rel="self" type="application/rss+xml" />
	<link>http://eddiema.ca</link>
	<description>Biology, Computing, Adventure</description>
	<lastBuildDate>Tue, 07 Sep 2010 00:09:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>iGEM*BIC — An Awesome Meeting</title>
		<link>http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/</link>
		<comments>http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 19:54:00 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Academic Life]]></category>
		<category><![CDATA[BIC]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[SOLVER]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=1257</guid>
		<description><![CDATA[About two weeks ago (Feb. 11th), we had an iGEM*BIC meeting where five iGEM members showed up and roughly a dozen BIC members showed up. I expected a few more from iGEM but they ended up with illnesses or midterm exams that week. We started the meeting with a nice description of BIC from Anna, [...]]]></description>
			<content:encoded><![CDATA[<p>About two weeks ago (Feb. 11th), we had an iGEM*BIC meeting where five iGEM members showed up and roughly a dozen BIC members showed up. I expected a few more from iGEM but they ended up with illnesses or midterm exams that week.</p>
<p>We started the meeting with a nice description of BIC from Anna, followed by a nice description of iGEM at large then iGEM at home from Andre. I then finished with a collaborative projects presentation.</p>
<p>I&#8217;ve attached the slides I presented (actually, I&#8217;ve updated them since then)&#8211; just like the very last set of slides for the Python Crash Course, I ended up using iWork Pages this time around instead of NeoOffice.</p>
<p>Download: <a href="http://eddiema.ca/wp-content/uploads/2010/02/iGEM_BIC.pdf">Updated slides [pdf]</a>.</p>

<a href='http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/igem_bic01/' title='iGEM_BIC01'><img width="150" height="112" src="http://eddiema.ca/wp-content/uploads/2010/02/iGEM_BIC01-150x112.png" class="attachment-thumbnail" alt="iGEM_BIC01" title="iGEM_BIC01" /></a>
<a href='http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/igem_bic05/' title='iGEM_BIC05'><img width="150" height="112" src="http://eddiema.ca/wp-content/uploads/2010/02/iGEM_BIC05-150x112.png" class="attachment-thumbnail" alt="iGEM_BIC05" title="iGEM_BIC05" /></a>
<a href='http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/igem_bic12/' title='iGEM_BIC12'><img width="150" height="112" src="http://eddiema.ca/wp-content/uploads/2010/02/iGEM_BIC12-150x112.png" class="attachment-thumbnail" alt="iGEM_BIC12" title="iGEM_BIC12" /></a>

<p>The meeting was designed to go for half an hour because of its proximity to midterms. We ended up discussing for about two hours about <strong>all</strong> of the projects we wanted to try this term&#8211; everything from the now defunct <em>Bunny Buddy</em> to <em>BactoBones</em> to <em>BactoHouse<sup>MD</sup></em>.</p>
<p>Anna had remarked earlier that iGEM isn&#8217;t well marketed to CS students or BIC&#8211; so this will certainly be a recurring thing at the beginning of each semester. This is particularly important summer because the next stream of BIC students are returning from co-op.</p>
<p>The general consensus is that everyone was interested in doing *something* in iGEM which is a real bonus. This Wednesday, we&#8217;re going to have a modeling meeting that&#8217;s punctuated with John&#8217;s mini-project talk. I&#8217;m hoping that many BIC members will show up to carry over their interest.</p>
<p>My original assessment that most BIC students would want to do <em>in silico</em> modeling and software development was far off. As it turns out, BIC students showed interest in every facet of iGEM from wet lab to software development to outreach and public relations.</p>
<p>A direct consequence of the iGEM*BIC meeting is that we had a much larger design meeting the next day (Feb. 12th)&#8211; thirteen showed up.</p>
<p>Finally, the feeling of the group is that the next crossover meeting should be more social. I think that&#8217;s something we can shoot for, for early summer.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1257" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2010/02/21/igembic-an-awesome-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brainstorm Racing: iGEM math cross biomolecules</title>
		<link>http://eddiema.ca/2010/02/15/brainstorm-racing-igem-math-cross-biomolecules/</link>
		<comments>http://eddiema.ca/2010/02/15/brainstorm-racing-igem-math-cross-biomolecules/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 16:04:08 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Silly]]></category>
		<category><![CDATA[Brainstorm Race]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=1259</guid>
		<description><![CDATA[This started as a comment to Andre&#8217;s post here: http://www.masella.name/blog/2010/02/05T110243-0500.html We need motivation for characterizing our respective chunks of hackable molecular biology components. This is in the vein of the whiteboard list we attempted on Thursday of last week. I propose a brainstorm race (see example)&#8211; short descriptions and headers only&#8211; Form: Google spreadsheet. In [...]]]></description>
			<content:encoded><![CDATA[<p>This started as a comment to Andre&#8217;s post here:</p>
<p><a href="http://www.masella.name/blog/2010/02/05T110243-0500.html">http://www.masella.name/blog/2010/02/05T110243-0500.html</a></p>
<blockquote><p>We need motivation for characterizing our respective chunks of hackable molecular biology components.</p>
<p>This is in the vein of the whiteboard list we attempted on Thursday of last week.</p>
<p>I propose a brainstorm race (see example)&#8211; short descriptions and headers only&#8211; Form: Google spreadsheet. In two columns, we fill in our &#8220;mathematical assets&#8221; and &#8220;biomolecular assets&#8221;. The first one to two-hundred and fifty items wins some gag prize of &lt; CAD$5.00 and gets a special title to be determined by the winner that the loser must call for a week.</p>
<p>Contest ends with no winners if after three days, 250 items aren&#8217;t finished by either <img src='http://eddiema.ca/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Let me know if you accept and I&#8217;ll put together the spread sheet <img src='http://eddiema.ca/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>(Anyone else we should add? John, Danielle, Brandon etc?)</p>
<p>Example brainstorm race (to 20) on the topic of novel icecream flavours:<br />
<a href="http://spreadsheets.google.com/pub?key=tsyR72D6UQRXLG0Nv6kKoiA&amp;single=true&amp;gid=0&amp;output=html">http://spreadsheets.google.com/pub?key=tsyR72D6UQRXLG0Nv6kKoiA&amp;single=true&amp;gid=0&amp;output=html</a></p></blockquote>
<p>Andre wanted to write down all of our assets so that we could figure out if there were any concepts that matched nicely between items in mathematical problems and items in biomolecular assets. I&#8217;m not going to give examples of either until the race finishes of course <img src='http://eddiema.ca/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Oh okay fine&#8211; these are fair game by the way&#8211; two example math problems are network clustering inspired by the Hamiltonian path finder; knot maths in topology characterization. Two example biomolecular assets are ribozymes; heterodimeric proteins.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1259" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2010/02/15/brainstorm-racing-igem-math-cross-biomolecules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First UWiGEM modeling meeting: Wed. Jan. 21 @6pm</title>
		<link>http://eddiema.ca/2010/01/25/first-uwigem-modeling-meeting-wed-jan-21-6pm/</link>
		<comments>http://eddiema.ca/2010/01/25/first-uwigem-modeling-meeting-wed-jan-21-6pm/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 00:06:57 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Academic Life]]></category>
		<category><![CDATA[BioBricks]]></category>
		<category><![CDATA[Clotho (Berkeley)]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=1195</guid>
		<description><![CDATA[Update: The Gleave Library, B1-273 has been booked for this occasion! Brief: The two software projects that will precede the main body of Waterloo iGEM 2010 will be discussed on Wednesday January 21 from 6pm to 8pm. I will update this post once a room booking has been confirmed. Related topic here on the Waterloo [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Update: </strong></em>The Gleave Library, B1-273 has been booked for this occasion!</p>
<p><em><strong>Brief: </strong></em>The two software projects that will precede the main body of Waterloo iGEM 2010 will be discussed on Wednesday January 21 from 6pm to 8pm. I will update this post once a room booking has been confirmed.</p>
<p>Related topic <a href="http://igem.uwaterloo.ca/phpBB3/viewtopic.php?f=2&amp;t=78">here</a> on the Waterloo iGEM Discussion Board.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1195" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2010/01/25/first-uwigem-modeling-meeting-wed-jan-21-6pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Return of Phi C31</title>
		<link>http://eddiema.ca/2009/10/12/the-return-of-phi-c31/</link>
		<comments>http://eddiema.ca/2009/10/12/the-return-of-phi-c31/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 00:03:43 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[Brandon Wang]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[John Heil]]></category>
		<category><![CDATA[Jordan Lapointe]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Matthew Gingerich]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=725</guid>
		<description><![CDATA[I&#8217;ve been so out of the loop with iGEM over the last month. I&#8217;ll need to figure out how to get back into the swing of things, probably starting with the post mortem meeting on Tuesday. Generally, since no new maths could be put on the table that actually encompassed the problem well&#8211; the brute [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been so out of the loop with iGEM over the last month. I&#8217;ll need to figure out how to get back into the swing of things, probably starting with the post mortem meeting on Tuesday. Generally, since no new maths could be put on the table that actually encompassed the problem well&#8211; the brute force approach was kicked into high gear with a few more filters to increase the probability of success.</p>
<p>Call these &#8220;System Filters&#8221; since they aren&#8217;t really based on biologically significant concepts, really just sanity checks that are conceptually consistent with the project (i.e. we&#8217;d run out of hard disk space otherwise&#8230;). Significantly, Matthew implemented &#8220;Blank Stare&#8221;, which destroys reactants that exceed a given length (thus preventing them from hogging the CPU looking for less parsimonious solutions). Less significant were Andre&#8217;s &#8220;Lone Gunman&#8221; which deletes arbitrary chromosomes with stochastic efficiency and my &#8220;Tag&#8221; which prevents chromosomes from cross reacting.</p>
<p>(On second thought, &#8220;Tag&#8221; IS a &#8220;Biological Filter&#8221; not a &#8220;System Filter&#8221; because it removes redundancy by implementing the rule that we only admit bacteria that have exactly one chromosome.)</p>
<p>I should mention that &#8220;significance&#8221; above isn&#8217;t about the triviality of the code, it&#8217;s about the amount of anticipated efficiency boon we&#8217;d gain from an item&#8217;s deployment.</p>
<p>Tomorrow&#8217;s post mortem will continue the work I&#8217;ve started on our <a href="http://2009.igem.org/Team:Waterloo/Modeling">iGEM 2009 Wiki Modelling page</a>&#8230; We&#8217;ll decide what we want to mention, how close we got to our solution and figure out how to precisely characterize the problem space uncovered by our various attempts.</p>
<p>Additionally, we should probably discuss the relevance of John&#8217;s attN site cloning and tests to see if the operators show any sign of degeneracy, and which ones in particular.</p>
<p>Finally, I should mention that Brandon has been working on a C++ port of the whole application we wrote in Python to elucidate how much the virtual machine impacted the performance of our solver&#8211; the team is quite divided on this idea with a big half (myself included) thinking that the exponential growth due to the algorithm is the greater factor&#8211; Brandon may have some answers for us when it&#8217;s up and running.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=725" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/10/12/the-return-of-phi-c31/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Knots were the wrong math</title>
		<link>http://eddiema.ca/2009/09/15/knots-were-the-wrong-math/</link>
		<comments>http://eddiema.ca/2009/09/15/knots-were-the-wrong-math/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 17:29:58 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Knot Theory]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=700</guid>
		<description><![CDATA[The Knot Math was eventually understood to be the wrong kind of math to model our problem on. Knots take the form of a circle that has been broken and rejoined at a point on its circumference after being wrapped about itself an arbitrary number of times. What we&#8217;re working on doesn&#8217;t utilize any function [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Knot Math</strong> was eventually understood to be the wrong kind of math to model our problem on.</p>
<p>Knots take the form of a circle that has been broken and rejoined at a point on its circumference after being wrapped about itself an arbitrary number of times. What we&#8217;re working on doesn&#8217;t utilize any function that twists loops of DNA the same way. The knot maths provide a way to real-value-vectorize these shapes, but do not provide an easy way to insert our own data. There are two properties that relate to the incompatibility. The first is that knot maths consider two knots equal if their topology with respect to the number of twists they have are identical. Our problem does not consider these two knots equal, as distance and sequence specificity (imagine each particle on the rope circle was labeled) are required. Second, what we produce overlaps arbitrarily by lying a circle segment on top of another circle segment whereas the knot maths produce overlaps with twists. While I think there could be a clever way to identify our problem with the knot math, I don&#8217;t think there is a feasible or cost (time) effective way to do this.</p>
<p>Brain continues to storm.</p>
<p>I did managed to uncover some very exciting papers however. One of them was on a piece of software called <a href="http://bio.math.berkeley.edu/TangleSolve/">TangleSolve</a>&#8211; which does do site specific recombination and visualization of DNA knots&#8211; reading on this software was actually instrumental in understanding why our problem was not identifiable here. Side note&#8211; topoisomerase &#8212; is an enzyme involved with DNA knot formation and super coiling relaxation.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=700" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/09/15/knots-were-the-wrong-math/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNA … Knots and Lambdas</title>
		<link>http://eddiema.ca/2009/09/04/dna-knots-and-lambdas/</link>
		<comments>http://eddiema.ca/2009/09/04/dna-knots-and-lambdas/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:52:38 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[Andrew Baker]]></category>
		<category><![CDATA[Bettina Kalisch]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Jordan Lapointe]]></category>
		<category><![CDATA[Knot Theory]]></category>
		<category><![CDATA[Lambda Math]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Recombinatory Calculus]]></category>
		<category><![CDATA[Stefan C. Kremer]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=593</guid>
		<description><![CDATA[A long time ago, one Andre lead a team of students in a journey of mathematical and computational modeling; at the very least, we have reached some useful insights from our tidy trip albeit at a distance from the solution. Presented here is a very jumbled, very abridged account of the activities of the modeling [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago, one Andre lead a team of students in a journey of mathematical and computational modeling; at the very least, we have reached some useful insights from our tidy trip albeit at a distance from the solution.</p>
<p>Presented here is a very jumbled, very abridged account of the activities of the modeling team this summer and the eventual realization that brings us to now.</p>
<p><strong>The Problem Revisited</strong></p>
<p>So we have a sequence. Actually, two sequences. Actually, we have two loops. Two loops of DNA that will contain a specific sequence used for cassette exchange. The problem is the design of these two loops. We want to design them so that we can predictably exchange specific objects between them. We used an enzyme for recombination that is sensitive to specific sites to perform the exchanges.</p>
<p>The above paragraph is an abstract-abstract of the UW iGem Project.</p>
<p><strong>The Top Down Approach</strong></p>
<p>What I eventually labeled in my mind as the top-down approach is called that in analogy to parsing. In parsing, we build a tree. We can do this conceptually from the bottom-up, or from the top-down. From the bottom-up, we know everything we need to know to build the tree&#8230; we know as much as we want to know, we even know if there exists not a tree for this particular string of tokens. From the top-down, we&#8217;d have to use some magical induction to chain tokens together by determining a structure that the tokens will find pleasing.</p>
<p>The magical induction of the top-down approach is none other than brute force. There is no magic, just an exponential explosion. The base of this power is the length of the string and the exponent of the power alludes to the complexity and depth of the grammar.</p>
<p>We don&#8217;t parse for the sequence problem&#8211; that is, we assume the grammar to be irrelevant, that a flat degenerate chain is a sufficient enough tree; we operate on sequences with our enzyme instead.</p>
<p>For our sequence problem, we pick three loops. We see if the first two loops add together with respect to the enzyme to make the third loop. By hand, one is tempted to use various heuristics of deductive logic but it became complicated and soon overflowed the allowed dozen or so objects a human brain may accommodate per instant. The machine was dragged in, and the three loops were shown to it using Python.</p>
<p>We presented three loops of one logical suite of tokens. It ran to completion and to no surprise, this was not our solution. We did this again for all three-loops where each loop is one logical suite. That ran to completion and again, no solution&#8211; again to be expected; not yet long enough to accommodate the anticipated length of the solution.</p>
<p>One logical block became two, became three&#8230; and at each step, the base of the exponent to our magical induction grew.</p>
<p>Four logical blocks&#8230; we halted the experiment; the machine would&#8217;ve taken a month to finish that block.</p>
<p>The exponential explosion was real, and our bid that the solution may be just short enough to fit therein was proven false.</p>
<p><strong>The Bottom Up Approach</strong></p>
<p>Months passed, various members went on various summer excursions&#8230; and many have returned now. We discuss many theoretical approaches. We resample the problem, sniffing for hints. Actually, it&#8217;s been Andre, Jordan and me &#8230; we haven&#8217;t discussed this with the remaining modeling team yet because of just how vague our new lines of intrigue are. I will revise my opinion if the thought that more individuals means faster solution finding crosses my mind again.</p>
<p>I&#8217;ve had a few conversations, one with my MSc advisor, Stefan; one with a friend Andrew Baker; and another with my undergraduate project advisor, Bettina. So far, no one&#8217;s seen this specific problem before or can allude to either an approach, technology or research that they&#8217;ve seen&#8230;</p>
<p>We reformalize the problem with the following constraints as follows.</p>
<ul>
<li>Must deal with circularity of DNA, hence by circularly shift invariant</li>
<li>Must accommodate or encapsulate reverse complementation</li>
</ul>
<p><strong>Intrigue</strong></p>
<p>Several lines of intrigue we visit now.</p>
<p>First, Knot Theory&#8211; provides a representation for knots as real-valued vectors; unique shapes however may produce degenerate vectors. Knots allow us to take our loop of DNA and place the putative recombinatory hotspots one on top of another. Missing from this item is precisely how to dope the vectors with our own sequence data.</p>
<p>Second, Lambda Math and Logical Programming provide a language and a method respectively to map vectors from left to right. The form of the abductive equations for this problem are yet to be discovered however. We&#8217;re thinking about this method because we suspect that the recombinase enzyme activity can be completely expressed as a mathematical construct on our doped knot vectors. We hope that this construct can be expressed with abductive statements.</p>
<p>Third, Recombinatory Calculus&#8211; actually, this item is in stark competition with Logical Programming as the functional crux of the model. Recombinatory Calculus which is fairly distant from Recombinatorics, mind&#8211; is a math that has shown all other math functions can be constructed by just two atoms. If it turns out that the final representation of a DNA loop looks more like arguments for these two atoms, then we may pursue this&#8211; but at present, it seems to be losing against Logical Programming&#8211; the allure of the two atoms subsides as we realized the complexity for even the addition function for integers.</p>
<p><strong>Direction</strong></p>
<p>Luckily&#8230; roughly a dozen papers have been recovered from various repositories that discuss knot math and how to hack it sufficiently to kindly represent DNA loops. We continue to read and discuss these papers until we feel it reasonable to raise it with the entire modeling group&#8230; that is, when the science is done and the engineering begins anew.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=593" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/09/04/dna-knots-and-lambdas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rather Hashing</title>
		<link>http://eddiema.ca/2009/08/10/rather-hashing/</link>
		<comments>http://eddiema.ca/2009/08/10/rather-hashing/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 17:45:43 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[Brandon Wang]]></category>
		<category><![CDATA[Chong]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Jordan Lapointe]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Matthew Gingerich]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=549</guid>
		<description><![CDATA[I&#8217;ve been away recently, so this task has apparently been uptaken by Jordan. The reverse-hashing integer-to-sequence function to be done for modeling was formalized a bit more in a meeting about two weeks ago, and I&#8217;ve yet to be briefed about what form it&#8217;s taken in yesterday&#8217;s meeting. Update: Andre tells me that Jordan did [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_611" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-611" title="AndreBrandon" src="http://eddiema.ca/wp-content/uploads/2009/08/AndreBrandon-300x120.jpg" alt="Andre and Brandon" width="300" height="120" /><p class="wp-caption-text">Andre and Brandon</p></div>
<p>I&#8217;ve been away recently, so this task has apparently been uptaken by Jordan. The reverse-hashing integer-to-sequence function to be done for modeling was formalized a bit more in a meeting about two weeks ago, and I&#8217;ve yet to be briefed about what form it&#8217;s taken in yesterday&#8217;s meeting.</p>
<p><em><strong>Update: </strong></em>Andre tells me that Jordan did in fact finish the sources, and everything ran overnight&#8211; however, the exponential explosion that we were afraid of ended up occurring; the present algorithm (part of which is described below) ran to the fourth iteration and well, would continue to run for a few weeks had it not been stopped&#8230; It looks like there&#8217;s ever more need for a working bottom-up approach&#8230;</p>
<p>Getting to absolute basics, this reverse hashing function converts positive integers to a sequence of arbitrary base strings&#8211; actually, I want to describe the general form of this function in case I need it in future. So if we know the size of the alphabet used for each character of a string, we can give each character a unique ordinal value. Two examples follow&#8230;</p>
<div id="attachment_610" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-610" title="BrandonMatthew" src="http://eddiema.ca/wp-content/uploads/2009/08/BrandonMatthew-300x120.jpg" alt="Brandon and Matthew" width="300" height="120" /><p class="wp-caption-text">Brandon and Matthew</p></div>
<p><code><br />
#Latin Alphabet (as used in English)<br />
(A, 1), (B, 2), (C, 3), (D, 4) ... (Y, 25), (Z, 26), (null, 0)</code><br />
<code><br />
#Nucleotides<br />
(A, 1), (C, 2), (G, 3), (T, 4), (null, 0)</code></p>
<p>If we want to represent a string, we&#8217;d simply substitute the integer for the character.<br />
<code><br />
#BADEGG<br />
214577</code><br />
<code><br />
#AGGCTT<br />
133244</code></p>
<div id="attachment_606" class="wp-caption alignleft" style="width: 190px"><em><em><img class="size-medium wp-image-606 " title="BredthFirstSphere" src="http://eddiema.ca/wp-content/uploads/2009/08/BredthFirstSphere-300x266.jpg" alt="Bredth First Search Sphere" width="180" height="160" /></em></em><p class="wp-caption-text">Bredth First Search Sphere</p></div>
<p><em>Bredth First Search Sphere [figure]&#8230;</em> Andre used this chalkboard diagram to illustrate to Chong that this encoding conveniently increases in sequence length&#8211; we could consider this cardinality, or radius, or more importantly, the number of hops on a graph representation&#8211; when this problem is considered in lexicographic ordering, the implied algorithm is a bredth-first traversal.</p>
<p>We ran into a problem&#8211; this would at most represent one string. Brandon came up with a workaround, the notion of stealing characters from a sequence based on the modulus of its index! So, if we wanted to encode three strings, then every character at <code>(index%3 = 0)</code> belongs to string A. Strings B and C would then occupy <code>(index%3 = 1)</code> and <code>(index%3 = 2)</code> respectively.</p>
<p>Examples:<br />
<code><br />
#Encode BADGE, FEED and AI together<br />
#Pushes together as... BAA AEI DEx GDx Exx<br />
#Where lowercase 'x' is null.<br />
211159450740500</code></p>
<p>So that null symbols are inserted to preserve the correct location of each symbol.</p>
<div id="attachment_608" class="wp-caption alignleft" style="width: 253px"><em><em><img class="size-medium wp-image-608 " title="3D3LayerCake" src="http://eddiema.ca/wp-content/uploads/2009/08/3D3LayerCake-243x300.jpg" alt="3D 3Layer Cake" width="243" height="300" /></em></em><p class="wp-caption-text">3D 3Layer Cake</p></div>
<p><em>3D 3Layer Cake [figure]&#8230;</em> An alternative approach to the encoding is to produce a triplet of integers instead of interweaving them; to farm out the sequences to be operated on, one would keep the entire domains of any two of the three sequences, while distributing the third; actually&#8211; this can still be done with the present encoding scheme, just farm out a fraction of the sequences based only on certain indexes of each sequence (the indexes satisfying the modulus math statements above). Abstractly, we can think of this as a three-dimensional cake where one dimension is distributed in layers&#8211; a three-serial-CPU-farm would consume a three-layered cake.</p>
<p>There&#8217;s one other thing I haven&#8217;t quite discussed, and that&#8217;s sequence sensitivity&#8211; Some sequences are masked so that the location of a certain integer implies a different entity depending on their position in their string&#8211; I&#8217;ll leave that for another post though.</p>
<p>I&#8217;ll have to discuss the bottom-up approach we&#8217;re going to try next&#8211; or not try at all since the modeling team is running very short on time; doing things by hand would either require inspiration, a marvel of human savant-like adduction or incredible luck&#8230; Jordan apparently demoed the algorithm by hand at the meeting I missed and showed the normal human mind can&#8217;t cope with the growth of the problem either&#8230;</p>
<div id="attachment_609" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-609" title="Jordan" src="http://eddiema.ca/wp-content/uploads/2009/08/Jordan-300x120.jpg" alt="Jordan playing a first person shooter..." width="300" height="120" /><p class="wp-caption-text">Jordan playing a first person shooter...</p></div>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=549" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/08/10/rather-hashing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iGEM: Freedom Unhashed</title>
		<link>http://eddiema.ca/2009/07/22/igem-freedom-unhashed/</link>
		<comments>http://eddiema.ca/2009/07/22/igem-freedom-unhashed/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 21:36:21 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[Hashing]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[John Heil]]></category>
		<category><![CDATA[Jordan Lapointe]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Recombinatron]]></category>
		<category><![CDATA[Shira Davis]]></category>
		<category><![CDATA[UWiGem]]></category>
		<category><![CDATA[Wylee S. H. Co]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=503</guid>
		<description><![CDATA[An iGEM modeling meeting was held yesterday wherein Andre revealed his big plans for switching the team into enduserhood. Unfortunately, I didn&#8217;t follow along as well as I could have this time around and can really only document and comment on the bottom line. We&#8217;ve again self-organized into two to three teams based on task. [...]]]></description>
			<content:encoded><![CDATA[<p>An iGEM modeling meeting was held yesterday wherein Andre revealed his big plans for switching the team into enduserhood. Unfortunately, I didn&#8217;t follow along as well as I could have this time around and can really only document and comment on the bottom line.</p>
<p>We&#8217;ve again self-organized into two to three teams based on task. The first team is charged with creating a hashing function which creates a sequence of integrase usable tokens from an integer. The second (and third?) team is responsible for creating a check to ensure that a given product corresponds correctly to a given pair of reactant sequences. Finally, the dangling task of creating an even bigger external harness along with modifications to the present main.py program logic is likely being handled by the latter team.</p>
<p><strong>The Hashing Task</strong> is kind of interesting because it essentially calls for unhashing an integer into a meaningful sequence rather than hashing a meaningful sequence into a unique integer. Since the reactant strings can themselves be lexicographically sequenced, then the task quickly becomes an enumeration or counting problem whereupon we find the most efficient way to count through the possible permutations of reactant tokens until we reach the integer that we want. The backward task (what we&#8217;re doing) may end up being implemented as the forward task with a sequential search.</p>
<p>The hashing subteam is headed by Jordan, the modeling head from last year and is joined by myself and Wylee&#8211; I honestly don&#8217;t see this as a task that can&#8217;t be completed by one person in a single bout of insanity&#8211; so it&#8217;s likely that I&#8217;ll hop over to Andre&#8217;s reactant-product verification team whenever this finishes.</p>
<p>We&#8217;ve planned another meeting for Tuesday 5pm next week to pull whatever we have together and to tackle any nascent problems.</p>
<p><strong>Reactant-Product Verification</strong> is I think the more straight forward item, at least to explain. It is likely more technically challenging. Basically, we make the reaction go forward, and if the product matches what we wanted, then we favour the persistence of the product. &#8230; Err, at least that&#8217;s how I understood it&#8230; I&#8217;ll probably need to pop in and ask about it on Thursday before the big oGEM Skype meeting.</p>
<p>Side note&#8211; Oddly, both Shira and John were present at this meeting&#8211; it probably means we&#8217;re expecting progress <img src='http://eddiema.ca/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=503" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/07/22/igem-freedom-unhashed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Operator Group Meeting</title>
		<link>http://eddiema.ca/2009/06/26/operator-group-meeting/</link>
		<comments>http://eddiema.ca/2009/06/26/operator-group-meeting/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 18:42:16 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Matthew Gingerich]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=338</guid>
		<description><![CDATA[The Operator Group (UWiGem/Modeling/Operators) had a meeting about a week ago&#8211; the meeting ended up being between three people: Matthew, Andre and me at the iGem office. We&#8217;ve basically figured out everything we needed to in terms of raw interfaces between our module and the remaining two modules (Filtering Group and Giant Scaffold Group). The [...]]]></description>
			<content:encoded><![CDATA[<p>The Operator Group (UWiGem/Modeling/Operators) had a meeting about a week ago&#8211; the meeting ended up being between three people: Matthew, Andre and me at the iGem office. We&#8217;ve basically figured out everything we needed to in terms of raw interfaces between our module and the remaining two modules (Filtering Group and Giant Scaffold Group). The DNAClass was updated with the needs Andre presented&#8211; one of which is the ability to iterate over a DNAObject while <span style="text-decoration: line-through;">returning</span> yielding both the token index and token in a duplet: (<em>index</em>, <em>token</em>).</p>
<p>The implementation of the <a href="http://www.python.org/dev/peps/pep-0279/">enumerate() built-in in Python (PEP 279)</a> doesn&#8217;t allow for abstract function overriding. It always counts a collection as it iterates over it starting from zero. Ideally, the count should reflect the index of the circular DNA strand which means that it should be able to count forward or backward (iterate as reverse compliment), and count from any arbitrary position in the loop.</p>
<p>Note that the reverse compliment copy constructor (DNAObject.rc()) does not cause indexes to be reversed&#8230; It actually produces a reverse compliment strand and doesn&#8217;t do anything special with the indices (i.e. The new strand increments positively as it iterates forwardly). This behaviour is being debated now&#8211; On the one hand, it&#8217;s correct because a reverse compliment strand is a new strand; however, it is not a strand de novo&#8211; it came from a positive sequence.</p>
<p>I&#8217;m now waiting for Andre to let me know about the functions and data frameworks needed for the Operators module; my feeling is that the functions will be the straight forward integrase enzyme actions and that the data framework will simply be a python list.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=338" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/06/26/operator-group-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modeling Meeting</title>
		<link>http://eddiema.ca/2009/06/12/modeling-meeting/</link>
		<comments>http://eddiema.ca/2009/06/12/modeling-meeting/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 12:41:44 +0000</pubDate>
		<dc:creator>Eddie Ma</dc:creator>
				<category><![CDATA[Computational Biology]]></category>
		<category><![CDATA[Andre Masella]]></category>
		<category><![CDATA[iGEM]]></category>
		<category><![CDATA[Mathematical Modeling]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Recombinatron]]></category>
		<category><![CDATA[UWiGem]]></category>

		<guid isPermaLink="false">http://eddiema.ca/?p=264</guid>
		<description><![CDATA[A modeling meeting occurred on Wednesday. Andre headed off the discussion and revisited the entire program layout in a nice chalkboard cartoon. Unfortunately, Andre generally doesn&#8217;t push down hard enough or make wide enough lines with the chalk in order to make a high enough contrast image against the black board for photography (i.e. faint [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_302" class="wp-caption alignright" style="width: 275px"><img class="size-full wp-image-302" title="modeling3components" src="http://eddiema.ca/wp-content/uploads/2009/06/modeling3components.png" alt="Modeling Team Selection with Flush();" width="265" height="310" /><p class="wp-caption-text">Modeling Team Selection with Flush();</p></div>
<p>A modeling meeting occurred on Wednesday. Andre headed off the discussion and revisited the entire program layout in a nice chalkboard cartoon. Unfortunately, Andre generally doesn&#8217;t push down hard enough or make wide enough lines with the chalk in order to make a high enough contrast image against the black board for photography (i.e. faint drawing =&gt; no photos, sorry).</p>
<p>The discussion saw the formalization and division of the programming problem into three distinct software components as follows.</p>
<ul>
<li>Genetic Fragment Operators</li>
<li>Genetic Fragment Filters</li>
<li>Overall Program Logic</li>
</ul>
<p><strong>Genetic Fragment Operators</strong></p>
<p>These are the functions that represent reverse-complementation, enzyme activity etc..</p>
<p><strong>Genetic Fragment Filters</strong></p>
<p>These are functions that represent removing uninteresting, &#8216;inert&#8217;, undesirable and fatal fragments of DNA. This definition will become more precise once we&#8217;ve worked on the project a bit and better understand the philosophical correctness of each of these notions.</p>
<p><strong>Overall Program Logic</strong></p>
<p>The overall program logic will constitute producing some structure that represents a Big Bag of DNA (as opposed to a cell), communication between this Big Bag, the Operator module and the Filter module and of course&#8211; our main program loop.<strong><br />
</strong></p>
<p><strong>What I&#8217;m doing&#8230;</strong></p>
<p>I&#8217;ve been tasked with producing a universal representation of DNA which includes a circular iterator on a loop of DNA with an arbitrary starting position. This is OK to do in Python with the use of the &#8216;yield&#8217; operator. I will be borrowing from Jordan / Brendan / My own previous ideas for this representation&#8211; we want to have an easy single-letter-token system and for the moment are happy with the single byte space ascii has to offer.</p>
 <img src="http://eddiema.ca/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=264" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://eddiema.ca/2009/06/12/modeling-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
