S4 在 Bioconductor 中的作用

R 中的 Bioconductor 入门

James Chapman

Curriculum Manager, DataCamp

S3

优点

  • CRAN,简单而强大
  • 灵活、交互式
  • 使用泛型函数
  • 功能取决于第一个参数
  • 例如:plot() 和 methods(plot)

缺点

  • 类型与命名规范校验较弱(点还是不点?)
  • 继承可用,但依赖输入
R 中的 Bioconductor 入门

S4

优点

  • 类的正式定义
  • Bioconductor 可复用性
  • 具有类型校验
  • 命名规范

示例:myDescriptor <- new("GenomeDescription")

缺点

  • 结构较 S3 更复杂
R 中的 Bioconductor 入门

是 S4 吗?

判断对象是否为 S4

isS4(myDescriptor)
TRUE

S4 对象的 str 以 Formal class 开头

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
R 中的 Bioconductor 入门

S4 类定义

类描述其表示:

  • name(名称)
  • slots(插槽/字段)
  • contains(继承定义)
MyEpicProject <- setClass(# 使用大驼峰命名类名
                          "MyEpicProject",
                          # 定义插槽,便于校验
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # 定义继承        
                          contains = "MyProject")
R 中的 Bioconductor 入门
.S4methods(class = "GenomeDescription")
 [1] coerce          commonName      organism        provider       
 [5] providerVersion releaseDate     releaseName     seqinfo        
 [9] seqnames        show            toString        bsgenomeName   
see '?methods' for accessing help and source code
showMethods(classes = "GenomeDescription", where = search())

对象摘要

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
R 中的 Bioconductor 入门

开始练习吧!

R 中的 Bioconductor 入门

Preparing Video For Download...