R语言学习笔记-Day08

2024-07-17 18:13:05 浏览数 (1)

因子

对照组的levels在前

#默认的levels按首字母顺序排序,允许自己设置

factor(Group)#没设置levels,采用默认按照首字母设置 #相当于unique(Group)并按首字母排序 levels的第一个单词作为差异分析的对照组,一定要提前检查并确认levels

levels设置方法:

factor(Group, levels = c("Normal","Disease"))#手动对levels进行赋值确保levels顺序正确,对照组在前

设置好后将样品名和分组放到一起进行检查设置是否正确

data.frame(pd$title,Group)

获取探针注释

library(tinyarray) gpl_number#提前一步获取并保存 View(pkg_all)#查看探针编号并搜索 或: pkg_allpkg_all$gpl==gpl_number,2

获取ids

#需将示例中hgu133plus2全部替换成所需探针注释

#一定要加.db!!!

if(!require(hgu133plus2.db))BiocManager::install("hgu133plus2.db",ask = F,update = F) library(hgu133plus2.db) ls("package:hgu133plus2.db") #列出R包里内容 ids <- toTable(hgu133plus2SYMBOL) #ids应当只有两列

自主注释

#流程:

获得探针ID与序列——> //读取gtf文件

比对到参考基因组——> //获取基因位置信息

#下载参考基因组#构建索引#运行比对

bam转为grange对象——> //成为grange对象

寻找对应关系——>

提取对应行并cbind

一个探针对应多个基因——非特异性探针

1* 去除

2* 去除MiRNA(困难且没必要)

多个探针对应同一个基因

1* 随机去重

distinct(test,Species,.keep_all)

2* 保留行和/行平均值最大的探针

apply(test,1,sum/mean)

3* 取多个探针的平均值

apply(test,2,mean)

抽样

sample(1:100,10)

PCA样本聚类图

library(FactoMineR) library(factoextra)

iris.pca <- PCA(iris,-5,graph = FALSE) fviz_pca_ind(iris.pca, geom.ind = "point", #show points only (nbut not "text") col.ind = iris$Species, # color by groups palette = c("#00AFBB", "#E7B800", "#FC4E07"), addEllipses = TRUE, #Concentration ellipses legend.title = "Groups" )

top1000差异基因热图

g = names(tail(sort(apply(exp,1,sd)),1000));g#筛选sd最大的1000个基因 n = expg,;n#提取top1000基因 library(pheatmap) annotation_col = data.frame(row.names = colnames(n), Group = Group)#以样本名为行名创建数据框并分组

pheatmap(n,#以n中数据作图 show_colnames = F,#不显示列名 show_rownames = F,#不显示行名 annotation_col = annotation_col,#列注解为annotation_col,按照Group的因子生成图例 scale = "row",#按行标准化,只保留行内差别,不保留行间差别,会把数据范围缩放到大概-5~5之间,若不如此做,仍为0~15,差异则不够清晰 breaks = seq(-3,3,length.out = 100)#设置色带分布范围为-3~3之间,超出此范围的数字会显示极限颜色 )

引用自生信技能树

0 人点赞