<?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; 学习</title>
	<atom:link href="http://www.bio-info-trainee.com/tag/%e5%ad%a6%e4%b9%a0/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bio-info-trainee.com</link>
	<description>欢迎去论坛biotrainee.com留言参与讨论，或者关注同名微信公众号biotrainee</description>
	<lastBuildDate>Sat, 28 Jun 2025 14:30:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.33</generator>
	<item>
		<title>生信分析人员如何系统入门perl？</title>
		<link>http://www.bio-info-trainee.com/1667.html</link>
		<comments>http://www.bio-info-trainee.com/1667.html#comments</comments>
		<pubDate>Thu, 26 May 2016 15:06:05 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1667</guid>
		<description><![CDATA[perl语言在老一辈的生物信息学分析人员中非常流行，所以因为历史遗留原因大家肯定 &#8230; <a href="http://www.bio-info-trainee.com/1667.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div>perl语言在老一辈的生物信息学分析人员中非常流行，所以因为历史遗留原因大家肯定会或多或少的接触perl，即使你再怎么推崇python或者GO。</div>
<div>perl是典型的脚本语言，短小精悍，非常容易上手，尤其适合处理文本，数据，以及系统管理。</div>
<div></div>
<p><span id="more-1667"></span></p>
<div><span style="color: #ff0000; font-size: large;">简单给几个资料吧：</span></div>
<div>两个半小时入门指导：<a href="https://qntm.org/files/perl/perl.html">https://qntm.org/files/perl/perl.html</a></div>
<div>21天学完：<a href="http://ft-sipil.unila.ac.id/dbooks/%28ebook%20pdf%29%20Teach%20Yourself%20Perl%20in%2021%20Days.pdf">http://ft-sipil.unila.ac.id/dbooks/(ebook%20pdf)%20Teach%20Yourself%20Perl%20in%2021%20Days.pdf</a></div>
<div>还有大小骆驼书，建议都看完，以囫囵吞枣的方式阅读，只看基础知识来入门，难点全部跳过。</div>
<div>官网：<a href="https://www.perl.org/">https://www.perl.org/</a></div>
<div>函数如何用，都可以在<a href="http://perldoc.perl.org/perl.html">http://perldoc.perl.org/perl.html</a> 查到</div>
<div>论坛：<a href="http://www.perlmonks.org/">http://www.perlmonks.org/</a></div>
<div></div>
<div>在看书的同时，你必须记住和熟练使用的知识点是下面这些：</div>
<div><span style="color: #ff0000; font-size: large;"> </span></div>
<div><span style="color: #ff0000; font-size: large;">首先要理解perl里面的三种变量表示方式:</span></div>
<div>$ 表示单个变量  用单双引号区别，q(),qq()</div>
<div>@ 表示多个变量组成的数组，qw()</div>
<div>% 表示关系型变量-hash</div>
<div>变量不严格区分类型，没有int/float/double/char这样的概念</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">以及对这些简单变量的操作函数</span></p>
<div># Numerical operators:  &lt;,  &gt;, &lt;=, &gt;=, ==, !=, &lt;=&gt;, +, *</div>
<div># String operators:    lt, gt, le, ge, eq, ne, cmp, ., x</div>
<div>数组操作(pop/push/shift/unshift/splice/map/grep/join/split/sort/reverse)</div>
<div>hash操作方式(keys,values,each,delete,exists)</div>
<div></div>
<div>变量内容交换，字符型转为数值型，字符串转为字符数组，字符串变量，heredoc，字符串分割，字符串截取，</div>
<div>随机数生成，取整，各种概率分布数，多维矩阵如何操作，进制转换</div>
<div>hash翻转，数组转hash</div>
<div></div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">上下文环境</span></p>
<div>这个比较复杂： <a href="http://www.perlmonks.org/?node_id=738558">http://www.perlmonks.org/?node_id=738558</a></div>
<div>就是需要理解你写的程序是如何判断你的变量的，你以为的不一定是你以为的</div>
<div><span style="color: #ff0000; font-size: large;"> </span></div>
<div><span style="color: #ff0000; font-size: large;">正则表达式</span></div>
<div>这也是一个非常重要的一块内容，基础用法就是m和s，一个匹配，一个替换，比较有趣的就是$1,$2等等捕获变量。</div>
<div></div>
<div>(=~ s{^https?://}{}   =~ m{///})</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">内建变量</span></p>
<div>就是perl语言设计的时候定义了一大堆的全局变量($_  $, $0 $&gt; $&lt; $! $. @ARGV @F @_ @INC %ENV %SIG</div>
<div>外表上看起来都是一个$/@/%符号后面加上一大堆的奇奇怪怪的字符，表示一些特殊变量，这也是perl语言饱受诟病的原因。</div>
<div>但是有些非常重要，懂了它之后写程序会方便</div>
<div>下载一个表格，里面有近100个预定义变量需要学习的</div>
<div><span style="color: #ff0000; font-size: large;"> </span></div>
<div><span style="color: #ff0000; font-size: large;">控制语句(循环/条件/判断)</span></div>
<div>if ... elsif ... else ...</div>
<div>unless/while/next/last/for/foreach</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">读写文件，脚本实战！</span></p>
<div>while(&lt;&gt;){</div>
<div>#do something !</div>
<div>}</div>
<div>这是我最喜欢的一个程序模板，读取文件，根据需要处理文件，然后输出。</div>
<div>需要实现非常多的功能，然后就可以自己总结脚本技巧，也能完全掌握perl的各种语法。</div>
<div>在生物信息学领域，需要实现的功能有！</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">perl 单行命令</span></p>
<div>我个人特别喜欢这个知识点，我也专门下载过一本书来学习，把这个教程看完就基本上能全明白：<a href="http://www.catonmat.net/blog/perl-one-liners-explained-part-one/">http://www.catonmat.net/blog/perl-one-liners-explained-part-one/</a></div>
<div>学习单行命令的前提是掌握非常多的奇奇怪怪的perl自定义变量，和perl的基础语法，用熟练了之后就非常方便，很多生物信息学数据处理过程我现在基本不写脚本，都是直接写一行命令，完全代替了shell脚本里面的awk、sed/grep系列命令。</div>
<div>(-p -a -n -a -l -i -F -M)</div>
<div></div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">预定义函数</span></p>
<div>perl 是一个非常精简的语言，自定义的函数非常少，连min max这样常见的函数都没有，如果你需要使用这样的功能，要么自己写一个函数，要么使用加强版的包，perl的包非常多。</div>
<div>下面列出一些，我常用的包</div>
<div>程序必备 use/die/warn/print/open/close/&lt;&gt;/</div>
<div>数学函数sin/cos/log/abs/rand/srand/sqrt</div>
<div>字符串函数 uc/lc/scaler/index/rindex/length/pos/substr/sprintf/chop/chomp/hex/int/oct/ord/chr/unpack/unencode</div>
<div>defined/undef</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">系统操作相关</span></p>
<div>perl语言是跨平台的，因为它的执行靠的是perl解释器，而perl的解释器可以安装在任何机器上面。所以可以用perl来代替很多系统管理工作。</div>
<div>系统命令调用</div>
<div>文件句柄操作(STDIN,STDOUT,STDERR,ARGV,DATA,)</div>
<div>系统文件管理(mkdir/chdir/opendir/closedir/readdir/telldir/rmdir/)</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">一些高级技巧</span></p>
<div>自定义函数 sub , 参数传递，数组传递，返回值</div>
<div>模块操作(模块安装，加载，模块路径，模块函数引用)</div>
<div>引用（变量的变量）</div>
<div></div>
<div>选择一个好的编辑器-编译器,editplus,notepad++,jEdit，编程习惯的养成。</div>
<div>搞清楚perl版本的问题，还有程序编码的问题，中文显示的问题</div>
<div>程序调试</div>
<div><span style="color: #ff0000; font-size: large;"> </span></div>
<div><span style="color: #ff0000; font-size: large;">perl常见模块学习</span></div>
<div>perl和LWP/HTML做网络爬虫必备，重点是DOM如何解析</div>
<div>perl和CGI编程，做网站的神器，重点是html基础知识</div>
<div>DBI相关数据库，用perl来操作mysql等，当然，重点是mysql知识</div>
<div>GD and GD::Graph 可以用来画图，但是基本上没有人用了，除了CIRCOS画圈圈图火起来了。</div>
<div>TK模块，可以编写GUI界面程序，但是也几乎没有人用了。</div>
<div>XML/pdf/excel/Json 相关的模块可以用来读取非文本格式数据，或者输出格式化报告。</div>
<div>socket通信相关，高手甚至可以写出一个QQ的模仿版本</div>
<div>最后不得不提的就是Bioperl了，虽然我从来没有用过，但是它的确对初学者非常有用，大多数人不提倡重复造轮子，但我个人觉得，对初学者来说，重复造轮子是一个非常好的学习方式。大家可以仿造bioperl里面的各个功能，用自己的脚本来实现！</div>
<div></div>
<p><span style="color: #ff0000; font-size: large;">如果你感觉学的差不多了，就可以下载一些复习资料，查漏补缺:</span></p>
<div>
<div><a href="http://michaelgoerz.net/refcards/perl_refcard.pdf">http://michaelgoerz.net/refcards/perl_refcard.pdf</a></div>
<div><a href="https://rc.hms.harvard.edu/training/perl/Perl%20Cheat%20Sheet.pdf">https://rc.hms.harvard.edu/training/perl/Perl%20Cheat%20Sheet.pdf</a></div>
<div><a href="https://www.cheatography.com/mishin/cheat-sheets/perl-reference-card/">https://www.cheatography.com/mishin/cheat-sheets/perl-reference-card/</a></div>
<div><a href="http://www.catonmat.net/download/perl.predefined.variables.pdf">http://www.catonmat.net/download/perl.predefined.variables.pdf</a></div>
<div><a href="http://www.erudil.com/preqr.pdf">http://www.erudil.com/preqr.pdf</a></div>
<div><a href="https://www.cs.tut.fi/~jkorpela/perl/regexp.html">https://www.cs.tut.fi/~jkorpela/perl/regexp.html</a></div>
<div><a href="https://support.sas.com/rnd/base/datastep/perl_regexp/regexp-tip-sheet.pdf">https://support.sas.com/rnd/base/datastep/perl_regexp/regexp-tip-sheet.pdf</a></div>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1667.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>生信分析人员如何系统入门linux？</title>
		<link>http://www.bio-info-trainee.com/1661.html</link>
		<comments>http://www.bio-info-trainee.com/1661.html#comments</comments>
		<pubDate>Mon, 23 May 2016 15:30:54 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[tutorial]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1661</guid>
		<description><![CDATA[生信分析人员如何系统入门linux？ linux系统在生物信息学数据处理中的重要 &#8230; <a href="http://www.bio-info-trainee.com/1661.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div>
<h1 style="text-align: center;"><span style="color: #ff0000;">生信分析人员如何系统入门linux？</span></h1>
<div></div>
<div>linux系统在生物信息学数据处理中的重要性就不用我多说了，鉴于一直有学生问我一些很显而易见的问题，对系统性的学习并理解了linux系统操作的专业人士来说是显而易见的。</div>
<div>我在这里仅以过来人的角度给大家总结一下linux该如何学，该学什么，该花多少工夫，学习重点是什么？</div>
<div></div>
<div>就我个人这么多年处理生物信息学数据经验来看，可以把linux的学习过程分成三个阶段:</div>
<div></div>
<div><span style="color: #ff0000; font-size: large;">一是把linux系统玩得跟windows系统一样顺畅。</span></div>
<div></div>
<div>这一阶段的主要目的就是去可视化，熟悉黑白命令行界面。</div>
<div>如何连接服务器(xshell,putty,VNC~~~)，了解你在服务器上面有什么权限。</div>
<div>左右鼠标单击双击如何实现？磁盘文件浏览如何实现？文件操作如何实现？绝对路径和相对路径区别？</div>
<div>需要了解的命令有下面这些：</div>
<blockquote>
<div style="text-align: justify;">pwd/ls/cd/mv/rm/cp/mkdir/rmdir/man/locate/head/tail/less/more</div>
<div style="text-align: justify;">cut/paste/join/sort/uniq/wc/cat/diff/cmp/alias</div>
<div style="text-align: justify;">wget/ssh/scp/curl/ftp/lftp/mysql/</div>
</blockquote>
<div>大家可以搜索(每天一个linux命令的博客)来跟着练习，或者看一些linux视频(百度云盘(http://pan.baidu.com/s/1jIvwRD8 )共享了一大堆，建议看鸟哥linux私房菜)，或者关注一些linux学习相关公众号，加入一些linux社区，论坛，当然如果你只是简单了解，搞生物信息学其实没必要那么深入理解，跟着一本像样的入门书籍，完整的学习即可！</div>
<div>不懂的名词，赶紧谷歌搜索，多记笔记。</div>
<div></div>
<div>需要深度理解的概念有：</div>
<blockquote>
<div>软硬链接区别</div>
<div>文本编辑，文件权限设置</div>
<div>打包压缩解压操作(tar/gzip/bzip/ x-j x-c vf)</div>
<div>软件的快捷方式如何实现？</div>
<div>软件如何安装(源码软件，二进制可执行软件，perl/R/python/java软件)</div>
<div>软件版本如何管理，各种编程语言环境如何管理，模块如何管理？(尤其是大部分没有root权限)</div>
</blockquote>
<div>这些知识需要深度理解，所以一般初学者肯定会遇到问题，自己要多看教程和视频跟着了练习，但总会有一些不是你立即就能解决的，不要纠结，继续学习，不久之后回过头来就明白了。</div>
<div></div>
<div>翻译成生物信息学语言就是：测序文件在哪里？测序文件有多大？测序文件的格式fastq/fasta是什么？</div>
<div>前几行怎么看，参考基因组如何下载？参考基因组如何建立比对索引？blast软件如何安装以及使用？</div>
<div>比对结果如何看？结果如何过滤？两次结果如何比较？</div>
<div>建议自己安装bio-linux系统，里面会自带很多生物信息学测试数据(fastq,fasta,sam,bam,vcf,gff,gtf,bed,MAF......),安装系统的过程也是熟悉linux的过程，熟悉这些数据格式既能加强生物信息学技巧，也能练习linux操作。</div>
<div></div>
<div>不懂的名词，赶紧谷歌搜索，多记笔记。</div>
</div>
<p><span style="color: #ff0000; font-size: large;">二是shell脚本，类似于windows的bat批处理文件</span></p>
<div>
<div>懂很多预定义变量 .bashrc/env/HOME/</div>
<div>学会一些控制语句 while/if/for/ 批量执行命令</div>
<div>开始自定义函数，避免重复造轮子。</div>
<div>了解 awk/sed/grep等文件操作语言，短小精悍，很多时候可以不需要编程。</div>
<div>正则匹配技巧,find函数使用</div>
<div>了解编程技巧 ()[]{} $$ 等符合如何使用，技巧有哪些，加快你数据处理能力(建议看shell 13问)</div>
<div>翻译成生物信息学语言就是：要深度组合这些命令，并且通过shell脚本，把它们在实际生物信息学数据处理中应用起来，需要很多的实践操作，可以借鉴EMBOSS软件套件，fastx-toolkit等基础软件，实现并且模仿该软件的功能。</div>
<div>尤其是SMS2/exonerate/里面的一些常见功能,还有DNA2.0 Bioinformatics Toolbox的一些工具。</div>
<div>不懂的名词，感觉谷歌搜索，多记笔记。</div>
<div>基本上要了解到这里才能勉强算是一个合格的生物信息学工程师。</div>
</div>
<p><span style="color: #ff0000; font-size: large;">三是高级运维技巧</span></p>
<div>
<div>w/last/top/qsub/condor/apache/socket/IO/ps/who/uid/</div>
<div>磁盘挂载/格式化/重启系统/文件清理/IP查看/网络管理/用户管理/目录结构了解/计划任务</div>
<div>各种库文件了解。</div>
<div>这个强烈建议初学者不要过于纠结，稍微了解为佳。</div>
<div>不懂的名词，赶紧谷歌搜索，多记笔记。</div>
<div></div>
<div>学习linux基础知识的同时，就可以开始项目实战，在实战的过程中要随时思考记录如何应用linux知识辅助生物信息数据处理？</div>
<div>并整理学习笔记以及经验分享。</div>
<div></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1661.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
