正所谓前人栽树,后人乘凉。
1. Perl语言基础知识入门
1.1 Perl语言介绍
-
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。
-
Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。
-
Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
-
Perl的理念:There’s More Than One Way To Do It. (不只一种方法来做一件事)
1.2 Perl语言的发展史
1.3 Perl的应用场景
-
文本处理:工程领域数据处理、生物学数据处理
-
Web网站:如Yahoo、Amazon,Web页面也是文本文件,Perl有TCP/IP通信能力
-
数据库处理:Perl语言有大量的拓展可以用来直接与各种主流数据库进行通信
-
邮件处理和FTP功能自动化
-
作图:Circos:http://circos.ca/ (那种很酷炫但你看不懂的圈圈图)
-
机器学习:http://blogs.perl.org/users/sergey_kolychev/ (内有Machine learning in Perl的几篇博文)
-
统计:只有想不到的,没有Perl做不到的。
1.3 生信领域Perl的学习范围和重点
我们学习Perl,主要目的就是使用Perl强大的文本处理功能来解放我们的眼睛和双手,提高工作效率;其次就是学会看懂别人用Perl写的软件,会安装依赖模块,能使用。
大致包括:
开发环境的搭建;
编写Perl程序的方法;
良好的编程习惯;
生信相关的知识要点:如何系统入门Perl-Jimmy总结
1.3 Perl入门参考资料
-
Perl语言入门(第六版) (俗称小骆驼)
- Perl菜鸟教程:http://www.runoob.com/perl/perl-tutorial.html (简洁的菜鸟教程,结合小骆驼一起使用)
-
Perl帮助文档perldoc:http://perldoc.perl.org/perl.html (Perl自带的数千页文档)
-
Beginning Perl for Bioinformatics(有中文版)
- Perl单行命令(可以看看CJ的QQ空间)
1.4 Perl的优缺点
-
优点: 语法简单容易自由灵活; 运行速度快,Perl解释器直接对源代码程序解释执行; 免费开源; 正则表达式强大; 写小脚本处理文本数据方便,单行命令替代sed、awk;
-
缺点: 内置变量符不易记忆; 底层社区不活跃; 优秀模块少; 可读性低,不适合写大程序及团队合作;
学习Perl有点类似学习一门口语。你只需要学习少量的词汇,就能享受交流(编程)的乐趣,勤加练习(读、写代码)就能彻底掌握。你可以不必要理解Perl的每一个细节就能变得高效而多产,所以今天我们不需要很多知识要点就能完成对FASTA/FASTQ文件进行数据处理的任务。
2. 编写Perl程序相关
2.1 Perl 环境安装
- 我们可以在 Perl 的官网下载对应平台的安装包:https://www.perl.org/get.html。
- 安装方法参考:Perl 环境安装
2.2 从第一个Perl程序开始
我们将以下代码放到 hello.pl 文件中:
#!/usr/bin/perl
# 输出 "Hello, World"
print "Hello, world\n";
B: 创建好Perl文件后,在命令行上执行它。怎么执行? perl hello.pl
2.3 良好的编程习惯
2.3.1 使用内建警告信息
一般写程序,同时加上:
use strict;
use warnings;
- 在运行时,加上-w命令行
perl -w my_program.pl
- 程序中加上-w命令行
#/usr/bin/perl -w
- 对于perl5.6以后的版本,还可以通过warnings指令打开
#!/usr/bin/perl use warnings;
若要查看更详细的问题描述,在程序中加入:
use diagnostics;
自动寻找因为错误拼写造成的错误,在程序中加入:use strict;
,同时还要在整个程序中用my 声明变量。
2.3.2 使用帮助文档perldoc
帮助文档是最好的Perl学习资料,当遇到不认识的标识、函数时,应首先查询帮助文档。
1: 安装perldoc说明书apt-get install perl-doc
perldoc perl
2:网页版perldoc说明书Perl Programming Documentation
2.3.3 注释
**<注释的作用>:** 通过用自己熟悉的语言,在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。注释的作用>
**<注释的分类>:**注释的分类>
单行注释
多行注释
2.3.4 编程的过程
一般用于提取数据的perl程序,思路如下:
1:两个输入数据:比如第一个表为geneid数据,第二个表的第一列为geneid,第二列为geneid对应的数据集表;
2:构思方法:根据已知的数据集构造以geneid为键,以geneid对应的数据集为值的哈希表;从文件中逐行读入,判断待查询的geneid号是否存在对应的键值对,如果存在的话就分别输出键和值。
3:输出数据:第一列为geneid,第二列为geneid对应的数据集的文本文件
**<小总结>:**小总结>
- 确定必需输入,比如用户提供的数据或信息;
- 对程序进行整体构思,包括程序计算输出结果的基本方法-算法;
- 决定结果的输出形式;
- 通过添加更多的细节改善整体构思。