生信R语言-入门

1、打开 Rstudio , 获取工作目录

getwd()

2、新建6个向量,基于不同的原子类型。(重点是字符串,数值,逻辑值)

a1 <- c(1,2,3)
a2 <- c(TRUE,FALSE)
a3 <- c("1","2","3")
a4 <- matrix(a1,a2)
a5 <- array(a1)
a6 <- factor(rep(1:3, times = 2),labels = c("female","male","middle"))

3、新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵)

a7 <- data.frame(gene=paste0('gene',1:20),
                 data1=rnorm(20),
                 data2=rnorm(20),
                 data3=rnorm(20),
                 data4=rnorm(20),
                 data5=rnorm(20),
                 data6=rnorm(20))

4、在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列

a7[c(1,3),]
a7[,c(4,6)]

5、使用data函数来加载R内置数据集 rivers 。查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g

r=data.frame(rivers);r

6、NCBI下载SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。这是一个单细胞转录组项目的数据,共768个细胞。

options(stringsAsFactors = F)
b <- read.table('SraRunTable.txt',sep = '\t',header = T,row.names = 1)
ncol(b)
nrow(b)
colnames(b)

7、NCBI下载 GSE111229 里面的样本信息sample.csv读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。

options(stringsAsFactors = F)
c <- read.csv('sample.csv')
ncol(c)
colnames(c)

8、把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。

d <- merge(b,c,by.x = "Sample_Name",by.y = "Accession")

9、对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。

boxplot(d$MBases)
hist(d$MBases)
fivenum(d$MBases)
image.png

image.png

10、把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate,根据plate把关联到的 RunInfo Table信息的MBases列分组检验是否有统计学显著的差异。分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。

options(stringsAsFactors = F)
e=d[,c('MBases','Title')]
plate=unlist(lapply(e[,2], function(x){
  x
  strsplit(x,'_')[[1]][3]
}))
table(plate)
boxplot(e$MBases~plate)
t.test(e$MBases~plate)
e <- cbind(e,plate)

image.png

使用ggplot2把上面的图进行重新绘制。

library(ggplot2)
ggplot(e,aes(x = plate,y = e$MBases, col=plate))+geom_boxplot()+geom_jitter(aes(shape=plate))+theme_bw()
image.png

使用ggpubr把上面的图进行重新绘制。

library(ggpubr)
ggboxplot(e, x = 'plate', y = 'MBases',
               color = 'plate', palette =c("#00AFBB", "#E7B800", "#FC4E07"),
               add = "jitter", shape = 'plate')
image.png

如有问题尽管私信小陌哦~~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容