我的R学习领路人是北大生信在读博士孟浩巍,学习R是从参加他的知乎live课程《R入门与基础绘图系统》开始的,从第一次讲座时间到现在虽然才过去不到一周,但我已经可以把R当做一个不太好用的excel来进行简单的图形绘制了。接下来对我的课程学习进行小结分享,并做一下接下来的学习规划。
1. 知乎live课程收获
早在第一次生信入门课上就对R有了些许的了解,知道它是一个强大的绘图与统计工具,便决定好好学习它。虽然很多人都先推荐学linux系统,学其他一门脚本语言,但抱着对它用来作图的极大兴趣,我竟然现在windows系统上装上了它,这一用起来就有些一发不可收拾了:它的功能太强大了,它的绘图太便捷了。
R语言的由来:
R语言由付费的S语言发展而来的,而S语言诞生于著名的贝尔实验室。1995年,两位R语言之父正式推出R软件。
R语言的优势和劣势
R语言的优势在于它的开源,它优秀的跨平台性,它支持脚本和批处理,同时其良好的统计处理、灵活的语言、便捷的画图方法及丰富的R包让它在生物信息学中有着无可取代的作用。
尽管如此,开源的R语言也让它的维护变得艰难,其说明文档也相当不规范,给阅读带来了一定的困扰。同时较慢的运算速度、极慢的for循环、较大的内存消耗和非命令行条件下只支持单核计算的特点也限制了它的一些应用。
R语言开发环境的搭建
目前,我练习的还是基于windows系统下的R,其安装和运行也很方便。在官网下载对应系统的R语言包安装即可。同时还需要安装R Studio,即可构建出一个良好的开发环境。
在一切就绪后,有一个小小的设置会让你的界面更好用,那就是主题配置和高亮函数。具体操作如下:
主题配置:右上角Tools-Global Options-Appearance-Theme-Cobalt(群主推荐);
高亮R函数:Tools-Global Options-Code-Display-Hightlight R function calls -Apply。
关于R的学习资料,主播也给我们推荐了很多,接下来我将选择较为容易的R Beginner作为我的入门参考书目,希望自己可以早点做到真正的入门。
温馨小提示:
用R要养成良好习惯,及时清空环境变量:rm(list=ls())
Run的快捷方式为ctrl+enter
R包
在R中当需要完成特定的程序功能时,需要用相应的R包来实现。而安装R包的方式主要有以下两种:
1. CRAN:R语言官方发布的包,模板需要联网,install.packages(“package name”)。
2. Bioconductor:专门做生信分析的R包的集合,biocLite(“package name”),该网站还有很多优秀免费的course可供我们去学习。
由于R存在交叉调用且出错难以辨认的问题,下载后安装会有依赖性问题,所以推荐在线安装。
R的绘图系统
R在绘图功能很强大,具体可分为R的基础绘图系统和高级绘图系统,由于高级绘图系统很多参数难以更改,所以主播推荐基础绘图,它可以做出来更多的定制东西来。所以我先从基础绘图学起,同时简单了解一下高级绘图。
基础绘图又包括两类:一是低级绘图函数,如创建画布、点、线、多边形等;二是高级绘图函数,如plot(),boxplot(),hist(),density()等。
高级绘图也包括两类:一是grid绘图系统,如基于grid绘图系统开发的ggplot2等;二是lattice绘图系统。
2. R 的练习
有了以上理论知识,就可以实战上机了,因为计算机语言的学习光看书是没用的,关键是要练习。我跟着主播的步伐,从安装到开始敲代码,一步一步进行中。
1.简单操作和基本函数的练习。
(1)练习print(“Hello word”)
(2)常用的赋值操作
(3)生成向量
(4)创建序列seq/rep
(5)c函数合并向量
(6)删除奇数位置
(7)创建矩阵
(8)取矩阵一部分
(9)创建数据表格式
交作业了,我的相关练习代码如下:
2.基本作图
有了以上基础知识,就可以进行简单图形的绘制了,如散点图(plot),条形图(barplot),直方图(hist),箱线图(boxplot)等。
3.作图进阶
当然,一个好的图片,可能需要几易其稿,那么我们也来感受一下修图的乐趣。
当我自己做出来这几幅图时,突然有了小小的成就感,真正体会到R语言这一工具的强大,于是也有了继续学习下去的兴趣了。
4.其他常用操作,写循环,做判断,自定义函数
5.项目实战
有了以上的基础,我们可以体验小项目啦,主播给我们找了一个真实的RNA-seq数据,教我们如何去做科研中常见的plot(散点图)和heatmap(热图)。到这里,真有一种入门了的感觉呢。
具体步骤如下:
(1)安装heatmap并加载:install.packages("pheatmap") / library(pheatmap)
(2)数据导入:read.table,注意路径符号“/”,带标题“header=T”,分隔符为“\t”
(3)差异基因筛选金标准三条均须满足(涉及:或“|”,且“&”):
a.统计显著性:p<0.05;
b.表达量变化明显:log2(fold change)>1or<-1;
c.有生物学意义:one of the fpkm>1。
(4)绘制箱线图,看表达量分布(distribution)
(5)绘制热图,看基因差异变化趋势。
6.独立练习
有了以上的数据,我迫不及待的找出来自己一部分RNA-seq来练习,趁热打铁。我的数据保存格式为excel,教程里并没有交该类数据的导入,但我学到了如何用google解决问题,并尝到了甜头,顺利完成了独立练习。
具体步骤如下:
(1)安装heatmap并加载(已有):install.packages("pheatmap") / library(pheatmap);
(2)数据导入:将excel保存为CSV格式,读取方式为read.csv,注意路径符号“/”,带标题“header=T”,分隔符为“\t”
(3)差异基因筛选金标准三条均须满足(涉及:或“|”,且“&”):
a.统计显著性:p<0.05;
b.表达量变化明显:log2(fold change)>1or<-1;
c.有生物学意义:one of the fpkm>1。
(4)绘制箱线图,看表达量分布(distribution)
(5)绘制热图,看基因差异变化趋势。
3.总结与展望
不到一周的学习自己有这么多收获已经很欣喜了,这无不得益于孟主播的精彩直播。当然,我深知自己连一只脚都还迈进,还需要进一步去学习去巩固。但学习中的乐趣和兴趣显然成为自己坚持下去的理由和信心。接下来,我将开始R beginner的学习,争取用一周的时间完成该书的阅读和相关代码的练习,期待自己下一周的小结吧。
本文参考了孟浩巍博士知乎live相关课程,在此表示感谢,请勿随意转载。
猪猪头 2018.4.29 于伦敦