• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
  • Created over 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Contribute Packages to Bioconductor

Table of Contents

Contributing a Bioconductor Package

This repository is used to contribute new packages to the Bioconductor project for the analysis and comprehension of high-throughput genomic data. Please

By using this service, please note that:

  • Your package code will be visible to the general public, where anyone can see it.

  • The build reports and comments during the review process are public.

  • Any GitHub user may add comments to the package review.

  • You are submitting a package for inclusion in Bioconductor; the build service we provide is meant only for individuals submitting Bioconductor packages.

Starting the Submission Process

To submit a package to Bioconductor:

  1. Create your own GitHub repository, containing source code structured as an R package. The source code must be in the default branch of your GitHub repository. You cannot specify any alternative branches; the default branch is utilized. The default branch must contain only package code. Any files or directories for other applications (Github Actions, devtool, etc) should be in a different branch.

  2. Add SSH public key(s) to your GitHub account. SSH keys will be used during and after package acceptance for updating the Bioconductor git repository.

  3. Open a new issue. Complete the issue by adding the link to your repository, and confirming that you understand the review process, package guidelines, and maintainer responsibilities. Provide the name of your package as the 'Title' of the issue.

What to Expect

  • A new package is initially labeled as '1a. awaiting moderation'. A Bioconductor team member will take a very brief look at your package, to ensure that it is intended for Bioconductor. Appropriate packages will be labelled '1b. awaiting git addition.

  • The moderator will add your package as a repository to the git.bioconductor.org git server, copy the SSH keys from your github account to the BiocCredentials application, and assign a reviewer. The package will be labelled '2. Review in progress'.

    ALL CHANGES TO YOUR PACKAGE must be pushed to the git.bioconductor.org repository created in this step. See the new package workflow for instructions on pushing changes to your git.bioconductor.org repository.

  • The package will be submitted to the Bioconductor build system. The system will check out your package from git.bioconductor.org.

    The build system will run R CMD build to create a 'tarball' of your source code, vignettes, and man pages.

    The build system will run R CMD check on the tarball, to ensure that the package conforms to standard R programming best practices. Bioconductor has chosen to utilize a custom R CMD check environment; See R CMD check environment for more details.

    Finally, the build system will run BiocCheckGitClone() and BiocCheck() to ensure that the package conforms to Bioconductor BiocCheck standards.

    The system performs these steps using the 'devel' version of Bioconductor, on three platforms (Linux, Mac OS X, and Windows).

  • After the build steps are complete, a link to a build report will be appended to the new package issue on GitHub. Avoid surprises by running these checks on your own computer, under the 'devel' version of Bioconductor, before submitting your package.

  • If the build report indicates problems, modify your package and commit changes to the default branch of your GitHub repository. If there are problems that you do not understand, seek help from your reviewer via a comment on the issue, or on the bioc-devel mailing list.

  • To trigger a new build, include a version bump in your commit, e.g., from Version: 0.99.0 to Version: 0.99.1. Push the changes including version bump to your repository on git.bioconductor.org.

  • Once your package builds and checks without errors or (avoidable) warnings, a Bioconductor team member will provide a technical review of your package. Other Bioconductor developers and users with domain expertise are encouraged to provide additional community commentary. Reviewers will add comments to the issue you created.

  • Respond to the issues raised by the reviewers. You must respond to the primary reviewer, and are strongly encouraged to consider community commentary. Typically your response will involve code modifications; commit these to the default branch of your GitHub repository to trigger subsequent builds. When you have addressed all concerns, add a comment to the issue created in step 2 to explain your response.

  • The reviewer will assess your responses, perhaps suggesting further modifications or clarification. The reviewer will then accept your package for inclusion in Bioconductor, or decline it. The label '2. review in progress' will be replaced by '3a. accepted' or '3b. declined'.

  • If your package is accepted, it will be added to Bioconductor's nightly 'devel' builds. All packages in the 'devel' branch of the repository are 'released' to the user community once every six months, in approximately April and October.

  • Once the review process is complete, the issue you created will be closed. All updates to your package will be through the Bioconductor Git repository.

R CMD check environment

