学习内容
##系统报错改为英文
Sys.setenv(LANGUAGE = "en")
##禁止转化为因子
options(stringsAsFactors = FALSE)
##清空环境
rm(list=ls())
###什么是函数,什么是r包,为什么加载r包
##安装r包的几个方法
# 1.在CRAN 存储库的r包
install.packages("xxx")
# 2.在Bioconductor存储库中的r包
if(!requireNamespace("BiocManager",quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("GEOquery")
## 3.在GitHub储存库中r包
#先安装devtools:Tools to Make Developing R Packages Easier
install.packages("devtools")
library(devtools)
install_github("authorName/repositoryName")
## To install ggplot2 from github:
devtools::install_github("tidyverse/ggplot2")
### 加载r包
library(GEOquery)
library(dplyr)
install.packages("tidyverse")
library(tidyverse)
##设置路径
getwd()
setwd("F:/Rdata/jiajia/lession1")
####################################################################################################
### 获取表达矩阵
#查看函数的解释
?getGEO
##下载数据 getGPL = F 这个代表不下载平台注释文件,因为有时候网络不稳定。后面我们会在网页中下载,然后读取。
gset = getGEO('GSE12417', destdir=".",getGPL = F)
gset <- getGEO('GSE12417', destdir=".",getGPL = F)
getGEO('GSE12417', destdir=".",getGPL = F)
##如果无法直接用代码下载,而是在网页端下载好的,可以直接加载如下
#s4对象
#s3:matrix 矩阵
#data.frame() 数据框
#character() 向量字符型
#list 列表
x=c("zzz","yyy")
y=c("zy","yq")
z1=list(x=c("zzz","yyy"),y=c("zy","yq"))
View(z1)
####r语言中 所有的提取 都是用中括号
###一种提取按照排列顺序
z1[[2]]
x[1]
###按照对象名称
z1[["x"]]
class(x)
class(z1)
###打开study这个文件夹 我们会发现平台信息文件也下载好了
##保存下载的数据 保存为rdata 当然也可以保存为rds
save(gset,file = "3.gse12417.rdata")
saveRDS(gset,file = "gse12417.rds")
###在读取文件之前 先清空环境
load("3.gse12417.rdata")
readRDS("gse12417.rds")
####查看大的list,可以用view函数 也可以直接在环境中点击gset
View(gset)
###提取list中的第二个元素(部分)
z=gset[["GSE12417-GPL96_series_matrix.txt.gz"]]
##当然也可以安装排序位置来提取
e2=gset[[2]]
###查看一下e2的数据结构(必须要知道数据结构才能知道下一步怎么做)
class(e2)
##结果中的"ExpressionSet"是S4对象的人为命名
###查看一下e2对象的内容包含哪些
View(e2)
###提取表达矩阵
exp=exprs(e2)
class(exp)
##当然也可以用环境中的白色括号提取
e2@phenoData@data[["geo_accession"]]
#上条代码只是出现在控制台,没有提取至环境变量,如果需要提取到环境变量,需要在上条代码前面赋值
geo=e2@phenoData@data[["geo_accession"]]
#使用@或者$符号,使用哪一个取决于创造者,所以直接用两个尝试
e2@phenoData@data$title
#下面代码为原本代码,不是视频中的代码
exp2=e2@assayData[["exprs"]]
phe=e2@phenoData@data
#########################################################################################################
### 整理探针转化文件
#GEO数据库下载平台信息,如本次GSE12417,已下载至文件夹中
#需要先安装加载此平台信息的r包
install.packages("data.table")
library(data.table)
###读取测序平台信息,为了进行探针的转化 这里的探针就是exprSe的行名比如:10344614
###平台文件在geo中下载,下载之后要放在指定的路径下面
###用fread函数读取的目的是多线程快速读取
###列名和行名不能重复
###data.table = F让anno最终结构为数据框
anno=fread("GPL96-57554.txt",sep = "\t",header = T,data.table = F)
#开始学习数据框类型
class(anno)
#提取行名
x1=colnames(anno)
x2=rownames(anno)
#anno是数据框格式,提取使用[]
#S3所有对象提取都用[],向量[],列表[[]],数据框和矩阵[行,列]
#提取第一行第二列
anno[1,2]
#提取第三行所有
anno[3,]
#提取第五列所有并赋值,n1为字符型向量
n1=anno[,5]
#提取第四行所有并赋值,n2为数据框
n2=anno[4,]
#提取两个列,两个行
n4=anno[,c("ID","Target Description")]
n5=anno[c(1,8),]
#对某一列提取出来后赋值
anno$ID=123
#重新增加一列并赋值
anno$xyz="abc"
改变第二列列名
colnames(anno)[2]="abc"
#看fread读取时,data.table=F,不要=T
anno=fread("GPL96-57554.txt",sep = "\t",header = T,data.table = F)
anno5=fread("GPL96-57554.txt",sep = "\t",header = T,data.table = T)
class(anno5)
#header = T意思是:将第一行变成列名
anno=fread("GPL96-57554.txt",sep = "\t",header = T,data.table = F)
anno4=fread("GPL96-57554.txt",sep = "\t",header = F,data.table = F)
#使用read.table读取会失败,因为fread可以自动去除文件前面不规则的注释类文字
anno2=read.table("GPL96-57554.txt",header = T,fill=T)
#读取txt格式文件,要加上分割 sep = "\t",txt以table键进行分割
#csv以空格键进行分割
#建议读取txt和CSV等文件时,使用fread函数比较友好
#合并数据
#创建数据框
d1<- data.frame(x2=c("a","b","c","d"),x1=c(1,3,5,7),stringsAsFactors = FALSE)
d2<- data.frame(y2=c(10,7,12),y1=c("b","c","d"),stringsAsFactors = FALSE)
#合并cbind()和rbind(),两个函数是固定列或者行进行合并
#对行合并rbind()
a1=rbind(d1,d2)
b1=cbind(d1,d2)
#上面两个函数报错,原因是d1和d2行和列没有相同的名字
#改一下看看
d11<- data.frame(x1=c("a","b","c"),x2=c(1,3,5),stringsAsFactors = FALSE)
d22<- data.frame(x1=c(10,7,12),x2=c("b","c","d"),stringsAsFactors = FALSE)
a1=rbind(d11,d22)
b1=cbind(d11,d22)
#merge()是需要指定共同的列,相当于excel里面的VLOOKUP函数,但是excel里面不能批量
d3=merge(x=d1,y=d2,by.x = "x2",by.y = "y1")
?merge
#当两个数据框相同的列都是第一列时,可以如下
d4<- data.frame(x3=c("a","b","c","d"),x4=c(1,3,5,7))
d5<- data.frame(y3=c("b","c","d"),y4=c(10,7,12),stringsAsFactors = FALSE)
d6=merge(x=d3,y=d4,by =1)
#load函数读取的是rdata数据
#fread函数读取的是txt或者excel等数据
#开始对anno文件中的Gene信息进行合并
#查看anno列名
colnames(anno)
#下面两个提取的相同
gene=anno[,c(1,11)]
gene.1=anno[,c("ID","Gene Symbol")]
网友评论