科学网对Markdown排版支持较差,对格式不满意的用户请跳转至 CSDN 或微信阅读;

如果感觉文章对您有帮助,想继续阅读同类文章,请扫描下方二维码关注“生信宝典”公众号,每天接收最新生物信息学原创文章。只关注宏基因方向的用户请微信搜索“宏基因组”公众号添加。

生物信息领域常用语言

个人认为:是否能熟悉使用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 16thPerl写作环境模板推荐

很多人三行两行或直接命令行用perl直接解决问题,虽然快,但是不容重用和别人使用。因此,良好的写作环境和模板是效率和专业的体现,即提高自己的代码重用性,也方便交流和他人使用。编程环境IDE

推荐使用:Editplus 4.0,网上到处都是注册机和序列号,随便用,下载址搜不到可以点链接:http://pan.baidu.com/s/1jHJJ1qe 密码:6xm6。优点是可配置模板,可直接编辑服务器脚本(省略上传步骤),高效的代码调试。编程模板

是解决常用功能的写作模板,如帮助文档部分(提高代码重用和版本管理,方便其他人使用),命令行参数管理(可读性的命令行是程序的基础),程序运行时间统计(项目时间管理),常用文件读取数据结构样式(方便修改文件输入和输出)等;

下面是实现这样功能的模板:#!/usr/bin/perl -w# 加载时间管理,参数管理,文件名和路径处理的基础包,无须安装use POSIX qw(strftime);

use Getopt::Std;

use File::Basename;

################################################################################命令行参数据的定义和获取,记录程序初始时间,设置参数默认值#Get the parameter and provide the usage.###############################################################################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:%Sn", 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});

################################################################################读入的数据或注释文件,用于与输入文件比较或注释(可选),提供三种方式#Read the database in memory(opt)################################################################################open DATABASE,") {#chomp;#my @tmp=split/\t/;#$database{$tmp[1]}=$tmp[2];#}# 2. 数组结构数据库,无唯一ID,但有顺序要求#my (@tmp1,@tmp2); #database in array#while () {#chomp;#my @tmp=split/\t/;#push @tmp1,$tmp[1];#push @tmp2,@tmp[2];#}#close DATABASE;# 3. 批量数据文件,读取一批有相似结构的文件#open a list file#my %list;#my @filelist=glob "$opts{i}";#foreach $file(@filelist){#open DATABASE,") {#my @tmp=split/\t/;#$list{$file}{nr}++;#}#close DATABASE;#}################################################################################Main text.################################################################################ 正文部分,读取输入文件,列出输入和输入文件的三行作为示例,方便编程处理数据open INPUT,"

#chrm0    snppos1          ref2     mat_gtyp3        pat_gtyp4        c_gtyp5  phase6   mat_all7 pat_all8 cA9      cC10      cG11      cT12      winning SymCls  SymPval BindingSite     cnv#1       4648    C       A       C       M       PHASED  C       A       0       11      0       0       M       Asym    0.0009765625    -1      0.902113open OUTPUT,">$opts{o}";

#chrm    snppos          ref     mat_gtyp        pat_gtyp        c_gtyp  phase   mat_all pat_all cA      cC      cG      cT      winning SymCls  SymPval BindingSite     cnv#1       4648    C       A       C       M       PHASED  C       A       0       11      0       0       M       Asym    0.0009765625    -1      0.902113my %count;

# h参数用于去除有文件头的行while ($opts{h}>0) { #filter header

;

$opts{h}--;

}

# 输入和输入处理部分,常用按行读取处理并输入,默认按tab分割数据while () {

chomp;

my @tmp=split/t/;

print OUTPUT "$tmp[0]\t$tmp[1]n";

}

close INPUT;

close OUTPUT;

################################################################################Record the program running time!# 输出程序运行时间###############################################################################my $duration_time=time-$start_time;

print strftime("End time is %Y-%m-%d %H:%M:%Sn", localtime(time));

print "This compute totally consumed $duration_time s.n";

################################################################################Scripts usage and about.# 程序的帮助文档,良好的描述是程序重用和共享的基础,也是程序升级和更新的前提###############################################################################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, default 0

Author:   Liu Yong-Xin, liuyongxin_bio@163.com, QQ:42789409

Version:  v1.0

Update:   2017/6/2

Notes:

n!

)

}

模板导入Editplus

将上述代码保存为template.pl,在editplus中选择Tools — Preference — Template — Perl,点击template.pl右边的..按键,选择你自己的template.pl即可,以后选择perl脚本会自己加载该模板。

希望对大家有帮助!