It is possible to activate or deactivate a number of options in R CMD build and R CMD check. Options can be set as individual environment variables or they can be listed in a file. Descriptions of all the different options available can be found here. Bioconductor has chosen to customize some of these options for incoming submission during R CMD check. The file of utilized flags can be downloaded from Github. The file can either be place in a default directory as directed here or can be set through environment variable R_CHECK_ENVIRON with a command similar to

export R_CHECK_ENVIRON = <path to downloaded file>

Submitting Related Packages

Sometimes it is appropriate to contribute more than one package at a time. The most common case is when a software package has a companion experiment data package used for illustrative purposes in the vignette. Remember to avoid circular dependencies between packages.

  1. Start by submitting the package that can be installed without a dependency on any of the other packages you are submitting (this is usually the experiment data package). Do this by creating a new issue as described above.

  2. Continue working with this package until it builds and checks without error on any platform.

    Do not submit an AdditionalPackage with the line shown in step 3 until a review in progress tag has been added to your package and your first package receives a build report

  3. Submit additional packages to the same issue. Do this by posting a comment containing a line like:

     AdditionalPackage: https://github.com/username/repositoryname
    

    Include only one AdditionalPackage line per comment. Wait until this related package has been added to git.bioconductor.org, and it has been updated by you to build successfully before submitting further related packages.

  4. The AdditionalPackage comment must be posted by the same GitHub user who created the issue. Also, the initial package submitted in the issue must have completed the 'moderation' step. If these conditions are not met, the additional package will not build.

  5. The additional package will go through the same preapproval process as described in What to Expect

Circular Dependencies

If circular dependencies are truly unavoidable, there are some subtle differences from the above. Bioconductor will support a 'Suggest / Depend' circular dependency. Most often an accompanied data package will "Suggest" the software package, while the software package will "Depend" on the data package. The single package builder (SPB) handles this case by providing each issue with a unique Rlib path for additional package dependencies. The SPB will install each package before tryng to build or check.

  1. Start by submitting the package with the weaker circular dependency (the package that "Suggests" the other package, most often this will be the data package). Do this by creating a new issue as described above. We will call this package A.

  2. This package A will ERROR when running R CMD build. This is expected since the additional package B would not be found yet.

  3. Submit the additional packages to the same issue. Do this by posting a comment containing a line like:

     AdditionalPackage: https://github.com/username/repositoryname
    
  4. This package B will also ERROR when running R CMD build. This is expected.

  5. Now, perform a version bump on the package A. It should find package B and not ERROR for a missing dependency. Continue working with package A until it builds and checks without error on any platform.

  6. Perform a version bump on package B. It should now find package A and not ERROR for its missing dependency. Continue with the review process.

Additional Actions

To change the repository of your package during the review process:

  1. Edit the first comment in the issue associated with your package. Change the Repository: link to point to your new repository.

  2. Post a comment in your issue, tagging your reviewer, indicating that you have changed the repository.

  3. Once the comment is acknowledged, bump the package version in the new repository to trigger a new build.

To remove an AdditionalPackage: dependency, e.g., because you have identified AnnnotationHub or other resources that make your additional package unnecessary:

  1. Delete or edit all comments with an AdditionalPackage: tag.

Resources

The following pages contain more information about package submission.

If you have a question not answered above, please ask on the bioc-devel mailing list.

More Repositories

1

BiocStickers

Stickers for some Bioconductor packages - feel free to contribute and/or modify.
R
121
star
2

CSAMA

Course material for CSAMA: Statistical Data Analysis for Genome Scale Biology
HTML
92
star
3

GenomicDataCommons

Provide R access to the NCI Genomic Data Commons portal.
R
83
star
4

BiocWorkshops

⚠️ 2018 ⚠️ Bioconductor Workshops
TeX
74
star
5

bioconductor_docker

Docker Containers for Bioconductor
Shell
73
star
6

BiocParallel

Bioconductor facilities for parallel evaluation
R
67
star
7

BiocManager

CRAN Package For Managing Bioconductor Packages
R
65
star
8

OrchestratingSingleCellAnalysis

Content for the OSCA Book.
Dockerfile
65
star
9

LearnBioconductor

