← LeaderboardThe Skill Leaderboard

bioconductor-basilisk

Installs a self-contained conda instance that is managed by the R/Bioconductor installation machinery. This aims to provide a consistent Python environment that can be used reliably by Bioconductor packages. Functions are also provided to e

Published by bioMate-AI ↗bioMate-AI/biomate-bioconductor-kb

Try your first task

bioconductor-basilisk

Start a fresh conversation. Replace the highlighted placeholders.

Use bioconductor-basilisk to design a Basilisk-backed R implementation for [Bioconductor package or R project] that runs [Python computation] on [R input type], with an isolated environment whose Python dependencies are pinned to exact versions.

Required inputs

  • [Bioconductor package or R project]
  • [Python computation]
  • [R input type]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: bioconductor-basiliskdescription: Installs a self-contained conda instance that is managed by the R/Bioconductor installation machinery. This aims to provide a consistent Python environment that can be used reliably by Bioconductor packages. Functions are also provided to ewhen_to_use: "Use when: Developing Bioconductor packages that require a reliable, self-contained Python environment using BasiliskEnvironment to freeze dependencies.; Executing Python-based calculations (e.g., scikit-learn's TruncatedSVD) on R matrices safely in an isolated process via basiliskRun.; Managing multiple, isolated Python environments within a single R session using createLocalBasiliskEnv and basiliskRun to p. Not for: For interactive, ad-hoc Python development where you want to use your pre-existing global environment, use reticulate directly because basilisk is primarily intended for package developers to freeze dependencies.; For simple R-native tasks, use nativ"user-invocable: false

basilisk

Dependencies & Environment

Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.

  • Version: 1.24.0 · Bioconductor: 3.23 · R: ≥ 4.6
  • Depends: reticulate
  • Imports: dir.expiry
  • Install: BiocManager::install("basilisk")

When to Use

  • Developing Bioconductor packages that require a reliable, self-contained Python environment using BasiliskEnvironment to freeze dependencies.
  • Executing Python-based calculations (e.g., scikit-learn's TruncatedSVD) on R matrices safely in an isolated process via basiliskRun.
  • Managing multiple, isolated Python environments within a single R session using createLocalBasiliskEnv and basiliskRun to prevent dependency clashes.

When NOT to Use

  • For interactive, ad-hoc Python development where you want to use your pre-existing global environment, use reticulate directly because basilisk is primarily intended for package developers to freeze dependencies.
  • For simple R-native tasks, use native R implementations because provisioning custom Python virtual environments adds installation overhead.

Data Requirements

  • Input format: Pure R objects (e.g., matrices like matrix(rnorm(1000), ncol=10)) that are amenable to serialization.
  • Structure: Variables must be explicitly passed as arguments to the function supplied to basiliskRun.
  • Normalization state: Not explicitly constrained by basilisk; depends entirely on the downstream Python module being called.

Key Parameters

  • envname (no default): The unique name of the basilisk environment to create or load in BasiliskEnvironment.
  • pkgname (no default): The name of the client package defining the environment in BasiliskEnvironment.
  • packages (no default): A character vector of Python packages (with explicit version constraints like "pandas==2.2.3") to install.
  • fun (no default): The R function containing the Python code to execute inside the isolated environment via basiliskRun.
  • persist (FALSE): Logical indicating whether to persist variables across multiple calls to basiliskRun by passing a store environment.
  • obsolete.only (TRUE): Logical in clearExternalDir to remove only obsolete environments.

Best Practices

  • Always specify exact version numbers for all Python packages (e.g., "scikit-learn==1.6.1") in BasiliskEnvironment to future-proof the installation.
  • Use basiliskStart and basiliskStop (via on.exit()) to manage the process context when executing basiliskRun.
  • Ensure the return value of the function passed to basiliskRun is a pure R object, not a reticulate binding or pointer to external memory.
  • Explicitly import non-base R functions via their namespace (using ::) inside the function passed to basiliskRun.

Common Pitfalls

  • Relying on closures capturing the R environment in which the function was defined causes failures; fix this by explicitly passing variables as arguments to the function in basiliskRun.
  • Returning reticulate bindings to Python objects causes invalid pointer errors when transferred back to the parent process; fix this by returning only pure R objects.
  • Deeply nested directories on Windows exceeding the 260-character file path limit cause installation to silently fail; fix this by setting the BASILISK_EXTERNAL_DIR environment variable to a shorter path.
  • Low disk usage quotas causing incomplete installations; fix this by running clearExternalDir to forcibly clear obsolete environments.

Alternatives

  • reticulate: The underlying framework for R-to-Python interoperability, suitable for interactive use but lacks the Bioconductor-managed freezing of Python versions.
  • renv: Manages R package dependencies and Python virtualenvs at the project level rather than the package level.
  • herper: Manages Conda environments from R but does not isolate execution in a separate process like basilisk.

Citations

  • Lun A (2025). Freezing Python versions inside Bioconductor packages. Package basilisk vignette.

References


Run this on BioMate

This skill is the knowledge layer — when, why, and how to use basilisk. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.

▶ Open basilisk on BioMate →