python perl 比较生信_科学网—生信人写程序1. Perl语言模板及配置 - 刘永鑫的博文...相关推荐

  1. python shell背景颜色改变_科学网—Python Shell Background Color - 李旭的博文

    ArcGIS在安装时就已经默认在本机安装了Python.可是,Python Shell的界面看起来太亮了,对眼睛不太好啊,如图1. 图1 在网上搜索一番,之前也有和我同样问题的帖子,不过,时间有点久了 ...

  2. python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文

    Python常用的安装包下载 1.首先应该下载dlib安装包(例如:dlib-19.8.1-cp36-cp36m-win_amd64.whl) 可以通过此网址进行下载对应的dlib包   https: ...

  3. anaconda中python的位置_科学网—查询Anaconda安装路径、安装包位置及授予访问权限 - 张伟的博文...

    (1)确认安装路径 输入以下命令: conda info --env 可以知道当前有哪些环境,以及环境路径: (2)Anaconda管理的包的位置 具体路径为F:\Anaconda\Lib\site- ...

  4. python爬pdf的曲线_科学网—Python爬PDF - 胡鹏程的博文

    最近用Python爬了两本书,分享下代码,仅作为交流和分享. #下载# import requests #先导入库 import re #正则表达式 import os #创建路径 import ra ...

  5. python求导并作图_科学网—python-符号运算(求导等) - 夏江江的博文

    cmd 命令下 pip install sympy #求导 from sympy import * y = Symbol('x') diff(y**2,y) #2*x diff(f, *symbols ...

  6. python语法糖的本质_科学网—Python语法糖之:列表解析、集合解析和字典解析 - 陈同的博文...

    Python的列表解析 (list comprehensions)是在Python 2.0以来一直都有的功能,特别简洁.实用.而字典解析虽然曾经在Python 2.3版本中引入过,但后来因为与dict ...

  7. python可视化水平双向箭头_科学网—Python matplotlib quiver—画箭头、风场、量场图 - 张伟的博文...

    用像素点坐标画图 箭头关键的一个参数是长度,长度可以通过参数scale来设置,如果你多次使用quiver(),只要保证参数scale一致,那么箭头长度就会与风速 的值成正比,可按照下面我贴出的代码那样 ...

  8. python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...

    简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...

  9. python月球地球质量计算_科学网—天文计算PyEphem指南 - 张金龙的博文

    PyEphem (http://rhodesmill.org/pyephem/tutorial.html)(github, Pypi)是Python下的一个软件包,计算准确度很高,可用来计算不同坐标系 ...

最新文章

  1. UNIX编程笔记:关于停止的进程接收信号的问题
  2. 有哪些时间管理的习惯?
  3. golang两种请求http的方式
  4. PyODPS学习:使用DataFrame实现SQL的IF判断
  5. 6.编译器拓展SEH
  6. 对Java初学者来说,到底Java有哪些高效的开源库?
  7. wxWidgets:wxRibbonGallery类用法
  8. SAP UI5 的控件Focus 相关处理逻辑
  9. 问题 1045: [编程入门]自定义函数之整数处理
  10. 华为服务器上传文件后怎么通过链接查看,远程服务器文件上传后的操作
  11. 【补】day3 table标签
  12. pandas小记:pandas数据规整化-正则化、分组合并及重塑
  13. SpringCloud常见面试题总结二
  14. win7 桌面计算机不显示器,Win7电脑显示器黑屏不显示的解决方案
  15. 如何搭建中国电信物联网云平台
  16. DSP复习笔记(2)——TMS320F28335芯片内部结构
  17. sangerbox使用教程_TCGA RNA测序ID转换一文就够
  18. NotePad++7.5 64 bit版本以后没有plugin manger的解决方法
  19. 关于飞塔防火墙做端口聚合的时候应该如何选择端口可以达到最好效果。
  20. 窥探React - 源码分析

热门文章

  1. 华为云桌面为建筑行业BIM落地实施提供有力支撑
  2. 图片如何加水印?几个步骤教你加水印
  3. 人工智能轨道交通行业周刊-第16期(2022.9.26-10.2)
  4. 使用gitea通过码云完整克隆github源码库到本地备份(Windows Docker环境)
  5. maven项目中运行报错java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
  6. 苹果电脑压缩视频大小变小怎么压缩那个软件好
  7. Fritzing 元件绘制
  8. 同学结婚不想去怎么办啊?
  9. 利用asm对jar进行修改
  10. Python+Excel系列:案例七:将一个工作薄的所有工作表批量复制到其他工作簿、将某个工作表的数据批量复制到其他工作簿的指定工作表中