Training material for introductory R / Bioconductor courses
R
62
star
10

bioc_docker

[DEPRECATED] Docker containers for Bioconductor
R
49
star
11

Biostrings

Efficient manipulation of biological strings
R
47
star
12

GoogleGenomics

[DEPRECATED] An R package for Google Genomics API queries.
R
44
star
13

BiocIntro

Course material for introductory R / Bioconductor courses
43
star
14

OrchestratingSingleCellAnalysis-release

An online companion to the OSCA manuscript demonstrating Bioconductor resources and workflows for single-cell RNA-seq analysis.
35
star
15

GenomicRanges

Representation and manipulation of genomic intervals
R
34
star
16

basilisk

Clone of the Bioconductor repository for the basilisk package.
R
27
star
17

BiocWorkshops2019

The official repository of the Bioconductor 2019 Conference Workshops 🎊
Dockerfile
25
star
18

bioconductor_full

[DEPRECATED] Docker Images which include a complete installation of all software needed to build all Bioconductor packages
Dockerfile
25
star
19

SummarizedExperiment

SummarizedExperiment container
R
22
star
20

GenomicFeatures

Conveniently import and query gene models
R
21
star
21

copy-number-analysis

Explore, compare, and evaluate Bioconductor packages related to genomic copy number analysis
R
21
star
22

BiocAdvanced

Advanced R / Bioconductor training material
20
star
23

DelayedArray

A unified framework for working transparently with on-disk and in-memory array-like datasets
R
20
star
24

Rsamtools

Binary alignment (BAM), FASTA, variant call (BCF), and tabix file import
R
20
star
25

bioconductor.org

Source code for the Bioconductor website
HTML
19
star
26

BuildABiocWorkshop

Template for building a bioconductor workshop package using github actions
Dockerfile
19
star
27

IRanges

Foundation of integer range manipulation in Bioconductor
R
18
star
28

VariantAnnotation

Annotation of Genetic Variants
R
18
star
29

S4Vectors

Foundation of vector-like and list-like containers in Bioconductor
R
17
star
30

UseBioconductor

Training material for intermediate R / Bioconductor courses
R
16
star
31

GenomeInfoDb

Utilities for manipulating chromosome names, including modifying them to follow a particular naming style
R
15
star
32

bioc_git_transition

This python package is for transitioning bioconductor from SVN to git
Python
14
star
33

BiocStyle

Issues and pull requests for BiocStyle should go here.
R
12
star
34

bioconductor-teaching

Bioconductor teaching and education committee
HTML
12
star
35

MatrixGenerics

S4 Generic Summary Statistic Functions that Operate on Matrix-Like Objects
R
12
star
36

TENxBrainAnalysis

R scripts for analyzing the 1.3 million brain cell data set from 10X Genomics
R
12
star
37

BioC2020

BioC2020: Where Software and Biology Connect
12
star
38

CSAMA2015

Course material for CSAMA 2015: Statistics and Computing in Genome Data Science
HTML
11
star
39

BiocGenerics

Defines many S4 generic functions used in Bioconductor
R
10
star
40

AnnotationHub

Client for the Bioconductor AnnotationHub web resource
R
10
star
41

biocblog

A Quarto blog for Bioconductor community
HTML
9
star
42

BBS

The Bioconductor Build System
Shell
9
star
43

HDF5Array

HDF5 backend for DelayedArray objects
C
9
star
44

BiocFileCache

Manage Files Across Sessions
R
9
star
45

Rhtslib

HTSlib high-throughput sequencing library as an R package
C
9
star
46

AnVIL

Interact with AnVIL and Leonardo projects
R
8
star
47

BiocCheck

R
8
star
48

HCABrowser

Browse the Human Cell Atlas data portal
R
8
star
49

sweave2rmd

A project for converting Bioconductor Sweave documents to Rmd
R
8
star
50

EuroBioc2017

European Bioconductor Meeting 2017
HTML
8
star
51

SparseArray

High-performance sparse data representation and manipulation in R
C
8
star
52

EuroBioC2023

CSS
8
star
53

pkgrevdocs

Training Material for Community Reviewers
TeX
8
star
54

BiocWorkingGroups

