Developing R/Bioconductor packages for genomics

Dates

24-28 October 2022

 

Due to the COVID-19 outbreak, this course will be held online

 

Course overview

This course aims at making Bioconductor package development within one’s reach. It is specifically designed for biologists and newer bioinformaticians who may find themselves using R/Bioconductor packages and who wish to expand their programmatic toolkit.

Overall, this course will help the attendees gain accurate insights into the fundamental notions required for proper R/Bioconductor package development. We will cover key theory concepts about package development and the Bioconductor ecosystem, supported by a range of demonstrations and exercises, to get a complete understanding of all the steps of package development.

Throughout this workshop, we will emphasise on the best practices for developing a package embedded in the R/Bioconductor ecosystem.

 

Format

The course is structured in modules over five days. Each day will contain a mix of formal lectures, demonstrations, and hands-on exercises.

 

  • Formal lectures will cover the key theory required to understand the principles of R/Bioconductor package development (~2h).
  • Following these lectures, practical examples will be shown to illustrate how to translate the acquired knowledge into a real-life R/Bioconductor package. At this stage, trainees will get acquainted with the state-of-the-art Bioconductor ecosystem as well as the best coding practices in bioinformatics.
  •  During the rest of the daily sessions, trainees will work by themselves, following guided exercises to practice their package development skills. Hints and solutions are provided for each exercise. The exercises will mainly focus on specific concepts introduced earlier that day.

 

 Office hours will take place during the last hour of the exercises. An instructor will be available to answer individual questions related to daily exercises.

 

 A Slack channel will also be available so that Q&A is available for everybody.

 

Target audience and assumed background

The material is suitable both for experimentalists who want to learn more about R/Bioconductor ecosystem as well as computational biologists who want to expand their set of coding skills. However, the course will be most beneficial to those who have already been familiarized with the R environment.

 

Learning outcomes

At the end of this course, you should be able to:

  1.  Leverage Bioconductor principles of interoperability (a.k.a “do-not-reinvent-the-wheel!")
  2. Write sets of interconnected functions for genomic data
  3. Document and test functions
  4. Manage package dependencies
  5. Manage package versions
  6. Manage package continuous integration
  7. Build a dedicated website for your package
  8. Submitting/releasing/maintaining your package
  9. Disseminating your package (publish it!)

 

Program

Classes are from: 2 to 8 pm Berlin time.


Monday:

    Writing functions
    Introduction to package building
    Local development with devtools
    Introduction to Github Actions and Continuous Integration

Tuesday:

    Documenting functions
    Testing functions and pacakge
    Managing dependencies & namespace

Wednesday:

    Introduction to Bioconductor: interoperability and other key notions
    Creating custom Bioconductor objects
    Including data to packages

Thursday:

    Package vignettes: demonstrating how to use your package
    Submitting/releasing/maintaining a Bioconductor package

Friday:

    Other types of Bioconductor packages: datasets, workflows, …
    Disseminating your package: package support website, JOSS, rOpenSci…

 


Cost overview

 

Package 1

 

                      480 €


Should you have any further questions, please send an email to info@physalia-courses.org

Cancellation Policy:

 

> 30  days before the start date = 30% cancellation fee

< 30 days before the start date= No Refund.

 

Physalia-courses cannot be held responsible for any travel fees, accommodation or other expenses incurred to you as a result of the cancellation.