BioconductorにおけるS4の役割

Rで始めるBioconductor入門

James Chapman

Curriculum Manager, DataCamp

S3

利点

  • CRANに対応、シンプルかつ強力
  • 柔軟でインタラクティブ
  • ジェネリック関数を使用
  • 機能は第1引数に依存
  • 例: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(# Define class name with UpperCamelCase
                          "MyEpicProject",
                          # Define slots, helpful for validation
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Define inheritance        
                          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...