1、打开 Rstudio 告诉我它的工作目录。
getwd()
2、新建6个向量,基于不同的原子类型。(重点是字符串,数值,逻辑值)
a1 <- c(1,3,5,2,6)
a2 <- c(a,a,f,a,c)
a3 <- c('c','d','e','w','y','o')
a4 <- c(T,T,T,F,T,F)
a5 <- c(3,5,8,3,9,2)
a6 <- c('D','R','H','M','O','T')
3、新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵)
x1 <- matrix(1:30,ncol = 5,nrow = 6)
a1<-c(1,3,5,2,6)
a2<-c("d","e","w","y","o")
x2 <- data.frame(a2,a1)
x3<-as.data.frame(t(x2))
str(x3)
table(x3)
class(x3)
colnames(x3)<-c(1,2,3,4,5)
row.names(x3) <- c(1,2)
x3
colnames(x3)
y1<-colnames(x3)
y1<-paste("col",y1,sep = '_')
y2 <- row.names(x3)
y2<-paste("row",y2,sep = '_')
colnames(x3)=y1
rownames(x3)=y2
x3
colnames(x3) <- c(y3=c(1,2,3,4,5), paste('col',y3,sep='_'))
row.names(x3) <- c(y4=c(1,2), paste('row',y4,seq='_'))
colnames(x3)<-c(paste("col",c(1:5),sep = '_'))
rownames(x3)<-c(paste("row",c(1,2),sep = '_'))
x3
colnames(x3)<-c(paste0("col_",c(1:5)))
rownames(x3)<-c(paste0("row_",c(1,2)))
x3
x4 <- array(seq(1:60),dim=c(3,4,5))
x4
4、在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列
x1 <- matrix(1:30,ncol = 5,nrow = 6)
x1
x113 <- x1[,c(1,3)]
x146 <- x1[,c(4,5)]
5、使用data函数来加载R内置数据集 rivers 描述它。并且可以查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g
tmp <- data.frame(data=rivers)
data("rivers")
6、下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考B站生信小技巧获取runinfo table) 这是一个单细胞转录组项目的数据,共768个细胞,如果你找不到RunInfo Table 文件,可以点击下载,然后读入你的R里面也可以。
#tnp <- read.table("https://www.ncbi.nlm.nih.gov/sra?term=SRP133642",header=T,fileEncoding = "utf-8",sep='\t')
#tnp <- read.table("https://www.ncbi.nlm.nih.gov/sra?term=SRP133642/RunInfo Table",header=T,sep='\t')
trp <- read.table('SraRunTable.txt',header = T,fileEncoding = "utf-8",sep='\t')
#768 obs,31 variables
7、下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息sample.csv读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考 https://mp.weixin.qq.com/s/fbHMNXOdwiQX5BAlci8brA 获取样本信息sample.csv)如果你实在是找不到样本信息文件sample.csv,也可以点击下载。
ttp <- read.csv('sample.csv',header=T,sep=',')
#768 obs,13variable
gse <- getGEO("GSE111229", GSEMatrix = TRUE)
show(gse)
library(GEOquery)
GSE_name = 'GSE111229'
options( 'download.file.method.GEOquery' = 'libcurl' ) #windows系统
gset <- getGEO( GSE_name, getGPL = F )
save( gset, file = 'gset.Rdata' )
load("gset.Rdata")
Gset <- gset[[1]]
pdata<-pData(Gset)
class(pdata)
View(pdata)
#pdata 768行,47列
8、把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。
total <- merge(trp,pdata,by.x = 'Sample_Name',
by.y = 'geo_accession')
#768行,43列
total1 <- merge(trp,ttp,by.x = 'Sample_Name',
by.y = 'Accession')
#768行,43列
9、对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。
boxplot(trp$MBases)
fivenum(trp$MBases)
hist(trp$MBases)
density(trp$MBases)
10、把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate
根据plate把关联到的 RunInfo Table 信息的MBases列分组检验是否有统计学显著的差异。
e=total1[,c("MBases","Title")]
save(e,file = 'input.Rdata')
rm(list = ls())
options(stringsAsFactors = F)
load(file = 'input.Rdata')
head(e)
dim(e)
class(e)
rownames(e)
e[,2]
str(e[,2])
e$Title
plate=unlist(lapply(e[,2],function(x){
strsplit(x,"_")[[1]][3]
}))
#strsplit(e[,2],"_")[[1]][3]
plate
head(plate)
e$plate<-plate
head(e)
table(plate)
class(plate)
t.test(e[,1]~plate)
11、分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。
plate <- as.numeric(plate)
boxplot(e$MBases~plate)
hist(e$MBases)
hist(sample(plate,e$MBases))
density(plate,e$MBases)
12、使用ggplot2把上面的图进行重新绘制。
library(ggplot2)
colnames(e)
ggplot(e,aes(x=plate,y=MBases))+geom_boxplot()
13、使用ggpubr把上面的图进行重新绘制。
library(ggpubr)
p <- ggboxplot(e, x = "plate", y = "MBases",
color = "plate", palette = "jco",
add = "jitter")
# Add p-value
p + stat_compare_means(method = 't.test')