Online resources for learning programming with S4 in R in general, and the particular implementation in Bioconductor (BiocGenerics, S4Vectors, IRanges, GRanges, SummarizedExperiment, Biostrings, etc.).
- Book - Advanced R: https://adv-r.hadley.nz/s4.html
- Book - R packages: https://r-pkgs.org/man.html#man-s4
- Book - Advanced Object-Oriented Programming in R: https://www.apress.com/gp/book/9781484229187
- Book - R Programming for Bioinformatics: https://www.routledge.com/R-Programming-for-Bioinformatics/Gentleman/p/book/9781420063677
- Vignette - A quick overview of the S4 class system: https://bioconductor.org/packages/release/bioc/vignettes/S4Vectors/inst/doc/S4QuickOverview.pdf
- Blogpost - S4: a short guide for the perplexed: https://stuartlee.org/2019/07/09/s4-short-guide/
- Bioc course - S4 System Development in Bioconductor: https://www.bioconductor.org/help/course-materials/2010/AdvancedR/S4InBioconductor.pdf
- Video - The role of S4 in Bioconductor: https://www.youtube.com/watch?v=h-H5zP4h6aw
- Video - Classes and Methods in R: https://www.youtube.com/watch?v=93N0HdoZW9g
- Video - S3 and S4 Object in R: https://www.youtube.com/watch?v=YGlse2aW5Ao
- Blogpost - Practical Guide to the S4 System: https://www.appsilon.com/post/object-oriented-programming-in-r-part-3
- Bioc course - R - S4 Classes and Methods: https://kasperdanielhansen.github.io/genbioconductor/html/R_S4.html
- Bioc course - S4 classes and methods: https://www.bioconductor.org/help/course-materials/2017/Zurich/S4-classes-and-methods.html
- Bioc course - A practical tutorial on S4 programming: https://www.bioconductor.org/help/course-materials/2013/CSAMA2013/friday/afternoon/S4-tutorial.pdf
- Video - R S4 classes: https://www.youtube.com/watch?v=CeP-A__FroY
- Vignette - An Overview of the S4Vectors package: https://bioconductor.org/packages/release/bioc/vignettes/S4Vectors/inst/doc/S4VectorsOverview.pdf
- Vignette - Extending GenomicRanges: https://bioconductor.org/packages/release/bioc/vignettes/GenomicRanges/inst/doc/ExtendingGenomicRanges.pdf
- Vignette - Extending the SummarizedExperiment class: http://www.bioconductor.org/packages/release/bioc/vignettes/SummarizedExperiment/inst/doc/Extensions.html
- Vignette - Implementing A DelayedArray Backend: https://bioconductor.org/packages/release/bioc/vignettes/DelayedArray/inst/doc/02-Implementing_a_backend.html
https://stackoverflow.com/questions/4143611/sources-on-s4-objects-methods-and-programming-in-r