<?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>ptigas blog</title>
	<atom:link href="http://ptigas.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ptigas.com/blog</link>
	<description>Panagiotis Tigas personal blog</description>
	<lastBuildDate>Sat, 06 Feb 2016 16:24:22 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.4.4</generator>
	<item>
		<title>Down To Earth</title>
		<link>http://ptigas.com/blog/down-to-earth/</link>
		<comments>http://ptigas.com/blog/down-to-earth/#respond</comments>
		<pubDate>Sun, 11 May 2014 16:04:22 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=657</guid>
		<description><![CDATA[It was about a year ago when I first participated NASA&#8217;s space app challenge. I went there with no expectation but in the end I had great fun, met amazing people and after all, I was dealing with NASA&#8217;s problems. A few weekends ago, the 3rd international spaceapp challenge took place again and in London this<div class="read-more"><a href="http://ptigas.com/blog/down-to-earth/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>It was about a year ago when I first participated NASA&#8217;s space app challenge. I went there with no expectation but in the end I had great fun, met amazing people and after all, I was dealing with NASA&#8217;s problems. A few weekends ago, the 3rd international spaceapp challenge took place again and in London this time was hosted by Dana&#8217;s center, a few steps away from science museum.</p>
<div class="video-container"><iframe src="//player.vimeo.com/video/92461462?title=0&#038;portrait=0&#038;byline=0" width="500" height="281" frameborder="0" title="Down to earth" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
<p>I got at the venue quite late so I missed most of the challenges presentations, however we didn&#8217;t miss a minute and started immediately working on the project. This year we decided to follow a different approach. Instead of getting our hands dirty with the implementation we gave significantly more time on brainstorming and concept development, putting the presentation as our top priority. This approach helped us organize our time significantly better, working only on the items that matter.</p>
<p>Anyway, we worked hard and smart and our efforts got rewarded in the end. We managed to get the people&#8217;s choice award in London and get in the list of the top 25 projects selected as finalist for global people&#8217;s choice award. Other than that, you know, tons of fun, great people and celestial problems.</p>
<blockquote class="twitter-tweet" lang="en" style="width: 680px;"><p>Bringing Space Data Down to Earth! <a href="https://twitter.com/spaceapps">@spaceapps</a> People&#8217;s Choice <a href="http://t.co/OcLBUEsEG8">http://t.co/OcLBUEsEG8</a> <a href="https://twitter.com/hashtag/spaceapps?src=hash">#spaceapps</a> <a href="https://twitter.com/hashtag/downtoearthapp?src=hash">#downtoearthapp</a> <a href="http://t.co/J9HhlV8eVK">pic.twitter.com/J9HhlV8eVK</a></p>
<p>— beth beck (@bethbeck) <a href="https://twitter.com/bethbeck/status/461321074886467584">April 30, 2014</a></p></blockquote>
<h2>The challenge</h2>
<p>After the typical procrastination and &#8220;what about this project&#8221; moments we finally decided to solve the asteroid visualization task, according which we had to visualize a publicly available dataset about near-earth asteroids in a way that make sense. That sounds pretty straight forward, right? Well, it&#8217;s easy to think the trivial solution and go and start building fancy infographics that don&#8217;t actually mean anything to you. We got so many parameters in the dataset that we couldn&#8217;t even decide what to visualize. After a few discussions with people (thanks <a href="http://www.imaginals.net/" target="_blank">James Parr</a> for the inspiring ideas), we thought that what actually matters is to make the data easily interpretable.</p>
<blockquote><p>To mobilise resources for asteroid research, we will need to create empathy for the potential moral and economic hazard that these objects present</p>
<p>James Parr, Founder of Open Space Agency</p></blockquote>
<p>Imagine you read that an asteroid has a diameter of 1.7 km and the minimum distance from earth is 5 AU. What does this tells you? I&#8217;ll bet nothing. What if I tell you instead that the distance is 120 times the distance of Eiffel tour from Big Ben or the size is 7 times the size of a London eye (given that you&#8217;re a Londoner). That&#8217;s quite easier to visualize, right ?</p>
<p>Our proposed solution, creates such familiar analogies with open data about asteroids, using your location and an open collaborative human knowledge database (<a href="http://freebase.com" target="_blank">freebase.org</a>). Using this database we can get buildings or monuments that are near you, assuming that that&#8217;s something familiar to you (most of the times it is). Then, we use the retrieved buildings to make analogies that matter to you.</p>
<p><img class="aligncenter" src="http://ptigas.com/technical.png" alt="" width="594" height="373" /></p>
<p>What about earth blast impact though? How do you visualize this? Well, you can always visualize the crater of a catastrophe fictional scenario, but you can&#8217;t really empathize with that. What if I tell you that when asteroid X hits London 100k people will die or the GDP of the destroyed area will be 1.5 million pounds? That&#8217;s easier to understand. Again, using freebase, we retrieved details about popularity density and we do the maths for you to get an idea.</p>
<h2>Next plans</h2>
<p>That was a proof of concept and our plan is to make more analogies. For example, something we wanted to show you is the probability of an earth blast event (e.g. one asteroid might hit earth with probability 0.000005 or equivalent of a thunder hitting a deer in Alaska. You get the point.)</p>
<p>Maybe though, the whole idea of visualizing using familiar analogies would be great to be applied in other domains as well. I haven&#8217;t researched about this yet, but it sounds like a cool idea.</p>
<h2>Team</h2>
<p>Paris Selinas, <a href="http://ptigas.com" target="_blank">Panagiotis Tigas</a>, <a href="http://denmyl.com" target="_blank">Dionysia Mylonaki</a></p>
<h2>Links</h2>
<p><a href="https://2014.spaceappschallenge.org/project/down-to-earth/" target="_blank">Project page in spaceappchallenge.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/down-to-earth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cave of Sounds Documentation</title>
		<link>http://ptigas.com/blog/cave-of-sounds-documentation/</link>
		<comments>http://ptigas.com/blog/cave-of-sounds-documentation/#respond</comments>
		<pubDate>Wed, 12 Mar 2014 01:34:03 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Art]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=646</guid>
		<description><![CDATA[Last year I worked in a project called Cave of Sounds, a residency hosted by Music Hack Space. For 10 months, 8 people worked together to create an interactive music installation inspired by primitive music interactions. The outcome was documented by the amazing Mind the Film. Check caveofsounds.com for more details.]]></description>
				<content:encoded><![CDATA[<div class="video-container"><iframe src="//player.vimeo.com/video/76453883?title=0&#038;portrait=0&#038;byline=0" width="500" height="281" frameborder="0" title="The Cave of Sounds (project documentation)" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
<p>Last year I worked in a project called Cave of Sounds, a residency hosted by Music Hack Space. For 10 months, 8 people worked together to create an interactive music installation inspired by primitive music interactions. The outcome was documented by the amazing <a href="http://mindthefilm.co.uk/" target="_blank">Mind the Film</a>. Check <a href="http://caveofsounds.com" target="_blank">caveofsounds.com</a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/cave-of-sounds-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>23 and me</title>
		<link>http://ptigas.com/blog/23-and-me/</link>
		<comments>http://ptigas.com/blog/23-and-me/#comments</comments>
		<pubDate>Sat, 25 May 2013 20:26:57 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Computational Genomics]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=585</guid>
		<description><![CDATA[Yesterday I received my results from 23 and me, after 6 weeks of waiting. Well, that was quite exciting for obvious reasons, but most importantly due to the fact that I was able to download the raw data in my computer. Let me repeat. I was able to download raw data in my computer. 7MB<div class="read-more"><a href="http://ptigas.com/blog/23-and-me/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>Yesterday I received my results from <a href="http://23andme.com" target="_blank">23 and me</a>, after 6 weeks of waiting. Well, that was quite exciting for obvious reasons, but most importantly due to the fact that I was able to download the raw data in my computer. Let me repeat. I was able to download raw data in my computer. 7MB text file.</p>
<p>You should be excited too. That&#8217;s a miracle. You know, we know about biology, nature and stuff, but having the algorithm ( actually DNA is a turing-complete language [1] ) that builds you in a downloadable, searchable format is something that wasn&#8217;t possible a few years ago. Actually, it wasn&#8217;t possible for billions of years.</p>
<p>Alright, holds your pants on though because actually you don&#8217;t get your complete genome sequenced but only the SNPs (<a href="https://www.23andme.com/gen101/snps/" target="_blank"> single nucleotide polymorphisms</a>). Let me explain, since once again journalists screwed this up and <a href="http://mashable.com/2013/05/15/personal-genetics-resources/" target="_blank">managed to create a myth</a>. So, what are SNPs ? To put in a simple way, it&#8217;s a single change in your DNA, a mutation, an accident which actually make each one of us different. Around 10,000,000 of those are more than enough to enable huge variation in humans phenotypes. 23andme, after they extract the SNPs of interest, they search hundreds of published results to see if your DNA mutation is correlated with any phenotype &#8211; desease, characteristic or even behaviour (smoking addiction).</p>
<p>So, let me give you an example. My report showed that I have an increased probability (compared to the average) of having type-2 diabetes. The evidence for this is a mutation in my gene TCF7L2, which is on chromosome 10, (dna consists of regions, the genes, which make the proteins). This single mutation in that specific position of this gene consist of the SNP <a href="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=rs7903146" target="_blank">rs7903146</a>. You can actually see the position in the gene from <a href="http://www.ncbi.nlm.nih.gov/nuccore/NC_000010.10?report=graph&amp;v=114757849%3A114758849&amp;content=5&amp;m=114758349!&amp;mn=rs7903146&amp;dispmax=1&amp;currpage=1" target="_blank">here</a>. The normal sequence should&#8217;ve been:</a></p>
<pre data-language="dna">... TTTTAGATA [C]  TATATAATTTAATTGC ...</pre>
<p>but mine got shitfaced and now it looks like this</p>
<pre data-language="dna">... TTTTAGATA [TT] TATATAATTTAATTGC ...</pre>
<p>Apparently, that single mutation can change the behaviour of a protein involved in cell signalling, which for unknown reasons it increases the chances of diabetes [2]. You see, it&#8217;s almost impossible to figure out the phenotype or the effect of a mutation analytically (no really, there is a proof that protein folding is NP-Complete [3]), bioinformaticians use statistics to correlate phenotypes with patterns in DNA.</p>
<p>If you&#8217;re still not convienced about the awesomeness of bioinformatics I have another example for you. Mutations happen to humans for several reasons but most frequently due to errors during DNA copying. Also, offsprings inherit mutations. And some of the mutations get inherited only from mothers &#8211; e.g. mutations that happen in mitochondrial DNA (mtDNA). Also, humans coming from Asia share some common SNPs, humans from Europe some others, etc. So, by checking &#8220;region specific&#8221; mutations in mitochondrial DNA you can actually track the origin or path of your ancestors from the side of your mother&#8217;s mother&#8217;s etc., although that doesn&#8217;t actually matter much since <a href="https://en.wikipedia.org/wiki/Recent_African_origin_of_modern_humans" target="_blank">we are all African</a>.</p>
<p>[1] <a href="http://books.google.co.uk/books?id=d4AEH0km878C&#038;lpg=PA269&#038;ots=wbY7-nCVIZ&#038;dq=DNA%20computation%20ibm&#038;pg=PA269#v=onepage&#038;q&#038;f=false">On the computational power of insertion-deletion systems</a><br />
[2] <a href="http://www.ncbi.nlm.nih.gov/pubmed?cmd=Search&amp;term=16415884">Variant of transcription factor 7-like 2 (TCF7L2) gene confers risk of type 2 diabetes.</a><br />
[3] <a href="http://www.cs.berkeley.edu/~christos/hp.ps" target="_blank">On the Complexity of Protein Folding</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/23-and-me/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hack The Barbican &#8211; Bazaar</title>
		<link>http://ptigas.com/blog/hack-the-barbican/</link>
		<comments>http://ptigas.com/blog/hack-the-barbican/#respond</comments>
		<pubDate>Wed, 22 May 2013 19:56:08 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Art]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=574</guid>
		<description><![CDATA[In August 2013 the Barbican will be taken over by London&#8217;s largest ever experiment in inter-disciplinary collaboration. Hack the Barbican is a month-long event exploring the boundaries of technology, the arts and entrepreneurship. The core of Hack the Barbican will be a series of residencies hosted in specially constructed studios and workshops spread throughout the public<div class="read-more"><a href="http://ptigas.com/blog/hack-the-barbican/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<blockquote><p>In August 2013 the Barbican will be taken over by London&#8217;s largest ever experiment in inter-disciplinary collaboration. Hack the Barbican is a month-long event exploring the boundaries of technology, the arts and entrepreneurship. The core of Hack the Barbican will be a series of residencies hosted in specially constructed studios and workshops spread throughout the public foyer spaces in which a range of practitioners will develop new work across disciplines. Alongside these residencies a constellation of workshops, performances and talks will showcase their creations and explore the heritage of inter-disciplinary thinking. A strand of entrepreneurial learning sessions will bring young people into the thick of the action and help them develop new skills and perspectives.</p></blockquote>
<p>A few weekends ago, I spend almost 48 hours, 4 floors under Barbican&#8217;s ground. Visiting this space for the first time, I must admit it&#8217;s currently one of my favorite places in London (this awkward complex of buildings, a masterpiece of architecture, was the vision of the future 30 years ago &#8211; proper retrofuturism). </p>
<p>The event, called the Bazaar, was about getting a taste of what is going to happen in August at Barbican and get to know each other through collaborative activities. The main concept of the Bazaar was to conceptualize and implement an idea within 48 hours and then present it, but most importantly have fun.</p>
<div class="video-container"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/FcxcYKhfW8w?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></div>
<p>My participation was with Music Hack Space where we presented for the first time a first draft of our installation, a project led by <a href="http://Timmb.com">Tim Murray-Browne</a>, &#8220;Cave Of Sounds&#8221;. For this project, 7 people collaborated for the last 6 months to create an installation, consisted by DIY instruments, inspired by primitive cave music.</p>
<div class="video-container"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/KNqgyWZiDKk?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></div>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/hack-the-barbican/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolutions for 2013</title>
		<link>http://ptigas.com/blog/resolutions-for-2013/</link>
		<comments>http://ptigas.com/blog/resolutions-for-2013/#comments</comments>
		<pubDate>Sat, 05 Jan 2013 13:43:47 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[NoN]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=543</guid>
		<description><![CDATA[The last two years my life changed significantly. From a student I was the last 18 years of my life (6 in university, 12 in school), I moved to London to start my post-studies life. In short, here is a list: Got my MSc in Machine Learning and Data Mining, from university of Bristol. Became<div class="read-more"><a href="http://ptigas.com/blog/resolutions-for-2013/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<div class="video-container"><iframe src="//player.vimeo.com/video/55623931?title=0&#038;portrait=0&#038;byline=0" width="500" height="281" frameborder="0" title="Gunshop | Hoppy New Year" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
<p>The last two years my life changed significantly. From a student I was the last 18 years of my life (6 in university, 12 in school), I moved to London to start my post-studies life. In short, here is a list:</p>
<ul>
<li>Got my MSc in Machine Learning and Data Mining, from university of Bristol.</li>
<li>Became financially independent.</li>
<li>Moved to London.</li>
<li>Worked for an awesome startup, <a href="http://buyometric.co.uk">buyometric</a>, for 1 year.</li>
<li>Started working for Microsoft.</li>
<li>I watched Herbie Hancock live.</li>
<li>Participated Music Hack Day. A goal I had the last few years now has a huge tick symbol next to it.</li>
<li>Started participating music hack space. Amazing space. Amazing people.</li>
</ul>
<h3>new year resolution</h3>
<p>I can summarise my goals for the following year in the next sentence. Become better in my expertises and invest more time in creativity.</p>
<ul>
<li>Make writing a habit.</li>
<li>Prepare / search for a PhD.</li>
<li>Start playing the guitar again. I feel guilty not having played for many years.</li>
<li>Start writing music more seriously &#8211; Finish at least 4 tracks.</li>
<li>Write at least two conference paper.</li>
<li>Become a better scientist and exercise math and compsci skills as much as possible. That should be expanded to write a review of an article / publication / new knowledge at least every week.</li>
<li>Participate in <a href="http://musichackspace.org/residency/hackspace-ensemble/">Hackspace Ensemble residency project </a></li>
<li>Improve my thesis project (Real time jam session support system) and present / publish it. Give a talk at Music Hack Space about it.</li>
<li>Travel and have great vacations. I haven’t have proper vacations for the last 3 years. Need some serious inspiration.</li>
<li>Wake up earlier.</li>
<li>Run a marathon (I can see myself already failing on that :p)</li>
<li>Listen to more music.</li>
<li>Finally, those four rules from John Maeda <a href="http://creativeleadership.com/2012/11/20/my-four-rules-1999/">http://creativeleadership.com/2012/11/20/my-four-rules-1999/</a></li>
</ul>
<p>Happy New Year to all!</p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/resolutions-for-2013/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>YouBox &#8211; Our hack for London&#8217;s Music Hack Day (2012)</title>
		<link>http://ptigas.com/blog/youbox-our-hack-for-londons-music-hack-day-2012/</link>
		<comments>http://ptigas.com/blog/youbox-our-hack-for-londons-music-hack-day-2012/#respond</comments>
		<pubDate>Wed, 28 Nov 2012 20:00:56 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[NoN]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=482</guid>
		<description><![CDATA[One thing I had in my todo list for several year was participating in Music Hack Day. Finally, this year I made it. I was lucky enough to book my ticket during the 5 minute window of the second round (the first time it sold out in 2 hours). With my team (Tijl De Bie<div class="read-more"><a href="http://ptigas.com/blog/youbox-our-hack-for-londons-music-hack-day-2012/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>One thing I had in my todo list for several year was participating in <a href="http://musichackday.org" target="_blank">Music Hack Day</a>. Finally, this year I made it. I was lucky enough to book my ticket during the 5 minute window of the second round (the first time it sold out in 2 hours). With my team (<a href="http://tijldebie.net" target="_blank">Tijl De Bie</a> and Raul Santos-Rodriguez) we developed <a href="http://youbox.fm">YouBox</a>, an app for the gameification of the party experience.</p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0414.jpg"><img title="IMG_0414" src="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0414-1024x682.jpg" alt="" width="574" height="382" /></a></p>
<p><span id="more-482"></span></p>
<p>The main feature list contains a mobile app where people can request tracks but also vote and give implicit and explicit feedback to the system. A &#8220;brain&#8221; then tries to recognise the best DJ of the party and give priority to his suggestions. Eventually, when the party finish, the system awards people according their DJing and Dancing performace (we take accelerometers measurements).</p>
<p>The whole experience was amazing. I met and collaborated with interesting people, had fun coding non-stop for 24 hours and bootstrapped a project. Did I also mention that our hack, got featured in <strong><a href="http://www.wired.co.uk/news/archive/2012-11/24/music-hack-day-london-2012" target="_blank">wired&#8217;s 10 top amazing hacks from Music Hack Day</a></strong> ?</p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0399.jpg"><img class=" wp-image-483  " title="youbox team" src="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0399-1024x682.jpg" alt="" width="574" height="382" srcset="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0399-300x200.jpg 300w, http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0399-1024x682.jpg 1024w" sizes="(max-width: 574px) 100vw, 574px" /></a></p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0404.jpg"><img class="aligncenter size-large wp-image-491" title="IMG_0404" src="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0404-1024x682.jpg" alt="" width="574" height="382" srcset="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0404-300x200.jpg 300w, http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0404-1024x682.jpg 1024w" sizes="(max-width: 574px) 100vw, 574px" /></a></p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0416.jpg"><img class=" wp-image-483  " title="youbox team" src="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0416-1024x682.jpg" alt="" width="574" height="382" /></a></p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/11/IMG_0414.jpg"><br />
</a></p>
<p>In detail our hack consists of the following three components.</p>
<h3>Party host:</h3>
<p>The party host creates a new party on Spotify, generating a unique party code (QR or text), and specifying the type of party (club / home party / bar / lounge). He can optionally choose to add one or several bots who continuously request tracks of a certain style. Optionally, the party host could award a &#8220;YouBot party DJ award&#8221; and / or a &#8220;YouBot party animal award&#8221; for the best scoring requester / dancer.</p>
<h3>Guests:</h3>
<p>Guests check into the YouBot phone app with the code, allowing them to:</p>
<ul>
<li><strong>[Consumer-mode]</strong> see the currently playing track on their phone, and give explicit like / dislike feedback. (Their dancing activity, measured as energy of the accelerometer signal around the bpm frequency, is recorded as implicit feedback.)</li>
<li><strong>[DJ-mode]</strong> request tracks during the party.</li>
<li><strong>[game-mode]</strong> see a leaderboard with their feedback score and dancing score, and the top-scorers.</li>
</ul>
<h3>YouBot:</h3>
<p>YouBot randomly selects the next track from the set of requests, biased in several ways (implicit / explicit feedback score of the requester, number of requests made by the requester, but also how recent the request is and similarity to previous track). The type of party determines the default biases (e.g. implicit feedback from dancing is less important in a bar than in a club). In this way YouBot initially explores which requesters get good feedback and soon start exploiting the knowledge of who understand best what keeps the party going.</p>
<p>If you are interested, you can find more details in <a href="http://youbox.fm/">youbox.fm</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/youbox-our-hack-for-londons-music-hack-day-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolution of Ovibos Moschatus</title>
		<link>http://ptigas.com/blog/evolution-ovibos-moschatus-muskox/</link>
		<comments>http://ptigas.com/blog/evolution-ovibos-moschatus-muskox/#comments</comments>
		<pubDate>Sun, 01 Jul 2012 10:32:07 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Computational Genomics]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=315</guid>
		<description><![CDATA[A couple of years ago, I returned home, a bit drunk, and started randomly clicking on wikipedia articles. I ended up reading about muskox. My first response was surprise and excitement by it&#8217;s severe ugliness. Several years later, during my MSc studies, I attended Computational Biology and part of this course was to do a<div class="read-more"><a href="http://ptigas.com/blog/evolution-ovibos-moschatus-muskox/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>A couple of years ago, I returned home, a bit drunk, and started randomly clicking on wikipedia articles. I ended up reading about muskox.<br />
My first response was surprise and excitement by it&#8217;s severe ugliness. Several years later, during my MSc studies, I attended Computational Biology and part of this course was to do a project with an animal of our choice, ask a question about it and answer using data. So, I decided to choose &#8220;muskox&#8221; and the question to ask was, &#8220;where does all this ugliness comes from?&#8221;. The study is a bit technical but the answer very interesting.</p>
<p>Source code of this study can be found in <a href="https://github.com/ptigas/Ovibos-Moschatus" target="_blank">my github</a>. The code is in MATLAB and depends on <a href="http://www.mathworks.co.uk/products/bioinfo/" target="_blank">bioinformatics toolbox</a>.</p>
<p><span id="more-315"></span></p>
<h2 id="introduction-and-data-description">Introduction and Data description</h2>
<p>This report investigates the relation of ovibos moschatus (muskox) with several animals of Bovidae family. Due to morphological similarities with Budorcas taxicolor (takin) I tested the hypothesis that those two animals have diverged from a recent common ancestor.Also, I compared muskox with the sheep and takin to see where is closer to. Finally I answered the question of where was the primary location of muskox.</p>
<p>Ovibos moscatus is an Artctic mammal which belongs to Bovidae family, Capricae subfamily. Although it primalry lives in <a title="Northern Canada" href="http://en.wikipedia.org/wiki/Northern_Canada">Canadian Arctic</a> and <a title="Greenland" href="http://en.wikipedia.org/wiki/Greenland">Greenland</a> it may be found in Sweden, Siberia and Norway. Several studies (including this one) shows that muskox is closer to sheeps and goats than Budorcas taxicolor (takin), a Bovidae mammal living in Eastern Himalyas, contradicting with their morphology (e.g. size).</p>
<p>Other animals which compared with muskox are common sheep, long-tailed goral, Japanese serow and Taiwan serow. Those animals are located in East Asia, and as we will see, they are the closest animals to muskox. Finally I compared with Gallus gallus (chicken) which I used as an outgroup. Figure 1 shows some basic statistics about mitochondrial DNA of the investigated species. The base count does not reveal any significant difference among the species, except for the chicken whch is the outgroup.</p>
<table class="data" style="margin-left: auto; margin-right: auto;">
<thead>
<tr class="header">
<th scope="col" align="left">species</th>
<th scope="col" align="left">common name</th>
<th scope="col" align="left">accession no.</th>
<th scope="col" align="left">%A</th>
<th scope="col" align="left">%C</th>
<th scope="col" align="left">%G</th>
<th scope="col" align="left">%T</th>
<th scope="col" align="left">length</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">Ovibos moschatus</td>
<td align="left">muskox</td>
<td align="left">FJ207536</td>
<td align="left">33.3698</td>
<td align="left">26.5291</td>
<td align="left">13.2554</td>
<td align="left">26.7787</td>
<td align="left">16431</td>
</tr>
<tr class="even">
<td align="left">Budorcas taxicolor</td>
<td align="left">takin</td>
<td align="left">NC_013069</td>
<td align="left">33.8573</td>
<td align="left">26.3095</td>
<td align="left">12.8577</td>
<td align="left">26.9755</td>
<td align="left">16667</td>
</tr>
<tr class="odd">
<td align="left">Ovis aries</td>
<td align="left">sheep</td>
<td align="left">NC_001941</td>
<td align="left">33.6663</td>
<td align="left">25.8125</td>
<td align="left">13.1259</td>
<td align="left">27.3953</td>
<td align="left">16616</td>
</tr>
<tr class="even">
<td align="left">Capricornis crispus</td>
<td align="left">Japanese serow</td>
<td align="left">NC_012096</td>
<td align="left">33.7446</td>
<td align="left">26.7064</td>
<td align="left">13.0067</td>
<td align="left">26.5423</td>
<td align="left">16453</td>
</tr>
<tr class="odd">
<td align="left">Naemorhedus caudatus</td>
<td align="left">Long-tailed goral</td>
<td align="left">NC_013751</td>
<td align="left">33.6340</td>
<td align="left">25.9580</td>
<td align="left">13.1243</td>
<td align="left">27.2656</td>
<td align="left">16519</td>
</tr>
<tr class="even">
<td align="left">Naemorhedus swinhoei</td>
<td align="left">Taiwan serow</td>
<td align="left">NC_010640</td>
<td align="left">33.3999</td>
<td align="left">26.6521</td>
<td align="left">13.3442</td>
<td align="left">26.6037</td>
<td align="left">16524</td>
</tr>
<tr class="odd">
<td align="left">Gallus gallus</td>
<td align="left">chicken</td>
<td align="left">NC_007236</td>
<td align="left">30.2472</td>
<td align="left">32.4873</td>
<td align="left">13.5240</td>
<td align="left">23.7414</td>
<td align="left">16785</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong>figure 1.</strong> Data Description</p>
<h3>Data description</h3>
<p>All genomes were extracted using NCBI/Genbank database and taxonomy browser. Proteins also extracted from NCBI website. I used positions given in NCBI website to extract genes coded in the mitochondrial genome. Also, I fetched amino acid sequences directly from NCBI database, instead of translating them. The reason was because there were nucleotide sequences with errors (missing or unknown values) where in amino acid sequences were corrected.</p>
<p>For reason I will describe later, I used proteins <a href="http://en.wikipedia.org/wiki/Cytochrome_b" target="_blank">Cytochrome B</a> (CTYB) and <a href="http://en.wikipedia.org/wiki/Cytochrome_c_oxidase_subunit_I" target="_blank">Cytochrome C oxidase subunit 1</a> (COX1) &#8211; commonly used in phylogenetic analyses.</p>
<h2 id="methods">Methods</h2>
<p>I compared the nucleotide and amino acid sequences of CYTB and COX1 proteins. I used both sequences because I wanted to measure two different mutation rates. The non-synonymous (N) substitution rate and the synonymous (S) substitution rate (The N substitution is mutation in nucleotide level which result in mutation in amino acid level where S substitution is the mutation which doesn’t affect amino-acids).</p>
<p>One reason I chose proteins CYTB and COX1 was the fact that are coded in mitochondrial DNA. Mitochondrial DNA is very useful for studying evolution since it passes from mother to offspring without recombination. Thus, proteins coded in mitochondrial DNA have the same property. What is more, those two proteins mutate with different rates and different codons in the same protein mutate with different rates, properties very useful for phylogenetic analysis.</p>
<p><strong>Cytochrome B</strong><br />
Cytochrome B is known for it’s fast mutation rate and it is very commonly used in literature for studying evolution even in the same subfamilies. It contains both slowly and rapidly evolving codon positions, as well as more conservative and more variable regions or domains overall. However, many problems have been encountered when using CYTB, including base compositional biases, rate variation between lineage, etc <a href="#fos01">[FOS+01]</a>.</p>
<p><strong>Cytochrome C oxidase subunit 1</strong><br />
Cytochrome C is an essential and ubiquitous protein found in all organisms, including eukaryotes and bacteria (Voet and Voet 1995, p. 24). It is responsible for tansporting electrons in the fundamental metabolic process of oxidative phosphorylation.</p>
<p>There is no standar answer of which of the two proteins is better for phylogenetic analysis. <a href="#tkl09">[TKL09]</a> suggests that cytohrome b will offer richer information for mammals, however, I used both proteins so as to compare the trees produced.</p>
<p><strong>Phylogenetic tree</strong><br />
Neighbor-Joining was used to generate phylogenetic tree. This choice was due to the assumption that not all lineages evolve at the same rate (<a href="http://en.wikipedia.org/wiki/Molecular_clock">molecular clock hypothesis</a>). Although this method might not give us the correct tree, given data of sufficient length, neighbor-joining will reconstruct the true tree with high probability. Also, so as to simplify our experiment, distances were calculated using maximum likelihood estimation (Jukes-Cantor) which assigns equal probability to every possible change of state for a given nucleotide base or amino acid.</p>
<p><strong>BLAST</strong><br />
The introduction of NCBI’s <a href="http://blast.ncbi.nlm.nih.gov/" target="_blank">BLAST</a>, or The Basic Local Alignment Search Tool, in 1990 made it easier to rapidly scan huge databases for overt homologies, or sequence similarity, and to statistically evaluate the resulting matches. BLAST works by comparing a sequence against the database of all known sequences to determine likely matches. The BLAST server compares the user’s sequence with up to a million known sequences and determines the closest matches <sup><a id="fnref3" class="footnoteRef" href="#fn3">3</a></sup>.</p>
<h2 id="results">Results</h2>
<p><strong>Analysis of BLAST results</strong><br />
I used BLAST to find similar animals to muskox and the protein used was Cytochrome B. The animals I found were <a href="http://en.wikipedia.org/wiki/Wild_goat">Capra aegagrus (wild goat)</a>, <a href="http://en.wikipedia.org/wiki/Sumatran_serow">Capricornis sumatraensis (Sumatran serow)</a>, <a href="http://en.wikipedia.org/wiki/Japanese_serow">Capricornis crispus (Japanese serow)</a>, <a href="http://en.wikipedia.org/wiki/Long-tailed_goral">Naemorhedus caudatus (Long-tailed goral)</a> and <a href="http://en.wikipedia.org/wiki/Taiwan_serow">Naemorhedus swinhoei (Taiwan serow)</a>. In figure 3 you can see the phylogenetic tree constructed using neighbor-joining and maximum likelihood estimation.</p>
<p>The phylogenetic analysis (fig.3) showed that Capra aegagrus (wild goat) was the closest animal to Ovibos Moschatus (muskox) which seems that diverged from the same ancestor. Also, as I expected from their names Naemorhedus caudatus and Naemorhedus swinhoei were forming a group which diverged from Capricornis sumatraensis. I noticed that the branch height of Naemorhedus swinhoei is longer than Naemorhedus swinhoei’s which reveals that Naemorhedus caudatus evolved more after its diversion from Naemorhedus swinhoei. Finally, I observed that Naemorhedus and Capricornis sumatraensis is closely related to Capricornis crispus.</p>
<table class="data">
<thead>
<tr class="header">
<th scope="col" align="left"></th>
<th scope="col" align="left">Ovibos moschatus</th>
<th scope="col" align="left">Budorcas taxicolor</th>
<th scope="col" align="left">Ovis aries</th>
<th scope="col" align="left">Capricornis crispus</th>
<th scope="col" align="left">Naemorhedus caudatus</th>
<th scope="col" align="left">Naemorhedus swinhoei</th>
<th scope="col" align="left">Gallus gallus</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">Ovibos moschatus</td>
<td align="left">0</td>
<td align="left">0.0597</td>
<td align="left">0.0541</td>
<td align="left">0.0240</td>
<td align="left">0.0486</td>
<td align="left">0.0240</td>
<td align="left">0.3191</td>
</tr>
<tr class="even">
<td align="left">Budorcas taxicolor</td>
<td align="left">0.0137</td>
<td align="left">0</td>
<td align="left">0.0739</td>
<td align="left">0.0569</td>
<td align="left">0.0710</td>
<td align="left">0.0625</td>
<td align="left">0.3154</td>
</tr>
<tr class="odd">
<td align="left">Ovis aries</td>
<td align="left">0.0058</td>
<td align="left">0.0078</td>
<td align="left">0</td>
<td align="left">0.0514</td>
<td align="left">0.0597</td>
<td align="left">0.0486</td>
<td align="left">0.3377</td>
</tr>
<tr class="even">
<td align="left">Capricornis crispus</td>
<td align="left">0.0058</td>
<td align="left">0.0137</td>
<td align="left">0.0078</td>
<td align="left">0</td>
<td align="left">0.0431</td>
<td align="left">0.0159</td>
<td align="left">0.3118</td>
</tr>
<tr class="odd">
<td align="left">Naemorhedus caudatus</td>
<td align="left">0.0098</td>
<td align="left">0.0137</td>
<td align="left">0.0078</td>
<td align="left">0.0078</td>
<td align="left">0</td>
<td align="left">0.0376</td>
<td align="left">0.3377</td>
</tr>
<tr class="even">
<td align="left">Naemorhedus swinhoei</td>
<td align="left">0.0039</td>
<td align="left">0.0117</td>
<td align="left">0.0058</td>
<td align="left">0.0019</td>
<td align="left">0.0058</td>
<td align="left">0</td>
<td align="left">0.3191</td>
</tr>
<tr class="odd">
<td align="left">Gallus gallus</td>
<td align="left">0.1243</td>
<td align="left">0.1243</td>
<td align="left">0.1199</td>
<td align="left">0.1243</td>
<td align="left">0.1265</td>
<td align="left">0.1221</td>
<td align="left">0</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong>figure 2.</strong> seqpdist with jukes-cantor. Above diagonal is for CYTB and below diagonal is for COXI</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-394" title="phytree" src="http://ptigas.com/blog/wp-content/uploads/2012/06/phytree.png" alt="" width="709" height="464" srcset="http://ptigas.com/blog/wp-content/uploads/2012/06/phytree-300x196.png 300w, http://ptigas.com/blog/wp-content/uploads/2012/06/phytree.png 886w" sizes="(max-width: 709px) 100vw, 709px" /></p>
<p style="text-align: center;"><strong>figure 3.</strong> CYTB phylogenetic tree (AA) for the BLASTed animals [phytree]</p>
<table class="data">
<thead>
<tr class="header">
<th scope="col" align="left"></th>
<th scope="col" align="left">Ovibos moschatus</th>
<th scope="col" align="left">Budorcas taxicolor</th>
<th scope="col" align="left">Ovis aries</th>
<th scope="col" align="left">Capricornis crispus</th>
<th scope="col" align="left">Naemorhedus caudatus</th>
<th scope="col" align="left">Naemorhedus swinhoei</th>
<th scope="col" align="left">Gallus gallus</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">Ovibos moschatus</td>
<td align="left">0.00</td>
<td align="left">12.54</td>
<td align="left">12.98</td>
<td align="left">7.89</td>
<td align="left">9.65</td>
<td align="left">8.60</td>
<td align="left">8.60</td>
</tr>
<tr class="even">
<td align="left">Budorcas taxicolor</td>
<td align="left">11.00</td>
<td align="left">0.00</td>
<td align="left">12.89</td>
<td align="left">12.46</td>
<td align="left">13.16</td>
<td align="left">12.98</td>
<td align="left">12.98</td>
</tr>
<tr class="odd">
<td align="left">Ovis aries</td>
<td align="left">10.23</td>
<td align="left">10.36</td>
<td align="left">0.00</td>
<td align="left">11.32</td>
<td align="left">13.25</td>
<td align="left">11.67</td>
<td align="left">11.67</td>
</tr>
<tr class="even">
<td align="left">Capricornis crispus</td>
<td align="left">8.09</td>
<td align="left">10.10</td>
<td align="left">10.49</td>
<td align="left">0.00</td>
<td align="left">8.68</td>
<td align="left">5.96</td>
<td align="left">5.96</td>
</tr>
<tr class="odd">
<td align="left">Naemorhedus caudatus</td>
<td align="left">8.67</td>
<td align="left">9.45</td>
<td align="left">9.64</td>
<td align="left">6.80</td>
<td align="left">0.00</td>
<td align="left">9.47</td>
<td align="left">9.47</td>
</tr>
<tr class="even">
<td align="left">Naemorhedus swinhoei</td>
<td align="left">8.03</td>
<td align="left">10.16</td>
<td align="left">10.68</td>
<td align="left">3.56</td>
<td align="left">7.18</td>
<td align="left">0.00</td>
<td align="left">0.00</td>
</tr>
<tr class="odd">
<td align="left">Gallus gallus</td>
<td align="left">22.05</td>
<td align="left">23.15</td>
<td align="left">22.57</td>
<td align="left">21.60</td>
<td align="left">22.95</td>
<td align="left">22.31</td>
<td align="left">22.31</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong>figure 4.</strong> local alignment % score for each pair (nucleotide sequences)- Above diagonal is for CYTB and below diagonal is for COXI</p>
<table class="data">
<thead>
<tr class="header">
<th scope="col" align="left"></th>
<th scope="col" align="left">Ovibos moschatus</th>
<th scope="col" align="left">Budorcas taxicolor</th>
<th scope="col" align="left">Ovis aries</th>
<th scope="col" align="left">Capricornis crispus</th>
<th scope="col" align="left">Naemorhedus caudatus</th>
<th scope="col" align="left">Naemorhedus swinhoei</th>
<th scope="col" align="left">Gallus gallus</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">Ovibos moschatus</td>
<td align="left">0.00</td>
<td align="left">6.15</td>
<td align="left">5.56</td>
<td align="left">2.43</td>
<td align="left">4.97</td>
<td align="left">2.43</td>
<td align="left">2.43</td>
</tr>
<tr class="even">
<td align="left">Budorcas taxicolor</td>
<td align="left">1.38</td>
<td align="left">0.00</td>
<td align="left">7.65</td>
<td align="left">5.85</td>
<td align="left">7.34</td>
<td align="left">6.44</td>
<td align="left">6.44</td>
</tr>
<tr class="odd">
<td align="left">Ovis aries</td>
<td align="left">0.59</td>
<td align="left">0.78</td>
<td align="left">0.00</td>
<td align="left">5.26</td>
<td align="left">6.15</td>
<td align="left">4.97</td>
<td align="left">4.97</td>
</tr>
<tr class="even">
<td align="left">Capricornis crispus</td>
<td align="left">0.59</td>
<td align="left">1.38</td>
<td align="left">0.78</td>
<td align="left">0.00</td>
<td align="left">4.40</td>
<td align="left">1.60</td>
<td align="left">1.60</td>
</tr>
<tr class="odd">
<td align="left">Naemorhedus caudatus</td>
<td align="left">0.98</td>
<td align="left">1.38</td>
<td align="left">0.78</td>
<td align="left">0.78</td>
<td align="left">0.00</td>
<td align="left">3.83</td>
<td align="left">3.83</td>
</tr>
<tr class="even">
<td align="left">Naemorhedus swinhoei</td>
<td align="left">0.39</td>
<td align="left">1.18</td>
<td align="left">0.59</td>
<td align="left">0.19</td>
<td align="left">0.59</td>
<td align="left">0.00</td>
<td align="left">0.00</td>
</tr>
<tr class="odd">
<td align="left">Gallus gallus (chicken)</td>
<td align="left">13.25</td>
<td align="left">13.25</td>
<td align="left">12.75</td>
<td align="left">13.25</td>
<td align="left">13.50</td>
<td align="left">13.00</td>
<td align="left">13.00</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong>figure 5.</strong> local alignment % score for each pair (amino acid sequences)- Above diagonal is for CYTB and below diagonal is for COXI</p>
<table class="data">
<thead>
<tr class="header">
<th scope="col" align="left"></th>
<th scope="col" align="left">Ovibos moschatus</th>
<th scope="col" align="left">Budorcas taxicolor</th>
<th scope="col" align="left">Ovis aries</th>
<th scope="col" align="left">Capricornis crispus</th>
<th scope="col" align="left">Naemorhedus caudatus</th>
<th scope="col" align="left">Naemorhedus swinhoei</th>
<th scope="col" align="left">Gallus gallus</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">Ovibos moschatus</td>
<td align="left">0</td>
<td align="left">143</td>
<td align="left">148</td>
<td align="left">90</td>
<td align="left">110</td>
<td align="left">98</td>
<td align="left">98</td>
</tr>
<tr class="even">
<td align="left">Budorcas taxicolor</td>
<td align="left">170</td>
<td align="left">0</td>
<td align="left">147</td>
<td align="left">142</td>
<td align="left">150</td>
<td align="left">148</td>
<td align="left">148</td>
</tr>
<tr class="odd">
<td align="left">Ovis aries</td>
<td align="left">158</td>
<td align="left">160</td>
<td align="left">0</td>
<td align="left">129</td>
<td align="left">151</td>
<td align="left">133</td>
<td align="left">133</td>
</tr>
<tr class="even">
<td align="left">Capricornis crispus</td>
<td align="left">125</td>
<td align="left">156</td>
<td align="left">162</td>
<td align="left">0</td>
<td align="left">99</td>
<td align="left">68</td>
<td align="left">68</td>
</tr>
<tr class="odd">
<td align="left">Naemorhedus caudatus</td>
<td align="left">134</td>
<td align="left">146</td>
<td align="left">149</td>
<td align="left">105</td>
<td align="left">0</td>
<td align="left">108</td>
<td align="left">108</td>
</tr>
<tr class="even">
<td align="left">Naemorhedus swinhoei</td>
<td align="left">124</td>
<td align="left">157</td>
<td align="left">165</td>
<td align="left">55</td>
<td align="left">111</td>
<td align="left">0</td>
<td align="left">0</td>
</tr>
<tr class="odd">
<td align="left">Gallus gallus</td>
<td align="left">342</td>
<td align="left">359</td>
<td align="left">350</td>
<td align="left">335</td>
<td align="left">356</td>
<td align="left">346</td>
<td align="left">346</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong>figure 6.</strong> number of polymorphic sites per pair &#8211; Above diagonal is for CYTB and below diagonal is for COXI</p>
<p style="text-align: center;"><a href="http://ptigas.com/blog/wp-content/uploads/2012/06/cytob.png"><img class="aligncenter  wp-image-398" title="cytob" src="http://ptigas.com/blog/wp-content/uploads/2012/06/cytob.png" alt="" width="723" height="302" srcset="http://ptigas.com/blog/wp-content/uploads/2012/06/cytob-300x125.png 300w, http://ptigas.com/blog/wp-content/uploads/2012/06/cytob.png 993w" sizes="(max-width: 723px) 100vw, 723px" /></a></p>
<p style="text-align: center;"><strong>figure 7.</strong> phylogenetic tree based on cytochrome b</p>
<p style="text-align: center;"><a href="http://ptigas.com/blog/wp-content/uploads/2012/06/cytoc1.png"><img class="aligncenter  wp-image-400" title="cytoc" src="http://ptigas.com/blog/wp-content/uploads/2012/06/cytoc1.png" alt="" width="710" height="301" srcset="http://ptigas.com/blog/wp-content/uploads/2012/06/cytoc1-300x127.png 300w, http://ptigas.com/blog/wp-content/uploads/2012/06/cytoc1.png 995w" sizes="(max-width: 710px) 100vw, 710px" /></a></p>
<p style="text-align: center;"><strong>figure 8.</strong> phylogenetic tree based on Cytochrome C oxidase subunit 1</p>
<p><a href="http://ptigas.com/blog/wp-content/uploads/2012/06/AANT.png"><img class="alignnone  wp-image-401" title="AANT" src="http://ptigas.com/blog/wp-content/uploads/2012/06/AANT.png" alt="" width="693" height="293" /></a></p>
<p style="text-align: center;"><strong>figure 9.</strong> AA and NT consensus phylogenetic trees</p>
<p><strong>Phylogenetic analysis</strong><br />
In my analysis I used CYTB and COX1 proteins which I selected them for their fast evolution rate. I noticed that amino acid and nucleotide phologenetic trees had slightly different results.<br />
This is justified by the fact that mutations happening in nucleotide level are faster that those in amino acid level (N substitutions and S substitutions <sup><a id="fnref4" class="footnoteRef" href="#fn4">4</a></sup>). One way to explain this is that there are more than one nucleotide codons which are translated to the same amino acid. Thus, nucleotide mutations doesn’t always result in amino acid mutations.<br />
What is more I found that there were differences between CYTB and COX1 phylogenetic trees. That was because those proteins evolve in different rates. As you can see in figure 8, number of polymorphic sites in COX1 are greater on average than in CYTB, which shows that COX1 evolves faster than CYTB in our animals.</p>
<p>Since there were several small differences between CYTB(AA) COX1(AA) CYTB(NT) COX1(NT) phylogenetic trees, I constructed consensus trees; one for amino acids and another for nucleotides (figure 9). The reason for that was because I wanted to summarise the results from different proteins. As you can see, the consensus trees doesn’t agree for the evolution of Ovibos moschatus and Naemorhedus caudatus. That might be explained by the different rate of nucleotide mutations. However, both trees clearly shows that muskox and Ovis aries (common sheep) diverged from a recent ancestor, both diverged from Budorcas taxicolor (takin), a result that contradicts with our hypothesis that takin is closer to muskox than the ship. Finally, we notice that takin is closer to sheep making them more related than sheep and muskox. Similar results can be found in literature <a href="#gs97">[GS97]</a>.</p>
<p><strong>Polymorphic sites</strong><br />
As you can see in figure 5 and figure 6 there are some interesting observations. I local aligned each pair of CYTB and COX1 nt sequences. In figure 6 you can see the number of polymorphic sites per pair. The number of polymorphic sites in COX1 is greater for all pairs compared to CYTB. However, after comparing the percentage of polymorphic sites I noticed that COX1 percentages are smaller than CYTB for each pair. Also, similar results can be observed in amino acid sequences alignment which means that the substitution happening are mainly non-synonymous. This shows that in the animals of our family of interest, CYTB protein mutates in higher rate than COX1 and thus CYTB is more appropriate for phylogenetic analysis.</p>
<h2 id="conclusions">Conclusions</h2>
<p>As you can see, appearance and morphology of species doesn’t show the correct evolution history. Also, statistics of the sequence (percentage of the base) doesn’t contain much information. As I observed that comparing proteins in both amino acid and nucleotide level is more appropriate method for investigating species relations. In my report I showed that ovibos moschatus, although very similar to the takin, is closer to ships. Similar results could be found in in <a href="#gs96">[GS96]</a>. They showed that muskox and takin appearance similarity was due to convergence evolution <sup><a id="fnref5" class="footnoteRef" href="#fn5">5</a></sup>, during which appearance similarities arise among species although they have diverged from different ancestors.</p>
<p>Also, we asked about the area of origin of muskox. BLAST results of cytochrome B protein showed that animals from central Asia were the most closely related which is an indication that the area of origin was there. In literature there are studies which shows that the earliest ancestors of the modern muskox evolved in southern central Asia during the late Miocene, more than ten million years ago. During the Pleistocene (1.8 million – 11 500 years ago) the muskox spread from Asia over the northern world <a href="#len99">[Len99]</a>.</p>
<div class="footnotes">
<hr />
<ol>
<li id="fn1"><a href="http://en.wikipedia.org/wiki/Bovid">http://en.wikipedia.org/wiki/Bovid</a><a href="#fnref1">↩</a></li>
<li id="fn2"><a href="http://en.wikipedia.org/wiki/Molecular_clock">http://en.wikipedia.org/wiki/Molecular_clock</a><a href="#fnref2">↩</a></li>
<li id="fn3">http://www.ncbi.nlm.nih.gov/About/primer/phylo.html<a href="#fnref3">↩</a></li>
<li id="fn4">The N (non-synonymous) substitution is referred to mutations of nucleotides which result in mutation of amino acid sequence where S (synonymous) substitution is the mutation which doesn’t result in aminoacid change.<a href="#fnref4">↩</a></li>
<li id="fn5"><a href="http://en.wikipedia.org/wiki/Convergent_evolution">http://en.wikipedia.org/wiki/Convergent_evolution</a><a href="#fnref5">↩</a></li>
<li id="fos01">I P Farias, G Ortí, I Sampaio, H Schneider, and a Meyer. The cytochrome b gene as a phylogenetic marker: the limits of resolution for analyzing rela- tionships among cichlid fishes. Journal of molecular evolution, 53(2):89–103, August 2001.<a href="#fos01">↩</a></li>
<li id="tkl09">Shanan S. Tobe, Andrew Kitchener, and Adrian Linacre. Cytochrome b or cytochrome c oxidase subunit I for mammalian species identification<a href="#tkl09">↩</a></li>
<li id="gs96">P Groves and G F Shields. Phylogenetics of the Caprinae based on cytochrome b sequence. Molecular phylogenetics and evolution, 5(3):467–76, June 1996.<a href="#gs96">↩</a></li>
<li id="gs97">P Groves and G F Shields. Cytochrome B sequences suggest convergent evolution of the Asian takin and Arctic muskox. Molecular phylogenetics and evolution, 8(3):363–74, December 1997.<a href="#gs97">↩</a></li>
<li id="len99">P.C. Lent. Muskoxen and their hunters: A history. Univ of Oklahoma Pr, 1999.<a href="#len99">↩</a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/evolution-ovibos-moschatus-muskox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MSc thesis poster and complete text</title>
		<link>http://ptigas.com/blog/msc-thesis-poster-and-complete-text/</link>
		<comments>http://ptigas.com/blog/msc-thesis-poster-and-complete-text/#respond</comments>
		<pubDate>Thu, 12 Apr 2012 22:07:10 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[MSc Thesis]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=352</guid>
		<description><![CDATA[My initial thought was to start writing posts so as to explain and document my thesis. However  as a first step I decided to post here the thesis poster and upload the complete text of my thesis on arxiv. Voila! http://arxiv.org/abs/1201.6251 and]]></description>
				<content:encoded><![CDATA[<p>My initial thought was to start writing posts so as to explain and document my thesis. However  as a first step I decided to post here the thesis poster and upload the complete text of my thesis on arxiv.</p>
<p><span id="more-352"></span></p>
<p>Voila!</p>
<p style="text-align: center;"><a title="Real-time jam-session support system" href="http://arxiv.org/abs/1201.6251" target="_blank">http://arxiv.org/abs/1201.6251</a></p>
<p style="text-align: center;">and</p>
<p style="text-align: center;"><a href="http://dl.dropbox.com/u/217134/misc/poster_grey.pdf"><img class="size-medium wp-image-353 aligncenter" title="msc thesis poster" src="http://ptigas.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-12-at-22.59.17-209x300.png" alt="" width="209" height="300" srcset="http://ptigas.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-12-at-22.59.17-209x300.png 209w, http://ptigas.com/blog/wp-content/uploads/2012/04/Screen-Shot-2012-04-12-at-22.59.17.png 384w" sizes="(max-width: 209px) 100vw, 209px" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/msc-thesis-poster-and-complete-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memento decorator in python and fibonacci sequence</title>
		<link>http://ptigas.com/blog/memento-decorator-in-python-and-fibonacci-sequence/</link>
		<comments>http://ptigas.com/blog/memento-decorator-in-python-and-fibonacci-sequence/#respond</comments>
		<pubDate>Tue, 06 Mar 2012 20:17:37 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=322</guid>
		<description><![CDATA[Computing fibonacci with the naive method takes exponential time. However, it&#8217;s known that by using dynamic programming you can compute fibonacci in linear time. The trick is to check if you have already computed the value of , and if yes return the already-computed value instead of calling the function again (which is expensive). Here<div class="read-more"><a href="http://ptigas.com/blog/memento-decorator-in-python-and-fibonacci-sequence/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>Computing <a href="http://en.wikipedia.org/wiki/Fibonacci_number" target="_blank">fibonacci</a> with the naive method takes exponential time. However, it&#8217;s <a href="http://en.wikipedia.org/wiki/Dynamic_programming#Fibonacci_sequence" target="_blank">known</a> that by using dynamic programming you can compute fibonacci in linear time. The trick is to check if you have already computed the value of <img src='http://s0.wp.com/latex.php?latex=f%28a%29&#038;bg=T&#038;fg=333333&#038;s=0' alt='f(a)' title='f(a)' class='latex' />, and if yes return the already-computed value instead of calling the function again (which is expensive).</p>
<p>Here is the naive implementation in python :</p>
<pre data-language="python">
def fib( n ) :
	if n <= 1 :
		return 1
	return fib(n-1) + fib(n-2)
</pre>
<p>Calculating fibonacci sequence from 1 to 35 takes about 8 seconds (8.056s). So, let's how we can improve this by using <a href="http://stackoverflow.com/questions/739654/understanding-python-decorators" target="_blank">decorators</a>.</p>
<p>The Memento decorator will allow us to save time by <strong>not</strong> calling a function which we've already called.</p>
<p>Here is an implementation of Memento decorator:</p>
<pre data-language="python">
class Memento :
	__mem__ = {}
	def __init__(self, f) :
		self.f = f

	def __call__(self, arg) :
		if arg not in self.__mem__ :
			self.__mem__[arg] = self.f(arg)
		return self.__mem__[arg]
</pre>
<p>Let's see what it does. The <em>__init__</em> function is pretty obvious. It assigns the function f to an object variable. The <em>__call__</em> function is triggered every time the decorated function is called. By using a dictionary we check and return the result of a function call with the same argument (if we've already computed that). The cost of querying the dictionary is almost <img src='http://s0.wp.com/latex.php?latex=O%281%29&#038;bg=T&#038;fg=333333&#038;s=0' alt='O(1)' title='O(1)' class='latex' />.</p>
<p>By just applying this decorator to our function</p>
<pre data-language="shell">
@Memento
def fib( n ) :
	if n <= 1 :
		return 1
	return fib(n-1) + fib(n-2)
</pre>
<p>we manage to compute the first 1000 fibonacci numbers in less than a second.</p>
<p>Here is a gist of this example <a href="https://gist.github.com/1988734" target="_blank">https://gist.github.com/1988734</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/memento-decorator-in-python-and-fibonacci-sequence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loop detection in O(n) using Floyd&#8217;s algorithm</title>
		<link>http://ptigas.com/blog/loop-detection-in-on-using-floyds-algorithm/</link>
		<comments>http://ptigas.com/blog/loop-detection-in-on-using-floyds-algorithm/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 21:32:29 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ptigas.com/blog/?p=298</guid>
		<description><![CDATA[Given a linked list find whether the list contains a loop or not. There are several solutions to this but the following is considered one of the best. Also it&#8217;s dead simple. The algorithm is also known as &#8220;Tortoise and Hare Algorithm&#8221; def toirtoise_and_hare(l) : tortoise = l.head hare = l.head steps = 0 while<div class="read-more"><a href="http://ptigas.com/blog/loop-detection-in-on-using-floyds-algorithm/">read more »</a></div>]]></description>
				<content:encoded><![CDATA[<p>Given a linked list find whether the list contains a loop or not.</p>
<p>There are <a href="http://ostermiller.org/find_loop_singly_linked_list.html" target="_blank">several</a> solutions to this but the following is considered one of the best. Also it&#8217;s dead simple. The algorithm is also known as &#8220;<a href="http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare" target="_blank">Tortoise and Hare Algorithm</a>&#8221;</p>
<pre data-language="python">def toirtoise_and_hare(l) :
  tortoise = l.head
  hare = l.head
  steps = 0
  while True:
    if hare == None :
      return (steps, 'No loop found')
    hare = hare.next
    if hare == None :
      return (steps, 'No loop found')
    hare = hare.next
    tortoise = tortoise.next
    if hare == tortoise:
      #print hare, tortoise
      return (steps, 'Loop found')
    steps += 1
</pre>
<p><span id="more-298"></span><br />
Below you can find a simple implementation of linked list in python</p>
<pre data-language="python">class Node :
  def __init__(self, data) :
    self.next = None
    self.data = data

  def __str__(self) :
    return str(self.data)

class LinkedList :
  def __init__(self) :
    self.head = None

  def add_node(self, data):
    if self.head == None :
      self.head = Node(data)
    else :
      tmp = Node(data)
      tmp.next = self.head
      self.head = tmp

  def add_loop(self, f, t) :
    node = self.head
    i = 0
    node_f = None
    node_t = None
    while node != None :
      i += 1
      if i == f :
        node_f = node
      if i == t :
        node_t = node
      node = node.next
    node_f.next = node_t

  def print_list(self):
    node = self.head
    while node != None :
      print node.data
      node = node.next</pre>
<p>&#8230; and test &#8230;</p>
<pre data-language="python">l = LinkedList()
for i in xrange(1000) :
  l.add_node(i)

l.add_loop(800, 200)

print toirtoise_and_hare(l)</pre>
<p>As mentioned the complexity of the algorithm is <img src='http://s0.wp.com/latex.php?latex=O%28n%29&#038;bg=T&#038;fg=333333&#038;s=0' alt='O(n)' title='O(n)' class='latex' />.</p>
<p><a href="https://gist.github.com/1968328" target="_blank">Here</a> is the complete gist.</p>
]]></content:encoded>
			<wfw:commentRss>http://ptigas.com/blog/loop-detection-in-on-using-floyds-algorithm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.052 seconds. -->
<!-- File not cached! Super Cache Couldn't write to: wp-content/cache/wp-cache-651071077090ea8d575f9112ffd522c6.php -->