此包为PharmacoGx, RadioGx和ToxicoGx包提供了基础。它不打算单独使用,只是作为前面提到的软件的依赖项。它的存在允许抽象通用定义、方法定义和所有三个Gx套件包通用的类结构。
加载包:
库(CoreGx)库(Biobase)库(summary izeexperiment)
的CoreSet
类的目的是作为存储多组治疗响应数据的通用数据结构。这个类的扩展已经为他们各自的研究领域定制。例如,PharmacoSet
类继承自CoreSet
并且专门用于存储和分析癌症细胞系的药物敏感性和扰动实验,以及每个处理样本的相关多组学数据。RadioSet类的作用类似于PharmacoSet,使用辐射而不是药物治疗。最后,使用ToxicoSet类存储健康人和大鼠肝细胞的毒性数据,以及每种治疗的相关多组学数据。
getClass(“CoreSet”)
##类“CoreSet”[包“CoreGx”]## ##槽位:## ##名称:treatmentResponse注释molecularProfiles sample ##类:list_OR_LongTable列表list_OR_MAE data.frame ## ##名称:treatment datasetType摄动管理##类:data.frame字符列表列表
的注释
slot保存CoreSet名称、原始构造函数调用以及关于调用构造函数的R会话的一系列元数据。这便于比较CoreSet
跨时间的版本,并确保用于生成CoreSet
文档记录良好且可重复。
的molecularProfiles
槽包含的列表SummarizedExperiment
用于给定实验的每个多组分子数据类型的对象。在SummarizedExperiments
是每个数据类型的特性和示例注释。我们目前正处于采用MultiAssayExperiment
类,而不是列表
用于存储分子剖面SummarizedExperiment
然而,列表
版本molecularProfiles
插槽仍然支持向后兼容。
的样本
槽位包含data.frame
对分子谱或灵敏度槽中使用的样品进行注释。它至少应该有一个标准化的列“sampleid”,其中每个样本都有一个唯一的标识符CoreSet
.
的治疗
槽位包含data.frame
中应用于样本处理的元数据molecularProfiles
或treatmentResponse
槽。它至少应该有一个标准化的列' treatmentid ',为每个治疗包含一个唯一的标识符CoreSet
.
的datasetType
槽包含指示实验类型的字符向量CoreSet
包含。此插槽已被软弃用,并可能在未来的更新中删除。
的treatmentResponse
Slot包含治疗-反应实验的原始、策划和元数据列表。我们目前正在采用我们的新s4级,theTreamtentResponseExperiment
将治疗反应数据存储在CoreSet
和继承类。然而,老的列表
灵敏度实验的格式将继续支持向后兼容。
的摄动
槽包含一个列表的原始,策展和元数据扰动实验。该插槽已被软弃用,将来可能会被移除。原因是,处理扰动实验可以有效地存储在colData
各自的槽SummarizedExperiment
对象,因此不再需要它们自己的空间CoreSet
.
的内容管理
Slot包含一个手动管理的标识符列表,如标准化的细胞系、组织和治疗名称。类继承的类中的所有数据集都包含这样的标识符,确保使用一致的命名法CoreSet
,使得这些数据集的结果可以很容易地进行比较,以验证已发表研究的结果,或将它们组合起来用于更大的元分析。槽位包含的列表data.frame
S,每个实体一个,并且至少应该包括从整个对象中使用的精选标识符到原始数据集发布中使用的标识符的映射。
的CoreSet
类提供了一组标准化的访问器方法,这些方法简化了与特定治疗反应实验相关的数据的管理、注释和检索。类继承的类上定义新方法,所有访问方法都实现为泛型CoreSet
.
方法(class = " CoreSet”)
## [1] annotation注释<- curation ## [4] curation<- datasetType datasetType<- ## [7] dateCreated dateCreated<- fNames ## [10] fNames<- featureInfo featureInfo<- ## [13] mDataNames mDataNames<- molecularProfiles ## [16] molecularProfiles<- molecularProfilesSlot molecularProfilesSlot<- ## [19] name name<- pertNumber ## [22] pertNumber<- phenoInfo phenoInfo<- # [25] sampleInfo sampleInfo<- sampleNames ## [28] sampleNames<- ## [31] sensitivityInfo sensitivityInfo<- ## [31][34] sensitivityMeasures<- sensitivityProfiles sensitivityProfiles<- ## [37] sensitivityRaw sensitivityRaw<- show ## [40] subsetByFeature subsetBySample subsetByTreatment ## [43] treatmentInfo treatmentInfo<- treatmentNames ## [46] treatmentNames<- treatmentResponse treatmentResponse<- ## [49] updateObject ## see '?方法来访问帮助和源代码
我们提供了样品CoreSet
(cSet)。在下面的代码中,我们加载示例cSet并演示一些访问器方法。
数据(clevelandSmall_cSet) clevelandSmall_cSet
## ##名称:Cleveland ##创建日期:2017年10月25日星期三17:38:42 ##样本数量:10 ##分子简介:##一个MultiAssayExperiment对象,包含2个列出的##实验,用户自定义名称和各自的类。##包含长度为2的ExperimentList类对象:## [1]rna: 1000行9列的summarizeexperiment ## [2] rnaseq: 1000行9列的summarizeexperiment ##治疗响应:## ## dim: 9 10 ## assays(2):敏感性profiles ## rownames(9):辐射:1:1辐射:1:2…辐射:8:1辐射:10:1 ## rowData(3): treatment1id treatment1dose replicate_id ## colnames(10): CHP-212 IMR-32 KP-N-S19s…SK-N-SH SNU-245 SNU-869 ## colData(2): sampleid rn ## metadata(1): experiment_metadata
获取特定的分子图谱:
mProf <- molecarprofiles (clevelandSmall_cSet, "rna") mProf[seq_len(5), seq_len(5)]
# # # 10.280970 # NIECE_P_NCLE_RNA3_HG-U133_PLUS_2_G10_296152 # # ENSG00000000003 ENSG00000000005 3.647436 # # ENSG00000000419 11.883769 # # ENSG00000000457 7.515721 7.808139 # # # # ENSG00000000460 GILDS_P_NCLE_RNA11_REDO_HG-U133_PLUS_2_G02_587654 10.304971 # # # # ENSG00000000003 ENSG00000000005 4.895494 # # ENSG00000000419 11.865191 # # ENSG00000000457 7.187144 7.789921 # # # # ENSG00000000460 BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 9.596987 # # # # ENSG00000000003 ENSG00000000005 3.793174 # #Ensg00000000419 12.498285 ## ensg00000000457 8.076655 ## ensg00000000460 8.456691 # silos_p_ncle_rna9_gh - u133_plus_2_a04_523474 ## ensg00000000003 8.620860 ## ensg00000000005 3.674918 ## Ensg00000000419 11.674671 ## ensg00000000457 6.790332 # ensg00000000460 6.663846 ## watch_p_ncle_rna8_gh - u133_plus_2_b04_474582 ## ensg00000000003 9.866551 ## ensg00000000005 3.748959 ## ensg00000000457 7.292420 ## ensg00000000460 8.869378
访问单元元数据:
cInfo <- sampleInfo(clevelandSmall_cSet) cInfo[seq_len(5), seq_len(5)]
SK-N-FI SK-N-FI自主神经节SKNFI自主神经节神经母细胞瘤IMR-32 IMR-32自主神经节IMR32自主神经节神经母细胞瘤SK-N-AS SK-N-AS自主神经节SKNAS自主神经节神经母细胞瘤CHP-212 CHP-212自主神经节CHP212自主神经节神经母细胞瘤KP-N-S19s KP-N-S19s自主神经节KPNSI9S自主神经节神经母细胞瘤
获取治疗-反应数据:
sensProf <- sensitivityProfiles(clevelandSmall_cSet) sensProf[seq_len(5), seq_len(5)]
## [1] 1 2 3 4 5
类可用的访问器方法的详细信息CoreSet
班级,请参阅课吗?CoreSet
帮助页面。
鉴于CoreSet类是用于扩展的,我们将展示一些示例,说明如何基于它定义一个新类,并为为CoreSet类提供的泛型实现新方法。
在这里,我们将定义一个新类DemoSet
,有一个额外的插槽demoSlot
.然后,我们将查看该类的可用方法,并在其上定义新的S4方法。
<- setClass("DemoSet", representation(demoSlot="character"), contains="CoreSet") getClass("DemoSet")
##类“DemoSet”[在]。GlobalEnv"] ## ##槽位:## ##名称:demoSlot treatmentResponse注释molecularProfiles ##类:字符list_OR_LongTable列表list_OR_MAE ## ##名称:样本处理datasetType扰动##类:data.frame data.frame字符列表## ##名称:curation ##类:列表## ##扩展:“CoreSet”
这里我们可以看到类的扩展CoreSet
和原来的一样吗CoreSet
,加上我们定义的新槽:demoSlot
.
我们可以看到这个新类有哪些方法可用。
方法(class = " DemoSet”)
## [1] annotation注释<- curation ## [4] curation<- datasetType datasetType<- ## [7] dateCreated dateCreated<- fNames ## [10] fNames<- featureInfo featureInfo<- ## [13] mDataNames mDataNames<- molecularProfiles ## [16] molecularProfiles<- molecularProfilesSlot molecularProfilesSlot<- ## [19] name name<- pertNumber ## [22] pertNumber<- phenoInfo phenoInfo<- # [25] sampleInfo sampleInfo<- sampleNames ## [28] sampleNames<- ## [31] sensitivityInfo sensitivityInfo<- ## [31][34] sensitivityMeasures<- sensitivityProfiles sensitivityProfiles<- ## [37] sensitivityRaw sensitivityRaw<- show ## [40] subsetByFeature subsetBySample subsetByTreatment ## [43] treatmentInfo treatmentInfo<- treatmentNames ## [46] treatmentNames<- treatmentResponse treatmentResponse<- ## [49] updateObject ## see '?方法来访问帮助和源代码
中定义的所有访问器CoreSet
也定义为继承DemoSet
.这些方法都假定继承槽具有与CoreSet
.如果这不是真的,例如,如果分子图谱成立ExpressionSet
用S代替SummarizedExperiment
S,我们可以重新定义现有的方法如下:
clevelandSmall_dSet <- DemoSet(clevelandSmall_cSet) class(clevelandSmall_dSet@molecularProfiles[['rna']])
## [1] " summarizeexperiment " ## attr(,"package") ## [1] " summarizeexperiment "
expressionSets <- lapply(molecularProfilesSlot(clevelandSmall_dSet), FUN=as, 'ExpressionSet') molecularProfilesSlot(clevelandSmall_dSet) <- expressionSets #现在将出错tryCatch({molecularProfiles(clevelandSmall_dSet, 'rna')}, error=function(e) print(paste(" error: ", e$message)))
##[1] "错误:无法为签名\"ExpressionSet\", \"numeric\"'找到函数'化验'的继承方法" "
因为我们改变了数据molecularProfiles
槽位号DemoSet
,原方法从CoreGx
不再有效。因此,当我们试图访问该槽时,会得到一个错误。为了解决这个问题,我们需要为中定义的molecarprofiles泛型函数设置一个新的S4方法CoreGx
.
setMethod(molecularProfiles, signature("DemoSet"), function(object, mDataType) {pData(object@molecularProfiles[[mDataType]])})
方法时调用这个新方法molecularProfiles
方法DemoSet
.由于新方法的使用ExpressionSet
访问器方法而不是SummarizedExperiment
访问器方法,我们现在期望能够访问修改槽中的数据。
#现在我们测试我们的新方法mProf <- molecarprofiles (clevelandSmall_dSet, 'rna') head(mProf)[seq_len(5), seq_len(5)]
# # # # # # samplename NIECE_P_NCLE_RNA3_HG-U133_PLUS_2_G10_296152 NIECE_P_NCLE_RNA3_HG-U133_PLUS_2_G10_296152 GILDS_P_NCLE_RNA11_REDO_HG-U133_PLUS_2_G02_587654 GILDS_P_NCLE_RNA11_REDO_HG-U133_PLUS_2_G02_587654 # # BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 # # SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 # # WATCH_P_NCLE_RNA8_HG-U133_PLUS_2_B04_474582 WATCH_P_NCLE_RNA8_HG-U133_PLUS_2_B04_474582 # # # #文件名NIECE_P_NCLE_RNA3_HG-U133_PLUS_2_G10_296152 NIECE_p_NCLE_RNA3_HG-U133_Plus_2_G10_296152.CEL.gz # # GILDS_P_NCLE_RNA11_REDO_HG-U133_PLUS_2_G02_587654 GILDS_p_NCLE_RNA11_Redo_HG-U133_Plus_2_G02_587654.CEL.gz # # BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 BUNDS_p_NCLE_RNA5_HG-U133_Plus_2_B11_419860.CEL.gz # # SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 SILOS_p_NCLE_RNA9_HG-U133_Plus_2_A04_523474.CEL.gz # # WATCH_P_NCLE_RNA8_HG-U133_PLUS_2_B04_474582 WATCH_p_NCLE_RNA8_HG-U133_Plus_2_B04_474582.CEL.gzglids_ncle_rna11_redo_hg - u133_plus_2_g02_587654 hg - u133_plus_2# # BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 hg - u133_plus_2# # SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 HG-U133_Plus_2 ## watch_ncle_rna8_hg - u133_plus_2_b04_474582 HG-U133_Plus_2 ##杂交SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 2009-12-08 ## watch_ncle_rna8_hg - u133_plus_2_b04_474582 2009-08-14小时12:54:10 # GILDS_P_NCLE_RNA11_REDO_HG-U133_PLUS_2_G02_587654 16:45:06 z# # BUNDS_P_NCLE_RNA5_HG-U133_PLUS_2_B11_419860 11:43:19 # SILOS_P_NCLE_RNA9_HG-U133_PLUS_2_A04_523474 20:44:59Z ## WATCH_P_NCLE_RNA8_HG-U133_PLUS_2_B04_474582 17:15:45Z
我们可以看到我们的新方法是有效的!为了完成新类的方法更新,我们必须重新定义所有访问已修改插槽的方法。
但是,需要做额外的工作来为new定义访问器demoSlot
.由于CoreGx中没有可用的泛型来访问这个插槽,我们需要首先定义一个泛型,然后实现在' DemoSet '类上分派的方法来检索插槽中的数据。
#为setter方法定义泛型setGeneric('demoSlot<-',函数(对象,值)standardGeneric('demoSlot<-'))
## [1] "demoSlot<-"
#定义一个setter方法setReplaceMethod('demoSlot', signature(object='DemoSet', value="character"), function(object, value) {object@demoSlot <- value return(object)}) #让我们为我们的demoSlot添加一些东西demoSlot(clevelandSmall_dSet) <- c("This", "is", "the", "demoSlot")
#为getter方法定义泛型setGeneric('demoSlot', function(object,…))
##[1]“demo”
#定义getter方法setMethod("demoSlot", signature("DemoSet"), function(object){粘贴(object@demoSlot, collapse=" ")}) #测试我们的getter方法demoSlot(clevelandSmall_dSet)
##[1]“这是演示槽”
现在您应该已经掌握了扩展CoreSet类以用于其他治疗反应实验所需的所有知识!
有关此包的更多信息以及合作扩展的可能性,请联系benjamin.haibe.kains@utoronto.ca.
sessionInfo ()
## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:[13] knitr_1.40 data.table_1.14.4 ## [3] CoreGx_2.2.0 SummarizedExperiment_1.28.0 ## [5] GenomeInfoDb_1.34.0 IRanges_2.32.0 ## [9] S4Vectors_0.36.0 MatrixGenerics_1.10.0 ## [11] matrixstats_0.0.2.0 BiocGenerics_0.44.0 ## [13] formatR_1.12 BiocStyle_2.26.0 ## ##通过命名空间加载(并且没有附加):# [11] KernSmooth_2.23-20 DBI_1.1.3 ## [15] compiler_4.2.1 cli_3.4.1 ## [13] colorspace_2.0-3 tidyselect_1.2.0 ## [15] bookdown_0.29 slam_0.1-50 ## [21] sass_0.4.2 caTools_1.18.2 ## [23] scales_1.2.1 bench_1.1.2 ## [25] checkmate_2.1.0 relations_0.6-12 ## [27] string_1 .4.1 digest_0.6.30 ## [29]rmarkdown_2.17 XVector_0.38.0 ## [31] pkgconfig_2.0.3 htmltools_0.5.3 ## [33] highr_0.9 fastmap_1.1.0 ## [35] limma_3.54.0 htmlwidgets_1.5.4 ## [37] rlang_1.0.6 shiny_1.7.3 ## [39] visNetwork_2.1.2 generics_0.1.3 ## [41] jquerylib_0.1.4 jsonlite_1.8.3 ## [43] BiocParallel_1.32.0 gtools_3.9.3 ## [45] dplyr_1.0.10 RCurl_1.98-1.9 ## [47] magrittr_2.0.3 GenomeInfoDbData_1.2.9 ## [49] Matrix_1.5-1 Rcpp_1.0.9 ## [51] munsell_0.5.0 fansi_1.0.3 ## [53] lifecycle_1.0.3 piano_2.14.0 ## [55] stringi_1.7.8 yaml_2.3.6 ## [57] zlibbioc_1.44.0 gplots_3.1.3 ## [59] grid_4.2.1 parallel_4.2.1 ## [61] promises_1.2.0.1 shinydashboard_0.7.2 ## [63] crayon_1.5.2 lattice_0.20-45 ## [65] cowplot_1.1.1 pillar_1.8.1 ## [67] fgsea_1.24.0 igraph_1.3.5 ## [69] codetools_0.2-18 marray_1.76.0 ## [71] fastmatch_1.1-3 glue_1.6.2 ## [73] evaluate_0.17 BiocManager_1.30.19 ## [75] MultiAssayExperiment_1.24.0 vctrs_0.5.0 ## [77] httpuv_1.6.6 gtable_0.3.1 ## [79] assertthat_0.2.1 cachem_1.0.6 ## [81] ggplot2_3.3.6 BiocBaseUtils_1.0.0 ## [83] xfun_0.34 mime_0.12 ## [85] xtable_1.8-4 later_1.3.0 ## [87] tibble_3.1.8 sets_1.0-21 ## [89] cluster_2.1.4 ellipsis_0.3.2