一周知识点总结

1.数据类型、数据结构及其操作

时间:2019.7.2
学习内容:

1.vector creat

常用函数:c(),seq(),rep(),paste()和paste0()

2.vector change

索引:[] (位置、名字、逻辑值)
查看向量中元素个数:length()
Table()

3.vector math

运算:a+b、a-b、a/b、a*b、a%%b#(取余)、a%/%b#(取整)、-a
两个向量的比较:> >= < <= ==(相等) !=(不相等)

4.matrix

创建数据框:
b<-seq(1,20,1) dim(b)<-c(5,4)
d<-matrix(b,nrow=5,ncol=4)
赋值:
X[2,2]<-3

5.dataframe

创建数据框(用例子说明)
date<-c(21,22,23,35,52)
plan<-c('mon','tue','wed','thur','fri')
color<-c('green','red','white','black','purple')
April<-data.frame(date,plan,color)
索引
用位置索引:April[1,2];用名称索引:April[,'plan'];用逻辑值索:April[c(T,F,T,T,F),]
date

6.List

创建列表(举例说明)
g<-'Hello world'
h<-1:5
j<-matrix(1:10,nrow=5,ncol=2)
f<-c('mon','tue','wed')
r_list<-list(flag=g,h,j,f)
索引
用名字索引:r_list$flag
双中括号索引:r_list[[1]]

7.Read a file

读入文件:d<-read.csv('xxx.txt.gz',comment.char = '!',sep='\t',row.names = 1) ###comment.char = '!'表示!为注释信息,row.names = 1表示将第一列作为行名
f<-read.table('xxx.txt.gz', comment.char = '!',header=T,row.names = 1)
读出文件:write.table(x = f,file = 'xxx.txt')
write.csv(x = f,file = 'xxx.csv')
存成Rdata格式:
save(f,file = 'xxx.Rdata')
rm(list=ls())
load('xxx.Rdata')

8.Packages

R包安装三种途径:

1.CRAN
nstall.packages('')
2.Biocductor
install.packages('BiocManger')
BiocManager::install()
3.github
install.packages('devtools')
devtools::install()

9.for、apply function

