Git Product home page Git Product logo

bioconda-paper's Introduction

DOI Snakemake

Data analysis for the Bioconda paper

This Snakemake workflow automatically generates all results and figures from the Bioconda paper.

Requirements

Any 64-bit Linux installation with GLIBC 2.5 or newer (i.e. any Linux distribution that is newer than CentOS 6). Note that the restriction of this workflow to Linux is purely a design decision (to save space and ensure reproducibility) and not related to Conda/Bioconda. Bioconda packages are available for both Linux and MacOS in general.

Usage

This workflow can be used to recreate all results found in the Bioconda paper.

Step 1: Setup system

Variant a: Installing Miniconda on your system

If you are on a Linux system with GLIBC 2.5 or newer (i.e. any Linux distribution that is newer than CentOS 6), you can simply install Miniconda3 with

curl -o /tmp/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash /tmp/miniconda.sh

Make sure to answer yes to the question whether your PATH variable shall be modified. Afterwards, open a new shell/terminal.

Variant b: Use a Docker container

Otherwise, e.g., on MacOS or if you don't want to modify your system setup, install Docker, run

docker run -it continuumio/miniconda3 /bin/bash

and execute all the following steps within that container.

Variant c: Use an existing Miniconda installation

If you want to use an existing Miniconda installation, please be aware that this is only possible if it uses Python 3 by default. You can check this via

python --version

Further, ensure it is up to date with

conda update --all

Step 2: Setup Bioconda channel

Setup Bioconda with

conda config --add channels defaults
conda config --add channels conda-forge
conda config --add channels bioconda

Step 3: Install bioconda-utils and Snakmake

Install bioconda-utils and Snakemake >=4.6.0 with

conda install bioconda-utils snakemake

If you already have an older version of Snakemake, please make sure it is updated to >=4.6.0.

Step 4: Download the workflow

First, create a working directory:

mkdir bioconda-workflow
cd bioconda-workflow

Then, download the workflow archive from https://doi.org/10.5281/zenodo.1068297 and unpack it with

tar -xf bioconda-paper-workflow.tar.gz

Step 5: Run the workflow

Execute the analysis workflow with Snakemake

snakemake --use-conda

Please wait a few minutes for the analysis to finish. Results can be found in the folder figs/. If you have been running the workflow in the docker container (see above), you can obtain the results with

docker cp <container-id>:/bioconda-workflow/figs .

whith <container-id> being the ID of the container.

Known errors

  • If you see an error like

    ImportError: No module named 'appdirs'
    

    when starting Snakemake, you are likely suffering from a bug in an older conda version. Make sure to update your conda installation with

    conda update --all
    

    and then reinstall the appdirs and snakemake package with

    conda install -f appdirs snakemake
    
  • If you see an error like

    ImportError: Missing required dependencies ['numpy']
    

    you are likely suffering from a bug in an older conda version. Make sure to update your conda installation with

    conda update --all
    

    and then reinstall the snakemake package with

    conda install -f snakemake
    

bioconda-paper's People

Contributors

cbrueffer avatar cokelaer avatar daler avatar henningtimm avatar johanneskoester avatar luispedro avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bioconda-paper's Issues

Show that bioconda recipes are constantly updated

For me, one of the main selling points (for lack of a better word) of bioconda is the availability of recent versions of software. When bioinformatics software is available in Linux package managers like apt, apart from the usual problem of not having root access to install it, it tends to be horribly outdated. Can we pour this into a graphic somehow? Some interesting parameters might be:

  • How many updates do existing recipes receive? (This could be evaluated by counting the different version numbers available or commits changing the version number. I am not sure what is representative for actual "updates" to a recipe.
  • If a bioconda package is also available as a ubuntu package, is the bioconda version older/ the samer/ newer than the ubuntu version? This could be done for any other distribution and/ or package manger.
  • It would be awesome to find out how many recipes are at the most recent version of the respective software, but I do not see an easy way to check this.

I will try to implement this if you think this would be helpful.

Testing the analysis workflow

@bioconda/core, everybody else reading this issue. One of the reviewers complained about errors when executing our analysis workflow. Those were caused by (a) bioconda-utils was not easy to install and (b) there was a (temporal) error in the numpy package from conda-forge and (c) my instructions were probably too sparse. To ensure that everything works this time, I would like to ask you to test the fixed version of our workflow with updated instructions: https://github.com/bioconda/bioconda-paper

It would be great if you could simply go through the steps in the README and report any occuring problems or unclear instructions here.

Thanks,
Johannes

Update security considerations part to include a note about lookalike packages

In the past couple of years, pretty much all big package repositories were attacked by malware squatting on common typos of popular packages. I can look up the publication describing some proof-of-concept attacks on NPM in a bit.

We should at least have a note regarding this problem in there, instead of the blanket "users need to make sure they trust the source".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.