Skip to main content

mbf_anysnake

Documentation https://mbf_anysnake.readthedocs.io/en/latest/

Version controlled, per project Python, Python packages, R, Bioconductor and CRAN, all inside a Docker container.

Python:

  • any version of Python
  • versioned package installation from pypi
  • editable installation of libraries under development (git/mercurial)
  • two virtual environments at once, a local one and a global one for development tools

R (optional):

  • any version of R
  • any bioconductor version (R version matched to bioconductor)
  • bioconductor version oriented CRAN version control
  • all of CRAN

Rpy2

  • always matching the Python and R version used

All this from simple, toml based configuration file.

This solves the problem of providing a reproducible yet flexible environment for bioinformatic and data science projects.

Motivations in brief:

  • any python -> independent of os packaging -> quick updates solved via python-build (pyenv)
  • Bioconductor -> R version -> screen scrapping -> matching rpy2 to python versions -> docker volume mounts instead of inside-docker install
  • relocatable projects -> docker volume mounts abstract paths, allow relocatable venvs
  • dual venv - install development tools system wide, so you have always the latest jupyter without having to rebuild docker containers (fragile)
  • bioconductor dependes on CRAN packages of undefined version -> use microsoft cran snapshot mirror and packages as of release date of bioconductor (that's an approximation that may not always hold up in practice. Sometimes bioconductor uses package verisons that were not released when the bioconductor release happen. But it's a useful approximation for automatisation)
  • some bioconductor packages require annotation/experimental data: filter these packages by default, but allow user to request them (this is a space saving measure. Full bioconductor software + full cran: 50 gb, Bioconductor minus annotation: 21 GB, Bioconductor minus and minimal cran: 5GB),
  • cran package annotation is somewhat messy (duplicate entries, non existing versions, missing dependencies) -> hotfix.
  • install as much of cran/bioconductor as possible: Don't fight with the stuff in your daily workflow -> ton of apt-packages in the docker, see _inside_dockfill_bioconductor.py for list of things that are filted
  • R install.packages (and derivates) suffers from neglect: it can't cache the downloaded files, it ignores the dependencies when installing from files and whenever multi-cores are used. It is 2019, installing on a single core is unacceptable. We use a pypipegraph to work around this.

mbf_anysnake follows semver

Release files for mbf-anysnake 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mbf-anysnake 0.2
File Size Uploaded
mbf_anysnake-0.2.tar.gz 59.0 kB Details

Release files / mbf_anysnake-0.2.tar.gz

Download URL mbf_anysnake-0.2.tar.gz
Size 59.0 kB
Tags Source
SHA-256 checksum
How to use checksums
04257f0f5531e0113821b034ee80ebfe6089bb75936161bc7e91fddfad9c7e69
BLAKE2b-256 checksum
How to use checksums
54a08a27b048b1b3d2b01d04ee6559a458a55426242a8ecf054a87b608a370ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

Release history Release notifications | RSS feed

This release

0.2 This release

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page