美文网首页
一周知识点总结

一周知识点总结

作者: 桃浪桃浪 | 来源:发表于2019-07-08 00:01 被阅读0次

    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),]
    符号索引:Aprildate

    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包中带的数据集:外置数据集

    相关文章

      网友评论

          本文标题:一周知识点总结

          本文链接:https://www.haomeiwen.com/subject/scrbhctx.html