<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7232704654388518177</id><updated>2024-09-22T19:38:16.764-04:00</updated><category term="life"/><category term="Teacher forum"/><category term="Bioinformatics"/><category term="Data structure and Algorithm"/><category term="New youth"/><category term="Security"/><category term="Software Engineering"/><title type='text'>Algorithms and Bioinformatics</title><subtitle type='html'>Computer science--applying basic algorithm and machine learning methods into the area of Bioinformatics.&#xa;I wish I can do more on the area of information visualization, but I need to focus!!!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-6267941970800955857</id><published>2014-02-11T23:53:00.001-05:00</published><updated>2014-02-12T10:16:07.628-05:00</updated><title type='text'>A Good Illustration of Boyer-Moore-Horspool Algorithm</title><content type='html'>Boyer-Moore-Horspool Algorithm is usually used for string matching.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pay attention that Boyer-Moore-Horspool Algorithm is different from Boyer-Moore Algorithm!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The following is The most straightforward illustration of Boyer-Moore-Horspool Algorithm that I&#39;ve ever seen before.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/J0eZJI7QRnI?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
For those who can not visit, here is the link&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=J0eZJI7QRnI&quot;&gt;http://www.youtube.com/watch?v=J0eZJI7QRnI&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/6267941970800955857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/a-good-illustration-of-boyer-moore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6267941970800955857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6267941970800955857'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/a-good-illustration-of-boyer-moore.html' title='A Good Illustration of Boyer-Moore-Horspool Algorithm'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-3511984883735121401</id><published>2014-02-11T17:34:00.001-05:00</published><updated>2014-02-11T17:35:49.745-05:00</updated><title type='text'>Download data from NCBI by accession number</title><content type='html'>&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
Adapted from the following link:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://pythonadventures.wordpress.com/2011/04/12/download-genomes-from-genbank/&quot;&gt;http://pythonadventures.wordpress.com/2011/04/12/download-genomes-from-genbank/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
For a project, I had to download a bunch of records from the&amp;nbsp;&lt;a href=&quot;http://www.ncbi.nlm.nih.gov/&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;NCBI&lt;/a&gt;&amp;nbsp;(National Center for Biotechnology Information) website. A record looks like this:&amp;nbsp;&lt;a href=&quot;http://www.ncbi.nlm.nih.gov/nuccore/CP002059.1&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;CP002059.1&lt;/a&gt;&amp;nbsp;(almost 5 MB):&lt;/div&gt;
&lt;pre style=&quot;background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-position: 3px 3px; background-repeat: no-repeat no-repeat; border: 1px dashed rgb(204, 204, 204); color: #555555; font-size: 12px; line-height: 17px; margin-bottom: 5px; margin-top: 5px; padding: 8px 12px 8px 36px;&quot;&gt;LOCUS       CP002059             5354700 bp    DNA ...
DEFINITION  &#39;Nostoc azollae&#39; 0708, complete genome.
ACCESSION   CP002059 ACIR01000000 ACIR01000001-ACIR01000216
VERSION     CP002059.1  GI:298231532
DBLINK      Project: 30807
...
ORIGIN
//&lt;/pre&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
I needed this data in text format.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Solution #1&lt;/strong&gt;&lt;br /&gt;
My first idea was to download the page with&amp;nbsp;&lt;code style=&quot;margin: 0px; padding: 0px;&quot;&gt;wget&lt;/code&gt;. However, I was surprised to see that the downloaded file was less than 100 KB instead of 5 MB! When I looked at the source, it turned out that it’s full of AJAX calls. That is, the browser downloads this short HTML and then it is expanded. If you save the page with&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;File&lt;/em&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Save as…&lt;/em&gt;, you have the complete HTML but how to automate the download process? How to get the post-AJAX version of a web page?&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
I will write about this problem and its general solution&amp;nbsp;&lt;a href=&quot;https://ubuntuincident.wordpress.com/2011/04/15/scraping-ajax-web-pages/&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;in another post&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Solution #2&lt;/strong&gt;&lt;br /&gt;
Fortunately, there is a CGI program at NCBI that can return us the required data. For instance, the data of CP002059.1 can be retrieved via the following URL:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  xml&quot; id=&quot;highlighter_427281&quot; style=&quot;font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0px; position: relative !important; width: 595px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-box-shadow: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-collapse: collapse; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 2px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 717px;&quot;&gt;&lt;tbody style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: 689px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;xml plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;a href=&quot;http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&amp;amp;id=CP002059.1&amp;amp;rettype=gb&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-decoration: none; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&amp;amp;id=CP002059.1&amp;amp;rettype=gb&lt;/a&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
A (very) short overview of the EFetch CGI is&amp;nbsp;&lt;a href=&quot;http://www.ncbi.nlm.nih.gov/entrez/query/static/efetch_help.html&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
If you use&amp;nbsp;&lt;a href=&quot;http://biopython.org/DIST/docs/tutorial/Tutorial.html&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;Biopython&lt;/a&gt;, you can download this record like this:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  python&quot; id=&quot;highlighter_622074&quot; style=&quot;font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0px; position: relative !important; width: 595px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-box-shadow: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-collapse: collapse; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 2px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 626px;&quot;&gt;&lt;tbody style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
13&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: 591px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Bio &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Entrez&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;# ref.: &lt;a href=&quot;http://wilke.openwetware.org/Parsing_Genbank_files_with_Biopython.html&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-decoration: none; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;http://wilke.openwetware.org/Parsing_Genbank_files_with_Biopython.html&lt;/a&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;# replace with your real email (optional):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Entrez.email &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;whatever@mail.com&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;# accession id works, returns genbank format, looks in the &#39;nucleotide&#39; database:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;handle&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Entrez.efetch(db&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;nucleotide&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;,&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;id&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;CP002059.1&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;,rettype&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;gb&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;# store locally:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;local_file&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;open&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;CP002059.1.gb&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;w&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;local_file.write(handle.read())&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;handle.close()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;local_file.close()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Solution #3 (in Perl)&lt;/strong&gt;&lt;br /&gt;
Let’s see the same thing in Perl too, using the&amp;nbsp;&lt;a href=&quot;http://www.bioperl.org/wiki/Main_Page&quot; style=&quot;color: #2970a6; margin: 0px; padding: 0px; text-decoration: none;&quot;&gt;BioPerl&lt;/a&gt;&amp;nbsp;package. Thanks Alix for the Perl code.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  perl&quot; id=&quot;highlighter_664355&quot; style=&quot;font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0px; position: relative !important; width: 595px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-box-shadow: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-collapse: collapse; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 2px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 595px;&quot;&gt;&lt;tbody style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
18&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: 560px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl preprocessor&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: gray !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#!/usr/bin/perl&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Bio::Perl;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#use Bio::Seq;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#use Bio::Tools::Run::RemoteBlast;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Bio::DB::GenBank;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl comments&quot; style=&quot;-webkit-box-shadow: none !important; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/icons.gif); background-position: 0px -96px; background-repeat: no-repeat no-repeat; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: block; float: right; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 11px; height: 16px; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding-bottom: 0px !important; padding-left: 22px; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#use Data::Dumper;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;strict;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;my&lt;/code&gt; &lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$gb&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;= new Bio::DB::GenBank;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;my&lt;/code&gt; &lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$id&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;perl string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;CP002059.1&#39;&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;my&lt;/code&gt; &lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$seq&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$gb&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;-&amp;gt;get_Stream_by_acc(&lt;/code&gt;&lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$id&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;while&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;( &lt;/code&gt;&lt;code class=&quot;perl keyword&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;my&lt;/code&gt; &lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$seq_elt&lt;/code&gt; &lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&amp;nbsp; &lt;/code&gt;&lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$seq&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;-&amp;gt;next_seq ) {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl spaces&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;write_sequence(&lt;/code&gt;&lt;code class=&quot;perl string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&amp;gt;$id.gb&quot;&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;perl string&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;genbank&#39;&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;perl variable&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(170, 119, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;$seq_elt&lt;/code&gt;&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;perl plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Update (20110706)&lt;/strong&gt;&lt;br /&gt;
I forgot to mention how to install Biopython:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  bash&quot; id=&quot;highlighter_245787&quot; style=&quot;font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0px; position: relative !important; width: 595px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-box-shadow: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-collapse: collapse; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 2px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 595px;&quot;&gt;&lt;tbody style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 1px solid rgb(204, 204, 204); bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; right: auto !important; top: auto !important; vertical-align: top; width: 567px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;bash functions&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;sudo&lt;/code&gt; &lt;code class=&quot;bash plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;pip &lt;/code&gt;&lt;code class=&quot;bash functions&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;install&lt;/code&gt; &lt;code class=&quot;bash plain&quot; style=&quot;-webkit-box-shadow: none !important; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;biopython&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/3511984883735121401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/adapted-from-following-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3511984883735121401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3511984883735121401'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/adapted-from-following-link.html' title='Download data from NCBI by accession number'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-5937374725125253760</id><published>2014-02-08T10:00:00.002-05:00</published><updated>2014-02-17T15:34:51.163-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bioinformatics"/><title type='text'>Code Repository for applied bioinformatics</title><content type='html'>&lt;link href=&quot;http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;&lt;/link&gt;
&lt;script src=&quot;http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot; type=&quot;text/javascript&quot;&gt;


