Le rôle de S4 dans Bioconductor

Introduction à Bioconductor en R

James Chapman

Curriculum Manager, DataCamp

S3

Points positifs

  • CRAN, simple mais puissant
  • Souple et interactif
  • Utilise une fonction générique
  • La fonctionnalité dépend du premier argument
  • Exemple : plot() et methods(plot)

Points négatifs

  • Valide mal les types et les conventions de nommage (point ou pas de point ?)
  • L'héritage fonctionne, mais dépend de l'entrée
Introduction à Bioconductor en R

S4

Points positifs

  • Définition formelle des classes
  • Réutilisabilité dans Bioconductor
  • Validation des types
  • Conventions de nommage

Exemple : myDescriptor <- new("GenomeDescription")

Points négatifs

  • Structure plus complexe que S3
Introduction à Bioconductor en R

S4 ou non ?

Vérifier si un objet est S4

isS4(myDescriptor)
TRUE

str des objets S4 commence par Formal class

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
Introduction à Bioconductor en R

Définition d'une classe S4

Une classe décrit une représentation

  • name
  • slots (méthodes/champs)
  • contains (définition de l'héritage)
MyEpicProject <- setClass(# Définir le nom de classe en UpperCamelCase
                          "MyEpicProject",
                          # Définir les slots, utile pour la validation
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Définir l'héritage        
                          contains = "MyProject")
Introduction à Bioconductor en 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())

Résumé de l'objet

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
Introduction à Bioconductor en R

Passons à la pratique !

Introduction à Bioconductor en R

Preparing Video For Download...