Роль S4 в Bioconductor

Введение в Bioconductor на R

James Chapman

Curriculum Manager, DataCamp

S3

Плюсы

  • CRAN: просто и мощно
  • Гибкость и интерактивность
  • Использует обобщённую функцию
  • Поведение зависит от первого аргумента
  • Пример: plot() и methods(plot)

Минусы

  • Слабая проверка типов и соглашений об именовании (точка или нет?)
  • Наследование работает, но зависит от входных данных
Введение в Bioconductor на R

S4

Плюсы

  • Формальное определение классов
  • Возможность повторного использования в Bioconductor
  • Проверка типов
  • Соглашения об именовании

Пример: myDescriptor <- new("GenomeDescription")

Минусы

  • Более сложная структура по сравнению с S3
Введение в Bioconductor на R

S4 или нет?

Проверка: является ли объект S4

isS4(myDescriptor)
TRUE

str объектов S4 начинается с Formal class

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
Введение в Bioconductor на R

Определение класса 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")
Введение в Bioconductor на R
.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:
Введение в Bioconductor на R

Давайте потренируемся!

Введение в Bioconductor на R

Preparing Video For Download...