O papel do S4 no Bioconductor

Introdução ao Bioconductor em R

James Chapman

Curriculum Manager, DataCamp

S3

Pontos positivos

  • CRAN, simples e poderoso
  • Flexível e interativo
  • Usa função genérica
  • A funcionalidade depende do primeiro argumento
  • Exemplo: plot() e methods(plot)

Pontos negativos

  • Ruim para validar tipos e convenções de nomes (ponto ou não?)
  • Herança funciona, mas depende da entrada
Introdução ao Bioconductor em R

S4

Pontos positivos

  • Definição formal de classes
  • Reutilização no Bioconductor
  • Validação de tipos
  • Convenções de nomenclatura

Exemplo: myDescriptor <- new("GenomeDescription")

Pontos negativos

  • Estrutura complexa em comparação ao S3
Introdução ao Bioconductor em R

É S4 ou não?

Verificar se um objeto é S4

isS4(myDescriptor)
TRUE

str de objetos S4 começa com Formal class

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
Introdução ao Bioconductor em R

Definição de classe S4

Uma classe descreve uma representação

  • name
  • slots (métodos/campos)
  • contains (definição de herança)
MyEpicProject <- setClass(# Defina o nome da classe em UpperCamelCase
                          "MyEpicProject",
                          # Defina os slots, úteis para validação
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Defina a herança        
                          contains = "MyProject")
Introdução ao Bioconductor em 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())

Resumo do objeto

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
Introdução ao Bioconductor em R

Vamos praticar!

Introdução ao Bioconductor em R

Preparing Video For Download...