for循环:如
n = 4
a=2
for(i in 1:n){
a[i+1] = 2a[i]
#######a[1+1] = 2
a[1]
apply循环:apply(x,1,function)
function自定义,如:y<-function(x){
mean_row<-mean(as.numeric(c(x[1],x[3])))
str_paste<-paste0(x[2],x[4])
result<-c(mean_row,str_paste)
return(result)
则:tmp<-apply(x,1,y)

10.Plots

基础包作图函数:
plot(1:10,1:10,type = 'l')#type可以选择
plot(1:10,xlim = c(0,10),ylim = c(0,10))#自定义x轴和y轴
ggplot2作图

11.Id conversion

创建tmp变量:tmp<-()
使用strsplit函数,生成结果为列表:strsplit(tmp,split=',')
使tmp转变为数据框:tmp <- as.data.frame(strsplit(tmp,split=',')[[1]])
对tmp列进行命名:colnames(tmp)<-c('probe_id')
使用hgu133a.db包
symbol: ids <- toTable(hgu133aSYMBOL)
ensemble:ids<-toTable(hgu133aENSEMBL)
merge函数:f<-merge(ids,tmp,by='probe_id')
macth函数:ids[match(tmp$probe_id,ids$probe_id),]

2.merge函数的使用(根据共同列或行将两个数据框关联起来)

在R中可以使用merge()函数去关联数据框,其强大之处在于在两个不同的数据框中标识共同的列或行。
merge()最简单的形式为获取两个不同数据框中交叉部分。

merge()函数有很多参数,看起来非常吓人。但他们都几中类型参数有关:

1.x: 第一个数据框.
2.y: 第二个数据框.
3.by, by.x, by.y: 指定两个数据框中匹配列名称。缺省使用两个数据框中相同列名称。
4.all, all.x, all.y: 指定合并类型的逻辑值。缺省为false,all=FALSE (仅返回匹配的行).
最后一组参数最后一组参数all, all.x, all.y需要进一步解释,决定合并类型。

all, all.x, all.y

merge() 函数支持4种类型数据合并:
Natural join: 仅返回两数据框中匹配的数据框行,参数为:all=FALSE.
Full outer join: 返回两数据框中所有行, 参数为: all=TRUE.
Left outer join: 返回x数据框中所有行以及和y数据框中匹配的行,参数为: all.x=TRUE.
Right outer join: 返回y数据框中所有行以及和x数据框匹配的行,参数为: all.y=TRUE.

如何实现完整合并(full outer join)

merge(cold.states, large.states, all=TRUE)
     Name Frost  Area
1     Alaska  152 566432
2    Arizona  NA 113417
3   California  NA 156361
....
13     Texas  NA 262134
14    Vermont  168   NA
15    Wyoming  173   NA

两个数据框有不同的名称,所以R基于两者state的name进行匹配。Frost来自cold.states数据框,Area来自large.states.
上面代码执行了完整合并,填充未匹配列值为NA。

3.绘制箱图、频数图、密度图

1.用基本函数绘制

箱图:boxplot(e[,1]~plate)
频数图:hist(e1[,1])
密度图:density(e[,1]) plot(density(e[,1]))

2.用ggplot2绘制

箱图:ggplot(e1,aes(x=plate,y=MBases))+geom_boxplot()
频数图:ggplot(e1,aes(x=MBases))+geom_histogram(bins = 30,binwidth = 1)
密度图:ggplot(e1,aes(x=MBases))+geom_density()

3.用ggpubr绘制

箱图:ggboxplot(e1,x = 'plate',y = 'MBases')
频数图:gghistogram(e1,x='MBases',bins=30)
密度图:ggdensity(e1,x='MBases')

4.ID转换

1.org.Hs.eg.db包(功能:可以用来进行基因ID的转换)

Description:org.Hs.eg.db为注释包。这是一个生物体特有的包。目的是提供包名org.Hs.eg.db第二部分中缩写的物种的详细信息。这个包每两年更新一次。

org.Hs.eg.db包中文件解压后,其中第一列是物种id,第二列是GeneID, 第三列是Ensemble_geneID,第四列是RNA_id,第五列是Ensemble_RNAid,第六列是protein_id。因此这些R包的功能极有可能就是利用NCBI或ensem等数据库中的这些文件信息,通过一系列的脚本实现了基因ID之间进行转换

> ls("package:org.Hs.eg.db")
 [1] "org.Hs.eg"                "org.Hs.eg.db"             "org.Hs.eg_dbconn"        
 [4] "org.Hs.eg_dbfile"         "org.Hs.eg_dbInfo"         "org.Hs.eg_dbschema"      
 [7] "org.Hs.egACCNUM"          "org.Hs.egACCNUM2EG"       "org.Hs.egALIAS2EG"       
[10] "org.Hs.egCHR"             "org.Hs.egCHRLENGTHS"      "org.Hs.egCHRLOC"         
[13] "org.Hs.egCHRLOCEND"       "org.Hs.egENSEMBL"         "org.Hs.egENSEMBL2EG"     
[16] "org.Hs.egENSEMBLPROT"     "org.Hs.egENSEMBLPROT2EG"  "org.Hs.egENSEMBLTRANS"   
[19] "org.Hs.egENSEMBLTRANS2EG" "org.Hs.egENZYME"          "org.Hs.egENZYME2EG"      
[22] "org.Hs.egGENENAME"        "org.Hs.egGO"              "org.Hs.egGO2ALLEGS"      
[25] "org.Hs.egGO2EG"           "org.Hs.egMAP"             "org.Hs.egMAP2EG"         
[28] "org.Hs.egMAPCOUNTS"       "org.Hs.egOMIM"            "org.Hs.egOMIM2EG"        
[31] "org.Hs.egORGANISM"        "org.Hs.egPATH"            "org.Hs.egPATH2EG"        
[34] "org.Hs.egPFAM"            "org.Hs.egPMID"            "org.Hs.egPMID2EG"        
[37] "org.Hs.egPROSITE"         "org.Hs.egREFSEQ"          "org.Hs.egREFSEQ2EG"      
[40] "org.Hs.egSYMBOL"          "org.Hs.egSYMBOL2EG"       "org.Hs.egUCSCKG"         
[43] "org.Hs.egUNIGENE"         "org.Hs.egUNIGENE2EG"      "org.Hs.egUNIPROT"  
> g2s <- toTable(org.Hs.egSYMBOL)
> g2e <- toTable(org.Hs.egENSEMBL)
image.png
image.png

2.hgu133a.db包

Description:hgu133a.db为注释包。此软件包的目的是提供关于hgu133a平台的详细信息。这个包每两年更新一次。

> ls("package:hgu133a.db")
 [1] "hgu133a"              "hgu133a.db"           "hgu133a_dbconn"      
 [4] "hgu133a_dbfile"       "hgu133a_dbInfo"       "hgu133a_dbschema"    
 [7] "hgu133aACCNUM"        "hgu133aALIAS2PROBE"   "hgu133aCHR"          
[10] "hgu133aCHRLENGTHS"    "hgu133aCHRLOC"        "hgu133aCHRLOCEND"    
[13] "hgu133aENSEMBL"       "hgu133aENSEMBL2PROBE" "hgu133aENTREZID"     
[16] "hgu133aENZYME"        "hgu133aENZYME2PROBE"  "hgu133aGENENAME"     
[19] "hgu133aGO"            "hgu133aGO2ALLPROBES"  "hgu133aGO2PROBE"     
[22] "hgu133aMAP"           "hgu133aMAPCOUNTS"     "hgu133aOMIM"         
[25] "hgu133aORGANISM"      "hgu133aORGPKG"        "hgu133aPATH"         
[28] "hgu133aPATH2PROBE"    "hgu133aPFAM"          "hgu133aPMID"         
[31] "hgu133aPMID2PROBE"    "hgu133aPROSITE"       "hgu133aREFSEQ"       
[34] "hgu133aSYMBOL"        "hgu133aUNIGENE"       "hgu133aUNIPROT"  
> a <- toTable(hgu133aSYMBOL)
image.png

3.CLL包

1.描述:CLL包包含慢性淋巴细胞白血病(CLL)基因表达数据。CLL数据有24个样本,按照疾病进展分为进展性或稳定型。
2.Examples:data(sCLLex)
3.获得表达矩阵:> exprSet <- exprs(sCLLex)###获得其表达矩阵

4.hgu95av2.db包

1.Description:hgu95av2.db为注释包。这个包的目的是提供关于hgu95av2平台的详细信息。

ls("package:hgu95av2.db")
 [1] "hgu95av2"              "hgu95av2.db"           "hgu95av2_dbconn"      
 [4] "hgu95av2_dbfile"       "hgu95av2_dbInfo"       "hgu95av2_dbschema"    
 [7] "hgu95av2ACCNUM"        "hgu95av2ALIAS2PROBE"   "hgu95av2CHR"          
[10] "hgu95av2CHRLENGTHS"    "hgu95av2CHRLOC"        "hgu95av2CHRLOCEND"    
[13] "hgu95av2ENSEMBL"       "hgu95av2ENSEMBL2PROBE" "hgu95av2ENTREZID"     
[16] "hgu95av2ENZYME"        "hgu95av2ENZYME2PROBE"  "hgu95av2GENENAME"     
[19] "hgu95av2GO"            "hgu95av2GO2ALLPROBES"  "hgu95av2GO2PROBE"     
[22] "hgu95av2MAP"           "hgu95av2MAPCOUNTS"     "hgu95av2OMIM"         
[25] "hgu95av2ORGANISM"      "hgu95av2ORGPKG"        "hgu95av2PATH"         
[28] "hgu95av2PATH2PROBE"    "hgu95av2PFAM"          "hgu95av2PMID"         
[31] "hgu95av2PMID2PROBE"    "hgu95av2PROSITE"       "hgu95av2REFSEQ"       
[34] "hgu95av2SYMBOL"        "hgu95av2UNIGENE"       "hgu95av2UNIPROT"      

5.TCGA数据库

TCGA是美国(画外音,又是美国,而且又是免费)国家癌症研究所(National Cancer Institute)和美国人类基因组研究所(National Human Genome Research Institute)共同监督的一个项目,旨在应用高通量的基因组分析技术,以帮助人们对癌症有个更好的认知,从而提高对于癌症的预防、诊断和治疗能力。
作为目前最大的癌症基因信息数据库,TCGA的全面不仅仅体现在众多癌型上,还体现在多组学数据,包括基因表达数据、miRNA表达数据、拷贝数变异、DNA甲基化、SNP,而相对于GEO数据库,TCGA最大的优势是丰富且规范的临床数据,以及针对每种癌型的大样本量,简直令人无法抗拒!
注意,TCGA现在的数据均收录在GDC中,而GDC同时也收录了TARGET数据库的数据,在GDC中可以通过GDC Data Portal 和 GDC Legacy Archive 这两种方式获得TCGA数据。

作者:Stone_Stan4d
链接:https://www.jianshu.com/p/3bd31fafb0d2
来源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

6.生存分析

需使用网站:OncoLnc(http://www.oncolnc.org/)

网站使用方法

进入网站http://www.oncolnc.org/,输入你想要的基因

image

找到你想要的癌症类型,点击进入

image

输入高、低两个数值

image

点击[click here],进行下载

image

将其保存为CSV格式

8.GEO数据库

1.Description:

GEO数据库全称GENE EXPRESSION OMNIBUS,是由美国国立生物技术信息中心NCBI创建并维护的基因表达数据库。它创建于2000年,收录了世界各国研究机构提交的高通量基因表达数据,也就是说只要是目前已经发表的论文,论文中涉及到的基因表达检测的数据都可以通过这个数据库中找到。

2.网址

http://www.ncbi.nlm.nih.gov/geo

3.GEOquery包使用说明书

https://www.jianshu.com/p/0d32fd410bcf
下载数据:

> f <-  ' GSE17215_eSet.Rdata '
> if(!file.exists(f)){
+   gset <- getGEO('GSE17215', destdir=".",
+                  AnnotGPL = F,     ## 注释文件
+                  getGPL = F)       ## 平台文件
+   save(gset,file=f)   ## 保存到本地
+ }
> load('GSE17215_eSet.Rdata')  ## 载入数据

9.SRA数据库

image.png

10.细节知识点

1.查看内置数据集

data()

查看某一数据集

rivers

2.根据条件分组(用逻辑值分组):

e1 <- e[e$plate=='0048']
e1<-da.data.frame(e1)

3.提取某一数据框中的两列e<- merge[,c("MBases","Title")]或使用$符号,把两列取出来再合并a<-data.frame(a,b)

4.给数据框新加一列:

e1 <- e[e$plate=='0048']###(生成的为一维向量)
class(e1)
dim(e1) <- c(384,3)###生成矩阵

5.查看包:ls("package:org.Hs.eg.db")

image.png

6.获得表达矩阵:exprSet <- exprs(sCLLex)###获得其表达矩阵

7.神奇操作:

> rm(list = ls())###魔法操作,一键清空
> options(stringsAsFactors = F)

8.使用GEOquery包下载数据

> f <-  ' GSE17215_eSet.Rdata '
> if(!file.exists(f)){
+   gset <- getGEO('GSE17215', destdir=".",
+                  AnnotGPL = F,     ## 注释文件
+                  getGPL = F)       ## 平台文件
+   save(gset,file=f)   ## 保存到本地
getGEO('GSE17215', destdir=".",
+                  AnnotGPL = F,     ## 注释文件
+                  getGPL = F)       ## 平台文件

如果用后者下载文件的话,下载的是一个压缩包;而执行if操作,下载的压缩包可以解压并保存为RData文件格式。

9.

> dat <- dat[ids$probe_id,]###将dat与ids中的Probe_id相匹配,仅保留与ids中重合的值
> dat <- dat[ng,]###返回dat中与ng重合的值

此函数的意义:将dat与ids中的Probe_id相匹配,返回与ids中重合的值

10.

image.png

11.将一列赋值给dat的行名

> rownames(dat)<-ids$symbol

12.

table(ng %in%  rownames(dat))###ng与dat的行名重合的值

意义:ng在dat的行名重合的值

13.

> pheatmap::pheatmap(M,annotation_col = tmp)###用来注释分组

annotation_row:指定热图左侧显示的注释的数据帧。每一行定义特定行的特性。数据和注释中的行使用相应的行名称进行匹配。注意,配色方案考虑了变量是连续的还是离散的。
annotation_col:与annotation_row类似,作用于列。

14.

R中自带数据集:内置数据集
安装的R包中带的数据集:外置数据集

你可能感兴趣的:(一周知识点总结)