Роль 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(# Визначте назву класу у UpperCamelCase
                          "MyEpicProject",
                          # Визначте слоти, це допомагає з валідацією
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Визначте спадкування        
                          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...