&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;
            Code Repository for Fall, 2013
    &lt;/title&gt;
 &lt;style type=&quot;text/css&quot;&gt;
   div.md li { padding-bottom:5px; }
  div.md ul { padding:3px; }

  h1, h2 { color: #363636; }
  div.md &gt; ol &gt; li {

  }
  
 &lt;/style&gt;
    &lt;link href=&quot;http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css&quot; rel=&quot;stylesheet&quot;&gt;

 &lt;script src=&quot;../img/run_prettify.js&quot;&gt;&lt;/script&gt;

&lt;body onload=&quot;prettyPrint()&quot;&gt;

    &lt;div class=&quot;row md&quot;&gt;
        &lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
Adapt from &lt;a href=&quot;http://www.personal.psu.edu/iua1/courses/code-repository.html&quot;&gt;prof. Istvan Albert&lt;/a&gt; with modification: 

This page is a collection of most of the examples shown during lectures.&lt;br /&gt;


&lt;h2&gt;
Lecture 30 -  Using R&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# the data frame is a data representation format
annot = read.delim(&quot;annot.gff&quot;, comment.char=&quot;#&quot;, header=FALSE)

# show the names associated with the columns
names(annot)

# you can look at these columns
head(annot$V1)

# you may also assign your own names to these columns
names(annot) &lt;- -=&quot;&quot; 10=&quot;&quot; 1:2=&quot;&quot; 1=&quot;&quot; 1kb=&quot;&quot; access=&quot;&quot; annot=&quot;&quot; are=&quot;&quot; at=&quot;&quot; attr=&quot;&quot; attributes=&quot;&quot; automatic=&quot;&quot; by=&quot;&quot; c=&quot;&quot; can=&quot;&quot; chrom=&quot;&quot; class=&quot;&quot; columns=&quot;&quot; cool=&quot;&quot; do=&quot;&quot; element=&quot;&quot; end=&quot;&quot; executed=&quot;&quot; features=&quot;&quot; functional=&quot;&quot; get=&quot;&quot; head=&quot;&quot; indexing=&quot;&quot; investigate=&quot;&quot; is=&quot;&quot; len=&quot;&quot; lenghty=&quot;&quot; let=&quot;&quot; long.feat=&quot;annot[&quot; longer=&quot;&quot; look=&quot;&quot; loopless=&quot;&quot; max.print=&quot;100)&quot; maximal=&quot;&quot; mode=&quot;&quot; name=&quot;&quot; now=&quot;&quot; null=&quot;&quot; objectanno=&quot;&quot; objects=&quot;&quot; of=&quot;&quot; operations=&quot;&quot; options=&quot;&quot; or=&quot;&quot; output=&quot;&quot; phase=&quot;&quot; print=&quot;&quot; programming=&quot;&quot; rid=&quot;&quot; rows=&quot;&quot; s=&quot;&quot; set=&quot;&quot; slice=&quot;&quot; source=&quot;&quot; start=&quot;&quot; strand=&quot;&quot; tail=&quot;&quot; than=&quot;&quot; that=&quot;&quot; the=&quot;&quot; things=&quot;&quot; this=&quot;&quot; to=&quot;&quot; too=&quot;&quot; truth=&quot;&quot; type=&quot;&quot; typeof=&quot;&quot; value=&quot;&quot; values=&quot;&quot; vector=&quot;&quot; vectorization=&quot;&quot; with=&quot;&quot; you=&quot;&quot;&gt; 1000, ]

# the same coudl be done in more explici fashion
long.feat = subset(annot, len &amp;gt; 1000)

# you can group by multiple conditions
long.gene = subset(annot, (type==&quot;gene&quot; &amp;amp; len &amp;gt; 1000))

# save the output into a table
write.table(long.gene, &quot;long.genes.txt&quot;, sep=&quot;\t&quot;, quote=FALSE, col.names=FALSE)

#
# typical R code will look like this
#
# function broadcasting with the various versions of apply
# see http://nsaunders.wordpress.com/2010/08/20/a-brief-introduction-to-apply-in-r/
#
by(annot[, c(&quot;len&quot;)], annot$type, mean)

# install ggplot2
install.packages(&quot;ggplot2&quot;)

# load the plotting library
library(ggplot2)

# the diamonds dataset comes with the library
# it is a test dataset with many dimensions
# save the diamonds dataset into a file
write.table(diamonds, &quot;diamonds.txt&quot;, sep=&quot;\t&quot;, quote=FALSE)

# default plot
qplot(carat, price, data=diamonds)

# reduce overplotting with transparency
qplot(carat, price, data=diamonds, alpha=I(1/20))

# a third dimension used to set plot symbols
qplot(carat, price, data=diamonds, shape=cut)

# or we could set the colors
qplot(carat, price, data=diamonds, color=cut)

# or we could set the colors or both
qplot(carat, price, data=diamonds, color=cut, shape=cut)

# you can override the default plot types
qplot(color, data=diamonds, geom=&quot;bar&quot;)

# perform operations
qplot(color, carat/price, data=diamonds, geom=&quot;boxplot&quot;)

# jitter plot with transparency
qplot(color, carat/price, data=diamonds, geom=&quot;jitter&quot;, alpha=I(1/20))

# multiplotting
qplot(price, carat, data=diamonds, facets=color ~ ., binwidth=0.1)

# large scale multiplot with facets and colors
qplot(carat, price, data=diamonds, facets=cut ~ clarity, color=color, alpha=I(1/20))

# let&#39;s visualize our own data now

# keep only some type of features
keep = c(&quot;gene&quot;, &quot;binding_site&quot;, &quot;long_terminal_repeat&quot; ,&quot;tRNA&quot;)
short = subset(annot, annot$type %in% keep)
qplot(len, data=short, facets = type ~ ., xlim=c(0, 2000))
&lt;/-&gt;&lt;/pre&gt;
&lt;h2&gt;
Lecture 29 -  Usage tips&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# this is how you can loop over variables
# note how the variable substitution works
#
for name in one two three hello world;
do
    echo $name
    echo $name! and $name.1.gff
    echo &quot;---&quot;
done

#
# add the entire path to tophat and cufflinks to your PATH variable
#
# the path may be slightly different if you are using a Linux system
#
export PATH=$PATH:~/src/tophat-2.0.10.OSX_x86_64/:~/src/bowtie2-2.1.0/
&lt;/pre&gt;
&lt;h2&gt;
Lecture 28 -  RNA-Seq (part 1)&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# making a transcriptome

# install both tophat and cufflinks and link them both to the bin folder

# link both bowtie2, and other supporting programs to the bin folder
ln -s ~/src/bowtie2-2.1.0/bowtie2 ~/bin
ln -s ~/src/bowtie2-2.1.0/bowtie2-build ~/bin
ln -s ~/src/bowtie2-2.1.0/bowtie2-align ~/bin
ln -s ~/src/bowtie2-2.1.0/bowtie2-inspect ~/bin

# link tophat
ln -s ~/src/tophat-2.0.10.OSX_x86_64/tophat ~/bin

# add cufflinks to the bin
ln -s ~/src/cufflinks-2.1.1.OSX_x86_64/cufflinks ~/bin
ln -s ~/src/cufflinks-2.1.1.OSX_x86_64/gffread ~/bin

# use bedtools getfasta it you have a 12 column bed file
bedtools getfasta -fi ~/refs/yeast/sc.fa -bed demo-gene.bed -split -fo  trans.fa

# or you can run the gffread tool from cufflinks
gffread -g ~/refs/yeast/sc.fa demo-gene.gff -w trans.fa

# make a small demo reference folder for this lecture
mkdir demoref
mv trans.fa demoref

# simulate reads from the demo reference
# note that we simulate short reads and short fragments,

# play around with this to see the effect of it on the alignments
wgsim -N 10000 -1 35 -2 35 -d 100 demoref/trans.fa r1.fq r2.fq

# align the simulated dataset
bash aln.sh ~/refs/yeast/sc.fa r1.fq r2.fq

# as you increase the insert size the short transcript cannot evenly accomodate
# the fragments
wgsim -N 10000 -1 35 -2 35 -d 500 demoref/trans.fa r1.fq r2.fq

# align and visualize the results
tophat -G demo-gene.gtf  ~/refs/yeast/sc.fa r1.fq r2.fq

# let&#39;s install the FLUX simulator
# download and install the FLUX simulator
ln -s ~/src/flux-simulator-1.2.1/bin/flux-simulator ~/bin

#
# to use the simulator the genome needs to be split by chromosome
# one file per chromosome and the file must be named by the chromosome
#
# you have several options perhaps extracting into a file via bedtools getfasta one chromosome at a time
# or keeping certain lines from files

# where does chromosome 2 start
mkdir fasta
cat -n ~/refs/yeast/sc.fa | grep chrII | head -1

# take the chromosome
head -2879 &amp;lt; ~/refs/yeast/sc.fa &amp;gt; fasta/chrI.fa

# see what files are there
ls fasta

# run the flux simulator
flux-simulator -l -x -s -p simulate.par --force

# process the simulated reads
tophat -G demo-gene.gtf  ~/refs/yeast/sc.fa simulate.fastq

# index the sam file
samtools index tophat_out/accepted_hits.bam
&lt;/pre&gt;
&lt;h2&gt;
Lecture 27 -  Chip-Seq peak calling&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# get the datafile, unpack and align
curl -O http://www.personal.psu.edu/iua1/courses/files/2013/data/lec26.tar.gz
tar xzvf lec26.tar.gz
bwa mem ~/refs/yeast/sc.fa long.fq | samtools view -Sb - &amp;gt; temp.bam
samtools sort temp.bam long
samtools index long.bam

# get MACS,
# the people that wrote MACS do not quite understand how Python installation
# works so you need to work around that
cd ~/src/
curl -OL https://github.com/downloads/taoliu/MACS/MACS-1.4.2-1.tar.gz
tar xzvf MACS-1.4.2-1.tar.gz
cd MACS-1.4.2

# install into a local directory
python setup.py install --prefix local

# add that local directory to your python path
export PYTHONPATH=$PYTHONPATH:~/src/MACS-1.4.2/local/lib/python2.7/site-packages/

# link the macs14 executable to the bin
ln -s ~/src/MACS-1.4.2/local/bin/macs14 ~/bin/macs14

# run macs to look at the output
~/bin/macs14

# get SISSRS
curl -O http://dir.nhlbi.nih.gov/papers/lmi/epigenomes/sissrs/sissrs_v1.4.tar.gz
tar zxvf sissrs_v1.4.tar.gz
mv sissrs.pl ~/bin

# get genetrack
cd ~/src
git clone git@github.com:ialbert/chipexo.git

# onto peak predictions

# run with macs14
macs14 -t long.bam --name long-macs

# run with sissrs
# turn the bam file into bed intervals
~/bin/bedtools bamtobed -i long.bam &amp;gt; long.bed
~/bin/sissrs.pl -i long.bed -s 15000000 -o long-sissrs.txt
cat long-sissrs.txt | grep &quot;chr&quot; &amp;gt; long-sissrs.bed

# run with genetrack
python ~/src/chipexo/genetrack/genetrack.py long.bed -v &amp;gt; long-genetrack.gff

# create a bedgraph to see the underlying probabilities
python ~/src/chipexo/genetrack/genetrack.py long.bed -b  &amp;gt; long-genetrack.gff


&lt;/pre&gt;
&lt;h2&gt;
Lecture 26 -  Chip-Seq data analysis&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# download and unpack the Chip-Seq data
#
curl -O http://www.personal.psu.edu/iua1/courses/files/2013/data/lec26.tar.gz
tar zxvf lec26.tar.gz

#
# investigate the files, lines, what encoding are they in?
#
wc -l *.fq
head long.fq

#
# perform the alignments for both short and long dataset
#
bwa mem ~/refs/yeast/sc.fa long.fq &amp;gt; long.sam
samtools view -Sb long.sam &amp;gt;tmp.bam
samtools sort tmp.bam long
samtools index long.bam

#
# visualize it in IGV, what do we see, well, trouble of course
# seems that there is a strand bias, let&#39;s deduplicate
#
samtools rmdup -s long.bam long-dedup.bam
samtools index long-dedup.bam

#
# now look at the file again, looks better
# the position deterimination is much better,
# but we altered the occupancy for sure, highly covered locations will
# most certainly show higher natural duplicates, and we just normalized those away
# use this to determine locations but not occupancy
#

#
# well, let&#39;s do some peak calling
# the poor man&#39;s peak predictor is a simple awk script
# that starts a peak when the coverage is higher than
# a certain value and stops ends the peak when the coverage is below a value
#
samtools depth long-dedup.bam | awk -f poor-mans-peak-pred.awk &amp;gt; long-peaks.gff

#
# investigate the peaks (intervals that you get), create intervals for midpoints only
#

# fragment size estimation, install the bioawk-tools package
git clone git@github.com:ialbert/bioawk-tools.git


# I&#39;ll go back to the data folder and create a shortcut there

cd ~/work/lec26
ln -s ~/src/bioawk-tools/chipfrag.awk .

# this will produce the number of overlapping 5&#39; ends in the data
cat long.bed | awk -f chipfrag.awk

# we can shift the + starts and see how many match then
cat long.bed | awk -v shift=100 -f chipfrag.awk

# to run it on multiple shifts
for i in $(seq 20 5 200); do awk -v shift=$i -f chipfrag.awk long.bed; done

# put the results into a file and visualize them




&lt;/pre&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# poor man&#39;s peak predictor
#
# processes a samtools depth output
# and produces GFF intervals for the regions of high coverage
#
BEGIN {
    MINCOV = 10
    inside = 0
    print &quot; ##gff-version 3&quot;
}

$3 &amp;gt;= MINCOV {
    if (inside == 0){
        chrom  = $1
        start  = $2
        inside = 1
    }
}

$3 &amp;lt; MINCOV {
    if (inside == 1){
        end = $2
        inside = 0
        # create a new attribute to show the midpoint as ID
        mid = int((start + end)/2)
        attr = sprintf(&quot;ID=P%d&quot;,mid)
        print chrom, &quot;ppred&quot;, &quot;peak&quot;, start, end, &quot;.&quot;, &quot;.&quot;, &quot;.&quot;, attr
    }
}
&lt;/pre&gt;
&lt;h2&gt;
Lecture 25 -  Metagenomic classification&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# download the classifier from sourceforge unzip it then install it into src
#
# http://sourceforge.net/projects/rdp-classifier/
#
#
mv ~/Downloads/rdp_classifier_2.6 ~/src

# read more about the tool

# see how it works
java -Xmx1g -jar ~/src/rdp_classifier_2.6/dist/classifier.jar

# you can create a shortcut to it
alias rdp=&#39;java -Xmx1g -jar ~/src/rdp_classifier_2.6/dist/classifier.jar&#39;

# run the shortcut
rdp

# run the classification, this takes about 15 seconds
rdp classify meta.fa -f fixrank -o sequences.txt -h meta.fa.rdp.txt

# investigate the output of the rdp-class.txt file
more meta.fa.rdp.txt

#
# We can also run a different classification this time with blastn
#
#
# download the 16S microbial sequences as a blast database
#

# create a storage folder
cd ~/refs
mkdir 16S
cd 16S

# these are precompiled blast databases
curl -O ftp://ftp.ncbi.nlm.nih.gov/blast/db/16SMicrobial.tar.gz
tar zxvf 16SMicrobial.tar.gz

# now go to the lecture folder
mkdir ~/work/lec25
cd ~/work/lec25
curl -O http://www.personal.psu.edu/iua1/courses/files/2013/data/meta.tar.gz
gunzip meta.fa.gz

# we will now classify this with two different methods

# first aling with blastn against the
# this took about 7 minutes on my system
# you can also get the results from the course webpage
time blastn -db ~/refs/16S/16SMicrobial -query meta.fa -outfmt 6  &amp;gt; meta.fa.blastn

#
# you can now load this file into MEGAN and compare the results of the classifications
# with both methods
#


&lt;/pre&gt;
&lt;h2&gt;
Lecture 24 -  Genome assembly&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# install the velvet and minia tools
#
cd ~/src
git clone https://github.com/jmarshall/velvet.git
cd velvet

# you could just type make but we&#39;ll customize the compilation
# to allow for larger kmer sizes
make &#39;MAXKMERLENGTH=71&#39;

#
# velvet is consist of two tools, computing kmers with a certain hash size
# assembling the kmers that were computed
#
# link the executables
ln -s ~/src/velvet/velveth ~/bin
ln -s ~/src/velvet/velvetg ~/bin

# let&#39;s also install quast, this will require the following
sudo easy_install pip
sudo pip install matplotlib

# download quast
mv ~/Downloads/quast-2.2.tar.gz ~/src/
cd ~/src

# quast comes as a python program and all it needs is to be unpacked
tar zxvf quast-2.2.tar.gz

# now next we&#39;ll create a smaller yeastgenome with only the first three chromosomes
# this is to be able to get high enough coverage of the data and
# be able to run the assembler in minutes

# at what line does the fourth chromosome start
cat -n ~/refs/yeast/sc.fa | grep chrIV

# get the lines right before that
head -17004 ~/refs/yeast/sc.fa &amp;gt; mini.fa

# simulate 100,000 (or more reads from this data)
wgsim -N 100000 mini.fa r1.fq r2.fq &amp;gt; mutations.txt

# create a single end data to compare to paired end performance
# s.fq will contain the data as single end reads
cat r1.fq r2.fq &amp;gt; s.fq

# assemlby is a two step process, compute hashes for single end
~/bin/velveth s31 31 -fastq -short s.fq

# compute the actual assembly
~/bin/velvetg s31 -exp_cov auto

# we can repeat the same process with the same data but this time as paired end
~/bin/velveth p31 31 -fastq -shortPaired -separate r1.fq r2.fq

# and run the graph assembly again
~/bin/velvetg p31 -exp_cov auto

# let&#39;s compare the assemblies
~/src/quast-2.2/quast.py s31/contigs.fa p31/contigs.fa -R mini.fa

# now open the HTML file quast_results/latest/report.html
# to view the results of quast


&lt;/pre&gt;
&lt;h2&gt;
Lecture 23 -  Interval intersect&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# we&#39;ve done this before but just a quick reminder
#
#
# get the feature file
#
curl -o sc.gff http://downloads.yeastgenome.org/curation/chromosomal_feature/saccharomyces_cerevisiae.gff

#
# keep only the genes, and also simplify the attributes
# to only contain the first attribute pair
#
# remeber that awk needs to join by tab
# usually this means that awk=awk -v &quot;OFS=\t&quot; is set
#
cat sc.gff | awk &#39; $3==&quot;gene&quot; { split($9,x,&quot;;&quot;); $9=x[1]; print $0 }&#39; &amp;gt; genes.gff

# this above looks good but it does not have the first header line now you could do
# the following
head -1 sc.gff &amp;gt; genes.gff
cat sc.gff | awk &#39; $3==&quot;gene&quot; { split($9,x,&quot;;&quot;); $9=x[1]; print $0 }&#39; &amp;gt;&amp;lt; genes.gff

#
# or if you are more adventurous run it as a single command line
# the parentheses make the left side evaluate first before putting into the genes.gff
# the &amp;amp;&amp;amp; symbol is the AND shell operator that causes both sides to evaluate
#
(head -1 sc.gff &amp;amp;&amp;amp; cat sc.gff | awk &#39; $3==&quot;gene&quot; { split($9,x,&quot;;&quot;); $9=x[1]; print $0 }&#39;) &amp;gt; genes.gff

# view the content of genes.gff
head genes.gff

# intersect alignment to create another bam file
~/bin/bedtools intersect -abam r1.fq.bam -b genes.gff &amp;gt; genomic.bam
~/bin/samtools index genomic.bam

# now view the genomic.bam file in IGV
# note how it only contains alignments that cover certain regions

# you can also use the -v (like grep) to give you the opposite of intersect
~/bin/bedtools intersect -abam r1.fq.bam -b genes.gff -v &amp;gt; non-genomic.bam
~/bin/samtools index non-genomic.bam

# turn the BAM file into BED file
~/bin/bedtools bamtobed -i r1.fq.bam &amp;gt; r1.fq.bed

# inspect the file
# bamtobed gives you a few options as to what to place inside the value column
head r1.fq.bed

# compute nucleotide composition for each interval
~/bin/bedtools nuc -fi ~/refs/yeast/sc.fa -bed genes.gff | more

# groupby is a powerful utility
# for it to work the data must be sorted by the grouping column
# what is the average length of the features by type in sc.gff
#
# for example average gene lenght is X
#
# get the rows that have 9 columns (valid GFF)
cat sc.gff | awk &#39;NF == 9 { print $0 } &#39; &amp;gt; features.gff

# place the lenght of the read into the value column of the GFF (6th column)
cat features.gff | awk &#39; { $6=$5-$4+1; print $0 } &#39; &amp;gt; temp.gff

# now sort by the column we try to group by (column 3)
sort -k 3 temp.gff &amp;gt; sizes.gff

# now perform the groupby operation
~/bin/bedtools groupby -i sizes.gff -g 3 -c 6 -ops mean | head

# in lecture 20 wgsim generated a mutations.txt file
# transform that into gff
# make a one base GFF file out of them where the place the refernce base into the source co
cat mutations.txt | awk &#39; { print $1, &quot;wgsim&quot;, &quot;variant&quot;, $2, $2, &quot;.&quot;, $5, &quot;.&quot;, &quot;ref=&quot;$3 &quot;;alt=&quot;$4 }&#39; &amp;gt; mutations.gff

# mutations that overlap with snps
~/bin/bedtools intersect -a mutations.gff -b snps.vcf

# during subtractions the file order is essential
~/bin/bedtools subtract -a mutations.gff -b snps.vcf -A | wc -l
~/bin/bedtools subtract -a snps.vcf -b mutations.gff -A | wc -l

&lt;/pre&gt;
&lt;h2&gt;
Lecture 22 -  Interval analysis, using bedtools&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#
# install bedtools
#
# download the code
curl https://bedtools.googlecode.com/files/BEDTools.v2.17.0.tar.gz &amp;gt; ~/src/BEDTools.tar.gz
#
# unpack and compile the repository
cd ~/src
tar xzvf BEDTools.tar.gz
cd bedtools-2.17.0
make
# link to the bin folder
ln ~/src/bedtools-2.17.0/bin/bedtools ~/bin/bedtools

# test that bedtools works properly
~/bin/bedtools

# let&#39;s expand an interval stored in say demo.bed (see file below)

~/bin/bedtools slop

# looks like we need a genome file, it even gives you a nice example

#
# the many ways to generate a chromosome/size file
#

# this will load the genome into memory, only do it for small genomes
cat ~/refs/yeast/sc.fa | ~/bin/bioawk -c fastx &#39; { print $name, length($seq) } &#39;

# samtools faidx also creates a small index file
# this of course may take a while but you most likely already have done this
~/bin/samtools faidx ~/refs/yeast/sc.fa
cat ~/refs/yeast/sc.fa.fai | cut -f1,2

# we can do it with blastdbcmd
# this requires that you build a blast database, that too may take a while
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;all&#39; -outfmt &quot;%a %l&quot;

# ok but that does not put in tabs and won&#39;t recognize \t either, sigh, tab problems again?
# how about this, use the tr command transl
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;all&#39; -outfmt &quot;%a %l&quot; | tr &#39; &#39; &#39;\t&#39;

# or you could look at the header of an alignment file and extract from there
# but that needs a little work with tr
~/bin/samtools view -h ../lec19/r1.fq.bam | head -100 | grep &quot;@SQ&quot; | cut -f2,3 | tr -d &quot;SN:&quot; | tr -d &quot;LN:&quot;

# ok, let&#39;s get back to slop
# extend the interval on both sides
~/bin/bedtools slop -i demo.bed -g genome.txt -b 10

# you can extend on left and right non-directionally
$ ~/bin/bedtools slop -i demo.bed -g genome.txt -l 10 -r 0

# or in a strand specific manner
$ ~/bin/bedtools slop -i demo.bed -g genome.txt -l 10 -r 0 -s

# it is best if one also visualizes what the tool does
$ ~/bin/bedtools flank -i demo.bed -g genome.txt -l 10 -r 0 -s

# generate the intervals that are not covered by the file
~/bin/bedtools complement -i demo.gff -g genome.txt

# extract the sequence for the intervals in the file
~/bin/bedtools getfasta -bed demo.gff -fi ~/refs/yeast/sc.fa -fo output.fa

# the file is a regular fasta file
more output.fa

&lt;/pre&gt;
The BED file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
chrI    100 200 one 0   +
chrI    300 400 two 0   -
&lt;/pre&gt;
The GFF file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
chrI    .   one 101 200 0   +   .   .
chrI    .   two 301 400 0   -   .   .
&lt;/pre&gt;
&lt;h2&gt;
Lecture 21 -  Interval data formats: BED and GFF&lt;/h2&gt;
same information represented in three different formats:&lt;br /&gt;

GTF:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
chrI    demo    exon    1000    2000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T1&quot;;
chrI    demo    exon    3000    4000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T1&quot;;
chrI    demo    exon    5000    6000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T1&quot;;
chrI    demo    exon    7000    8000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T1&quot;;
chrI    demo    exon    1000    2000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T2&quot;;
chrI    demo    exon    3000    4000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T2&quot;;
chrI    demo    exon    7000    8000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T2&quot;;
chrI    demo    exon    1000    2000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T3&quot;;
chrI    demo    exon    5000    6000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T3&quot;;
chrI    demo    exon    7000    8000    .   +   .   gene_id &quot;G1&quot;; transcript_id &quot;T3&quot;;
&lt;/pre&gt;
GFF3:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
##gff-version 3
chrI    demo    exon    1000    2000    .   +   .   Parent=T1,T2,T3;
chrI    demo    exon    3000    4000    .   +   .   Parent=T1,T2;
chrI    demo    exon    5000    6000    .   +   .   Parent=T1,T3;
chrI    demo    exon    7000    8000    .   +   .   Parent=T1,T2,T3;

&lt;/pre&gt;
BED:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
chrI    999 8000    T1  0   +   999 8000    0,0,255 4   1000,1000,1000,1000 0,2000,4000,6000
chrI    999 8000    T2  0   +   999 8000    0,0,255 3   1000,1000,1000  0,2000,6000
chrI    999 8000    T3  0   +   999 8000    0,0,255 3   1000,1000,1000  0,4000,6000

&lt;/pre&gt;
&lt;h2&gt;
Lecture 20 -  SNP calling with freebayes, VCF format&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# install the FreeBayes snp caller

# homepage https://github.com/ekg/freebayes

# as per documentation the git clone should be recursive
git clone --recursive git://github.com/ekg/freebayes.git

# as per documentation check out the stable version
git checkout c993c5c07e7673

# the tool uses cmake instread of make so install that as well
# on the Mac use:
brew install cmake

# on Ubuntu Linux find the cmake tool and install it with apt-get
sudo apt-get install cmake

# now switch to the freebayes and make it
cd freebayes
make
ln -s ~/src/freebayes/bin/freebayes ~/bin

# look at the paramters it generates
~/bin/freebayes

# generate SNPS with freebayes
~/bin/freebayes -f ~/refs/yeast/sc.fa r1.fq.bam &amp;gt; r1.bayes.vcf

# generate SNPS with samtools
~/bin/samtools mpileup -uDf ~/refs/yeast/sc.fa r1.fq.bam &amp;gt; r1.samtools.bcf
~/bin/bcftools view -gv r1.samtools.bcf &amp;gt; r1.samtools.vcf

# index with igvtools, this can also be performed in IGV
~/bin/igvtools index r1.bayes.vcf
~/bin/igvtools index r1.samtools.vcf
&lt;/pre&gt;
&lt;h2&gt;
Lecture 19 -  SNP calling with samtools, VCF format&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;

# investigate samtools mpileup
samtools mpileup

# this will generate a pileup output for the alignment files
~/bin/samtools mpileup r1.fq.bam | head

# samtools computes the genoytpe likelihoods and puts them into a bcf file
# we will limit it to chrI so that it finishes quickly
samtools mpileup -uDf ~/refs/yeast/sc.fa -r chrI r1.fq.bam &amp;gt; r1.bcf

#
# bcftools calls the variants and infers other statistics
#
# link the bcftools into the bin folder
ln -s ~/src/samtools-0.1.19/bcftools/bcftools ~/bin/bcftools

# investigate what bcftools does
~/bin/bcftools

# investigate what the bcf view does
~/bin/bcftools view

# view the bcf file, this file contains calls for every base!
~/bin/bcftools view r1.bcf | more

# calls the genotypes and output only variant calls, the output is VCF
~/bin/bcftools view -gv r1.bcf | more

# store the snps in a VCF file
~/bin/bcftools view -gv r1.bcf &amp;gt; snps.vcf

# you will need to index the vcf file to dipsplay in IGV
# the index is IGV specific use the Tools-&amp;gt;Run igvtools-Index
# or you can also do it from command line
# after installing the igv tools package

~/bin/igvtools index snps.vcf

&lt;/pre&gt;
&lt;h2&gt;
Lecture 18 -  Read duplication/genome visualization&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# download and install wgsim from
# https://github.com/lh3/wgsim

# removing duplicated reads with samtools

# tired of adding ~/bin to every command?
# add the bin folder to your search PATH
# this only needs to be done once

# on a Mac
echo &quot;export PATH=$PATH:~/bin&quot; &amp;gt;&amp;gt; ~/.profile
source ~/.profile

# on Linux
echo &quot;export PATH=$PATH:~/bin&quot; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc

# look at the options of rmdup
samtools rmdup

# perform the duplicate removal
# will print statistics on the process
samtools rmdup r1.fq.bam r1.unique.bam

# there is a samtools specific indexing as well
# this indexing is required for samtools operations
# that access the reference
samtools faidx ~/refs/yeast/sc.fa

# pileup output
# see mpileup manual:
# see 5 Things to know about mpileup -&amp;gt; http://massgenomics.org/2012/03/5-things-to-know-about-samtools-mpileup.html
samtools mpileup -f ~/refs/yeast/sc.fa r1.fq.bam | head

# samtools comes with a simple text based genome viewer
samtools tview

# run it on the alignment
samtools tview r1.fq.bam ~/refs/yeast/sc.fa

# dot: . means exact match on the forward strand
# comma: , means exact match on reverse strand

&lt;/pre&gt;
&lt;h2&gt;
Lecture 17 -  Align paired end read&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# download and install wgsim from
# https://github.com/lh3/wgsim

cd ~/src
git clone https://github.com/lh3/wgsim
cd wgsim

# you forgot the Makefile Heng!, look into the README
gcc -g -O2 -Wall -o wgsim wgsim.c -lz -lm

# link to your bin folder
ln -s ~/src/wgsim/wgsim ~/bin/wgsim

# run wgsim to look at its options

# generate 1 million paired end reads
~/bin/wgsim ~/refs/yeast/sc.fa r1.fq r2.fq &amp;gt; mutations.txt

# modify your aligner script to take paired end reads
bash aln.sh ~/refs/yeast/sc.fa r1.fq r2.fq

# evaluate the mapping
~/bin/samtools idxstats r1.fq.bam

# look at the flag statistics
~/bin/samtools flagstat r1.fq.bam

# how many reads have pairs
~/bin/samtools view -c -f 1 r1.fq.bam

# how many reads that have pairs are mapped
~/bin/samtools view -c -f 1 -F 4 r1.fq.bam

# read has a pair it is mapped but the mate is unmapped
~/bin/samtools view -c -f 9 -F 4  r1.fq.bam

# read has a pair it is mapped on forward strand but the mate is unmapped
~/bin/samtools view -c -f 9 -F 20  r1.fq.bam
&lt;/pre&gt;
The script that performs the alignment &lt;code&gt;aln.sh&lt;/code&gt;:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
# takes index name and query from command line
# produces a SAM alignment

# bail out on errors
set -ue

# first parameter is the reference genome
REF=$1

# second two parameters are the paired reads
READ1=$2
READ2=$3

# now set the output file names based on the query name
SAM=$READ1.sam

BAM=$READ1

# perform the alignments and generate two alignment files
~/bin/bwa aln $REF $READ1 &amp;gt; S1.sai
~/bin/bwa aln $REF $READ2 &amp;gt; S2.sai

# format the alignments as a paired end SAM file
#~/bin/bwa samse $REF S1.sai $READ1 &amp;gt; $SAM

~/bin/bwa sampe $REF S1.sai S2.sai $READ1 $READ2 &amp;gt; $SAM

# transform the SAM file to BAM
~/bin/samtools view -Sb $SAM &amp;gt; temp.bam

# sort the samfile
# try not to use -f parameter
~/bin/samtools sort temp.bam $BAM

# index the BAM file
~/bin/samtools index $BAM

# cleanup
rm -f *.sai *.sam temp.bam

echo &quot;Finished ref=$REF, read1=$READ1, read2=$READ2, bam=$BAM&quot;
&lt;/pre&gt;
&lt;h2&gt;
Lecture 16 -  Creating BAM file, using samtools&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# download and install samtools 
git clone https://github.com/samtools/samtools.git

# in your src folder
cd samtools
make
ln -s ~/src/samtools/samtools ~/bin/samtools

# all of Heng Li&#39;s tool will tell you what they do
# when you just run them
~/bin/samtools

# if you need help on just one samtools command
# just expand the tool command line with it
~/bin/samtools view

# rename (move) your data
mv lec15.fq data.fq

# run our aligner from the previous lecture
bash aln1.sh ~/refs/yeast/sc.fa data.fq

# this creates a SAM file

# all your alignment files should be kept as
# sorted and indexed BAM files
# by default samtools expects to see a BAM file
# then produces a viewable SAM file from it

# to create a BAM file from a SAM file
# we put the output into a temporary file because we
# need to also sort it and the sorted file will be our final BAM file
~/bin/samtools view -Sb data.fq.sam &amp;gt; tempfile.bam

# now sort the BAM file and put the result into a different file
~/bin/samtools sort -f tempfile.bam data.bam

# finally index the BAM file
~/bin/samtools index data.bam

# let&#39;s delete the temporary bam file
rm -f tempfile.bam

# look at the files
# you will need to see both bam file and a bam.bai file
ls

# add these steps into your alignment script and call it aln.sh

# now let&#39;s play with samtools

# how many alignments does the BAM data have
~/bin/samtools view -c data.fq.bam

# show the first few alignments
~/bin/samtools view data.fq.bam | head

# how many unaligned reads
~/bin/samtools view -c -f 4 data.fq.bam

# how many proper alignments
~/bin/samtools view -c -F 4 data.fq.bam

# how many reads align on the reverse strand
~/bin/samtools view -c -f 16 data.fq.bam

# how many reads align on the forward strand
~/bin/samtools view -c -F 16 data.fq.bam

# how many reads have the minimum mapping quality of 1 (aka align uniquely)
~/bin/samtools view -c -q 1 data.fq.bam

# how many reads on the reverse strand have the minimum mapping quality of 1
~/bin/samtools view -c -q 1 -F 16 data.fq.bam

# flag statistics
~/bin/samtools flagstat data.fq.bam

# mapping statistics
~/bin/samtools idxstats data.fq.bam

# depth of coverage per base
~/bin/samtools depth data.fq.bam | head

# query a bam file
# how many reads fall within the region of 1000 to 2000 on chromosome V
~/bin/samtools view -c data.fq.bam chrV:1000-2000

# show the alignments that fall within the region of 1000 to 2000 on chromosome V
~/bin/samtools view data.fq.bam chrV:1000-2000

# how many alignments that fall in the region of 1000 to 2000 on chromosome V
# are on the reverse strand and align uniquely (as labeled by bwa)
~/bin/samtools view -c -f 16 -q 1 data.fq.bam chrV:1000-2000

&lt;/pre&gt;
The script that performs the alignment &lt;code&gt;aln.sh&lt;/code&gt;:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
# takes index name and query from command line
# produces a SAM alignment

# bail out on errors
set -ue

# first parameter is the reference genome
REF=$1

# second parameter is the query
QUERY=$2

# now set the output file names based on the query name
SAI=$QUERY.sai
SAM=$QUERY.sam
TMP=tmp.bam
BAM=$QUERY.bam

# perform the alignments via bwa
~/bin/bwa aln $REF $QUERY &amp;gt; $SAI
~/bin/bwa samse $REF $SAI $QUERY &amp;gt; $SAM

# transform the SAM file to BAM
~/bin/samtools view -Sb $SAM &amp;gt; $TMP

# sort the samfile
~/bin/samtools sort -f $TMP $BAM

# index the BAM file
~/bin/samtools index $BAM

echo &quot;Finished ref=$REF, query=$QUERY, bam=$BAM&quot;
&lt;/pre&gt;
&lt;h2&gt;
Lecture 15 - the SAM (Sequence Alignment Map) format&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;

# cut out the first line of the yeast genome
head -2 ~/refs/yeast/sc.fa

# from this create a fastq file that has the following
# an exact match a mismatch, a deletion and a reverse complement

# the simplest way to reverse complement a fastq record is via seqtk
~/bin/seqtk seq -r samtest.fq

# run the alignment
sh aln1.sh ~/refs/yeast/sc.fa samtest.fq

# look the files it has created
ls

# cut out certain columns
cat samtest.fq.sam | cut -f 1-3

# skip the SAM headers
cat samtest.fq.sam | grep -v &quot;@SQ&quot; | cut -f 1-3

# bioawk has SAM aware behavior
# it can recognize the following columns
# qname, flag, rname, pos, mapq, cigar, rnext, pnext, tlen, seq, qual
cat samtest.fq.sam | ~/bin/bioawk -c sam &#39;{print $qname, $flag, $cigar}&#39;

# or you can filter for flags (although there are better ways to do that)
# select records where the flag has the bit 2^4 (16) set
cat samtest.fq.sam | ~/bin/bioawk -c sam &#39; and($flag,16) {print $qname, $flag, $cigar}&#39;
&lt;/pre&gt;
The input query file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
@exact
CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTA
+
2222222222222222222222222222222222222222222222222222222222222222222222222
@mismatch10AG
CCACACCACGCCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTA
+
2222222222222222222222222222222222222222222222222222222222222222222222222
@delete10A
CCACACCACCCCACACACCCACACACCACACCACACACCACACCACACCCACACACACACATCCTAACACTA
+
222222222222222222222222222222222222222222222222222222222222222222222222
@rev-comp
AAAAAAAAAAATAGTGTTAGGATGTGTGTGTGTGGGTGTGGTGTGGTGTGTGGTGTGGTGTGTGGGTGTGTGGGTGTGGTGTGG
+
222222222222222222222222222222222222222222222222222222222222222222222222222222222222

&lt;/pre&gt;
The script that performs the alignment &lt;code&gt;aln1.sh&lt;/code&gt;:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
# takes index name and query from command line
# produces a SAM alignment

# bail out on errors
set -ue

# first parameter is the reference genome
REF=$1

# second parameter is the query
QUERY=$2

# now set the output file names based on the query name
SAI=$QUERY.sai
SAM=$QUERY.sam

# perform the alignments via bwa
~/bin/bwa aln $REF $QUERY &amp;gt; $SAI
~/bin/bwa samse $REF $SAI $QUERY &amp;gt; $SAM
&lt;/pre&gt;
&lt;h2&gt;
Lecture 14 - introduction to short read mapping, bwa&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# download and copy the archive to ~src
# then compile and link it

# the code is compressed with bzip2
tar jxf bwa-0.7.5a.tar.bz2
cd bwa-0.7.5a
make
ln -s ~/src/bwa-0.7.5a/bwa ~/bin/bwa

# look the output of bwa
~/bin/bwa

# to get a detailed help on usage look at
man ~/src/bwa-0.7.5a/bwa.1

# also read the manual at: http://bio-bwa.sourceforge.net/bwa.shtml

# using copy/paste and/or other methods create an input FastQ file
# that contains one line of sequence from the yeast genome
head -2 ~/refs/yeast/sc.fa

# we assume that you put the result into query.fq
cat query.fq

# create an alignment with the aln method
~/bin/bwa aln ~/refs/yeast/sc.fa query.fq &amp;gt; query.sai

# format the *.sai alignment into a SAM file (sequence alignment map)
# you can format via samse (SAM single end) or sampe (SAM paired end)
~/bin/bwa samse ~/refs/yeast/sc.fa query.sai query.fq &amp;gt; query.sam

# view the resulting alignment
more query.sam

# use the mem algorithm we skip the intermediary alignment file generation
~/bin/bwa mem ~/refs/yeast/sc.fa query.fq &amp;gt; query.sam

# turn a fastq file into a fasta file
~/bin/seqtk seq -A query.fq &amp;gt; query.fa

# here is how you would run blastn on the same query
~/bin/blastn -db ~/refs/yeast/sc -query query.fa -dust no
&lt;/pre&gt;
&lt;h2&gt;
Lecture 13 - shell scripts, using flash and trimmomatic&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# find your most duplicated sequences
cat data_R1.fq | ~/bin/bioawk -c fastx &#39;{print substr($seq, 1, 30) }&#39; | sort | uniq -c | sort -gr | head

# blast this against NR (nonredunant database)

#
# install and link both Trimmomatic and Flash into your ~/bin/folder
#
# see the links below for sourcecode
#
# you may use the wrapper script for Trimmomatic (see below) or launch it
# from the command line

# these two should produce the same output
java -jar ~/src/Trimmomatic-0.30/trimmomatic-0.30.jar

# versus
~/bin/trimmomatic

# ok, here naming gets a little crazy, each pair will have paired and unpaired output
# the unpaired file is the one where the pair did not survive the process

# come up with your own naming conventions
~/bin/trimmomatic PE -phred33 data_R1.fq data_R2.fq a1.fq a1.U.fq a2.fq a2.U.fq ILLUMINACLIP:polyA.fa:2:3:3 MINLEN:36 SLIDINGWINDOW:4:25

# now let&#39;s cut the adapter
~/bin/trimmomatic PE -phred33 a1.fq a2.fq b1.fq b1.U.fq b2.fq b2.U.fq ILLUMINACLIP:adapter.fa:2:3:3 MINLEN:36 SLIDINGWINDOW:4:25

# estimate the number of sequences in each file
wc -l *.fq

# merge the fragments with flash
~/bin/flash b1.fq b2.fq

# generate quality control reports for the results
~/bin/fastqc out.extendedFrags.fastq
~/bin/fastqc out.notCombined_1.fastq
~/bin/fastqc out.notCombined_2.fastq

&lt;/pre&gt;
A pipeline that can be run from the command line&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;

# this makes the script stop on
# missing variables or an error
set -ue

# take input from command line
FIRST_PAIR=$1
SECOND_PAIR=$2

# collect commands into a single file
~/bin/fastqc $FIRST_PAIR
~/bin/fastqc $SECOND_PAIR


&lt;/pre&gt;
A wrapper script around &lt;code&gt;Trimmomatic&lt;/code&gt;. Add this file into the &lt;code&gt;~/bin&lt;/code&gt; folder
and make it executable with &lt;code&gt;chmod +x ~/bin/trimm&lt;/code&gt;. The purpose of this
is to simplify the way we run the tool:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
#!/bin/bash

#
# this is a &quot;wrapper&quot; script that aims to make running trimmomatic a little more sane
#

# for this program to work it needs to be placed in the ~/bin folder
# then it needs to be made executable
# chmod +x ~/bin/trimmomatic

# the $@ symbol passes all command line parameters as they were listed
java -jar ~/src/Trimmomatic-0.30/trimmomatic-0.30.jar $@
&lt;/pre&gt;
&lt;h2&gt;
Lecture 12 - Paired end reads, more quality control&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# note: you may need to install a number of extra libraries on linux:
sudo apt-get install build-essential ncurses-dev byacc zlib1g-dev python-dev git

# onto bioawk
# visit the repository for information: https://github.com/lh3/bioawk

# clone the bioawk repository
git clone https://github.com/lh3/bioawk.git
cd bioawk
make

# link bioawk to your bin
ln -s ~/src/bioawk/bioawk ~/bin/bioawk

# note how bioawk creates &#39;magic&#39; variables $name, $seq, $qual
# show the read names
cat sample1.fq | ~/bin/bioawk -c fastx &#39;{ print $name }&#39; | head

# show the read sequences
cat sample1.fq | ~/bin/bioawk -c fastx &#39;{ print $seq }&#39; | head

# the equivalent of this with regular grepping would be
# but this only works if each sequence occupies only one line
cat sample1.fq | awk &#39; NR%4 == 2 { print $1 }&#39; | head

# moreover bioawk seamlessly works on fasta and fastq files
cat ~/refs/yeast/sc.fa | ~/bin/bioawk -c fastx &#39;{ print $name }&#39; | head

# install the Trimmomatic tool
cd ~/src
curl http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.30.zip -o Trimmomatic-0.30.zip
unzip Trimmomatic-0.30.zip
rm -f Trimmomatic-0.30.zip

# make an alias file to ease the run of this tool
# add it to your .profile or .bashrc
alias trimm=&#39;java -jar ~/src/Trimmomatic-0.30/trimmomatic-0.30.jar&#39;

# you will need to create FASTA files that contain the adapters
# the tool comes with some examples, see the actual content of the files below

# now let&#39;s run the tool, it is a multistep process
trimm SE -phred33 data_R1.fq step1.fq ILLUMINACLIP:polyA.fa:2:3:3 MINLEN:36 SLIDINGWINDOW:4:25

# now let&#39;s run the tool
trimm SE -phred33 step1.fq step2.fq ILLUMINACLIP:adapter.fa:2:3:3 MINLEN:36 SLIDINGWINDOW:4:25

# etc, you can run more steps, after each run fastqc to evaluate
&lt;/pre&gt;
content of &lt;code&gt;polyA.fa&lt;/code&gt;:&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;polyA
AAAAAAAA
&lt;/code&gt;&lt;/pre&gt;
The content of &lt;code&gt;adapter.fa&lt;/code&gt;&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;trueseq
AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
Lecture 11 - Illumina adapters, quality control&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;

# On a Mac install HomeBrew, this only needs to be done once see http://brew.sh/
#
ruby -e &quot;$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)&quot;

# on a Mac install git using HomeBrew
brew install git

# on linux you may need to use your package manager
# to install git and other required dependencies
# sudo means &quot;superuser do&quot;
sudo apt-get install build-essential zlib1g-dev python-dev git

# clone the seqtk repository from github: https://github.com/lh3/seqtk
#
# go to the src folder
cd ~/src

# clone the repository
git clone https://github.com/lh3/seqtk.git

# switch to the repository and make it
cd seqtk
make

# link to bin
ln -s ~/src/seqtk/seqtk ~/bin/seqtk

# test that is works, note how many secondary commands it has
~/bin/seqtk

# now let&#39;s install cutadapt, it is a python based package
# two python installers easy_install and pip
# I lik pip, easy_install is usually already present
# why not use easy_install to install pip ... kind of crazy, ah well it is
sudo easy_install pip

# now we have pip, test it
pip

# install cutadapt, depending on the setup you may need to use sudo
sudo pip install cutadapt

# check that it works
cutadapt -h

# now onto actually doing something useful with these
# let&#39;s cut some adapters, check the fastqc output for sample1.fq
# what does it say for overrepresented sequences,
# note how an A needs to be added to the adapter as that is the overhang added to the sequence
cutadapt -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC sample1.fq &amp;gt; sample1.cut.fq

# now run a second fastqc report
# do you see any differences
~/bin/fastqc sample1.cut.fq

# let&#39;s run a quality trimming on the second dataset
~/bin/seqtk trimfq sample2.fq &amp;gt; sample2.trim.fq

# generate another fastqc output and compare to original
~/bin/fastqc sample2.trim.fq



&lt;/pre&gt;
&lt;h2&gt;
Lecture 10 - Compressing, archiving data, FastQC reports&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# get and uncompress the archive
curl http://www.personal.psu.edu/iua1/courses/files/2013/data/lecture-10.tar.gz -o lecture-10.tar.gz

# look at the file sizes
ls -lh

# compress the files
gzip sample1.fq

# look at the file sizes again, text files compress very well
ls -lh

# uncompress the file
gunzip sample1.fq.gz

# you may compress/uncompress multiple files at the same time
gzip *.fq

# gzcat allows you to list the contents of a compressed file
gzcat sample1.fq.gz | grep &quot;TAAAT&quot; | head

# uncompress them both
gunzip *.fq.gz

# this will create an archive
tar czvf lecture-10.tar.gz *.fq

# this wil unpack the archive
tar xzvf lecture-10.tar.gz

# now download and link the fastqc executable
# there is a slight mistake in the distribution, the file is not executable, fix that
chmod +x ~/src/FastQC/fastqc

# link it to the bin folder
ln -s ~/src/FastQC/fastqc ~/bin/fastqc

# run the program
~/bin/fastqc -h

# this is how to run on a single sample
~/bin/fastqc sample1.fq

#
# important flags include
#
# --nogroup
# --khmer
# --threads
~/bin/fastqc sample1.fq sample2.fq  -k 8  --nogroup

# you can always investigate for patterns for yourself
# find the GGAAG pattern followed by up to 10 of any base {1,10} and followed by the end of line ($)
cat sample1.fq | egrep &quot;(GGAAG)(.){1,10}$&quot; --color=always | head
&lt;/pre&gt;
&lt;h2&gt;
Lecture 9 - FastQ encoding&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# calc shortcut courtesy of TA Nick Stoler

# on a Mac
echo &#39;calc () { python -c &quot;from math import *; print $1&quot;; }&#39; &amp;gt;&amp;gt; ~/.profile

# on Linux
echo &#39;calc () { python -c &quot;from math import *; print $1&quot;; }&#39; &amp;gt;&amp;gt; ~/.bashrc

# this will become active on opening a new window or by
source ~/.profile

# the following two commands are now equivalent
python -c &quot;print 1+1&quot;
calc 1+1

# in general you will need to put statements within single quotes
calc &#39;1 + 1&#39;

# getting the ordinal value of a character
calc &#39;ord(&quot;A&quot;)&#39;

# getting the character value of an integer
calc &#39;chr(65)&#39;

# find the Phred score of A on the Sanger scale +33
calc &#39;ord(&quot;A&quot;) - 33&#39;

# find the letter value of a Phred score on the Sanger scale +33
calc &#39;chr(32 + 33)&#39;

# what is the error probabity of the best score on the Sanger scale
calc &#39;10 ** - ((ord(&quot;I&quot;) - 33) / 10.0)&#39;

# what is the error probabity of the worst score on the Sanger scale
calc &#39;10 ** - ((ord(&quot;!&quot;) - 33) / 10.0)&#39;
&lt;/pre&gt;
&lt;h2&gt;
Lecture 8 - Tuning BLAST searches&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# we assume you downloaded the test sequences that are now in the data folder
# these datasets have been obtained from the book BLAST by Ian Korf, Mark Yandell, Joseph Bedell
# but have been renamed to better indicate what they contain

# make a directory for the references
mkdir refs

# create a database for the expressed sequence tags
~/bin/makeblastdb -in data/est.collection.nuc.fa -out refs/est.collection -dbtype nucl -parse_seqids

# find out some information about our blast database
~/bin/blastdbcmd -db refs/est.collection -info

# let&#39;s figure out how to get an E-value from a Bit Score
#
# E = m * n * 2 ^ -S
#
# m = database size, n=query size, S=bitscore

# create a custom output to evaluate the E-values relative to alignments
~/bin/blastn -db refs/est.collection -task blastn  -query data/est.single-read.nuc.fa -outfmt &#39;7 qseqid qlen sseqid slen bitscore length evalue qseq&#39; | head

# with the information above let&#39;s check
echo &quot;&quot; | awk &#39;{ E = 673456 * 322 * 2 ^-578; print E } &#39;

# blast search strategies

# megablast is the default search strategy
~/bin/blastn -db refs/est.collection -task megablast -query data/est.single-read.nuc.fa -outfmt 7

# blastn is a slower, it will also produce many more results
~/bin/blastn -db refs/est.collection -task blastn  -query data/est.single-read.nuc.fa -outfmt 7

# lets verify a location that aligns on the reverse strand
~/bin/blastn -db refs/est.collection -task blastn  -query data/est.single-read.nuc.fa  | grep &quot;Minus&quot; -B 6 -A 5 | head -11

# look at the output and identify the locations for the Subj alignment
~/bin/blastdbcmd -db refs/est.collection -entry &quot;AU109564&quot; -range &quot;118-141&quot; -strand minus

# generate a protein blast database
~/bin/makeblastdb -in data/globins.collection.prot.fa -dbtype prot -out refs/globins.collection -parse_seqids

# BLAST Database creation error: Error: Duplicate seq_ids are found: LCL|Q17154
# really, let&#39;s see?
cat data/globins.collection.prot.fa | grep Q17154

# ok so how many duplicated sequences ids might be there?
cat data/globins.collection.prot.fa | grep &quot;&amp;gt;&quot; | awk &#39;{ split($0, x, &quot; &quot;); print x[1] } &#39; | sort | uniq -c | sort -g

# holy smokes that is a lot of duplicates, now we need to write another program to fix it
# thanks a bunch BLAST book ...
# use the commands below or just not pass the -parse_seqids option
#
cat data/globins.collection.prot.fa | awk -f uniq-fasta.awk &amp;gt; data/globins.collection.prot.uniq.fa


# now we can finally create the database they way we wanted to
~/bin/makeblastdb -in data/globins.collection.prot.uniq.fa -dbtype prot -out refs/globins.collection -parse_seqids

# create protein alignment report
~/bin/blastp -db refs/globins.collection -query data/gamma2_globin.prot.fa | more

# blastx, nucleotide vs
~/bin/blastx -db refs/globins.collection -query data/fugu_globin.nuc.fa | more

# protein vs nucleotides
~/bin/tblastn -db refs/est.collection -query data/gamma2_globin.prot.fa | more

# create a database for the chicken globins
~/bin/makeblastdb -in data/chicken_globin.nuc.fa -dbtype nucl -out refs/chicken_globin

# run the tblastx
~/bin/tblastx -db refs/chicken_globin -query data/fugu_globin.nuc.fa | more

# pairwise alignment of two sequences, used to be called bl2seq
#
# compare the results of the following three alignments
#

# blastn, megablast
~/bin/blastn -query data/chicken_globin.nuc.fa -subject data/fugu_globin.nuc.fa

# blastn, blastn
~/bin/blastn -query data/chicken_globin.nuc.fa -subject data/fugu_globin.nuc.fa -task blastn

# tblastx
/bin/tblastx -query data/chicken_globin.nuc.fa -subject data/fugu_globin.nuc.fa


&lt;/pre&gt;
turns out we needed a method to keep unqiue entries from a fasta file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
# this pattern matches only at the beginning of each fasta record
/^&amp;gt;/ {

    # has the current id been seen before?
    not_seen = ! storage[$1]

    # well it is seen now so add it to the storage
    storage[$1] = 1
}

# this pattern matches all the time
{
    if (not_seen) print $0
}
&lt;/pre&gt;
&lt;h2&gt;
Lecture 7 - Useful BLAST commands&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# passing the -parse_seqids parameter creates a database with more information in it

# look at what files are created when you run
~/bin/makeblastdb -in ~/refs/yeast/sc.fa -dbtype nucl -out ~/refs/yeast/sc_simple

# versus running
~/bin/makeblastdb -in ~/refs/yeast/sc.fa -dbtype nucl -out ~/refs/yeast/sc_full -parse_seqids

# you now have two differently formatted blast databases all supporting the same sequence
# look at the files and verify they are where supposed to
ls ~/refs/yeast

# make a small query
cat ~/refs/yeast/sc.fa | head -3 &amp;gt; query.fa

# run two blast searches with each database
~/bin/blastn -db ~/refs/yeast/sc_simple -query query.fa

# run two blast searches with each database, can you spot the difference?
~/bin/blastn -db ~/refs/yeast/sc_full -query query.fa

# get help on the tools
~/bin/blastdbcmd -help

# blastdbcmd will work only on databases created with the -parse_seqids option
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;all&#39; -outfmt &quot;%a&quot; | head -3

# we could solve a previous homework on computing the genome size with this
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;all&#39; -outfmt &quot;%l&quot; | awk &#39;{s+=$1; print s}&#39;

# extract regions from your sequences
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;all&#39; -range &#39;1-10&#39;

# fetch the range for just one sequence
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry &#39;chrV&#39; -range &#39;100-110&#39;

# fetch multiple entries based on information in a file
~/bin/blastdbcmd -db ~/refs/yeast/sc_full -entry_batch ids.txt

# now make a smaller query file
cat sc.fa | head -2 &amp;gt; mini.fa

# blast the query
~/bin/blastn -db ~/refs/yeast/sc_full -query mini.fa -outfmt 7

# why did we get no hits?, low complexity filter
~/bin/blastn -db ~/refs/yeast/sc_full -query mini.fa -dust no -outfmt 7

# there can be additional formatting options
~/bin/blastn -db ~/refs/yeast/sc_full -query mini.fa -dust no -outfmt &#39;7 qseqid sseqid mismatch&#39;

# to include the standard plus additional options use std
~/bin/blastn -db ~/refs/yeast/sc_full -query mini.fa -dust no -outfmt &#39;7 std send&#39;
&lt;/pre&gt;
input file for the &lt;code&gt;-entry_batch&lt;/code&gt; parameter:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
chrI   100-110   plus
chrI   100-110   minus
&lt;/pre&gt;
&lt;code&gt;blastdbcmd&lt;/code&gt; formatting:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
-outfmt &lt;string&gt;
   Output format, where the available format specifiers are:
        %f means sequence in FASTA format
        %s means sequence data (without defline)
        %a means accession
        %g means gi
        %o means ordinal id (OID)
        %i means sequence id
        %t means sequence title
        %l means sequence length
        %h means sequence hash value
        %T means taxid
        %e means membership integer
        %L means common taxonomic name
        %S means scientific name
        %P means PIG
        %m means sequence masking data.
           Masking data will be displayed as a series of &#39;N-M&#39; values
           separated by &#39;;&#39; or the word &#39;none&#39; if none are available.
    If &#39;%f&#39; is specified, all other format specifiers are ignored.
    For every format except &#39;%f&#39;, each line of output will correspond
    to a sequence.
   Default = `%f&#39;
    * Incompatible with:  info, list, recursive, remove_redundant_dbs,
   list_outfmt, show_blastdb_search_path
&lt;/string&gt;&lt;/pre&gt;
&lt;h2&gt;
Lecture 6 - Installing and Running BLAST&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# download the blast executable from the NCBI site
# ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST
# unpack and move it to ~/src

# link the executables into the bin folder
cd ~/bin
ln -s ~/src/ncbi-blast-2.2.28+/bin/blastn blastn

# the alternative is to extend the system PATH variable to
# contain the new path, you can add this to your profile
export PATH=$PATH:~/src/ncbi-blast-2.2.28+/bin/

# get the data, the -o flag stores the result in the sc.gff
curl http://downloads.yeastgenome.org/curation/chromosomal_feature/saccharomyces_cerevisiae.gff -o sc.gff

# how many lines in this file
wc -l sc.gff

# at what line does the sequence start in this file
cat -n sc.gff | grep &quot;&amp;gt;&quot; | head -1

# how long does the tail need to be
echo &#39;174984-22995&#39; | bc -l

# looks like 151989, are we off by one? I guess

# we need to include one more line
# check that the file is indeed cut at the first FASTA record
cat sc.gff | tail -151990 | head -1

# put it into a separate file, we are going to use this file
cat sc.gff | tail -151990 &amp;gt; sc.fa

# collect your reference files in a separate directory
# when we build indices it also creates a large numbe of other files that would
# just litter your current working directory
mkdir -p ~/refs/yeast
cp sc.fa ~/refs/yeast

# create the blast database, we&#39;ll call this target
$ ~/bin/makeblastdb -in ~/refs/yeast/sc.fa -dbtype nucl -out ~/refs/yeast/sc

# whoa, look at all the new files it has created
ls -l ~/refs/yeast/

# the name of the blast database does not need to match the reference
$ ~/bin/makeblastdb -in ~/refs/yeast/sc.fa -dbtype nucl -out ~/refs/yeast/hello-kitty

# take a look what happened
ls -l ~/refs/yeast/

# create a small dataset, we&#39;ll call this query
cat sc.fa | head -3 &amp;gt; query.fa

# if one were using the &amp;gt;&amp;gt; redirection it will append to the file
# this below generates a file with two records
cat sc.fa | head -3 &amp;gt;&amp;gt; double.fa
cat sc.fa | head -3 &amp;gt;&amp;gt; double.fa

# to get help on blast tools pass the -h (short help) or --help (long help)
blastn -h

# long version of help
blastn --help

# run a blastn search of your query against the database
~/bin/blastn -db ~/refs/yeast/sc -query query.fa &amp;gt; results.txt

# investigate the output
more results.txt

# you may reformat the output to a tabular form
~/bin/blastn -db ~/refs/yeast/sc -query query.fa -outfmt 7 | head
&lt;/pre&gt;
&lt;h2&gt;
Lecture 5 - String Matching&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# get the FASTA file from the course webpage
curl http://www.personal.psu.edu/iua1/courses/files/2013/data/lec4.fa -o lec4.fa

# you can search your sequences for a pattern
# this only works correctly if the sequences are all on one line
cat lec4.fa | grep &quot;TATATA&quot; --color=always | head -3

# &#39;extended&#39; grep, the . means anything
# three As followed by two anything, followed by three As
cat lec4.fa | egrep &quot;AAA..AAA&quot; --color=always | head -1

# look at the output and try to identify what has been matched and why below
# TGGAGTGAAAAGGAAAGACGGTCAGGAAATAGGTCGTGCTTTTGTATGGAAGGTCACCGAGGAAGTCACGGCTAACTACGTGCC

# match AAA followed by T or C followed by T or C followed by AAA
cat lec4.fa | egrep &quot;AAA[TC][TC]AAA&quot; --color=always | head -1

# match one AAA followed by one or more T or C followed by AAA
cat lec4.fa | egrep &quot;AAA[TC]+AAA&quot; --color=always | head -1

# match an A followed by three Ts
cat lec4.fa | egrep &#39;AT{3}&#39; --color=always | head -1

# match three ATs in a row
cat lec4.fa | egrep &quot;(AT){3}&quot; --color=always | head -1

# match one ore more ATG followed by two Cs
cat lec4.fa | egrep &#39;(ATG)+C{2}&#39; --color=always | head -1
&lt;/pre&gt;
&lt;h2&gt;
Lecture 4 - FASTA/FASTQ files&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# get the FASTA file from the course webpage
#curl http://www.personal.psu.edu/iua1/courses/files/2013/data/lec4.fa -o lec4.fa

# how many lines in the file
cat lec4.fa | wc -l

# count the number of sequences
cat lec4.fa | grep &quot;&amp;gt;&quot; | wc -l

# look at a few lines
head lec4.fa

# there is a nice little calculator called bc
# you can also invoke bc on its own, use bc -l, to exit type ctrl-D or quit
echo &quot;1+1&quot; | bc -l

# you can search your sequences for a pattern
# this only works correctly if the sequences are all on one line
cat lec4.fa | grep &quot;TATATA&quot; | head

# we can use awk to compute the lengths of each sequence
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print length($1) } &#39; | head

# what is the longest and/or shortest sequence?
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print length($1) } &#39; | sort -gr | head

# how many sequences of a certain length are there
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print length($1) } &#39; | sort -n | uniq -c | head

# sorting the length inversely gives you the longest sequences first
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print length } &#39; | sort -nr | uniq -c | head

# we are told that these groups of sequences may have the same start
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print substr($1, 1, 8) } &#39; | head

# produce a count for all the subsequences
cat lec4.fa | grep -v &quot;&amp;gt;&quot; | awk &#39;{ print substr($1, 1, 8) } &#39; | sort | uniq -c | sort -gr | head
&lt;/pre&gt;
The &lt;code&gt;NCBI Fasta description&lt;/code&gt; formats:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
GenBank                           gi|gi-number|gb|accession|locus
EMBL Data Library                 gi|gi-number|emb|accession|locus
DDBJ, DNA Database of Japan       gi|gi-number|dbj|accession|locus
NBRF PIR                          pir||entry
Protein Research Foundation       prf||name
SWISS-PROT                        sp|accession|name
Brookhaven Protein Data Bank (1)  pdb|entry|chain
Brookhaven Protein Data Bank (2)  entry:chain|PDBID|CHAIN|SEQUENCE
Patents                           pat|country|number
GenInfo Backbone Id               bbs|number
General database identifier       gnl|database|identifier
NCBI Reference Sequence           ref|accession|locus
Local Sequence identifier         lcl|identifier
&lt;/pre&gt;
&lt;h2&gt;
Lecture 3 - Awk Basics&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# write pipelines with clear inputs and outputs
cat features.gff | awk &#39;{ print $3 }&#39; | head -3

# the above is equivalent to
cat features.gff | cut -f 3 | head -3

# take the genes and show the last 9th column for each
cat features.gff | awk &#39; $3 == &quot;gene&quot; { print $9 }&#39; | head -3

# you can put the above program into a separate file and run it that way
cat features.gff | awk -f genefilter.awk | head -3

# we now build an awk script to simplify our file
cat features.gff | awk -f namesplit.awk | head -3

# create your simplified gff file
cat features.gff | awk -f namesplit.awk &amp;gt; short.gff

# check your file
head -3 short.gff

# find the length of genes
cat short.gff | awk &#39; { size = $5 - $4 + 1; print $3, size; } &#39; | head -3

# find the total lenght of genes with BEGIN/END patterns
cat short.gff | awk -f totalsize.awk
&lt;/pre&gt;
The &lt;code&gt;genefilter.awk&lt;/code&gt; file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
$3 == &quot;gene&quot; { print $9 }

&lt;/pre&gt;
The &lt;code&gt;namesplit.awk&lt;/code&gt; file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
$3 == &quot;gene&quot; {

    # split column 9 by the &quot;;&quot; and place the result into x
    split($9, x, &quot;;&quot;)

    # rename the second element for easier handling
    pair = x[2]

    # split the pair again by the &quot;=&quot; sign and place it into y
    split(pair, y, &quot;=&quot;)

    # assign this for easier use
    name = y[2]

    # place the name into the second columnd of the file, place for the attributes
    print $1, $2, name, $4, $5, $6, $7, $8, &quot;.&quot;
}
&lt;/pre&gt;
The &lt;code&gt;totalsize.awk&lt;/code&gt; file:&lt;br /&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
BEGIN {
    size = 0
}

{
    curr = $5 - $4 + 1
    size = size + curr
}

END {
    print &quot;Total size is&quot;, size
}
&lt;/pre&gt;
&lt;h2&gt;
Lecture 2 - Unix Basics&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
# every line that starts with the # sign is a comment that won&#39;t be executed!

# what folder are we in, change to a different folder if necessary
pwd

# get the data, the -o flag stores the result in the sc.gff
curl http://downloads.yeastgenome.org/curation/chromosomal_feature/saccharomyces_cerevisiae.gff -o sc.gff

# check to see what files we have here
ls

# check to see how many lines does the file have, -l flag restricts to line numbers only
wc -l sc.gff

# look at the first ten lines
head sc.gff

# look at the last ten lines
tail sc.gff

# page through the file (your paging program may be called less instead, joke: more is less)
# press space to go to the next page, press ESC to exit the pager
more sc.gff

# find lines that match a pattern
grep YAL060W sc.gff

# redirect output into a new file
grep YAL060W sc.gff &amp;gt; match.gff

# how many lines does the new file have
wc -l match.gff

# pipe (connect) streams into one-another with the | character

# how many lines of the file matche the word gene
cat sc.gff | grep gene | wc -l

# how many genes on chromosome 6
cat sc.gff | grep genes | grep VI | wc -l

# how many non-dubious genes on chromosome 6, the -v flag makes grep match the opposite
cat sc.gff | grep genes | grep VI | grep  -v Dubious | wc -l

# This file contains both the features but also the sequence.
# Most tools can deal with GFF files that only contain features.
# Break the file into two sections, before the word FASTA and after the word FASTA

# adding a -n to the cat command makes it print out the line numbers
cat -n sc.gff | head

# Find out at what line does the the word FASTA appear
cat -n sc.gff | grep FASTA

# Take a note of that number and make the head command take that many lines
# while you are at it get rid of the comments in the file to make a purely tabular file
head -22994 sc.gff | grep -v &#39;#&#39; &amp;gt; features.gff

# from now on we&#39;ll be using only the features.gff file

# cut out the type column, that is column 3
cut -f 3 features.gff | head

# you can sort these values as well
cut -f 3 features.gff | sort | head

# the uniq command combines consecutively identical values
cut -f 3 features.gff | sort | uniq -c | head
&lt;/pre&gt;
&lt;h2&gt;
Bash Customization&lt;/h2&gt;
To customize your bash enviroment edit your the file named &lt;code&gt;.profile&lt;/code&gt; (on a Mac) or &lt;code&gt;.bashrc&lt;/code&gt; (on Linux).&lt;br /&gt;

Make sure tab-completion works. Never type full filenames. Instead type them partially then then &lt;em&gt;tap the TAB&lt;/em&gt;, if nothing seems to
happen double tap TAB to see all options.&lt;br /&gt;

Getting a pretty prompt (yes, it does look crazy):&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;export PS1=&#39;\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ &#39;
&lt;/code&gt;&lt;/pre&gt;
Adding the &lt;code&gt;bin&lt;/code&gt; folder to your system path:&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;export PATH=$PATH:~/bin/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
Useful Constructs&lt;/h2&gt;
Numbering lines in a file pass the &lt;code&gt;-n&lt;/code&gt; flag to &lt;code&gt;cat&lt;/code&gt; (conCATenate):&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;cat -n filename.txt

# calc shortcut courtesy of TA Nick Stoler

# on a Mac
echo &#39;calc () { python -c &quot;from math import *; print $1&quot;; }&#39; &amp;gt;&amp;gt; ~/.profile

# on Linux
echo &#39;calc () { python -c &quot;from math import *; print $1&quot;; }&#39; &amp;gt;&amp;gt; ~/.bashrc

# you can then do
calc &quot;1 + 100&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
Miscellaneous&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;%20&lt;/code&gt; symbol is the HTML encoded space character.&lt;/li&gt;
&lt;/ul&gt;
IUPAC codes:&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;A   Adenine
C   Cytosine
G   Guanine
T   (or U)  Thymine (or Uracil)
R   A or G
Y   C or T
S   G or C
W   A or T
K   G or T
M   A or C
B   C or G or T
D   A or G or T
H   A or C or T
V   A or C or G
N   any base
. or -  gap
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
Note&lt;/h2&gt;
Some examples use what some may call a &lt;em&gt;useless cat&lt;/em&gt; (for amusing examples read the &lt;a href=&quot;http://partmaps.org/era/unix/award.html&quot;&gt;Useless Use of Cat Award&lt;/a&gt;).
We don&#39;t quite agree with the sentinment with respect of their uselessness.
Pipelines that clearly show the input on the left and output on the right
are easier to read and understand plus are more re-usable.&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;Go back to &lt;a href=&quot;https://www.blogger.com/courses/2013-BMMB-597D.html&quot;&gt;Applied Bioinformatics, BMMB 597D, Fall 2013&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;row&quot;&gt;

  &lt;hr /&gt;

       &lt;div class=&quot;muted text-center&quot;&gt;
Created by Istvan Albert • Last updated on Thursday, December 12, 2013 • Site powered by &lt;a href=&quot;https://github.com/ialbert/pyblue&quot;&gt;PyBlue&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

  var _gaq = _gaq || [];
  _gaq.push([&#39;_setAccount&#39;, &#39;UA-101522-1&#39;]);
  _gaq.push([&#39;_trackPageview&#39;]);

  (function() {
    var ga = document.createElement(&#39;script&#39;); ga.type = &#39;text/javascript&#39;; ga.async = true;
    ga.src = (&#39;https:&#39; == document.location.protocol ? &#39;https://ssl&#39; : &#39;http://www&#39;) + &#39;.google-analytics.com/ga.js&#39;;
    var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(ga, s);
  })();

&lt;/script&gt;

</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/5937374725125253760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/code-repository-for-applied.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5937374725125253760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5937374725125253760'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2014/02/code-repository-for-applied.html' title='Code Repository for applied bioinformatics'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-2456129519597986813</id><published>2009-03-10T02:53:00.006-04:00</published><updated>2009-03-10T03:00:49.079-04:00</updated><title type='text'>A proof that the Halting Problem is undecidable</title><content type='html'>VIA:http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;SCOOPING THE LOOP SNOOPER&lt;/span&gt;&lt;br /&gt;A proof that the Halting Problem is undecidable&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVzgYkD4yQz7qF1_8d_zdb6VlkGohi-YTtO-q1m9Rk9ZU4REj8idHIFS_uJ5r6er_1larvqfmmwycO_Efg6hSKjQJAgZmewCrewvDeNmjM6hfwhZWXxjda9gG7sROGjgSvufT3xznC58em/s1600-h/parrots.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 136px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVzgYkD4yQz7qF1_8d_zdb6VlkGohi-YTtO-q1m9Rk9ZU4REj8idHIFS_uJ5r6er_1larvqfmmwycO_Efg6hSKjQJAgZmewCrewvDeNmjM6hfwhZWXxjda9gG7sROGjgSvufT3xznC58em/s200/parrots.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5311449931045225010&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Geoffrey K. Pullum&lt;br /&gt;(School of Philosophy, Psychology and Language Sciences, University of Edinburgh)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;No general procedure for bug checks succeeds.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Now, I won&#39;t just assert that, I&#39;ll show where it leads:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I will prove that although you might work till you drop,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;you cannot tell if computation will stop.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;For imagine we have a procedure called P&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;that for specified input permits you to see&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;whether specified source code, with all of its faults,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;defines a routine that eventually halts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;You feed in your program, with suitable data,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;and P gets to work, and a little while later&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;(in finite compute time) correctly infers&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;whether infinite looping behavior occurs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;If there will be no looping, then P prints out `Good.&#39;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;That means work on this input will halt, as it should.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;But if it detects an unstoppable loop,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;then P reports `Bad!&#39; --- which means you&#39;re in the soup.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Well, the truth is that P cannot possibly be,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;because if you wrote it and gave it to me,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I could use it to set up a logical bind&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;that would shatter your reason and scramble your mind.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Here&#39;s the trick that I&#39;ll use -- and it&#39;s simple to do.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I&#39;ll define a procedure, which I will call Q,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;that will use P&#39;s predictions of halting success&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;to stir up a terrible logical mess.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;For a specified program, say A, one supplies,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;the first step of this program called Q I devise&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;is to find out from P what&#39;s the right thing to say&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;of the looping behavior of A run on A.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;If P&#39;s answer is `Bad!&#39;, Q will suddenly stop.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;But otherwise, Q will go back to the top,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;and start off again, looping endlessly back,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;till the universe dies and turns frozen and black.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;And this program called Q wouldn&#39;t stay on the shelf;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I would ask it to forecast its run on itself.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;When it reads its own source code, just what will it do?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;What&#39;s the looping behavior of Q run on Q?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;If P warns of infinite loops, Q will quit;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;yet P is supposed to speak truly of it!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;And if Q&#39;s going to quit, then P should say `Good&#39;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;--- which makes Q start to loop! (P denied that it would.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;No matter how P might perform, Q will scoop it:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Q uses P&#39;s output to make P look stupid.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Whatever P says, it cannot predict Q:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;P is right when it&#39;s wrong, and is false when it&#39;s true!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I&#39;ve created a paradox, neat as can be ---&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;and simply by using your putative P.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;When you posited P you stepped into a snare;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Your assumption has led you right into my lair.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;So where can this argument possibly go?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;I don&#39;t have to tell you; I&#39;m sure you must know.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;By reductio, there cannot possibly be&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;a procedure that acts like the mythical P.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;You can never find general mechanical means&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;for predicting the acts of computing machines.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;It&#39;s something that cannot be done. So we users&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;must find our own bugs. Our computers are losers!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/2456129519597986813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/proof-that-halting-problem-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/2456129519597986813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/2456129519597986813'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/proof-that-halting-problem-is.html' title='A proof that the Halting Problem is undecidable'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVzgYkD4yQz7qF1_8d_zdb6VlkGohi-YTtO-q1m9Rk9ZU4REj8idHIFS_uJ5r6er_1larvqfmmwycO_Efg6hSKjQJAgZmewCrewvDeNmjM6hfwhZWXxjda9gG7sROGjgSvufT3xznC58em/s72-c/parrots.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-6746852425985348316</id><published>2009-03-10T02:29:00.003-04:00</published><updated>2009-03-10T02:40:00.300-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Is J2ME good enough for development?</title><content type='html'>Recently our team are planing to research security and enforcement of mobile code, we are following the R&#39;s MCC.&lt;br /&gt;  And now I am facing a problem of finding a mobile platform. I decide to use J2ME. As J2ME is still used widely. Such as &lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHW5rs5p7ZTq6OHELy6rgC2sJ_Xy6eQsMlYF9sX8zwKQQB6oE9FzgsJf_lHOytoE24ft1j869fxoaDLaQw66Ihgtd1K9oVYyLzED2R3RgLH-aIGQOzS9QFLTgluBI6DI-jNaJCWwc1pnlL/s1600-h/blackberrymaintb1.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 132px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHW5rs5p7ZTq6OHELy6rgC2sJ_Xy6eQsMlYF9sX8zwKQQB6oE9FzgsJf_lHOytoE24ft1j869fxoaDLaQw66Ihgtd1K9oVYyLzED2R3RgLH-aIGQOzS9QFLTgluBI6DI-jNaJCWwc1pnlL/s200/blackberrymaintb1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5311444202975964370&quot; /&gt;&lt;/a&gt;&lt;br /&gt;nokia  &lt;br /&gt;   &lt;br /&gt;  3410  &lt;br /&gt;  3510i  &lt;br /&gt;  3585  &lt;br /&gt;  3590  &lt;br /&gt;  6310i  &lt;br /&gt;  6650  &lt;br /&gt;  3650  &lt;br /&gt;  7650  &lt;br /&gt;  9210  &lt;br /&gt;  9210i  &lt;br /&gt;  9290&lt;br /&gt;siemens  &lt;br /&gt;   &lt;br /&gt;  SL55      &lt;br /&gt;  M55      &lt;br /&gt;  S55      &lt;br /&gt;  S57    &lt;br /&gt;  C55   /   C(T)56        &lt;br /&gt;  2128        &lt;br /&gt;  M(T)50   /   M46        &lt;br /&gt;  3118      &lt;br /&gt;  SL45i      &lt;br /&gt;  6688i   &lt;br /&gt;motorola  &lt;br /&gt;   &lt;br /&gt;  v720  &lt;br /&gt;  v720i  &lt;br /&gt;  388  &lt;br /&gt;  388c  &lt;br /&gt;  830  &lt;br /&gt;  6288&lt;br /&gt;  Of cause, there are other reasons but for the security I can&#39;t refer them. But after the item about 1 year latter, I will plaster the technique on my blog.</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/6746852425985348316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/is-j2me-good-enough-for-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6746852425985348316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6746852425985348316'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/is-j2me-good-enough-for-development.html' title='Is J2ME good enough for development?'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHW5rs5p7ZTq6OHELy6rgC2sJ_Xy6eQsMlYF9sX8zwKQQB6oE9FzgsJf_lHOytoE24ft1j869fxoaDLaQw66Ihgtd1K9oVYyLzED2R3RgLH-aIGQOzS9QFLTgluBI6DI-jNaJCWwc1pnlL/s72-c/blackberrymaintb1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-6962413910063209366</id><published>2009-03-04T07:00:00.006-05:00</published><updated>2009-03-04T07:08:22.755-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="life"/><title type='text'>Eatting for a bright brain</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDSlB6TzSKA81oTA4eVA0Hyue34DJWDblsJRbTVITAPC6N0wzkc_mgBqpXWdnn_vt6PqErHM4ix7ollv68Gw3T-SYk5KbyjknUR9AibnDu7Jkr3C70qWuoTl0-q6cpc9ey5DJv5M2rfZhyphenhyphen/s1600-h/brain.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 160px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDSlB6TzSKA81oTA4eVA0Hyue34DJWDblsJRbTVITAPC6N0wzkc_mgBqpXWdnn_vt6PqErHM4ix7ollv68Gw3T-SYk5KbyjknUR9AibnDu7Jkr3C70qWuoTl0-q6cpc9ey5DJv5M2rfZhyphenhyphen/s200/brain.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5309302847772875266&quot; /&gt;&lt;/a&gt;&lt;br /&gt;    [Our Brain]&lt;br /&gt;    In the past, scientest believe that our brain has grown up at the age about 3. But recently I read an article that our brain is always growing.&lt;br /&gt;    And in the life of our brain, diet is very important. Our brain desire artiquated diet--nutriment that the nature had designed for brain hundreds of thousands of years before, and they are still the best food for brain. They are fruit, vegetables, marine product, meat, nuts, beans, corn, milk, suger, oil, kalium, natrium and so on. Nowadays some nutriment is not definitly from food but from factories. They are often excessive and do harm to our body easily soch as the refined oil. But there are still some things that can rescue our brain, for example, olive oil can protect memory, antioxidant can make you bright, happy and juvenility. Especially the fish oil, it is a new method to rescue brain. &lt;br /&gt;     There are also tonic to our brain, such as vitamin, folacin, thiamin, acerbity, selenium, qingkqo and so on, they can prevent brain from getting sick and make it efficient.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvIJ6ts1CUI4ooHeWliymh0h1OGtRRnaI9CnrwxSbsj_I0Db0SWWIt3lCew-qppDxtS0sMSswpkHBH3ii-aeLKzkGl-0gHkihGMp6IPtvlAd-KIuRyMg0LtO89Vvjk-MQiEgbmsYiHnt3i/s1600-h/20084291113109_2.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 150px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvIJ6ts1CUI4ooHeWliymh0h1OGtRRnaI9CnrwxSbsj_I0Db0SWWIt3lCew-qppDxtS0sMSswpkHBH3ii-aeLKzkGl-0gHkihGMp6IPtvlAd-KIuRyMg0LtO89Vvjk-MQiEgbmsYiHnt3i/s200/20084291113109_2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5309302290024664018&quot; /&gt;&lt;/a&gt;&lt;br /&gt;[Fruit and vagitables are good to our brain]</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/6962413910063209366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/eat-bright-brain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6962413910063209366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/6962413910063209366'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/eat-bright-brain.html' title='Eatting for a bright brain'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDSlB6TzSKA81oTA4eVA0Hyue34DJWDblsJRbTVITAPC6N0wzkc_mgBqpXWdnn_vt6PqErHM4ix7ollv68Gw3T-SYk5KbyjknUR9AibnDu7Jkr3C70qWuoTl0-q6cpc9ey5DJv5M2rfZhyphenhyphen/s72-c/brain.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-3532155747512056147</id><published>2009-03-03T09:05:00.003-05:00</published><updated>2009-03-03T09:14:05.276-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data structure and Algorithm"/><title type='text'>A new discovery of Programming</title><content type='html'>I was preparing to do excise in USACO about a number of mouths before, but what I do is so few!&lt;br /&gt;  Today I went to USACO and then find these words:&lt;br /&gt;&lt;blockquote&gt;Hal Burch conducted an analysis over spring break of 1999 and made an amazing discovery: there are only 16 types of programming contest problems! Furthermore, the top several comprise almost 80% of the problems seen at the IOI. Here they are:&lt;br /&gt;&lt;br /&gt;    * Dynamic Programming&lt;br /&gt;    * Greedy&lt;br /&gt;    * Complete Search&lt;br /&gt;    * Flood Fill&lt;br /&gt;    * Shortest Path&lt;br /&gt;    * Recursive Search Techniques&lt;br /&gt;    * Minimum Spanning Tree&lt;br /&gt;    * Knapsack&lt;br /&gt;    * Computational Geometry&lt;br /&gt;    * Network Flow&lt;br /&gt;    * Eulerian Path&lt;br /&gt;    * Two-Dimensional Convex Hull&lt;br /&gt;    * BigNums&lt;br /&gt;    * Heuristic Search&lt;br /&gt;    * Approximate Search&lt;br /&gt;    * Ad Hoc Problems&lt;br /&gt;&lt;br /&gt;The most challenging problems are Combination Problems which involve a loop (combinations, subsets, etc.) around one of the above algorithms - or even a loop of one algorithm with another inside it. These seem extraordinarily tricky to get right, even though conceptually they are ``obvious&#39;&#39;.&lt;br /&gt;&lt;br /&gt;If you can master solving just 40% of these problem types, you can almost guarantee a silver medal at the IOI. Mastering 80% moves you into the gold range almost for sure. Of course, `mastery&#39; is a tough nut to crack! We&#39;ll be supplying a plethora of problems so that you can hone your skills in the quest for international fame. &lt;/blockquote&gt;&lt;br /&gt;  I think data structure and algorithm is one of the most important thing to a computer science student. So from now on there will be a tag called &quot;data structure and algorithm&quot;. My teacher said it is simple because you only need to know a few definitions and what you need is to have the flexibility to use them.&lt;br /&gt;  Want to learn it, follow me!</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/3532155747512056147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/new-discovery-of-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3532155747512056147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3532155747512056147'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/new-discovery-of-programming.html' title='A new discovery of Programming'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-3311257144509521057</id><published>2009-03-01T08:25:00.004-05:00</published><updated>2009-03-01T08:49:12.730-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="life"/><title type='text'>Tired or boring?You need a rest!</title><content type='html'>I don&#39;t know why in this weekend, I don&#39;t want to do anything! When I sit before the computer, I feel boring, I don&#39;t want to work, no matter vsto or game.&lt;br /&gt;  I told this to my friends, and we finnally deside to waste a daytime to relax, so we play DaFuWeng(a kind of desk game made by paper and cards,in Chinese 大富翁) and table tenis, the we go to the KTV and sing songs for about two hours, then we go shopping.&lt;br /&gt;  When I came back I am free from any sick feelings and I only spare one hour and a half to solve my vsto problems.&lt;br /&gt;  It feel good!</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/3311257144509521057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/tired-or-boringyou-need-rest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3311257144509521057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3311257144509521057'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/03/tired-or-boringyou-need-rest.html' title='Tired or boring?You need a rest!'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-3612681275050117335</id><published>2009-02-27T08:06:00.000-05:00</published><updated>2009-02-27T08:17:17.624-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New youth"/><title type='text'>New youth</title><content type='html'>Recently I realized that I am an adult! Yes, there are only 2 years to my mother&#39;s retiring and there are only few years to my working. I am 20 years old now, I am a youth! I should shoulder ability from now on.&lt;br /&gt;  From now on I will be a youth, a new youth. From now on I should think something different and my times is coming! I should not only sleep and play games all the day without thinking anything.&lt;br /&gt;  Though I have done something but I still have a lot of things to do!&lt;br /&gt;  So from now on there will be a tag that record other youths&#39; which are standing and my own thought!&lt;br /&gt;  In my opinion a excellent youth should be a man who is self-confident, optimistic, diligent and having his own thought.</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/3612681275050117335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/new-youth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3612681275050117335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/3612681275050117335'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/new-youth.html' title='New youth'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-5521134246723273363</id><published>2009-02-27T02:20:00.000-05:00</published><updated>2009-02-27T02:45:47.689-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software Engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="Teacher forum"/><title type='text'>Software Engineering--Is there a useful model</title><content type='html'>In today&#39;s lecture--Software Engineering,we talk about the models in Software Engineering which can discribe the developing progress. We talk about models from the formal Waterfall Model to the lattest Fountain model. My teacher Haiyan Che(in Chinese 车海燕) said that software developing is an iteration progress, and the OO(object-oriented) is the most useful way now, so the Fountain model seems the best. &lt;br /&gt;  But in my opinion, those models still have a unity. In my formal two years I have used most of the thoughts of these models to develop, But to manage a item is still a very very difficult thing.&lt;br /&gt;  Sometimes I even cann&#39;t stand the enormous pressure! I think managing a item is a thing which need courage. You should always shoulder huge pressure. Sometimes I even think I cann&#39;t stand any more!&lt;br /&gt;  As to my formal experience of failure you can see my javaeye(&lt;a href=&quot;http://bbsunchen.javaeye.com&quot;&gt;http://bbsunchen.javaeye.com&lt;/a&gt;) blog which is written in Chinese. I create this blog is in the hope of ask for people&#39;s help. But it seems that there are few people who have enough experience. I think I am lack of enough good experience.&lt;br /&gt;  In my college, students will form a 4-6 members&#39; team. In these teams, all the students are lack of experience, so they will have to go through a hard period. Fortunately, the team which I am in do well in this period and we create many excellent software.&lt;br /&gt;  To come back to the subject, I am thirst for a really useful model which can guide the developing and a really useful method which can decrease the pressure that the developers have, especially the managers have!&lt;br /&gt;  To this subject, I create the tag &quot;Software Engineering&quot; for sustained attention.&lt;br /&gt;  Welcome to share your opinion!</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/5521134246723273363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/software-engineering-is-there-useful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5521134246723273363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5521134246723273363'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/software-engineering-is-there-useful.html' title='Software Engineering--Is there a useful model'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-5705812251492835571</id><published>2009-02-26T04:19:00.000-05:00</published><updated>2009-02-27T02:49:44.272-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="life"/><title type='text'>How to to take precaution against computer game</title><content type='html'>Recently I want to get rid of the computer game. I do not mean that game is a bad thing, but you know I am a man who will forget any thing when playing games. Once I start to play games, I will be addiction to them and can not stop.&lt;br /&gt;  I think that is because when I start to play game I will feel guilty for not studying but playing. But I think there are other reasons that make me addict to it.&lt;br /&gt;I do not know how to control myself so I just prevent me from playing them.&lt;br /&gt;  But you know it is a hard thing! There are a lot of people playing games every day around me! I just can not stand this situation!&lt;br /&gt;  What I do now is to convince myself to get up from the computer and have some exercise and do some games without computer such as playing card and so on. But you just cann&#39;t find a person to play with you because your friends are playing computer games!&lt;br /&gt;  Can any one help me?!</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/5705812251492835571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/how-to-to-take-precaution-against.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5705812251492835571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/5705812251492835571'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/how-to-to-take-precaution-against.html' title='How to to take precaution against computer game'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-988827439772786602</id><published>2009-02-26T02:54:00.000-05:00</published><updated>2009-02-27T02:14:53.335-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teacher forum"/><title type='text'>How to learn computer science</title><content type='html'>From now on, there will be an tag in my blog called &quot;Teacher forum&quot;. In these articles there will be important opinions from which I learn in my usual classes.&lt;br /&gt;  This time I want to talk about how to learn computer science(CS) and Algorithms. Computer science is often said to be the hardest thing to learn in the world because you should learn many math and you should always think about a lot of things when you solve these things.&lt;br /&gt;  Here I don&#39;t want to talk about what I think about this questions. As I said before, I just introduce my teachers&#39; opinions. In today&#39;s classes, my teacher of Data Mining and Artificial Intelligence(数据挖掘和人工智能) whose name is JiWen Guan(in Chinese 管纪文)said &quot;If you want to learn things, you should master the basic definition and understand them. Only in this way can you learn them. This is also right to Computer Science. After mastering them, there will be Aura in your brain when you solve problems.&quot; Guan is the most famous teacher in China in the area of Computer Science and I respect him very much. He is in his 70th but can have class for about 2 hours with high spirit.&lt;br /&gt;  Another thing I want to refer in this article is my Algorithms class. My teacher is XiaoDong Zhu(in Chinese 朱晓冬), he is a young teache in Jilin Univisity. When he is talking, you will forget the time.&lt;br /&gt;  Today he talk about a question. There is eight players and one is definitly better than another. That is to say when any two of them have a match there will be a winner and a loser, in the same time ,no matter when and where they have a match, the winner will always be the winner and the loser will be always be the loser.Then how many matches do they have to have to find the champion.The answer is 8.&lt;br /&gt;  Then how many to find the champion and the second place?&lt;br /&gt;  You can solve this problem like this:&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUrVQkdKs4up0CNcGIODpkhGlerytljOWmgt9Ms86h6BQE2A3oyXAJZMEGeyZS0_4IKmYDpqV5uMwGl0vjOQMaT12ISkWp8Ejc7l_3ZKEnBId1WWt_ZS2pE6vAb4Zym-gTn07C3P1IEZS2/s1600-h/play.bmp&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 118px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUrVQkdKs4up0CNcGIODpkhGlerytljOWmgt9Ms86h6BQE2A3oyXAJZMEGeyZS0_4IKmYDpqV5uMwGl0vjOQMaT12ISkWp8Ejc7l_3ZKEnBId1WWt_ZS2pE6vAb4Zym-gTn07C3P1IEZS2/s200/play.bmp&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307018898384511618&quot; /&gt;&lt;/a&gt;&lt;br /&gt;  In this picture, there are 8 matches to find the champion, and the rest thing is to find the second. You will find that the second is the one that have had match with the champion, or he will not lose. So you just have to select the there players and let them have 2 matches. So the answer is 10!</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/988827439772786602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/how-to-learn-computer-science.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/988827439772786602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/988827439772786602'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/how-to-learn-computer-science.html' title='How to learn computer science'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUrVQkdKs4up0CNcGIODpkhGlerytljOWmgt9Ms86h6BQE2A3oyXAJZMEGeyZS0_4IKmYDpqV5uMwGl0vjOQMaT12ISkWp8Ejc7l_3ZKEnBId1WWt_ZS2pE6vAb4Zym-gTn07C3P1IEZS2/s72-c/play.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7232704654388518177.post-703319377299039180</id><published>2009-02-26T02:25:00.001-05:00</published><updated>2009-02-27T22:49:47.591-05:00</updated><title type='text'>My new home-Hello World</title><content type='html'>Hi everyone, my name is bbsunchen. Sunchen is my Chinese name and bb is in the name of my home town BengBu.&lt;br /&gt;From now on, I will use this blog. At the beginning, I used the Baidu blog http:hi.baidu.com/bbsunchen.&lt;br /&gt;I do not mean that google is better than baidu, just because I use the gmail, so I think it may be more convenient to use this bloger. Even more, I think that hi-baidu have more functions than google-blogger.So when I public a new article, I will update the hi-baidu blog.&lt;br /&gt;Another reason I create this blog is to make my blog more international, that is to say I want much more people to see my article, to see my thought, so we can conmunicate with each other.&lt;br /&gt;In this blog, you will see articles about life styles, computer science, math, art and economy. There will be no words about policy and so on just because this is only a place to make academic exchanges. So please value my opinion and value this place.&lt;br /&gt;As English is the most popular language in the world, the author will respect most people&#39;s habits even though I am a Chinese and even though my English is not so good.&lt;br /&gt;Welcome to exchange your thought and welcome to correct me.</content><link rel='replies' type='application/atom+xml' href='http://bbsunchen.blogspot.com/feeds/703319377299039180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/my-new-home.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/703319377299039180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7232704654388518177/posts/default/703319377299039180'/><link rel='alternate' type='text/html' href='http://bbsunchen.blogspot.com/2009/02/my-new-home.html' title='My new home-Hello World'/><author><name>channing</name><uri>http://www.blogger.com/profile/13917730595632271018</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>