De rol van S4 in Bioconductor

Introductie tot Bioconductor in R

James Chapman

Curriculum Manager, DataCamp

S3

Positief

  • CRAN, simpel maar krachtig
  • Flexibel en interactief
  • Gebruikt een generieke functie
  • Functionaliteit hangt af van het eerste argument
  • Voorbeeld: plot() en methods(plot)

Negatief

  • Slecht in type- en naamvalidatie (dot of geen dot?)
  • Overerving werkt, maar hangt af van de input
Introductie tot Bioconductor in R

S4

Positief

  • Formele definitie van klassen
  • Hergebruik in Bioconductor
  • Heeft typevalidatie
  • Naamgevingsconventies

Voorbeeld: myDescriptor <- new("GenomeDescription")

Negatief

  • Complexe structuur vergeleken met S3
Introductie tot Bioconductor in R

Is het S4 of niet?

Check of een object S4 is

isS4(myDescriptor)
TRUE

str van S4-objecten begint met Formal class

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
Introductie tot Bioconductor in R

S4-klassedefinitie

Een klasse beschrijft een representatie

  • name
  • slots (methoden/velden)
  • contains (overervingsdefinitie)
MyEpicProject <- setClass(# Definieer klassenaam met UpperCamelCase
                          "MyEpicProject",
                          # Definieer slots, handig voor validatie
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Definieer overerving        
                          contains = "MyProject")
Introductie tot Bioconductor in 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())

Objectoverzicht

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
Introductie tot Bioconductor in R

Laten we oefenen!

Introductie tot Bioconductor in R

Preparing Video For Download...