Day9-生信人的20個R語言習題-2019-06-18-未完

生信人的20個R語言習題

請先看:生信人的linux考試

  1. 安裝一些R包:
    數據包: ALL, CLL, pasilla, airway
    軟件包:limma,DESeq2,clusterProfiler
    工具包:reshape2
    繪圖包:ggplot2
    不同領域的R包使用頻率不一樣,在生物信息學領域,尤其需要掌握bioconductor系列包。
1 安裝R包
# rm(list = ls()) 
  options()$repos 
  options()$BioC_mirror
  options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
  options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
  options()$repos 
  options()$BioC_mirror
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(c(" ALL","CLL","pasilla","airway" ),ask = F,update = F) #數據包,ask=F表示不詢問中間過程和不升級
BiocManager::install(c("limma","DESeq2","clusterProfiler" ),ask = F,update = F) # 軟件包
BiocManager::install(c("genefu","org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F)
BiocManager::install(c("reshape2"),ask = F,update = F) # 工具包
BiocManager::install(c("ggplot2"),ask = F,update = F) # 繪圖包
#另外可以檢測某個包是否存在,只有不存在時才會安裝 if (! require ('CLL')){ options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/") 
    BiocInstaller::biocLite('CLL',ask = F, suppressUpdates = T) } 
  1. 了解ExpressionSet對象,比如CLL包里面就有data(sCLLex) ,找到它包含的元素,提取其表達矩陣(使用exprs函數),查看其大小
    1. 參考:http://www.bio-info-trainee.com/bioconductor_China/software/limma.html
    2. 參考:https://github.com/bioconductor-china/basic/blob/master/ExpressionSet.md
suppressPackageStartupMessages(library(CLL))
data(sCLLex)
exprSet=exprs(sCLLex)
##sCLLex是依賴于CLL這個package的一個對象
samples=sampleNames(sCLLex)
pdata=pData(sCLLex)
group_list=as.character(pdata[,2])
dim(exprSet)
# [1] 12625    22
exprSet[1:5,1:5]
#            CLL11.CEL CLL12.CEL CLL13.CEL CLL14.CEL CLL15.CEL
# 1000_at    5.743132  6.219412  5.523328  5.340477  5.229904
# 1001_at    2.285143  2.291229  2.287986  2.295313  2.662170
# 1002_f_at  3.309294  3.318466  3.354423  3.327130  3.365113
# 1003_s_at  1.085264  1.117288  1.084010  1.103217  1.074243
# 1004_at    7.544884  7.671801  7.474025  7.152482  6.902932
  1. 了解 str,head,help函數,作用于 第二步提取到的表達矩陣
str(exprSet)
# str: Compactly display the internal structure of an R object, a diagnostic function and an alternative to summary (and to some extent, dput).
head(exprSet)
  1. 安裝并了解 hgu95av2.db 包,看看 ls("package:hgu95av2.db") 后 顯示的那些變量
BiocManager::install("hgu95av2.db")
library("hgu95av2.db")
ls("package:hgu95av2.db")

[1] "hgu95av2"              "hgu95av2.db"           "hgu95av2_dbconn"       "hgu95av2_dbfile"      
 [5] "hgu95av2_dbInfo"       "hgu95av2_dbschema"     "hgu95av2ACCNUM"        "hgu95av2ALIAS2PROBE"  
 [9] "hgu95av2CHR"           "hgu95av2CHRLENGTHS"    "hgu95av2CHRLOC"        "hgu95av2CHRLOCEND"    
[13] "hgu95av2ENSEMBL"       "hgu95av2ENSEMBL2PROBE" "hgu95av2ENTREZID"      "hgu95av2ENZYME"       
[17] "hgu95av2ENZYME2PROBE"  "hgu95av2GENENAME"      "hgu95av2GO"            "hgu95av2GO2ALLPROBES" 
[21] "hgu95av2GO2PROBE"      "hgu95av2MAP"           "hgu95av2MAPCOUNTS"     "hgu95av2OMIM"         
[25] "hgu95av2ORGANISM"      "hgu95av2ORGPKG"        "hgu95av2PATH"          "hgu95av2PATH2PROBE"   
[29] "hgu95av2PFAM"          "hgu95av2PMID"          "hgu95av2PMID2PROBE"    "hgu95av2PROSITE"      
[33] "hgu95av2REFSEQ"        "hgu95av2SYMBOL"        "hgu95av2UNIGENE"       "hgu95av2UNIPROT"   
  1. 理解 head(toTable(hgu95av2SYMBOL)) 的用法,找到 TP53 基因對應的探針ID

  1. 理解探針與基因的對應關系,總共多少個基因,基因最多對應多少個探針,是哪些基因,是不是因為這些基因很長,所以在其上面設計多個探針呢?
  2. 第二步提取到的表達矩陣是12625個探針在22個樣本的表達量矩陣,找到那些不在 hgu95av2.db包收錄的對應著SYMBOL的探針。
    1. 提示:有1165個探針是沒有對應基因名字的。
  3. 過濾表達矩陣,刪除那1165個沒有對應基因名字的探針。
  4. 整合表達矩陣,多個探針對應一個基因的情況下,只保留在所有樣本里面平均表達量最大的那個探針。
    1. 提示,理解 tapply,by,aggregate,split 函數 , 首先對每個基因找到最大表達量的探針。
    2. 然后根據得到探針去過濾原始表達矩陣
  5. 把過濾后的表達矩陣更改行名為基因的symbol,因為這個時候探針和基因是一對一關系了。
  6. 對第10步得到的表達矩陣進行探索,先畫第一個樣本的所有基因的表達量的boxplot,hist,density , 然后畫所有樣本的 這些圖
  7. 參考:http://bio-info-trainee.com/tmp/basic_visualization_for_expression_matrix.html
  8. 理解ggplot2的繪圖語法,數據和圖形元素的映射關系
  9. 理解統計學指標mean,median,max,min,sd,var,mad并計算出每個基因在所有樣本的這些統計學指標,最后按照mad值排序,取top 50 mad值的基因,得到列表。
  10. 注意:這個題目出的并不合規,請仔細看。
  11. 根據第12步驟得到top 50 mad值的基因列表來取表達矩陣的子集,并且熱圖可視化子表達矩陣。試試看其它5種熱圖的包的不同效果。
  12. 取不同統計學指標mean,median,max,mean,sd,var,mad的各top50基因列表,使用UpSetR包來看他們之間的overlap情況。
  13. 在第二步的基礎上面提取CLL包里面的data(sCLLex) 數據對象的樣本的表型數據。
  14. 對所有樣本的表達矩陣進行聚類并且繪圖,然后添加樣本的臨床表型數據信息(更改樣本名)
  15. 對所有樣本的表達矩陣進行PCA分析并且繪圖,同樣要添加表型信息。
  16. 根據表達矩陣及樣本分組信息進行批量T檢驗,得到檢驗結果表格
  17. 使用limma包對表達矩陣及樣本分組信息進行差異分析,得到差異分析表格,重點看logFC和P值,畫個火山圖(就是logFC和-log10(P值)的散點圖。)。
  18. 對T檢驗結果的P值和limma包差異分析的P值畫散點圖,看看哪些基因相差很大。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容