生物信息实用语言
一:python–life is short,I use python
维基百科对python的介绍是:Python是一种面向对象、解释型的计算机程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
我接触python的原因是在学习Perl语言的时候,老师时不时就会讲python不用声明变量,好方便的说;python不用花括号用Tab,好方便的说;python写代码可以调用大量的库,好方便的说。python被老师说的如此玄乎,我作为一个小萌新当然要去学学咯。
作为一个pythoner我的学习之路是这样的:语法-结构-爬虫(之后想继续学习数据分析)。因为专业不是计算机,再加上数学太low,就没去触碰算法。那现在就让我这个“过来人”介(mai)绍(nong)一下python吧。
1.1一行代码实现变量值互换
a, b = 1, 2; a, b = b, a
1.2 斐波那契数列
fibs=[0,1]
n=input(">Please enter the number you want")
for i in range(n-2):
fibs.append(fibs[-2]+fibs[-1])
print fibs
#append函数:在数组末尾加上另一个数
1.3 python常用库
urllib/urllib2/request —–爬虫请求URL需要
re —–提供正则表达式需求
numpy / scipy —–科学计算
matplotlib/ggplot2 —– 画图
scrapy/django/flask —–爬虫框架
pip —–包管理
1.4 python可以做的事
其实学了这么久,不是说什么东西就是非得去做一件事,不是说Java做软件开发就不能做数据分析,python做数据分析就不能做游戏开发。只能说尺有所短寸有所长。
爬虫:python有 scrapy/django/flask等开源爬虫框架,很是方便。进行网络请求时也十分简单。
数据分析:python有Numpy/Pandas等科学计算包,数据可视化采用Python上最常用的Matplotlib及Seaborn。
so on。
1.5 python学习引导
https://www.python.org/ python官网
http://python.usyiyi.cn/ python有关的中文 文档(英文不好同学的福音)
http://www.liaoxuefeng.com/ 廖雪峰老师官网
https://www.codeschool.com/
书籍: 《python基础教程》
《Python网络数据采集》
1.6 python总结
使用python的原因其实也就2点:1代码简单优雅,2有众多前辈大牛在丰富这门语言,站在巨人的肩膀上,会看的更远。对了,python通常分为2.x和3.x版本区别,2.x用的人多,但是最终一定将会转到3.x版本阵营。
二:perl
维基百科对Perl的介绍是:Perl是高级、通用、解释型、动态的程序语言家族。Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。
缺点:许多Perl程序的代码令人难以阅读(符号多的让人痛苦),实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。
Perl擅长于文本处理和系统管理,不适合于实时嵌入式系统编程、操作系统底层开发(比如驱动程序开发)、复杂的多线性共享内存应用以及极度大的应用。
2.1 基本输出
$phrase = "Howdy, world!\n";
print $phrase;
##看到了么,Perl要在每一个变量前加一个$,还有熟悉的C语言\n.
2.2 正则–从纯文本中查找URL的框架(部分)
(ftp|https?)://[-\w]+(\.\w[-\w]*)+
||
(?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? \. )+
(?-i: com\b
| edu\b
| biz\b
| gov\b
| in(?:t|fo)\b
| mil\b
| net\b
| org\b
| [a-z][a-z]\b
#反正我是看的晕了过去。。。
2.3 bioperl
对于我们做生物信息的,bioperl比perl更专业,更有针对性,bioperl拥有进行生物数据处理和分析的众多模块。
2.4 Perl学习引导
http://www.perlchina.org/ perl学习官网
http://www.runoob.com/perl/perl-tutorial.html
书籍:《learn perl》
三:R
维基百科对R的介绍是:R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R内置多种统计学及数字分析功能。R的功能也可以通过安装包(Packages,用户撰写的功能)增强。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的面向对象(面向对象程序设计)功能。其分析速度可媲美专用于矩阵计算的自由软件GNU Octave和商业软件MATLAB。
3.1 R语言赋值方式
fruit <- c("orange", "banana", "apple", "peach")
派<-3.1415926
3.2 统计函数

3.3 高级绘图
喜欢使用R,并无聊的时候打开Rstudio玩一会儿就是因为R的绘图。各种玩不腻。。
plot()是一个通用基本函数。如果x,y是向量,plot(x,y)生成一幅y对x的散点图;如果x是一个时间序列,这个命令生成一个时间序列图;
tape参数:
type= 参数type=控制所生成图形的类型:
type=”p” 绘制单独的点(默认值)
type=”l” 绘制线
type=”b” 绘制由线连接的点(both)
type=”o” 将点绘在线上
type=”h” 绘制从点到零轴的垂线(high-density)
3.4 ggplot2
ggplot2一定要单拿出来说一下,ggplot2的逻辑其实是真正实现了一个图层叠加的概念:一句语句代表一张图,然后再有最小的单元图层。
从知乎拿来一个栗子:
x <- rnorm(100,14,5)
y <- x + rnorm(100,0,1)
ggplot(data= NULL, aes(x = x, y = y)) + #开始绘图
geom_point(color = "darkred") + #添加点 annotate("text",x =13 , y = 20,parse = T,label = "x[1] == x[2]") #添加注释

ggplot2作图的特点是层次清晰,图简洁美观,自由度高。当别人使用hist(),plot()这种基本函数的时候,ggplot2就显现出了自己的B格。
3.5 R常用包
ggplot2 作图
biostrings 基因序列数据分析
htmltools Tools for HTML
plotly 作图
twitteR Twitter爬数据
MASS: 经典的统计方法,包括各种估计和检验方法
e1071 机器学习–提供R和LIBSVM的接口
3.6 R学习引导
https://www.codeschool.com/
书籍:《R语言实战》
今天就介绍下这三种语言,时间紧迫,还在期末考做这期推送也是胆大。码字辛苦,望各位同学海涵。下一期将会推送生物信息常用的工具:代码编辑器,IDE之类。如果喜欢的话,就点一下关注吧。
