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

<channel>
	<title>有个博客 &#187; Python</title>
	<atom:link href="http://www.yelinsky.com/blog/archives/tag/python/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yelinsky.com/blog</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 11:34:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>一些高通量测序数据处理软件</title>
		<link>http://www.yelinsky.com/blog/archives/395.html</link>
		<comments>http://www.yelinsky.com/blog/archives/395.html#comments</comments>
		<pubDate>Sun, 13 Nov 2011 15:17:29 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[生物技术]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[高通量测序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=395</guid>
		<description><![CDATA[下面是几个被广泛使用的高通量测序数据分析软件，主要是针对微生物的，并且主要用于分析16S rDNA PCR产物或宏基因组（Metagenome）高通量测序数据，了解样品中细菌或古菌等微生物的种群及功... ]]></description>
			<content:encoded><![CDATA[<p>下面是几个被广泛使用的<a href="http://www.yelinsky.com/blog/archives/368.html" target="_blank">高通量测序数据分析</a>软件，主要是针对微生物的，并且主要用于分析16S rDNA PCR产物或宏基因组（Metagenome）<a href="http://www.yelinsky.com/blog/archives/tag/%e9%ab%98%e9%80%9a%e9%87%8f%e6%b5%8b%e5%ba%8f" target="_blank">高通量测序</a>数据，了解样品中细菌或古菌等微生物的种群及功能的多样性和丰度。</p>
<p><strong>1. Mothur</strong></p>
<p>网站：<a href="http://www.mothur.org/" target="_blank">http://www.mothur.org/</a></p>
<p>第一次见到这个软件的时候，就被它的架构深深折服了，设计的实在是太好了！包含了各种各样常用的序列处理功能，并且功能随着开发的进行，很多新的功能和模块不断被整合进去。在Linux、Windows和Mac系统下都可以安装，使用起来非常简，网站上的使用说明也非常清晰、条理，稍微看一下，几个小时甚至更短时间就可以学会。<br />
<a href="http://www.yelinsky.com/blog/archives/390.html" target="_blank">在Ubuntu中通过源代码编译安装Mothur的方法</a>。</p>
<p><strong>2. MEGAN</strong></p>
<p>网站：<a href="http://ab.inf.uni-tuebingen.de/software/megan/" target="_blank">http://ab.inf.uni-tuebingen.de/software/megan/</a></p>
<p>注意是MEGAN，不是MEGA。这个软件设计的也非常好，它主要是使用LCA算法，分析BLAST结果。除了进行物种的丰度和多样性分析，也可以进行功能基因的多样性和丰度分析。用Java写的，各种平台都可以运行。</p>
<p><strong>3. Qiime</strong></p>
<p>网站：<a href="http://qiime.sourceforge.net/" target="_blank">http://qiime.sourceforge.net/</a></p>
<p>这是一个专门用于分析微生物PCR产物高通量测序数据的pipeline，主要用Python写的，也整合了很多其它的工具包。这个软件的特点是生成的图挺漂亮的，但是使用起来不是非常容易，甚至对于很多人来说成功在电脑上安装都是非常困难的。只支持Linux和Mac系统，在Windows下使用必须在虚拟机中安装。最简单的安装方法是在亚马逊的<a href="http://www.yelinsky.com/blog/archives/349.html" target="_blank">云计算</a>平台EC2 image中安装使用。</p>
<p><strong>4. STAMP</strong></p>
<p>网站：<a href="http://kiwi.cs.dal.ca/Software/STAMP" target="_blank">http://kiwi.cs.dal.ca/Software/STAMP</a></p>
<p>这个软件主要用于分析宏基因组（Metagenome）高通量测序数据，对多个样品的Metagenomic profiles进行统计分析和比较。各种系统下都可以安装使用。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="一些高通量测序数据处理软件" href="http://www.yelinsky.com/blog/archives/395.html">http://www.yelinsky.com/blog/archives/395.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/390.html" title="在Ubuntu中安装Mothur (2011年10月20日)">在Ubuntu中安装Mothur</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/365.html" title="19个高通量测序序列拼接组装软件 (2011年5月17日)">19个高通量测序序列拼接组装软件</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/349.html" title="高通量测序与云计算 (2011年2月27日)">高通量测序与云计算</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/327.html" title="高通量测序 (2010年10月12日)">高通量测序</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/402.html" title="生物信息云计算模式 (2011年12月11日)">生物信息云计算模式</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/386.html" title="模拟DGGE图像的软件 (2011年10月8日)">模拟DGGE图像的软件</a> (6)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/377.html" title="Win7和Ubuntu双系统问题 (2011年8月12日)">Win7和Ubuntu双系统问题</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/387.html" title="Google涉足DNA数据库领域 (2011年10月14日)">Google涉足DNA数据库领域</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/395.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>在Ubuntu中安装Biopython</title>
		<link>http://www.yelinsky.com/blog/archives/388.html</link>
		<comments>http://www.yelinsky.com/blog/archives/388.html#comments</comments>
		<pubDate>Mon, 17 Oct 2011 13:04:20 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[电脑相关]]></category>
		<category><![CDATA[Biopython]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=388</guid>
		<description><![CDATA[Biopython是Python的计算分子生物学和生物信息学工具包，它使得python在生物学数据处理中变得更加强大和高效，在Windows中安装biopython非常简单，下载之后，双击然后一路点下一步就可以了。在Linu... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://biopython.org/" target="_blank">Biopython</a>是<a href="http://www.yelinsky.com/blog/archives/344.html">Python</a>的计算分子生物学和生物信息学工具包，它使得python在生物学数据处理中变得更加强大和高效，在Windows中安装biopython非常简单，下载之后，双击然后一路点下一步就可以了。在Linux中安装有多种方法，以Ubuntu(10.04)为例：</p>
<p>方法一：使用apt-get install方式安装<br />
sudo apt-get install python-biopython<br />
只有一行命令，可是这种方法安装的不是最新版本，很多新的功能不能用，非常不爽，不建议使用这种方法安装。</p>
<p>方法二：使用easy_install安装<br />
（1）安装python-dev，不然会出现Setup script exited with error: command &#8216;gcc&#8217; failed with exit status 1错误<br />
sudo apt-get install python-dev<br />
（2）安装easy_install工具<br />
sudo apt-get install python-setuptools<br />
（3）安装biopython<br />
sudo easy_install -f http://biopython.org/DIST/ biopython  (DIST/和biopython之间有个空格)<br />
（4） 安装Numpy<br />
从http://numpy.scipy.org/下载numpy，现在的最新版本是numpy-1.6.1.tar.gz<br />
tar -xzvpf numpy-1.6.1.tar.gz<br />
cd numpy-1.6.1/<br />
python setup.py build<br />
sudo python setup.py install</p>
<p>还可以继续安装一些其它的dependencies，如flex，ReportLab等等，暂时不装，需要的时候再装也可以。</p>
<p>这里有<a href="http://biopython.org/DIST/docs/install/Installation.html" target="_blank">biopython的详细安装说明</a>，好长的一大篇，看了头会晕。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="在Ubuntu中安装Biopython" href="http://www.yelinsky.com/blog/archives/388.html">http://www.yelinsky.com/blog/archives/388.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/298.html" title="批量Blast小程序 (2010年7月26日)">批量Blast小程序</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/344.html" title="功能强大而又简单易学的编程语言Python (2011年2月5日)">功能强大而又简单易学的编程语言Python</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/346.html" title="测试了一下编程水平 (2011年2月6日)">测试了一下编程水平</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/390.html" title="在Ubuntu中安装Mothur (2011年10月20日)">在Ubuntu中安装Mothur</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/319.html" title="动态作图小程序 (2010年9月5日)">动态作图小程序</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/377.html" title="Win7和Ubuntu双系统问题 (2011年8月12日)">Win7和Ubuntu双系统问题</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/380.html" title="FASTA文件拆分与合并 (2011年8月22日)">FASTA文件拆分与合并</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/388.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FASTA文件拆分与合并</title>
		<link>http://www.yelinsky.com/blog/archives/380.html</link>
		<comments>http://www.yelinsky.com/blog/archives/380.html#comments</comments>
		<pubDate>Mon, 22 Aug 2011 13:27:49 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[电脑相关]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=380</guid>
		<description><![CDATA[Linux里面的命令行用习惯之后的感觉真是太爽了，一个命令，能搞定很多东西，比如fasta文件拆分、提取与合并，非常简单。 很久之前还写过一个小软件用于合并多个fasta文件，还有用BioEdit合并... ]]></description>
			<content:encoded><![CDATA[<p>Linux里面的命令行用习惯之后的感觉真是太爽了，一个命令，能搞定很多东西，比如fasta文件拆分、提取与合并，非常简单。<br />
很久之前还写过一个小软件用于<a href="http://www.yelinsky.com/blog/archives/227.html">合并多个fasta文件</a>，还有<a href="http://www.yelinsky.com/blog/archives/275.html">用BioEdit合并多个基因序列文件</a>，现在想想真是too naive！</p>
<p><strong>FASTA文件拆分：</strong><br />
1. 从a.fasta中提取第10至第20个序列存到b.fasta中</p>
<p>-</p>
<pre>awk -v RS='&gt;' 'NR&gt;1{i++}i&gt;=<span style="color: #ff0000;">10</span>&amp;&amp;i&lt;=<span style="color: #ff0000;">20</span>{print "&gt;"$0}' a.fasta|sed '/^$/d'&gt;b.fasta</pre>
<p>上面命令行中的红色的10和20可以换为其它数字</p>
<p>2.将input.fasta中第每一条序列保存到一个文件中, 这个是在网上看到的，链接在<a href="http://chrisduran.eu/bioinformatics/linux-and-osx-commands-for-working-with-fasta-files/" target="_blank">这里</a>。</p>
<pre>awk '/^&gt;/{f=++d".fasta"} {print &gt; f}' input.fasta</pre>
<p><strong>FASTA文件合并：</strong></p>
<pre>cat *.fasta &gt; output.fasta</pre>
<p>awk是Unix/Linux下的一种用于文本处理的编程语言，Sed是Unix/Linux下的一种流编辑器。功能都非常强大。</p>
<p>当然这些操作用Python或Perl编程也很容易实现，但不如命令行这么直截了当。<br />
另外，在Windows下如果安装了Cygwin这个软件，也可以使用这些命令。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="FASTA文件拆分与合并" href="http://www.yelinsky.com/blog/archives/380.html">http://www.yelinsky.com/blog/archives/380.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/298.html" title="批量Blast小程序 (2010年7月26日)">批量Blast小程序</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/344.html" title="功能强大而又简单易学的编程语言Python (2011年2月5日)">功能强大而又简单易学的编程语言Python</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/278.html" title="酶切位点分析 (2009年9月26日)">酶切位点分析</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/346.html" title="测试了一下编程水平 (2011年2月6日)">测试了一下编程水平</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/390.html" title="在Ubuntu中安装Mothur (2011年10月20日)">在Ubuntu中安装Mothur</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/388.html" title="在Ubuntu中安装Biopython (2011年10月17日)">在Ubuntu中安装Biopython</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/319.html" title="动态作图小程序 (2010年9月5日)">动态作图小程序</a> (4)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/380.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在亚马逊EC2上部署Apache和Django</title>
		<link>http://www.yelinsky.com/blog/archives/370.html</link>
		<comments>http://www.yelinsky.com/blog/archives/370.html#comments</comments>
		<pubDate>Sat, 11 Jun 2011 11:18:00 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[互联网络]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[高通量测序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/archives/370.html</guid>
		<description><![CDATA[EC2是亚马逊（Amazon.com）提供的弹性云计算服务； Apache是一个跨平台的Web服务器端软件，可以使Python、PHP、Perl等语言编写的程序运行在服务器上； Django是一个Web程序框架，应用这个框架，可以... ]]></description>
			<content:encoded><![CDATA[<p>EC2是亚马逊（Amazon.com）提供的弹性云计算服务；<br />
Apache是一个跨平台的Web服务器端软件，可以使Python、PHP、Perl等语言编写的程序运行在服务器上；<br />
Django是一个Web程序框架，应用这个框架，可以使Python Web程序的编写变得更加简单；<br />
Amazon S3是亚马逊提供的云存储服务；<br />
Amazon EC2与Amazon S3结合, 几乎可以提供无限的存储空间和无限的计算能力。</p>
<p>以上这些东西综合在一起，就可以用<a href="http://www.yelinsky.com/blog/archives/344.html">简单易用的Python</a>做出一个提供海量数据处理功能的网站，感觉这玩意儿应该在<a href="http://www.yelinsky.com/blog/archives/368.html" target="_blank">高通量测序数据数据处理</a>方面有点用。</p>
<p>下面是在亚马逊EC2上部署Apache和Django的步骤：<br />
<span id="more-370"></span><br />
0. 首先需要AWS上在建立一个EC2 Instance，使用Ubuntu Linux系统，可以直接在Community AMI中直接选择Ubuntu官方的AMI，ID为ami-cef405a7，EC2 Instance的建立过程并不复杂，这里就不细说了。注意：建好之后用SSH登录的时候，用户名是ubuntu，不是ec2-user，也不是root.</p>
<p>1. 安装apache<br />
sudo apt-get install apache2</p>
<p>2. 下载安装Django<br />
wget http://www.djangoproject.com/download/1.3/tarball/<br />
下载下来的文件名是index.html，改一下名<br />
mv index.html Django-1.3.tar.gz<br />
解压<br />
tar xzvf Django-1.3.tar.gz<br />
安装<br />
cd Django-0.91<br />
sudo python setup.py install</p>
<p>3. 安装 mod_python<br />
apt-get install libapache2-mod-python</p>
<p>4. 重启Apache<br />
/etc/init.d/apache2 start</p>
<p>5. 进入/etc/apache2/sites-available目录，复制default文件并重命名为mysite<br />
编辑mysite文件 将其中的/var/www 替换成 /home/ubuntu</p>
<p>激活mysite<br />
a2ensite mysite</p>
<p>然后运行/etc/init.d/apache2 reload</p>
<p>6. 编辑 /etc/apache2/httpd.conf，添加下面内容<br />
SetHandler python-program<br />
PythonHandler django.core.handlers.modpython<br />
SetEnv DJANGO_SETTINGS_MODULE mysite.settings<br />
PythonPath “['/home/ubuntu', '/home/ubuntu/mysite'] + sys.path”</p>
<p>7. 重启Apache<br />
/etc/init.d/apache2 restart</p>
<p>现在，将EC2 的Public DNS（类似这样ec2-xx-xx-xx-xx.compute-1.amazonaws.com）复制到浏览器地址栏里，就可以看到结果了。</p>
<p>如果要通过自己的域名访问将上面的部署，那只需要在域名管理中创建一个CNAME记录，并指向上面那个地址即可。</p>
<p>接下来的任务就是专心用Python写程序了。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="在亚马逊EC2上部署Apache和Django" href="http://www.yelinsky.com/blog/archives/370.html">http://www.yelinsky.com/blog/archives/370.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/349.html" title="高通量测序与云计算 (2011年2月27日)">高通量测序与云计算</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/402.html" title="生物信息云计算模式 (2011年12月11日)">生物信息云计算模式</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/390.html" title="在Ubuntu中安装Mothur (2011年10月20日)">在Ubuntu中安装Mothur</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/387.html" title="Google涉足DNA数据库领域 (2011年10月14日)">Google涉足DNA数据库领域</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/380.html" title="FASTA文件拆分与合并 (2011年8月22日)">FASTA文件拆分与合并</a> (1)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/365.html" title="19个高通量测序序列拼接组装软件 (2011年5月17日)">19个高通量测序序列拼接组装软件</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/339.html" title="高通量测序的应用 (2011年1月13日)">高通量测序的应用</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/351.html" title="高通量测序价格 (2011年3月6日)">高通量测序价格</a> (6)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/370.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>高通量测序数据分析</title>
		<link>http://www.yelinsky.com/blog/archives/368.html</link>
		<comments>http://www.yelinsky.com/blog/archives/368.html#comments</comments>
		<pubDate>Sat, 28 May 2011 15:15:08 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[生物技术]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[高通量测序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=368</guid>
		<description><![CDATA[2011.7.29更新：现在想想，下面这些以前的观点不是完全正确，处理PCR产物高通量测序的数据，用PC勉强可以，但是处理宏基因组数据（一般数据量都是1G以上），最起码得用工作站电脑，最好能... ]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #ff0000;">2011.7.29更新</span></strong>：<span style="color: #0000ff;">现在想想，下面这些以前的观点不是完全正确，处理PCR产物高通量测序的数据，用PC勉强可以，但是处理宏基因组数据（一般数据量都是1G以上），最起码得用工作站电脑，最好能用大型机</span>。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>众所周知，数据分析是<strong><a href="http://www.yelinsky.com/blog/archives/tag/%e9%ab%98%e9%80%9a%e9%87%8f%e6%b5%8b%e5%ba%8f" target="_blank">高通量测序</a></strong>应用于生物研究最关键的步骤，分析不好，得到的海量数据无异于一堆垃圾。下面是刚刚接触高通量测序数据分析的同学可能比较关心的几个问题。需要说明的是：这些都是基于微生物领域且数据量不是特别大的情况。其它领域（植物、动物、医学等等）的高通量测序数据处理我暂时还不太了解。</p>
<p><strong>1. 是不是一定要用大型计算机？</strong><br />
除了序列拼接组装以外，其它分析不是一定要大型计算机，在普通的PC上也可以进行一些处理，当然，买一台或几台高性能的工作站电脑，能显著加快数据处理的速度。<br />
<span id="more-368"></span><br />
<strong>2. 是不是一定要用Linux系统？</strong><br />
也不一定非用Linux不可，在Window下可以完成部分数据处理。如果你想以后长期从事高通量测序数据分析工作，熟悉Linux是必须的，但是如果你是为了处理一下数据混混毕业（中国有很多研究生是这样，这是事实），我觉得没必要额外花些时间去学习使用Linux，虽然现在<a href="http://www.yelinsky.com/blog/archives/359.html">Linux已经变得不那么难用了</a>。</p>
<p><strong>3. <a href="http://www.yelinsky.com/blog/archives/365.html">序列拼接</a>又要用大型计算机又要用Linux系统怎么办？</strong><br />
方法有两个：(1) 找商业公司组装拼接, (2)用亚马逊的<a href="http://www.yelinsky.com/blog/archives/349.html">云计算</a>服务。</p>
<p><strong>4. 是不是必须自己写些程序？</strong><br />
数据处理中经常要对文本文件中的内容进行调整、筛选、比对，据我所知现在还没有什么软件可以非常灵活的完成这些操作，将来也很难有，因为这些操作都是与实际数据相关的，没有统一的规律。现在大部分人都是用脚本程序来完成这些任务，因此数据分析过程中需要自己写点程序。在这方面比较适合的编程语言是Python和Perl，我觉得<a href="http://www.yelinsky.com/blog/archives/344.html">Python比较好用</a>也比较有前途，但很多人还是用Perl，问其原因，得到的答复是是师兄师姐都用Perl，不得不用Perl。</p>
<p><strong>5. 数据如何分析？</strong><br />
这个问题太难回答了，并且我觉得目前及将来很长一段时间，在网上应该找不到像<a href="http://www.yelinsky.com/blog/archives/306.html">DGGE操作步骤</a>、<a href="http://www.yelinsky.com/blog/archives/307.html">T-RFLP操作步骤</a>、<a href="http://www.yelinsky.com/blog/archives/277.html">DGGE数据分析方法</a>等这类非常详细的教程类的东西。因为高通量测序技术及其数据分析方法现在发展非常快，时刻在变。唯一的办法就是自己去研究Paper，研究相关软件的说明书。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="高通量测序数据分析" href="http://www.yelinsky.com/blog/archives/368.html">http://www.yelinsky.com/blog/archives/368.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/349.html" title="高通量测序与云计算 (2011年2月27日)">高通量测序与云计算</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/402.html" title="生物信息云计算模式 (2011年12月11日)">生物信息云计算模式</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/390.html" title="在Ubuntu中安装Mothur (2011年10月20日)">在Ubuntu中安装Mothur</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/387.html" title="Google涉足DNA数据库领域 (2011年10月14日)">Google涉足DNA数据库领域</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/380.html" title="FASTA文件拆分与合并 (2011年8月22日)">FASTA文件拆分与合并</a> (1)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/365.html" title="19个高通量测序序列拼接组装软件 (2011年5月17日)">19个高通量测序序列拼接组装软件</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/339.html" title="高通量测序的应用 (2011年1月13日)">高通量测序的应用</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/351.html" title="高通量测序价格 (2011年3月6日)">高通量测序价格</a> (6)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/368.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>测试了一下编程水平</title>
		<link>http://www.yelinsky.com/blog/archives/346.html</link>
		<comments>http://www.yelinsky.com/blog/archives/346.html#comments</comments>
		<pubDate>Sun, 06 Feb 2011 15:27:50 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[小程序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=346</guid>
		<description><![CDATA[以前读本科的时候总喜欢偶尔编个小程序啥的，可是那时候买不起电脑，经常都是写了程序之后在脑子里运行几次就算了，每天做梦都想有台自己的电脑，那滋味……后来读研究生的时候有电... ]]></description>
			<content:encoded><![CDATA[<p>以前读本科的时候总喜欢偶尔编个小程序啥的，可是那时候买不起电脑，经常都是写了程序之后在脑子里运行几次就算了，每天做梦都想有台自己的电脑，那滋味……后来读研究生的时候有电脑了，可是太忙了，每天除了做实验，就是在琢磨怎么赚钱，把编程序这事儿就逐渐放下了，也都忘的差不多了。前段时间由于处理<a href="http://www.yelinsky.com/blog/archives/327.html">高通量测序</a>的结果需要写些程序，于是又比较系统的复习了一下，尤其比较多地看了些关于<a href="http://www.yelinsky.com/blog/archives/344.html">Python</a>的资料。正好最近Facebook搞了个<a href="http://www.facebook.com/hackercup" target="_blank">Hacker Cup编程比赛</a>，就去试了一下。<br />
<span id="more-346"></span><br />
这个比赛分为四个Round：Quanlification Round, Round I, Round II和Final Round，目前还没结束，正在进行中。Quanlification Round有三道题目，在三天的时间内，只要成功解出其中一道，就可以通过，页面上显示有98551确定参加，59739人可能参加，最后只有5846人通过，我做了两道题，对了一道错了一道，排名2515，<a href="http://www.facebook.com/hackercup/scoreboard.php/?round=4&#038;page=26" target="_blank">这个页面</a>前面编号2515的就是我。 有点意外，一个世界范围的编程比赛，我这点三脚猫功夫竟然也能混进去。</p>
<p>下面的Round I, Round II和Final Round难度就提高了很多，每个Round三道题目，要在<strong>三个小时</strong>内至少解出一道才能通过，我试了一下，明显感觉力不从心，有些题目根本看不懂，有的能看懂了，不知道用什么算法，还有些能看懂，也知道怎么解，可是3个小时在程序上实现不了，比如有个题目叫做“After the Dance Battle”，可以把已知的矩阵构建成图，然后用图论中的经典算法Dijkstra算法去找最短路径。可是在3个小时内，程序搞不定……于是，Round I就没通过。事实也说明这三个小时的规定难度太大了，Facebook本来打算从进入Round I的5846人中选3000人进入Round II，结果最后进入Round II的远远不到3000人。当然也看到了很多牛人，在三个小时内，可以全部解出三道题目，真是厉害！</p>
<p>Facebook的Hacker Cup编程比赛这次是第一次举行，以后每年一次。与这个类似的，还有Google的<a href="http://code.google.com/codejam/" target="_blank">Code Jam</a>，网易的“<a href="http://www.youdao.com/nanti/index.html" target="_blank">有道难题</a>”等等。</p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="测试了一下编程水平" href="http://www.yelinsky.com/blog/archives/346.html">http://www.yelinsky.com/blog/archives/346.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/298.html" title="批量Blast小程序 (2010年7月26日)">批量Blast小程序</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/319.html" title="动态作图小程序 (2010年9月5日)">动态作图小程序</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/344.html" title="功能强大而又简单易学的编程语言Python (2011年2月5日)">功能强大而又简单易学的编程语言Python</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/278.html" title="酶切位点分析 (2009年9月26日)">酶切位点分析</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/388.html" title="在Ubuntu中安装Biopython (2011年10月17日)">在Ubuntu中安装Biopython</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/404.html" title="Shell编程中的IF语句 (2011年12月20日)">Shell编程中的IF语句</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/301.html" title="Matlab计算图片上不同颜色区域的面积 (2010年8月7日)">Matlab计算图片上不同颜色区域的面积</a> (4)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/346.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>功能强大而又简单易学的编程语言Python</title>
		<link>http://www.yelinsky.com/blog/archives/344.html</link>
		<comments>http://www.yelinsky.com/blog/archives/344.html#comments</comments>
		<pubDate>Sat, 05 Feb 2011 14:30:19 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[电脑相关]]></category>
		<category><![CDATA[Biopython]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[小程序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/archives/344.html</guid>
		<description><![CDATA[Python是一种面向对象、直译式计算机程序设计语言，也是一种功能强大的通用型语言（维基百科）。自从上次写那个批量Blast小程序的时候接触了Python，发现这个玩意儿真是好用，后来还用它弄... ]]></description>
			<content:encoded><![CDATA[<p>Python是一种面向对象、直译式计算机程序设计语言，也是一种功能强大的通用型语言（<a href="http://zh.wikipedia.org/zh-cn/Python" target="_blank">维基百科</a>）。自从上次写那个<a href="http://www.yelinsky.com/blog/archives/298.html" target="_blank">批量Blast小程序</a>的时候接触了Python，发现这个玩意儿真是好用，后来还用它弄了个<a href="http://www.yelinsky.com/blog/archives/319.html">动态作图小程序</a>，最近在处理<a href="http://www.yelinsky.com/blog/archives/327.html" target="_blank">高通量测序</a>数据的时候也一直用Python，越用觉得好用！给大家推荐一下，如果你想快速学一种实用的编程语言用来写小程序或处理数据，就学Python吧。<br />
<span id="more-344"></span><br />
首先，Python非常简单，以Hello World为例：</p>
<pre>Java的Hello World程序一般这么写：
public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello, world!");
    }
}</pre>
<pre>用C++可以这么写:
#include &lt;iostream&gt;
int main(){
    std::cout &lt;&lt; "Hello, world!" &lt;&lt; std::endl;
    return 0;
}</pre>
<pre>而Python只要这样就可以了:
print "Hello, world!"</pre>
<pre>代码非常清晰，一目了然，变量不用声明，直接就可以用。</pre>
<p>其次，Python非常容易上手。如果你使用Windows操作系统，那么只需要到<a href="http://www.python.org/download/" target="_blank">Python官方网站</a> 下载一个Python X.X.X Windows Installer，双击安装。打开IDLE（python GUI）就可以开始编程了。如果你会一点C/C++语言，那么几个小时就可以学会，一点也不夸张。如果你用过Matlab，你还会觉得它和Matlab有几分相似。而Java、C++在开始之前要花很长时间去搭建环境，进行各种设置，比较麻烦。</p>
<p>再次，Python功能非常强大，试试就知道了。</p>
<p>当然，也不能简单的说Python比C++、Java等编程语言好，在很多地方C++、Java还是有明显的优势。此外，还有一种与Python类似的编程语言叫做Perl，与Python有很多共同的优点，不过似乎喜欢Python的人更多一些。</p>
<p>一些关于Python的学习资源：</p>
<p>Python官方网站： <a href="http://www.python.org/" target="_blank">http://www.python.org/</a></p>
<p>Python 绝对简明手册: <a href="http://wiki.woodpecker.org.cn/moin/PyAbsolutelyZipManual" target="_blank">http://wiki.woodpecker.org.cn/moin/PyAbsolutelyZipManual</a></p>
<p>Python生物信息学工具Biopython: <a title="http://biopython.org/wiki/Biopython" href="http://biopython.org/wiki/Biopython" target="_blank">http://biopython.org/wiki/Biopython</a></p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="功能强大而又简单易学的编程语言Python" href="http://www.yelinsky.com/blog/archives/344.html">http://www.yelinsky.com/blog/archives/344.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/298.html" title="批量Blast小程序 (2010年7月26日)">批量Blast小程序</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/278.html" title="酶切位点分析 (2009年9月26日)">酶切位点分析</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/346.html" title="测试了一下编程水平 (2011年2月6日)">测试了一下编程水平</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/388.html" title="在Ubuntu中安装Biopython (2011年10月17日)">在Ubuntu中安装Biopython</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/319.html" title="动态作图小程序 (2010年9月5日)">动态作图小程序</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/380.html" title="FASTA文件拆分与合并 (2011年8月22日)">FASTA文件拆分与合并</a> (1)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/404.html" title="Shell编程中的IF语句 (2011年12月20日)">Shell编程中的IF语句</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/344.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>动态作图小程序</title>
		<link>http://www.yelinsky.com/blog/archives/319.html</link>
		<comments>http://www.yelinsky.com/blog/archives/319.html#comments</comments>
		<pubDate>Sun, 05 Sep 2010 12:30:24 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[电脑相关]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[仪器]]></category>
		<category><![CDATA[小程序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/?p=319</guid>
		<description><![CDATA[最近遇到一个需要动态作图的问题，情况是这样的：有一台仪器（一台天平）不断通过串口向计算机发送数据，在计算机中用Terminal这个串口调试工具接收数据后记录到一个名字为data.log的文本... ]]></description>
			<content:encoded><![CDATA[<p>最近遇到一个需要动态作图的问题，情况是这样的：有一台<a href="http://www.yelinsky.com/blog/archives/tag/仪器">仪器</a>（一台天平）不断通过串口向计算机发送数据，在计算机中用Terminal这个串口调试工具接收数据后记录到一个名字为data.log的文本文档中，现在需要将记录的数据动态地通过图形展现出来。<br />
<span id="more-319"></span><br />
data.log中记录的数据格式如下：<br />
<a href="http://www.yelinsky.com/blog/wp-content/uploads/2010/09/plotting-data.jpg" class="highslide-image" onclick="return hs.expand(this);"><img src="http://www.yelinsky.com/blog/wp-content/uploads/2010/09/plotting-data.jpg" alt="数据" width="550/" /></a><br />
比较麻烦的一点是有的数据后面有个问号，可能是天平读数不稳定时记录的数值就会用问号标记，因此作图之前需要先把这些数据处理一下。</p>
<p>写这个<a href="http://www.yelinsky.com/blog/archives/tag/%e5%b0%8f%e7%a8%8b%e5%ba%8f">小程序</a>又一次用到了<a href="http://www.yelinsky.com/blog/archives/tag/python">Python</a>，Python真是太好用了！ 大致方法是这样的：复制data.log中的数据到一个temp.txt文件中，然后对数据进行预处理，然后作图。不断重复（每隔2秒）这个过程。</p>
<p>Python程序如下（有点乱，仅仅是简单地达到了动态作图的目的，没时间去优化了）：</p>
<pre>import time
import numpy as np
import matplotlib
matplotlib.use('WXAgg')
import matplotlib.pyplot as plt
import shutil
import wx

def pretreat(file_path):
    f=open(file_path, 'r')
    data1=f.readlines()
    f.close()
    data1[0:3]=[]
    data1[-1:]=[]
    data2=[i.strip() for i in data1]
    data3=[i.rstrip('?') for i in data2]
    data4=[i.strip() for i in data3]
    data5=[i.rstrip('g') for i in data4]
    data6=[i.strip() for i in data5]
    data7=[float(i) for i in data6]
    return data7

def update_line(idleevent):
    shutil.copyfile('data.log', 'temp.txt')
    path="temp.txt"
    data=pretreat(path)
    x=range(0,len(data))
    line.set_ydata(data)
    line.set_xdata(x)
    ax.set_xlim(0, len(data)+200)
    ax.set_ylim(data[len(data)-1]-50,data[0]+50)
    fig.canvas.draw_idle()
    time.sleep(2)

fig = plt.figure()
ax = fig.add_subplot(111)
shutil.copyfile('data.log', 'temp.txt')
path="temp.txt"
data=pretreat(path)
x=range(0,len(data))
ax.set_xlim(0, len(data)+200)
ax.set_ylim(data[len(data)-1]-50,data[0]+50)
line, = ax.plot(x,data)

wx.EVT_IDLE(wx.GetApp(), update_line)
plt.xlabel('Time (x10s)')
plt.ylabel('Weight (g)')
plt.title('Plotting')
plt.show()</pre>
<p>运行的效果是这样的，图形自动实时更新：<br />
<a href="http://www.yelinsky.com/blog/wp-content/uploads/2010/09/plotting.jpg" class="highslide-image" onclick="return hs.expand(this);"><img src="http://www.yelinsky.com/blog/wp-content/uploads/2010/09/plotting.jpg" alt="动态作图" width="550/" /></a><br />
参考资料：<a href="http://matplotlib.sourceforge.net/examples/animation/" target="_blank">http://matplotlib.sourceforge.net/examples/animation/</a></p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="动态作图小程序" href="http://www.yelinsky.com/blog/archives/319.html">http://www.yelinsky.com/blog/archives/319.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/346.html" title="测试了一下编程水平 (2011年2月6日)">测试了一下编程水平</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/298.html" title="批量Blast小程序 (2010年7月26日)">批量Blast小程序</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/344.html" title="功能强大而又简单易学的编程语言Python (2011年2月5日)">功能强大而又简单易学的编程语言Python</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/351.html" title="高通量测序价格 (2011年3月6日)">高通量测序价格</a> (6)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/356.html" title="高通量测序仪世界分布图 (2011年3月27日)">高通量测序仪世界分布图</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/278.html" title="酶切位点分析 (2009年9月26日)">酶切位点分析</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/228.html" title="离心速度的单位及其换算 (2008年12月25日)">离心速度的单位及其换算</a> (1)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/277.html" title="用Quantity One进行定量分析的方法 (2009年9月6日)">用Quantity One进行定量分析的方法</a> (58)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/319.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>批量Blast小程序</title>
		<link>http://www.yelinsky.com/blog/archives/298.html</link>
		<comments>http://www.yelinsky.com/blog/archives/298.html#comments</comments>
		<pubDate>Mon, 26 Jul 2010 06:13:30 +0000</pubDate>
		<dc:creator>叶林</dc:creator>
				<category><![CDATA[生物技术]]></category>
		<category><![CDATA[Bioperl]]></category>
		<category><![CDATA[Biopython]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[小程序]]></category>

		<guid isPermaLink="false">http://www.yelinsky.com/blog/archives/298.html</guid>
		<description><![CDATA[问题是这样的：有很多很多序列，几百条，想大致了解一下这些序列分别是什么样的微生物，如果一条一条去blast，那是相当的累。想找一个工具告诉我每条序列blast结果的前几条的名称是什么... ]]></description>
			<content:encoded><![CDATA[<p>问题是这样的：有很多很多序列，几百条，想大致了解一下这些序列分别是什么样的微生物，如果一条一条去blast，那是相当的累。想找一个工具告诉我每条序列blast结果的前几条的名称是什么即可，不需要其它信息。</p>
<p>在网上找了一下，没找到合适的软件或工具，虽然有些关于批量blast的教程之类的，比如<a href="http://yunbio.com/49" target="_blank">这个</a>，但是给出的结果及其繁琐，很多不需要的信息。</p>
<p>后来发现Biopython可以很简单就进行批量Blast。只需先安装<a href="http://www.yelinsky.com/blog/archives/tag/python">Python</a>和<a href="http://www.yelinsky.com/blog/archives/tag/biopython">Biopython</a>，Python和Biopython的下载地址分别为：<br />
<a href="http://www.python.org/download/" target="_blank">http://www.python.org/download/</a><br />
<a href="http://www.biopython.org/wiki/Download" target="_blank">http://www.biopython.org/wiki/Download</a></p>
<p><span id="more-298"></span>Windows版本下载后直接双击安装即可，非常简单。<br />
然后打开IDLE（Python GUI)，”File”-&gt;”New Window”, 分如下两步进行：</p>
<p>第一步，运行下面的代码进行Blast</p>
<pre>
from Bio.Blast import NCBIWWW
from Bio import SeqIO
SeqNumber = 0
for record in SeqIO.parse("allseq.seq", "fasta"):
  result_handle = NCBIWWW.qblast("blastn", "nr", record.seq)
  SeqNumber += 1
  save_file = open('xml\\'+str(SeqNumber)+'.xml', 'w')
  save_file.write(result_handle.read())
  save_file.close()
  print 'OK ', SeqNumber
print 'OK! Finished!'
</pre>
<p>序列要以fasta格式放在allseq.seq这个文件中，另外需要在当前目录下建一个名字为xml文件夹，代码运行结束后结果放在这个文件夹中。</p>
<p>第二步，列出每条序列blast结果的前几条的名称</p>
<pre>
from Bio.Blast import NCBIXML
import glob
total_xml_file = len(glob.glob('xml\\*.xml'))
for xmlnumber in range(1,total_xml_file+1):
  result_handle = open('xml\\'+str(xmlnumber)+'.xml')
  blast_records = NCBIXML.parse(result_handle)
  blast_record = blast_records.next()
  i = 0
  print '-------------------No.', xmlnumber, '-------------------'
  for alignment in blast_record.alignments:
    if i<10 : ##如果想看前20条结果就该为20
      print alignment.title
    else:
      break
    i+=1
  result_handle.close()
</pre>
<p>如果序列比较多，第一步可能需要很长时间，可以趁程序运行的时候先出去踢踢球或逛逛街，回来之后再运行第二步，第二步很快：）</p>
<p>第一次接触使用Python语言，非常好用，个人感觉要比<a href="http://www.yelinsky.com/blog/archives/tag/perl">Perl</a>好一些，当然Python的生物信息学组件Biopython的可能现在没有<a href="http://www.yelinsky.com/blog/archives/tag/bioperl">Bioperl</a>强大。</p>
<p>上次做了个<a href="http://www.yelinsky.com/blog/archives/227.html">序列文件合并小程序</a>，后来发现用<a href="http://www.yelinsky.com/blog/archives/275.html">Bioedit就可以很简单地进行合并</a>，白忙活了。如果进行批量Blast也有更好的方法，请留言告诉我一下，谢谢 <img src='http://www.yelinsky.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<center><div>如转载，请以超链接形式注明：转载自：<a title="有个博客" href="http://www.yelinsky.com/blog/">有个博客</a> [ <a rel="bookmark" title="有个博客" href="http://www.yelinsky.com/blog/">http://www.yelinsky.com/blog/</a> ] </div></center><center><div>本文链接地址：<a rel="bookmark" title="批量Blast小程序" href="http://www.yelinsky.com/blog/archives/298.html">http://www.yelinsky.com/blog/archives/298.html</a></div></center>
	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yelinsky.com/blog/archives/344.html" title="功能强大而又简单易学的编程语言Python (2011年2月5日)">功能强大而又简单易学的编程语言Python</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/278.html" title="酶切位点分析 (2009年9月26日)">酶切位点分析</a> (5)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/346.html" title="测试了一下编程水平 (2011年2月6日)">测试了一下编程水平</a> (0)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/388.html" title="在Ubuntu中安装Biopython (2011年10月17日)">在Ubuntu中安装Biopython</a> (2)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/319.html" title="动态作图小程序 (2010年9月5日)">动态作图小程序</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/380.html" title="FASTA文件拆分与合并 (2011年8月22日)">FASTA文件拆分与合并</a> (1)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/368.html" title="高通量测序数据分析 (2011年5月28日)">高通量测序数据分析</a> (4)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/370.html" title="在亚马逊EC2上部署Apache和Django (2011年6月11日)">在亚马逊EC2上部署Apache和Django</a> (3)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/395.html" title="一些高通量测序数据处理软件 (2011年11月13日)">一些高通量测序数据处理软件</a> (8)</li>
	<li><a href="http://www.yelinsky.com/blog/archives/404.html" title="Shell编程中的IF语句 (2011年12月20日)">Shell编程中的IF语句</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.yelinsky.com/blog/archives/298.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

