今天我在整理电脑时,看到了几个月前写的笔记。于是补充了一些新的信息,上传上来供大家学习时参考(文末有彩蛋)。
若有不足之处,欢迎通过简信与作者联系~
以后提及b站R语言视频,就是指上面这个链接里的内容了。视频的作者是生信技能树的创始人Jimmy老师。感谢Jimmy老师~~
下面贴一下Jimmy老师对于R语言入门资料的介绍:
下面是笔记正文:
1 Rstudio
- history,source to console
- .libPath # 找到包的安装路径
2 基础语法
- a= LETTERS[1:10] #取字母表的第1-10个字母
- save(b,file="input.Rdata')
- load(file='input.Rdata')
- 批量注释 code菜单
- class mode typeof
- as.numeric(unlist(lapply(d,length)))
- grep('RNA-Seq', a$Assay_Type)
- index1=grep('...',a$x) #得到下标
- index2=grepl('...',a$x) #得到TRUE/FALSE
- b=a[index1,]
- b=a[index2,]#两者效果相同
- table()#count
自认为这部分笔记做得不是很好,毕竟是入门第一周时写的笔记,见谅。
3 文件读取
a=read.table('...',comment.cha='...',header=T, sep='\t')
write.csv(a,'...')
rownames(a)=a[,1]
a=a[,-1]
a=log2(a)
save(a,file='a_input.Rdata')
load=(file='a_input.Rdata')
4 中级变量操作
write.csv(a,'xx.csv',row.names = F)
write.table(a,'xx.csv',sep=',')
sort(a$x,decreasing = T)[1]
max(a$x)
fivenum(...)
boxplot(y~x)
rowMeans(b)
apply(b,1,mean)
rowMax=function(x){
apply(x,1,max)
}
sample(1:nrow(b),50)#随机选50行
pheatmap::pheatmap(b[sample(1:nrow(b),50),])
cg=names(sort(apply(b,1,sd),decreasing = T)[1:50]) #方差最大的50个探针
pheatmap::pheatmap(b[cg,])
5 热图
pheatmap(cbind(a1,a2),cluster_cols=F)
a1=rnorm(100)
a2=rnorm(100)+2
b=cbind(a1,a2)
b=as.data.frame(b)
names(b)=c(paste('a1',1:20,sep='_'),paste('a2',1:20,sep='_'))
library(pheatmap)
pheatmap(b)
6 选取差异基因
d_h <- function(dat,group_list){
cg=names(tail(sort(apply(dat,1,sd)),1000))
n=t(scale(t(dat[cg,])))
n[n>2]=2
n[n<-2]=-2
ac=data.frame((g=group_list))
rownames(ac)=colnames(n)
pheatmap(n,show_rownames = F, show_colnames = F,annotation_col = ac )
}
基础绘图及ggplot绘图语法
ggplot2
7 id转换
#strsplit('','[.]')[[1]][1] #取.前的字符
library(stringr)
a$ensembl_id = str_split(a$V1,'[.]',simplify = T)[,1] #分割后得到数组,取第一列
library(org.Hs.eg.db)
g2s=toTable(org.Hs.egSYMBOL)
g2e=toTable(org.Hs.egENSEMBL)
b=merge(a,g2e,by='ensembl_id',all.x=T)
d=merge(b,g2s,by='gene_id',all.x=T)
table(d$ensembl_id)[table(d$ensembl_id)>1] #查看重复的基因数量
d=d[order(d$V1),]
d=d[!duplicated(d$V1),] #去重复
d=d[match(a$V1,d$V1),] #保证顺序一致
write.csv(d,'geneID2symbol.csv')
8 生存分析
oncoLnc
9 临床关联
cbioportal
10 表达矩阵的样本相关性
去掉变化小的基因,缩小矩阵
exprSet=exprSet[apply(exprSet,1,1function(x) sum(x>1)>5,]
exprSet=log(edgeR::cpm(exprSet)+1) #去除文库大小差异
exprSet=exprSet[names(sort(apply(exprSet,1,mad),decreasing =T)[1:500]),]
M=cor(log2(exprSet+1))
11 芯片表达矩阵下游分析
做好表达矩阵和分组信息,直接用limma包
12 RNA-seq表达矩阵
DESeq2
解读GEO数据存放规律及下载,一文就够
解读SRA数据库规律一文就够
从GEO数据库下载得到表达矩阵 一文就够
GSEA分析一文就够(单机版+R语言版)
根据分组信息做差异分析- 这个一文不够的
差异分析得到的结果注释一文就够
以上就是全部正文内容了。
下面还有一些补充材料:
上面这段话是我转载的Jimmy老师语录,供大家学习时参考。
本文开头提到的练习题答案可以在下面的路径中找到:
感兴趣的朋友可以提交自己的答案、笔记或心得,请注意提交到正确的位置哦~
最后,向大家推荐友情生信技能树的一系列干货!
B站公益74小时生信工程师教学视频合辑(划重点!!)
更多学习资源,可以通过以下方式找到:
3、微信公众号:生信菜鸟团、生信技能树、生信星球、果子学生信、单细胞天地 等。
更多更多学习资源,可以通过以下方式找到:
1、简书作者(排名不分先后):
以上这些是我认识的作者,都是生信技能树的大佬,写作质量非常高,大家可以放心关注~~!!!
2、微信公众号:小丫画图(强烈推荐给已经入门生信的朋友们!)、biobabble(这是Y叔的公众号)、生信草堂(由浙大李明定教授课题组创建),类似的还有很多,不一一推荐了。
还有一些资源比较零碎,日后有空再做补充。
如果你也有好的资源,欢迎评论或简信交流~~
如果你想要获得本文的md文件,可以通过简信与我联系,留下你的邮箱,并注明个人信息和用途。本文仅供学习参考,请勿通过商业渠道传播,谢谢!