個人認為:是否能熟悉使用Shell(項目流程搭建)+R(數據統計與可視化)+Perl/Python/Java..(膠水語言,數據格式轉換,軟體間銜接)三門語言是一位合格生物信息工程師的標準。
生物信息常用語言非常廣泛,我常用的有Perl, R, Shell,此外參與網頁製作還用過PhP+mySQL,寫博客用Markdown。這些其實都是非常小眾的語言,如果和計算機專業的人交流,對方可能沒聽過這些語言。本系列「生信人寫程序」主要以Perl為主,並伴隨一些零星的R和Shell編程的經驗和技巧。對於生信Perl使用人員有個交流和互相提高的平臺,讓新人少走點彎路。對於沒有任何Perl基礎強例建議別入坑,想學生信找Python教程吧,不解釋看下圖。
TIOBE世界程式語言使用排行
我們可以看到世界前三是Java, C, C++,大家都聽說過;第四是Python,目前在生領領域有取代Perl地位的趨勢,目前Perl列第9(世界十大語言之一)下降一位。R語言的數據分析領域有應用越來越廣泛,今年上升兩位至14名;Shell由於版本和各類較多,在50-100名間有4種,此語言只建議快速解決小問題,不建議寫太長的任務,很容易跨平臺不兼容。
總結:
生信常用語言:Shell+R+Python/Perl
世界三大語言:Java, C, C++
生信語言的排名:Python 4th, Perl 9th, R 16th
Perl寫作環境模板推薦很多人三行兩行或直接命令行用perl直接解決問題,雖然快,但是不容重用和別人使用。因此,良好的寫作環境和模板是效率和專業的體現,即提高自己的代碼重用性,也方便交流和他人使用。
編程環境IDE推薦使用:Editplus 4.0,網上到處都是註冊機和序列號,隨便用,下載址搜不到可以點連結:http://pan.baidu.com/s/1jHJJ1qe 密碼:6xm6。優點是可配置模板,可直接編輯伺服器腳本(省略上傳步驟),高效的代碼調試。
編程模板是解決常用功能的寫作模板,如幫助文檔部分(提高代碼重用和版本管理,方便其他人使用),命令行參數管理(可讀性的命令行是程序的基礎),程序運行時間統計(項目時間管理),常用文件讀取數據結構樣式(方便修改文件輸入和輸出)等;
下面是實現這樣功能的模板:
use POSIX qw(strftime);
use Getopt::Std;
use File::Basename;
my %opts;
getopts( 'i:o:d:h:', \%opts );
&usage unless ( exists $opts{i} && exists $opts{o} );
my $start_time=time;
print strftime("Start time is %Y-%m-%d %H:%M:%S\n", localtime(time));
print "Input file is $opts{i}\nOutput file is $opts{o}\n";
print "Database file is $opts{d}\n" if defined($opts{d});
$opts{h}=1 unless defined($opts{h});
open INPUT,"<$opts{i}";
open OUTPUT,">$opts{o}";
my %count;
while ($opts{h}>0) {
<INPUT>;
$opts{h}--;
}
while (<INPUT>) {
chomp;
my @tmp=split/\t/;
print OUTPUT "$tmp[0]\t$tmp[1]\n";
}
close INPUT;
close OUTPUT;
my $duration_time=time-$start_time;
print strftime("End time is %Y-%m-%d %H:%M:%S\n", localtime(time));
print "This compute totally consumed $duration_time s\.\n";
sub usage {
die(
qq!
Usage: template.pl -i inpute_file -o output_file -d database -h header num
Function: Template for Perl
Command: -i inpute file name (Must)
-o output file name (Must)
-d database file name
-h header line number,s default 0
Author: Liu Yong-Xin, liuyongxin_bio\@163.com, QQ:42789409
Version: v1.0
Update: 2017/6/2
Notes:
\n!
)
}
將上述代碼保存為template.pl,在editplus中選擇Tools — Preference — Template — Perl,點擊template.pl右邊的..按鍵,選擇你自己的template.pl即可,以後選擇perl腳本會自己加載該模板。希望對大家有幫助!
Reference
1. https://www.tiobe.com/tiobe-index/