S4:s roll i Bioconductor

Introduktion till Bioconductor i R

James Chapman

Curriculum Manager, DataCamp

S3

Positivt

  • CRAN, enkelt men kraftfullt
  • Flexibelt och interaktivt
  • Använder en generisk funktion
  • Funktionalitet beror på det första argumentet
  • Exempel: plot() och methods(plot)

Negativt

  • Dåligt på att validera typer och namnkonventioner (punkt eller inte?)
  • Arv fungerar, men beror på indata
Introduktion till Bioconductor i R

S4

Positivt

  • Formell klassdefinition
  • Återanvändbarhet i Bioconductor
  • Validering av typer
  • Namnkonventioner

Exempel: myDescriptor <- new("GenomeDescription")

Negativt

  • Mer komplex struktur jämfört med S3
Introduktion till Bioconductor i R

S4 eller inte?

Kontrollera om ett objekt är S4

isS4(myDescriptor)
TRUE

str för S4-objekt börjar med Formal class

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
Introduktion till Bioconductor i R

S4-klassdefinition

En klass beskriver en representation

  • name
  • slots (metoder/fält)
  • contains (arvsdefinition)
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")
Introduktion till Bioconductor i 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())

Objektsammanfattning

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
Introduktion till Bioconductor i R

Nu kör vi en övning!

Introduktion till Bioconductor i R

Preparing Video For Download...