<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>binary&#124;fusion</title>
	<atom:link href="http://adamcoster.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamcoster.com</link>
	<description>ramblings of a fetal biologist</description>
	<lastBuildDate>Tue, 29 Nov 2011 01:24:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='adamcoster.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/85ad65a99dad159ad6f64a9e7843e0ef?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>binary&#124;fusion</title>
		<link>http://adamcoster.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://adamcoster.com/osd.xml" title="binary&#124;fusion" />
	<atom:link rel='hub' href='http://adamcoster.com/?pushpress=hub'/>
		<item>
		<title>Python: shared birthdays</title>
		<link>http://adamcoster.com/2011/07/13/python-shared-birthdays/</link>
		<comments>http://adamcoster.com/2011/07/13/python-shared-birthdays/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 04:31:34 +0000</pubDate>
		<dc:creator>adamcoster</dc:creator>
				<category><![CDATA[computers/software]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[birthday]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[simulation]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://adamcoster.com/?p=1189</guid>
		<description><![CDATA[A few days ago I found myself having a vague recollection of a statistics problem presented at some unknown level in my education. All I could remember was that it had to do with having a room full of people &#8230; <a href="http://adamcoster.com/2011/07/13/python-shared-birthdays/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1189&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few days ago I found myself having a vague recollection of a statistics problem presented at some unknown level in my education. All I could remember was that it had to do with having a room full of people and the probability that any two people in that room would have the same birthday. I remembered the point, which was that it is much more likely than you might think, but I was fuzzy on the details.</p>
<p>After trying to define the problem and find an answer mathematically, I remembered that I suck at statistical reasoning about as much as the average American. So I decided to model the problem with a short Python script and find the answer that way.</p>
<p><strong>The problem:</strong> There are <em><strong>n</strong></em> people (say, at a party) drawn randomly from a population in which the chances of having a birthday on any day is equal to having a birthday on any other (which is not true of real populations (probably)). What is the probability of there being at least two people with the same birthday in the sample?</p>
<p>To put this thing together, I figure we need three things:</p>
<ol>
<li>The ability to generate random numbers (provided by Python&#8217;s<a href="http://docs.python.org/py3k/library/random.html"> random</a> module);</li>
<li>An object representing each person;</li>
<li>A party object full of those people.</li>
</ol>
<p>Then we can add things like the ability to choose how many people we want at the party and how many parties to have, as well as some output for making plots!</p>
<p>First, the Person object. All each person needs is a birthday:</p>
<p><pre class="brush: python; first-line: 1;">
import random
random.seed()

class Person:
    def __init__( self ):
        self.birthday = random.randint( 1, 365 )
</pre></p>
<p><span id="more-1189"></span></p>
<p>After that we need a Party object, which must be able to contain a bunch of people and check to see whether any of them have the same birthday:</p>
<p><pre class="brush: python; first-line: 7;">
class Party:
    def __init__( self, partiers ):
        self.members   = [ Person()        for p      in range(partiers) ]
        self.birthdays = [ member.birthday for member in self.members    ]
        self.check_matching_birthdays()

    def check_matching_birthdays( self ):
        birthday_frequencies = { b:0 for b in self.birthdays }
        for b in self.birthdays: birthday_frequencies[b] += 1
        for b in self.birthdays:
            if birthday_frequencies[b] &lt; 2:
                del birthday_frequencies[b]
        self.matching_dates = len(birthday_frequencies)
</pre></p>
<p>Finally, we need the <em><strong>main()</strong></em> function allowing the user to choose the number of parties and attendees:</p>
<p><pre class="brush: python; first-line: 21;">
def main():
    while True:
        parties  = int(input(&quot;Number of parties:  &quot;))
        partiers = int(input(&quot;Number of partiers: &quot;))
        parties_with_matching_birthdays = 0

        for party in range( parties ):
            party = Party( partiers )
            if party.matching_dates:
                parties_with_matching_birthdays += 1

        print( 'Fraction of parties having at least one match:' )
        print( '   ', parties_with_matching_birthdays / parties )

main()
</pre></p>
<p>Putting it all together we get a simple program that allows you to answer the question given, and for any number of people. As you increase the number of parties, the variability gets smaller and smaller (and, being an inefficient program, the time taken gets longer and longer). The output I get from a few values is:</p>
<div class="wp-caption aligncenter" style="width: 392px"><img title="party birthday simulation" src="https://lh3.googleusercontent.com/-ZFopQDnXaKY/ThvAIAO3fYI/AAAAAAAAANc/caua0HVLxHE/birthdays.png" alt="" width="382" height="242" /><p class="wp-caption-text">Figure 1: Frequency of finding individuals with the same birthday in groups of various sizes.</p></div>
<p>At 25 people there is already a better-than-even chance of finding two people with the same birthday, and by 50 it&#8217;s almost guaranteed! That does seem a little unbelievable, so I&#8217;ll refer you to the <a href="http://en.wikipedia.org/wiki/Birthday_problem">Wikipedia page</a> on the topic for the math (yes, there really is a page for this).</p>
<p>Just to see if this little simulation would recreate what Wikipedia shows, we can modify the <em><strong>main()</strong></em> function and change it to the following:</p>
<p><pre class="brush: python; first-line: 21;">
def main():
    max_partiers      = 60
    number_of_parties = 10000
    iterations        = 3

    with open( 'birthdays.r', 'w' ) as rfile:
        # First add the variable containing each number of people.
        rfile.write( 'people = c( 1' )
        for partier in range( 2, max_partiers+1 ):
            rfile.write( ', ' + str(partier) )
        rfile.write( ')\n' )

        # Then the variables for the matches in each iteration.
        for iteration in range(iterations):
            rfile.write( 'matches' + str( iteration ) + ' = c( 0' )
            for partiers in range( 2, max_partiers+1 ):
                print( 'iteration =', iteration, 'partiers =', partiers )
                matches = 0
                for party in range( number_of_parties ):
                    party = Party( partiers )
                    if party.matching_dates:
                        matches += 1
                rfile.write( ', ' + str( matches / number_of_parties ) )
            rfile.write( ')\n' )

main()
</pre></p>
<p>Plotting the results in R gives:</p>
<div class="wp-caption aligncenter" style="width: 410px"><img class="  " style="margin-top:10px;margin-bottom:10px;" title="simulated_birthday" src="https://lh4.googleusercontent.com/-Ywy76A3glPE/Th5wTWd0XSI/AAAAAAAAAds/aKd6gmTfXSU/g527.png" alt="" width="400" height="300" /><p class="wp-caption-text">Figure 2: Output of simulation. Plotted in R using the Cairo package.</p></div>
<p>And overlaying it onto the Wikipedia plot:</p>
<div class="wp-caption aligncenter" style="width: 410px"><img class="  " style="margin-top:10px;margin-bottom:10px;" title="overlay" src="https://lh5.googleusercontent.com/-wZTS4CgBrWI/Th5vYRjJnHI/AAAAAAAAAbY/-M0mK_YC2VA/g7391.png" alt="" width="400" height="256" /><p class="wp-caption-text">Figure 3: Overlay (using Inkscape) of simulated values (blue) on Wikipedia&#039;s calculated values (red).</p></div>
<p style="text-align:center;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adamcoster.wordpress.com/1189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adamcoster.wordpress.com/1189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adamcoster.wordpress.com/1189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1189&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adamcoster.com/2011/07/13/python-shared-birthdays/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9997a07906178aea8a4143822c2dbc0?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=PG" medium="image">
			<media:title type="html">sacred atom</media:title>
		</media:content>

		<media:content url="https://lh3.googleusercontent.com/-ZFopQDnXaKY/ThvAIAO3fYI/AAAAAAAAANc/caua0HVLxHE/birthdays.png" medium="image">
			<media:title type="html">party birthday simulation</media:title>
		</media:content>

		<media:content url="https://lh4.googleusercontent.com/-Ywy76A3glPE/Th5wTWd0XSI/AAAAAAAAAds/aKd6gmTfXSU/g527.png" medium="image">
			<media:title type="html">simulated_birthday</media:title>
		</media:content>

		<media:content url="https://lh5.googleusercontent.com/-wZTS4CgBrWI/Th5vYRjJnHI/AAAAAAAAAbY/-M0mK_YC2VA/g7391.png" medium="image">
			<media:title type="html">overlay</media:title>
		</media:content>
	</item>
		<item>
		<title>cloning trick: ligation of multiple inserts</title>
		<link>http://adamcoster.com/2011/07/11/cloning-trick-ligation-of-multiple-inserts/</link>
		<comments>http://adamcoster.com/2011/07/11/cloning-trick-ligation-of-multiple-inserts/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 02:44:23 +0000</pubDate>
		<dc:creator>adamcoster</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[biology]]></category>
		<category><![CDATA[cloning]]></category>
		<category><![CDATA[ligase]]></category>
		<category><![CDATA[ligation]]></category>
		<category><![CDATA[molecular biology]]></category>
		<category><![CDATA[PCR]]></category>
		<category><![CDATA[plasmid]]></category>
		<category><![CDATA[primer]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[t4]]></category>

		<guid isPermaLink="false">http://adamcoster.com/?p=1184</guid>
		<description><![CDATA[I&#8217;ve spent the last couple months building a plasmid library, and in the process I thought of a trick. Ligations, perhaps the worst part of cloning, are notoriously finicky reactions. The goal is to take several pieces of linear DNA, &#8230; <a href="http://adamcoster.com/2011/07/11/cloning-trick-ligation-of-multiple-inserts/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1184&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the last couple months building a <a href="http://en.wikipedia.org/wiki/Plasmid">plasmid</a> library, and in the process I thought of a trick. <a href="http://en.wikipedia.org/wiki/DNA_ligase">Ligations</a>, perhaps the worst part of cloning, are notoriously finicky reactions. The goal is to take several pieces of linear DNA, where the ends of the pieces can only connect in a certain way, and then use an enzyme (<a href="http://en.wikipedia.org/wiki/T4_phage">T4</a> Ligase) to sew them all together into one piece (in my case, a circular plasmid).</p>
<div id="attachment_1185" class="wp-caption aligncenter" style="width: 310px"><a href="http://adamcoster.files.wordpress.com/2011/07/ligase.gif"><img class="size-medium wp-image-1185" title="ligase" src="http://adamcoster.files.wordpress.com/2011/07/ligase.gif?w=300&#038;h=239" alt="" width="300" height="239" /></a><p class="wp-caption-text">Figure 1. Ligase (2HVQ.pdb) rendered in PyMOL. Click to see a crappy animated GIF!</p></div>
<p>I needed to insert three fragments at once into a single backbone. In my ignorance (from my lack of experience) I thought ligating four fragments should work just as well as two, so I just threw them all together and ran the reaction. The result was a mess, and when I tested 40 different clones afterwards not a single one was correct. So I started adding them one piece at a time which, obviously, was going to take three times as long.</p>
<p><span id="more-1184"></span></p>
<p>The next morning while in the shower (one of the best places for random ideas) I thought that, though most of what was in my test tube was <em>not</em> the desired product, there was most likely some tiny population that actually <em>was</em> the correct fragment. The problem was just that putting my products into <em>E.coli</em> and then trying to find the correct thing wouldn&#8217;t work if only 1/100 (or less!) of the ligation products were correct. But <a href="http://en.wikipedia.org/wiki/Polymerase_chain_reaction">PCR</a> is wonderful for making tiny amounts of DNA into large amounts, so I thought, why not just try to use PCR to get the correct thing out of the mess? Since each product is made out of some combination of the input fragments, the lengths would be discrete and therefore visible and, potentially, separable on <a href="http://en.wikipedia.org/wiki/Gel_electrophoresis">a gel</a>. I just needed to be able to copy up enough that I could <em>see </em>DNA run on a gel, and then I could just purify out the one that was the right length.</p>
<div class="wp-caption aligncenter" style="width: 512px"><img title="PCR after ligation" src="https://lh4.googleusercontent.com/-uQmvfz2DOIk/ThuwYacrjoI/AAAAAAAAAJ4/BMac-vSS_n0/text4985.png" alt="" width="502" height="98" /><p class="wp-caption-text">Figure 2. Each differently-colored fragment is being ligated into the gray backbone. The primers (black arrows) flank the entire insert.</p></div>
<p>I designed <a href="http://en.wikipedia.org/wiki/Primer_(molecular_biology)">primers</a> that would flank the combined insert and did a PCR (I can&#8217;t say &#8220;PCR Reaction&#8221; for the same reason I can&#8217;t say &#8220;ATM Machine&#8221;), and did indeed get a band of the desired length! After <a href="http://en.wikipedia.org/wiki/Gel_extraction">gel purification</a> I was able to ligate the entire insert into the backbone without any trouble.</p>
<p>You might be asking, &#8220;Well isn&#8217;t this now a two-step process, just one less than the three required otherwise,  and so barely worth the effort?&#8221; Almost, except that there is no need to transform the multi-fragment ligation mixture. So it&#8217;s more like 1.5 steps. Plus, the ligation, PCR, gel purification, final ligation, and final transformation can all be done in a single day!</p>
<p>Though my labmates were surprised when this worked, it turns out I was a year too late to publish this idea <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> . If you are fortunate enough to have access to <em>Analytical Biochemistry</em> (another journal that should be free to the public but isn&#8217;t), see the paper by An, Wu, and Lv called &#8220;<a href="http://www.ncbi.nlm.nih.gov/pubmed?term=A%20PCR-after-ligation%20method%20for%20cloning%20of%20multiple%20DNA%20inserts">A PCR-after-ligation method for cloning of multiple DNA inserts</a>&#8220;. If you aren&#8217;t that lucky, I&#8217;ve already told you everything you need to know!</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adamcoster.wordpress.com/1184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adamcoster.wordpress.com/1184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adamcoster.wordpress.com/1184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1184&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adamcoster.com/2011/07/11/cloning-trick-ligation-of-multiple-inserts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9997a07906178aea8a4143822c2dbc0?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=PG" medium="image">
			<media:title type="html">sacred atom</media:title>
		</media:content>

		<media:content url="http://adamcoster.files.wordpress.com/2011/07/ligase.gif?w=300" medium="image">
			<media:title type="html">ligase</media:title>
		</media:content>

		<media:content url="https://lh4.googleusercontent.com/-uQmvfz2DOIk/ThuwYacrjoI/AAAAAAAAAJ4/BMac-vSS_n0/text4985.png" medium="image">
			<media:title type="html">PCR after ligation</media:title>
		</media:content>
	</item>
		<item>
		<title>secrecy and biological research</title>
		<link>http://adamcoster.com/2011/05/19/secrecy-and-biological-research/</link>
		<comments>http://adamcoster.com/2011/05/19/secrecy-and-biological-research/#comments</comments>
		<pubDate>Fri, 20 May 2011 02:03:10 +0000</pubDate>
		<dc:creator>adamcoster</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[biology]]></category>
		<category><![CDATA[closed source]]></category>
		<category><![CDATA[idealism]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plasmid]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[secrecy]]></category>
		<category><![CDATA[secrets]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://adamcoster.com/?p=1178</guid>
		<description><![CDATA[It is becoming increasingly clear to me that my ideal picture of &#8220;doing science&#8221; is following the fate of all ideals: death at the hands of reality. While I was working away at WashU, preparing for graduate school, I imagined &#8230; <a href="http://adamcoster.com/2011/05/19/secrecy-and-biological-research/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1178&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It is becoming increasingly clear to me that my ideal picture of &#8220;doing science&#8221; is following the fate of all ideals: death at the hands of reality.</p>
<p>While I was working away at WashU, preparing for graduate school, I imagined myself as a grad student. In that imagination land I was working my ass off, learning all kinds of things, and sharing every bit of that with others via this platform. My work would be totally open. In reality, I am doing only those first two things.</p>
<p>Every couple of days I have an awesome research experience or an interesting new idea and come home planning to write about it. Then I start thinking about how I can present the experience while maintaining the proper level of censorship. Perhaps unsurprisingly, my motivation always quickly evaporates. You may be wondering: why is there any censorship required at all?</p>
<p><span id="more-1178"></span>Well, it turns out that biological research must remain shrouded in secrecy for at least two major reasons: [1] Just like in any other profession, there are charlatans, thieves, and liars to avoid; and [2] biological research results are potentially worth huge mountains of cash. I&#8217;m still hoping that most biological scientists really do fit my ideal image of a Scientist, but the problem is that it only takes a few jerks to make life difficult for everyone else.</p>
<p>There is a lot at stake for researchers, as a lot of money and time is sunk into any project. So if some other group manages to do the same or similar work, and get published first, then much can be lost. Fear of outright idea-theft is one of the huge problems, but the more surprising one is that competing researches don&#8217;t want to give each other a leg up by sharing information because sharing leads to reduction or even loss of credit. If you share, your cool idea might end up becoming a novel tool used in someone else&#8217;s Nature paper instead of your own. And then you have more trouble getting funding, and students, and tenure&#8230;</p>
<p>So the funding system necessarily leads to closed science, which would be true even without the explicit jerks. And then money gets involved on the other side of discovery. Universities, companies, and researchers are patenting the crap out of new biological discoveries. Mutant proteins, dead viruses, synthetic compounds, techniques to synthesize or purify natural compounds, plasmids, and so on and so on. Most of these things aren&#8217;t worth much (except for knowledge-value) and so their defenses just end up making life a little more difficult. Others are hugely useful, but are better left to companies anyway (pharmaceuticals or complicated and expensive processes, for instance). Others still are hugely useful, but only for research purposes, and have no business being tied to business. For example: <a href="http://en.wikipedia.org/wiki/Plasmid">plasmids</a> (circular DNA containing a handful of genes).</p>
<p>I have been building a plasmid for the past few weeks (for my secret research project) and ran into a totally unexpected problem. I wanted a certain<a href="http://en.wikipedia.org/wiki/Green_fluorescent_protein"> fluorescent protein</a> in my plasmid, and we have several in the lab on different plasmids that we have gotten from other labs or companies. For those unfamiliar with cloning (the<a href="http://en.wikipedia.org/wiki/Molecular_cloning"> molecular kind</a>, not the <a href="http://en.wikipedia.org/wiki/Dolly_(sheep)">sheep kind</a>), it&#8217;s actually a rather routine process to stick a bunch of genes together into a plasmid. In order to get enough copies of a gene to efficiently construct one of these things, a researcher will use <a href="http://en.wikipedia.org/wiki/Polymerase_chain_reaction">PCR</a>. This awesome technology lets you go from a few copies of a gene to billions (literally) in a few hours. You can PCR any gene you want, so long as you know its sequence.</p>
<p>So my plan was to find the fluorescent protein gene from one of our plasmids, make a bunch of copies of it by PCR, then stick it into another one of our plasmids. Simple. But then it turns out that many of our plasmids  have Material Transfer Agreements (<a href="http://en.wikipedia.org/wiki/Material_transfer_agreement">MTA</a>s) attached to them, and that each MTA has different requirements for what I can and cannot do with the plasmid&#8217;s components. One plasmid has three genes, each &#8220;licensed&#8221; by a different university! One of the things the MTA prevents me from doing, for example, is to make any changes to the fluorescent protein gene from one of these plasmids. This actually sucks a lot, because that was something that I needed to do. And this requirement was by a <em>university</em>. I understand and expect that kind of behavior from a company, as companies exist to make money in whatever way possible. Companies aren&#8217;t supposed to have ethics, or have a primary goal of advancing human knowlege. But universities are supposed to have both of those things.</p>
<p>In the end, I just went with a probably-slightly-crappier fluorescent protein that, I hope, is not under an MTA. And it looks like it is doing what I designed it to do. So there&#8217;s that.</p>
<p>In conclusion, it looks like my relationship with biological research will become the same as my relationship with software: I&#8217;ll make my work as open as I can, hope that others do the same, and generally use free-and-open slightly-crappier versions of expensive-and-closed things (whether those things are plasmids or office software).</p>
<p>Hopefully the likely-more-complex reality turns around again so that I will find myself back at idealism. I expect that the process of publishing my first paper (whenever that happens) will reveal a lot&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adamcoster.wordpress.com/1178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adamcoster.wordpress.com/1178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adamcoster.wordpress.com/1178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1178&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adamcoster.com/2011/05/19/secrecy-and-biological-research/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9997a07906178aea8a4143822c2dbc0?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=PG" medium="image">
			<media:title type="html">sacred atom</media:title>
		</media:content>
	</item>
		<item>
		<title>Mindforge Tutorial: Cleartype Tuner</title>
		<link>http://adamcoster.com/2011/04/30/mindforge-tutorial-cleartype-tuner/</link>
		<comments>http://adamcoster.com/2011/04/30/mindforge-tutorial-cleartype-tuner/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 12:00:17 +0000</pubDate>
		<dc:creator>adamcoster</dc:creator>
				<category><![CDATA[computers/software]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[cleartype]]></category>
		<category><![CDATA[eye strain]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[headache]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[tuner]]></category>
		<category><![CDATA[ugly]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://adamcoster.com/?p=1164</guid>
		<description><![CDATA[As part of the continuing closet-cleaning series: WindowsXP text is ugly and induces eye-pain and headaches. Here&#8217;s what you can do about it:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1164&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As part of the<a href="http://adamcoster.com/2011/04/09/make-notepad-your-default-editor-windows7/"> continuing</a> <a href="http://adamcoster.com/2011/04/09/make-notepad-your-default-editor-windows7/">closet-cleaning</a> series: WindowsXP text is ugly and induces eye-pain and headaches. Here&#8217;s what you can do about it:</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='500' height='312' src='http://www.youtube.com/embed/YvW3TZO9rpE?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adamcoster.wordpress.com/1164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adamcoster.wordpress.com/1164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adamcoster.wordpress.com/1164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1164&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adamcoster.com/2011/04/30/mindforge-tutorial-cleartype-tuner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9997a07906178aea8a4143822c2dbc0?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=PG" medium="image">
			<media:title type="html">sacred atom</media:title>
		</media:content>
	</item>
		<item>
		<title>Mindforge Tutorial: Try out Linux using Wubi</title>
		<link>http://adamcoster.com/2011/04/23/mindforge-tutorial-try-out-linux-using-wubi/</link>
		<comments>http://adamcoster.com/2011/04/23/mindforge-tutorial-try-out-linux-using-wubi/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 15:40:30 +0000</pubDate>
		<dc:creator>adamcoster</dc:creator>
				<category><![CDATA[computers/software]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[wubi]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://adamcoster.com/?p=1161</guid>
		<description><![CDATA[Still cleaning out the closet&#8230; I made this video tutorial a couple years ago for my brother&#8216;s and my short-lived computer company. It&#8217;s a little outdated, but (probably) still accurate.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1161&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Still<a href="http://adamcoster.com/2011/04/09/make-notepad-your-default-editor-windows7/"> cleaning out the closet</a>&#8230; I made this video tutorial a couple years ago for <a href="http://stozstudios.blogspot.com/">my brother</a>&#8216;s and my short-lived computer company. It&#8217;s a little outdated, but (probably) still accurate.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='500' height='312' src='http://www.youtube.com/embed/00N0DsD9sog?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adamcoster.wordpress.com/1161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adamcoster.wordpress.com/1161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adamcoster.wordpress.com/1161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adamcoster.com&amp;blog=2610285&amp;post=1161&amp;subd=adamcoster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adamcoster.com/2011/04/23/mindforge-tutorial-try-out-linux-using-wubi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9997a07906178aea8a4143822c2dbc0?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=PG" medium="image">
			<media:title type="html">sacred atom</media:title>
		</media:content>
	</item>
	</channel>
</rss>
