一、Day1今天的学习任务:
1.R语言的基础语法检验
2.统计可视化代码练习
3.Jimmy生信技能树B站R系列课程P1——P6
二、操作过程及步骤含义
1.首先要找到相应的分析数据,下载并导入外部数据
rm(list = ls())
options(stringsAsFactors = F)
getwd()
a=read.table('BioSample.txt',header = T, sep='\t')
b=read.csv("sample.csv")
2.使用merge函数将两个表格重复的名称部分关联起来,得到新表格d,进而取出我们关心的部分“MBases”和"Title"两列重组为表格e
colnames(a)
colnames(b)
d=merge(a,b,by.x = 'Sample_Name',by.y = 'Accession')
e=d[,c("MBases","Title")]
3.存储表格e的数据内容并重新建立分析
save(e,file = 'input.Rdata')
rm(list = ls())
options(stringsAsFactors = F)
load(file = 'input.Rdata')
4.读取e样本信息表格中第三列元素的统计情况(第三列元素代表样本所在plate信息),根据e的第一列数据和plate相关联,绘制boxplot图并将MBases分两组检验是否具有统计学显著差异
e[,2]
plate=unlist(lapply(e[,2],function(x){
# x=e[1,2]
x
strsplit(x,'_')[[1]][3]
}))
table(plate)
boxplot(e[,1]~plate)
t.test(e[,1]~plate)
5.e表格中增加一列plate分类,使用ggplot绘制出以MBases和plate为xy轴的箱线图
e$plate=plate
library(ggplot2)
colnames(e)
ggplot(e,aes(x=plate,y=MBases))+geom_boxplot()
6.ggboxplot创建带有p-value值的箱线图并改变统计方法
library(ggpubr)
install.packages("magrittr")
library(ggplot2)
p <- ggboxplot(e, x = "plate", y = "MBases",
color = "plate", palette = "jco",
add = "jitter")
# Add p-value
p + stat_compare_means(method = 't.test')
B站R语言系列听课过程中积累的函数知识点:
1.read.table(x.csv) 导入数据
2. write.csv(x.csv) 存储数据并导出
3.comment.char="!" 注释所有以"!"开头的行名
4.header= T 第一行成为行名,加行标题
5.sep='\t' 以空格分隔符(统一与excel不同的行名定义)
6.rownames= F 去掉行名
7.sort(a$MBases, decreasing=T)[1] 取a中MBases中的最大值
8.max(a$MBases) 取a中MBases列最大值
9.min(a$MBases)取a中MBases列最小值
10.fivenum(a$MBases)取a中MBases列的五分位数
11.table(x) 分组计数
12 .view(x) 浏览表格等
13.as.numeric(x) 将x变为数字格式
14.mean(x) 对x取平均值 rowmeans ()对某行取平均值 head(rowMeans())对每行取平均值
15.for (i in nrow(b)) {
I=1/2/....
(print) mean(as.numeric(b[i,]))
print的存在决定输出与否
16.apply(b,1,function(x) {
mean(x)
})
同15一样为循环函数,apply循环与for循环的区别在于:
apply把data.frame里面的每一行元素当作是一个元素
17.apply(b,1,sd) 取每一行数据的方差
eg:sort(apply(b,1,sd),decreasing= T )[1:50]
取方差从大到小排列的前50
18.sample(1:nrow(b),50) 在b的1到n行中取随机的50行
19.sacle="row" 绘制热图时的归一化(减小最大值最小值对热图的影响)
20.test=matrix(rnorm(200),20,10) 创建行20列10的随机数矩阵
21. pheatmap(cbind(*1,*2))将热图1和热图2合并
22. paste('a',1:20,sep="_") 快速编码
a_1" "a_2" "a_3" "a_4" "a_5" "a_6" "a_7" "a_8" "a_9" "a_10" "a_11" "a_12" "a_13" "a_14" "a_15" "a_16" "a_17" "a_18" "a_19" "a_20"
23. pheatmap (test, display_numbers=T) 显示热图每小格数据
24. pheatmap(cellwidth=,cellheight=,fontsize=,filename=) 定义热图的基本属性
25. rep(a1,20) 重复a1共计20次