Conda is a platform and language independent package manager, that sports easy distribution, installation and version management of software. The bioconda channel is a Conda channel providing bioinformatics related packages. This repository hosts the corresponding recipes.
Please visit https://bioconda.github.io for details.
If you want to contribute new packages to Bioconda, you are invited to join the Bioconda team. Please post in the team thread on GitHub to ask for permission.
We build Linux packages inside a CentOS 5 docker container to maintain compatibility across multiple systems. The steps below describe how to contribute a new package. It is assumed you have docker and git installed.
Fork this repository or create a new branch to work in. Within the new branch,
create a recipe
(your_package
in this example) in the recipes
directory.
When the recipe is ready first test it with your local conda installation via
conda build recipes/your_package
Then, you can test it in the docker container with:
docker run -v `pwd`:/bioconda-recipes bioconda/bioconda-builder --packages your_package
To optionally build for a specific Python version, provide the CONDA_PY
environmental variable. For example, to build specifically for Python 3.4:
docker run -e CONDA_PY=34 -v `pwd`:/bioconda-recipes bioconda/bioconda-builder --packages your_package
To optionally build and test all packages (if they don't already exist), leave off the package name:
docker run -v `pwd`:/tmp/conda-recipes bioconda/bioconda-builder
If rebuilding a previously-built package and the version number hasn't changed, be sure to increment the build number in meta.yaml
(the default build number is 0):
build:
number: 1
Once these local tests pass, submit a pull request to this repository. The travis-ci continuous integration service will automatically test the pull request.
When the PR tests pass, the PR can be merged into the master branch.
Travis-CI will again run tests. However, when testing the master branch, new,
successfully-built packages will be uploaded to the bioconda
conda channel.
Once these tests pass, your new package can now be installed from anywhere
using:
conda install -c bioconda your_package
If you want to promote the Bioconda installation of your package, we recommend to add the following badge to your homepage:
[![bioconda-badge](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io)
This will display as . For other styles, replace ?style=flat-square
with ?style=flat
or ?style=plastic
.
If you want your package to be built for Mac OSX as well, you have to add it to
the osx-whitelist.txt
file in the root of this repository.
###Other notes
We use a pre-built CentOS 5 image with compilers installed as part of the standard build. To build this yourself, you can do:
docker login
cd scripts && docker build -t bicoonda/bioconda-builder .
###Creating Bioconductor recipes
A helper script is provided for generating a skeleton recipe for Bioconductor
packages. The scripts/bioconductor-scraper.py
script accepts the name of a Bioconductor
package (e.g., "Biobase"). This script:
- parses the Bioconductor web page for the tarball
- downloads the tarball to a temp file and extracts the
DESCRIPTION
file - parses the DESCRIPTION file to identify dependencies
- converts dependencies to package names more friendly to
conda
, specifically prefixingbioconductor-
orr-
as needed and using lowercase package names - writes a
meta.yaml
andbuild.sh
file torecipes/<new package name>
.
That is,
scripts/bioconductor-scraper.py Biobase
results in the files:
recipes/bioconductor-biobase/meta.yaml
recipes/bioconductor-biobase/build.sh
After the recipe has been created, you can follow the build test instructions above.