Bioconductor working group guidelines. Also, a list of active, suggested, and inactive working groups for bioconductor for the community to volunteer to be apart of. The community is also welcome to suggest new working groups.
TeX
8
star
55

BSgenome

Software infrastructure for efficient representation of full genomes and their SNPs
R
7
star
56

ShortRead

R
7
star
57

CSAMA2016

Repository for CSAMA 2016 course material
HTML
7
star
58

IntermediateR

Intermediate R course offered to members of RPCI / SUNY at Buffalo
7
star
59

GenomicAlignments

Representation and manipulation of short genomic alignments
R
7
star
60

BiocGithubHelp

Notes and tips for using github with Biocondcutor
7
star
61

TENxBrainData

An ExperimentHub package for the 1.3 million brain cell 10X single-cell RNA-seq data set.
R
7
star
62

BioC2021

BioC2021: Where Software and Biology Connect
CSS
6
star
63

AnnotationDbi

Manipulation of SQLite-based annotations in Bioconductor
R
6
star
64

BioC2019

BioC2019: Where Software and Biology Connect
6
star
65

ExperimentHub

Client to access ExperimentHub resources
R
6
star
66

BiocInstaller

Install / Update Bioconductor, CRAN, and github Packages
R
6
star
67

Biobase

Biobase: Base functions for Bioconductor
R
6
star
68

LoomExperiment

A package to read, write, and manipulate loom files using LoomExperiments. Uses the loom file format from the Linnarson Lab. https://linnarssonlab.org/loompy/
R
6
star
69

BiocAsia2020

BiocAsia2020 repository
6
star
70

genefilter

genefilter: methods for filtering genes from high-throughput experiments
R
5
star
71

packagebuilder

JavaScript
5
star
72

BioC2018

BioC 2018: Where Software and Biology Connect
5
star
73

GDSArray

Representing GDS files as array-like objects
R
5
star
74

GSE62944

Experiment Data Package for TCGA processed RNA-Seq data
R
5
star
75

S4Arrays

Foundation of array-like containers in Bioconductor
R
5
star
76

workshop-contributions

Repository for managing contributions to workshop.bioconductor.org
HTML
5
star
77

AnnotationFilter

Facilities for Filtering Bioconductor Annotation Resources
R
4
star
78

UniProt.ws

R Interface to UniProt Web Services
R
4
star
79

EuroBioc2020

European Bioconductor Conference, December, 2020
4
star
80

KEGGREST

Client-side REST access to KEGG
R
4
star
81

ensemblVEP

R Interface to Ensembl Variant Effect Predictor
R
4
star
82

BioC2015Introduction

Introduction to R and Bioconductor session at BioC2015 July 20-22, Seattle, Wa
4
star
83

VCFArray

Extension of DelayedArray with on-disk/remote VCF backend
R
4
star
84

BioconductorMeta

Central repository for meta-information about the Bioconductor project
4
star
85

BioconductorAnnotationPipeline

build and push Bioconductor annotation packages
R
4
star
86

BiocBaseUtils

R
4
star
87

BiocAsia2021

BiocAsia2021 repository
CSS
4
star
88

EuroBioC2022

European Bioconductor conference website 2022
CSS
4
star
89

biocViews

Categorized views of R package repositories
R
4
star
90

RaggedExperiment

Matrix-like representations of mutation and CN data
R
4
star
91

AnnotationForge

Tools for building SQLite-based annotation data packages
R
4
star
92

GOstats

Tools for manipulating GO and microarrays.
TeX
4
star
93

BSgenomeForge

Tools to forge BSgenome data packages
R
4
star
94

GSEABase

Gene set enrichment data structures and methods
R
4
star
95

HubPub

R
3
star
96

ISMB.OSCA

OSCA tutorial at the ISMB 2023
TeX
3
star
97

BiocUruguay2015

R / Bioconductor Training Material for Uruguay R Bio Course
R
3
star
98

HCAMatrixBrowser

⚠️ DEPRECATED ⚠️ Download Matrix Data using the HCA API
R
3
star
99

BioC2016Introduction

TeX
3
star
100

hca

Human Cell Atlas data discovery and retrieval
R
3
star