生信故事会之菜鸟跑半年
大家最近可能看我的生信五周年巡讲会有审美疲劳了!
现在我们换个口味,分享一个朋友的故事,希望大家能有所收获!
生信故事会之一个中医学生的生信之旅 (昨日精彩故事)
今年2月份在导师岑洪老师的邀请下,生信技能树团队来到美丽的广西南宁,我们有幸跟随健明老师及其团队:孙小洁,慧美老师进行R语言学习。2天封闭式强化学习,从早到晚的课程满满当当,只挤出吃饭喝水的时间,满满的干货,让我们一群生信小白,完成了生信学习的入门,对生信的理解如醍醐灌顶,真真体会了一句话:“高手一指点抵菜鸟跑半年”。
在课程学习结束之后,生物技能树团队老师们,一直督促并指导我们学习,在生信学习的道路上为我们一群菜鸟保驾护航,提供给我们学习资源,鼓励我们的记录学习心得,现在的自己从一个完全不懂的小白变成能做一些分析的初级小白,对生信R语言的学习也有了一些小小的心得分享给大家。
一.认识R语言:R语言是什么
初学者对于R语言的概念理解可能像看天书一样困难,但其实我们简单来理解,R语言其实可以简单理解为一个大型的数据计算处理器,通过编程写代码实现各种目的,输入你书写或者现有的代码,软件就会运行帮你完成之后输出你想要的结果(可以理解为你通过代码命令这个软件做什么事情。这个过程有点类似你妈妈让你去买盐(代码:命令),她给你钱(文件:数据),你去了(R语言执行操作),然后回来给她一包盐(输出你想要的分析结果或者图形))。
二. 认识R语言:R语言的两大基础
我们把R语言作为数据计算处理器理解后,设想当我们进行一个数据计算时需要输入什么:
① 我们需要计算的数据(等同于R语言中数据的概念,这个数据可以来源于我们实验的原始数据,读取原始数据进入R语言的过程其实就是我们输入计算数据的过程)
② 我们需要对这个数据进行的计算方法(等同于R语言中函数的概念,多数情况下是多个函数组合,R包可以理解为多个函数组合成的一个固定的计算方法)
当我们在R语言中输入数据(需要计算的数据)及函数(数据的处理方法)后,计算机会输出一个结果,这就是我们要达到的目的。
所以初学者对R语言理解的两大基础为理解数据和理解函数
理解数据
数据的类型,数据组合后赋值给向量,向量的类型(见下图)
理解函数:
1. 常见函数的意义:
(此处学习技巧是:对于初学者来说,常见函数往往不记得其功能,找的时候也很难找,建议自己列一个常见函数合集,备注好功能,以后随手取用)
getwd()#找寻当前运行默认文件夹
setwd("../")#更改当前运行默认文件夹
#光标在/后按住tab出来上一级文件夹,只有英文的能识别,选好后运行
typeoff()#判断数据类型的的函数
length()#长度
dev.off()#关闭画板;dev.new()#打开画板:通常不出图时可以用这个
dim()#查看维度
class()#查看数据类型
head()#查看数据头几行
.libPaths()#查看R包安装的位置
apply(exprSet,1,sum(x>1)>5)#对数据中每一行进行一个什么运算,1代表行,
2.理解为特殊的函数:R包
R包可以理解为多个函数组合成的一个固定的计算方法,大神编辑的各种R包可以理解为自己编辑的R语言程序,我们就不用编辑可以直接安装后拿来用,但是每次都要加载
(此处初学者小知识:初学者使用R包时很容易出现错误,出现错误时主要找以下几个原因:1.R包没有安装2.R包没有加载3.R包名字拼写错误4.安装源安装方法错误,试一试其他的方法5.我们很容易把函数误以为是R包,结果无法下载下来,用??函数名查看函数,可以显示其位于哪个R包,再下载相应的R包)
常见的R包:
1. tidyr包的三个重要函数:gather(聚合),spread(扩展),separate(分离)的用法和举例,(对于方差分析等统计学手段处理数据时,整理数据很有用)
2. dplyr的几大重要函数:(主要是对数据进行排序,分类,整合,连接等)
3. stringr:主要是对字符串进行处理
4. loop:主要目的为实现循环,for等,which等,自动多次运算,算完结果
5. apply:用于处理矩阵或数据框,可直接对之中数据选择进行处理
三:实际开始操作R语言:输入数据输入命令进行处理
输入数据:对于已经存在的文件数据,要处理时要打开进入R语言里面读取导入文件,打开文件类型格式不同,具体的代码不同,但是原理差不多,详细可见简书一文:《初学者R语言:外部数据导入》
(此处初学者小知识:打开文件要注意的一点就是一定要把文件放在默认文件夹中,不然R语言找不到,还有文件名不能错!)
输入命令:输入代码或者现有R包
(此处初学者小知识:当我们要需要达成一个目的,输入一个命令时候,我们有时候不知道命令的具体R包或者代码是什么,我们可以去百度谷歌可能的R包或者GITHub里面去找别人写好的代码)
(此处初学者小知识2:你找到R包之后不会用,或者找到代码后不理解里面的函数怎么办,输入?R包名字,则可以出来R包的详细解释,用??函数名查看函数详细的解释)
四:根据R语言个性化达到你要的目的:做分析/数据挖掘或者图表等等
R语言分析作图,为更加复杂的代码,但基础原理是一样的,只要查找到相应代码,按照代码格式修改你源文件,直接运行就可以得到结果
R语言数据挖掘:详见如下简书文章
《怎么实现ID转换》
《R语言GEO数据挖掘:步骤三:进行基因差异分析》
《R语言GEO数据挖掘:步骤四:富集分析KEGG,GO》
R语言分析方法:详见如下简书文章
《用R语言分析:RNAseq表达矩阵样本的差异性》
《用R语言分析:表达矩阵样本的相关性及可视化》
《用R语言进行差异化分析:可自定义选取指定数据分别进行分析》
《用R语言进行相关性分析:画出散点图、拟合线及标注相关系数和P值》
《利用R语言分析基因表达量和临床特征之间的关系》
《利用R语言分析基因表达量和预后的关系》
R语言作图方法:详见如下简书文章
《初学者R语言:热图基础画法及个性化调整详解》
(此处初学者小知识:R语言学习中,与别人的交流相当重要,多和别人交流你可以发现自己的很多问题迎刃而解,而且当了解学习到一个东西了之后,一定要把这个学习心得和步骤记录下来!!像这样写成文,一来你的理解更为透彻,二来不容易忘记,就算忘记了还能随时翻出来)
此文算是这几个月学习的一个总结,能从一个菜鸟到现在入门,非常感谢jimmy的生信技能树团队!感谢导师岑洪老师!感谢健明、孙小洁,慧美等生信技能树团队的老师!谢谢老师们一路以来的指导和鼓励!
后记
哈哈,我们的生信故事会其实很早以前就开始了: