美文网首页生信基础知识
B站R语言视频笔记

B站R语言视频笔记

作者: 大吉岭猹 | 来源:发表于2019-03-30 12:30 被阅读9次

1. 介绍

1.1. 初学者运行代码

  • 一行一行地运行
  • 慢+理解=进步

1.2. R studio界面

  • environment中会记录现有变量
  • history中会记录执行过的命令
  • files中显示当前文件夹中的文件
  • plots画板
  • packages中显示已安装的包(.libPath()可以找到安装包的路径)
  • help中显示帮助内容(用help()获取帮助)
  • viewer暂时用不到

1.3. 重要函数

  • class() 查看类型
  • str() 查看结构
  • mode()
  • typeof()

2. 变量

2.1. 变量类型

  • 向量型(Vector):可以视作一个数据集
  • 矩阵型(Matrix)和数组型(Array)
  • 数据框架型(Data Frame)和列表型(List):类似C的结构体,其中各项可以属于不同的数据类型

2.2. 创建变量

2.2.1. 向量

  • a <- c()
    • 数据类型之间有等级
    • NULL<raw<逻辑类型<整型<实数类型<复数类型<列表<表达式(把配对列表当作普通列表)
  • 函数生成变量
  • 内置变量

2.2.2. 矩阵

  • dim(向量)=c(行数,列数)即为矩阵(先排列,再排行)
  • rbind/cbind(c(),c())将两个向量结合成一个矩阵(分别是一行/列)

2.2.3. 数据框

  • 通过as函数把矩阵变成数据框架
  • d <- data.frame(list(kids=c("jack","jill"),ages=c(12,10)))
  • 通常通过读取文件或数据库来创建

2.2.4. 列表

  • x <- list(u=2, v="abc")

2.3. 变量操作

  • 用索引(index)/逻辑符来取元素
  • 引入is系列函数和as系列函数(不需要把所有函数背下来,而应该找规律)
  • paste/paste0()将字符串连接到一起(中间有空格/无空格),strsplit()将字符串拆开(返回list)
  • 矩阵乘法 %*%
  • 对于数据框架和列表可以用$获取组件
  • 列表的一种常见用法是把多个值打包组合到一起,然后从函数中返回。

3. 数据和导出

  • read/write系列函数,灵活运用,熟悉参数,以应对不同的需求
  • 参数包括但不限于:分隔符/注释信息/表头/行名
a = read.table('', head = T, sep = '\t')
b = read.table('', comment.char = '!', head = T, sep = '\t')  # 带感叹号的不读取
write.csv(b,'.csv')
d = read.csv('.csv')

read.table('', head = T, sep = '\t')
save(b,file = 'b_input.Rdata')
load(file = 'b_input.Rdata')
b = b[,-1]  # 取第一行
b = log2(b)
pheatmap::pheatmap(b[1:10,])

4. 中级变量操作

  • 函数无穷无尽,但其中有规律
  • 所有函数都有参数
  • R可以避免一些低阶循环

5. 热图

  • 学习一个新包/新函数的方法:?+看example
  • 看的过程中不断尝试改变标准代码来进一步理解
rm(list = ls())   #魔幻操作,一键清空
library(pheatmap)
a1 = rnorm(100)
dim(a1) = c(5,20)
pheatmap(a1)
a2 = rnow(100)+2
dim(a2) = c(5,20)
library(pheatmap)
pheatmap(a1, cluster_rows = F, cluster_cols = F)
pheatmap(cbind(a1,a2))
pheatmap(cbind(a1,a2), show_rownames = F, show_colnames = F)

6. 绘图

  • 常用包:ggpubr ggplot2

7. ID转换

  • 文献附件里的基因名有时候是一些怪东西,需要找到对应表格,然后用代码把这些名字变成正常名字
  • 一些函数
strsplit('','[.]') #根据点号分割,注意中括号
duplicated() #去重
  • 一些包
    org.Hs.eg.db #在包里有基因注释关系

8. 任意基因任意癌症表达量分组的生存分析

  • 制作生存曲线的网页工具 oncolnc
  • 分组看表达量
library(ggstatsplot)
ggbetweenstats(data = dat, x = Group, y = Expression)
  • 学习包:survival
    • 大部分代码都不是自己写的,学会别人的包,微调参数即可
    • 学会R语言基础变量结构和基础函数操作,应用到别人的高级代码中

9. 任意基因任意癌症表达量和临床性状关联

  • 网页工具 cBioPortal
  • 可以利用网页工具获取数据自己分析作图

10. 表达矩阵样本的相关性

  • 看两个变量的相关性
    > cor(1:10,1:10)
    [1] 1
    > a = rnorm(10)
    > b = rnorm(10)
    > cor(a,b)
    [1] -0.1555608
    > a = rnorm(10)
    > b = 10*a+rnorm(10)
    > cor(a,b)
    [1] 0.9971822
  • bioconductor包
    • 数据包(加载数据)
    • 功能包
    • 注释包(各种芯片、基因间转换)
  • 写函数的时候(比如apply中的函数)可以先调试一下前几行,再写进去
  • 去除低表达,再看相关性,避免由于表达过低出现假相关性

11. 芯片表达矩阵下游分析

  • 只需要表达矩阵和分组信息,剩下的代码复制微调即可
  • 使用的分析方法(包):DEG by Lima
    • 加入了回归相关的校验
    • 构造比较矩阵
    • 画火山图
    • 挑选变化比较大大基因
    • 富集分析

12. RNA-seq表达矩阵差异分析

  • 芯片获取表达矩阵 exprSet = exprs(sCLLex)

  • RNA-seq获取表达矩阵 exprSet = assay(airway)

  • 两种写包的流派

    • 包装越好,越合适初学者用
    • 尽量不用任何高级的东西,纯粹自己写
  • 同样只需要表达矩阵和分组信息,另外,有专门的normalization方法

  • 分析RNA-seq数据的三个包之一:DESeq2

  • 阅读材料:多个探针对应同一个基因取最大表达量探针极简代码

13. 字符串操作

stringr包:vignette("stringr")查看说明书

  • grep(pattern,x) 在字符串向量x里搜索给定子字符串pattern,返回索引。
  • nchar() 返回字符串长度
  • paste() 拼接
  • substr(x,start,stop)
  • strsplit(x,split) 根据x中的字符串split把字符串x拆分成若干子字符串
  • regexpr(pattern,text) 在字符串text中寻找pattern,返回与pattern匹配的第一个子字符串的起始字符索引
  • gregexpr() 与regexpr类似,但会寻找匹配的所有子字符串

13.1. 正则表达式

  • 一种通配符,用来描述一系列字符串的简略表达式。
  • ?regex查看相关帮助
  • [au]表示含有字母a或u的字符串
    • grep("[au]",c())
  • 句点'.'表示任意一个字符
    • grep("o.e",c())

最后,向大家隆重推荐生信技能树的一系列干货!

  1. 生信技能树全球公益巡讲:https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
  2. B站公益74小时生信工程师教学视频合辑https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
  3. 招学徒https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw

相关文章

  • B站R语言视频笔记

    1. 介绍 1.1. 初学者运行代码 一行一行地运行 慢+理解=进步 1.2. R studio界面 enviro...

  • R语言打基础 — boxplot / heatmap

    这是我听B站—鲮鱼不会飞视频(R语言相关内容补充)里的笔记哦~ 先读入我们的数据 参数解读: 使用read.tab...

  • R语言画热图的一个简单小例子1~视频版

    R语言画热图简单小例子 B站视频链接,关注投币点赞 这次一定! https://www.bilibili.com/...

  • 土豆 R基础笔记

    本文主要是B站阿雷边教边学的R语言学习笔记https://www.bilibili.com/video/av632...

  • R语言作业—中级

    教程对应B站:【生信技能树】生信人应该这样学R语言配套资料:B站的11套生物信息学公益视频配套讲义、练习题及思维导...

  • R语言作业-20题

    教程对应B站:【生信技能树】生信人应该这样学R语言配套资料:B站的11套生物信息学公益视频配套讲义、练习题及思维导...

  • R语言作业—初级

    教程对应B站:【生信技能树】生信人应该这样学R语言配套资料:B站的11套生物信息学公益视频配套讲义、练习题及思维导...

  • R语言作业-初级10题

    dandanwu902019年4月9日 B站R语言视频在这里看完视频就上树!小菜鸟!初级10 个题目在这里 清空一...

  • R语言画热图的一个简单小例子2~视频版

    大家好,今天继续录制视频介绍R语言的pheatmap包画热图的小例子,今天就是实现下面这幅图 B站视频链接 htt...

  • R语言视频笔记

    【生信技能树】生信人应该这样学R语言 01.介绍R语言及Rstudio 1.了解并安装R,Rstudio以及R包 ...

网友评论

    本文标题:B站R语言视频笔记

    本文链接:https://www.haomeiwen.com/subject/zwpjbqtx.html