<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Bioconductor community blog</title>
<link>https://blog.bioconductor.org/</link>
<atom:link href="https://blog.bioconductor.org/index.xml" rel="self" type="application/rss+xml"/>
<description>A blog for the Bioconductor community!</description>
<generator>quarto-1.10.18</generator>
<lastBuildDate>Fri, 21 Aug 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>BiocJobs: declaring dispatchable jobs inside Bioconductor packages</title>
  <dc:creator>Alexandru Mahmoud</dc:creator>
  <dc:creator>Lindsay V. Clark</dc:creator>
  <dc:creator>Taylor Firman</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-08-21-biocjobs/</link>
  <description><![CDATA[ 





<section id="the-gap" class="level2">
<h2 class="anchored" data-anchor-id="the-gap">The gap</h2>
<p>Much of what Bioconductor packages do is interactive and exploratory, and rightly belongs in an R session. But some of it is <em>batch-shaped</em>: a well-defined analysis with file inputs, file outputs, and a handful of parameters. Differential expression, normalisation, peak calling, amplicon denoising, quantification import. None of these need a human in the loop once the parameters are chosen, and this project targets that subset.</p>
<p>Yet every workflow system that wants to offer one of these analyses today needs a <strong>hand-written wrapper</strong>: Galaxy, Nextflow, engines for CWL (Common Workflow Language) and WDL (Workflow Description Language), cloud batch services. Those wrappers are usually maintained by someone who is <em>not</em> the package author, and they drift out of sync with the package at every release. The community’s hand-written Galaxy wrappers are excellent, but each one took expert effort to build and takes expert effort to keep current. The long tail of Bioconductor packages will never get that treatment. An earlier post on this blog, <a href="https://blog.bioconductor.org/posts/2025-07-03-bioc-to-galaxy/">Bringing Bioconductor to Galaxy</a>, walks through what writing one of those wrappers by hand actually involves.</p>
<p>There is an ownership problem underneath the maintenance problem. The person who knows which entry points make sense non-interactively, what the inputs mean, and which parameters actually matter is the <strong>package author</strong>.</p>
</section>
<section id="where-this-came-from" class="level2">
<h2 class="anchored" data-anchor-id="where-this-came-from">Where this came from</h2>
<p>This is not a new observation, and the framework described here is the result of a long series of conversations rather than a single design session.</p>
<p>Two of those conversations were decisive. At the <strong>ELIXIR All Hands Meeting in Lyon in early June 2026</strong>, and again at the <strong>Galaxy Community Conference in Clermont-Ferrand later that month</strong>, discussions between Bioconductor and Galaxy people kept converging on the same idea from different directions. There is real and growing appetite for automatically wrapping Bioconductor tools for Galaxy, provided it can be done in a <em>high-quality, developer-driven</em> way rather than as a lowest-common-denominator scrape of function signatures. That qualifier is the whole design constraint. A generated wrapper is only worth having if it is as good as a careful hand-written one, and the way to get there is to have the package author declare the interface deliberately, not have automation scrape it from functions.</p>
<p>The scope widened during those same discussions. Once an author has declared a job precisely enough to generate a good Galaxy tool, that same declaration should carry most of what a <em>general</em> workflow dispatcher needs. It seemed wasteful to spend the effort and get only Galaxy out of it.</p>
</section>
<section id="why-the-ga4gh-task-model-became-the-goal" class="level2">
<h2 class="anchored" data-anchor-id="why-the-ga4gh-task-model-became-the-goal">Why the GA4GH task model became the goal</h2>
<p>The design settled on the <a href="https://github.com/ga4gh/task-execution-schemas">GA4GH Task Execution Service (TES)</a> task model as the common denominator.</p>
<p>TES is small. A task is: some input files staged in, a short sequence of executors, each one a container image plus a command run one after another, some resource requirements, and some output files collected out. That sequence is the only structure TES has. No branching, no fan-out, no data flow between tasks; orchestration is explicitly somebody else’s job. That minimalism is what makes it a good target for package developers. If a unit of analysis can be expressed as a TES task, it can be projected onto a Galaxy tool, a Nextflow process, a WDL task, or a cloud batch submission without rewriting.</p>
<p>So BiocJobs declarations are shaped around that model, and Galaxy became one target among several rather than the only one.</p>
</section>
<section id="what-a-job-looks-like" class="level2">
<h2 class="anchored" data-anchor-id="what-a-job-looks-like">What a job looks like</h2>
<p>A package opts in by adding two files under <code>inst/biocjobs/</code>. Nothing else about the package changes: no new imports, no code changes, no build-system requirements. Packages that are inherently interactive simply do not add the directory.</p>
<p>The first file is the <strong>declaration</strong>: what the job consumes, produces, and exposes. Abridged here from the example DESeq2 spec, which declares two inputs, three outputs and nine options:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">biocjobs</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"1.0"</span></span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> deseq2-differential-expression</span></span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">package</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> DESeq2</span></span>
<span id="cb1-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> DESeq2 differential expression</span></span>
<span id="cb1-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">description</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">: </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-6">  Runs the canonical DESeq2 workflow on a raw count matrix: size factor and</span>
<span id="cb1-7">  dispersion estimation, negative-binomial GLM fitting and a Wald test for</span>
<span id="cb1-8">  one pairwise contrast.</span>
<span id="cb1-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">version</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"1.0.0"</span></span>
<span id="cb1-10"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">script</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> scripts/deseq2-differential-expression.R</span></span>
<span id="cb1-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">apeglm</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> ashr</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span></span>
<span id="cb1-12"></span>
<span id="cb1-13"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">inputs</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-14"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> counts</span></span>
<span id="cb1-15"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">format</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> tsv</span></span>
<span id="cb1-16"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Raw count matrix</span></span>
<span id="cb1-17"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">    help</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">: </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-18">      Tab-separated matrix of raw (un-normalized) integer read counts.</span>
<span id="cb1-19"></span>
<span id="cb1-20"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">outputs</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-21"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> results</span></span>
<span id="cb1-22"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">format</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> tsv</span></span>
<span id="cb1-23"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Differential expression results</span></span>
<span id="cb1-24"></span>
<span id="cb1-25"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">options</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-26"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> shrinkage</span></span>
<span id="cb1-27"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">type</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> choice</span></span>
<span id="cb1-28"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">choices</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">apeglm</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> ashr</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> normal</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> none</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span></span>
<span id="cb1-29"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">default</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> apeglm</span></span>
<span id="cb1-30"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Log2 fold change shrinkage</span></span>
<span id="cb1-31"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">name</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> alpha</span></span>
<span id="cb1-32"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">type</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> float</span></span>
<span id="cb1-33"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">default</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span></span>
<span id="cb1-34"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">min</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb1-35"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-36"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">    </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> FDR threshold</span></span>
<span id="cb1-37"></span>
<span id="cb1-38"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">resources</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-39"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cpus</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-40"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">memory_gb</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span></span>
<span id="cb1-41"></span>
<span id="cb1-42"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">citations</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-43"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">doi</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> 10.1186/s13059-014-0550-8</span></span></code></pre></div></div>
<p>The second file is the <strong>script</strong>: plain R, around 130 lines for DESeq2, effectively the analysis script to dispatch. Its first line hands the entire interface over to the declaration:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1">params <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> BiocJobs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">jobParams</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"DESeq2"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"deseq2-differential-expression"</span>)</span></code></pre></div></div>
<p>That call parses the command line <em>against the declaration</em>, applying type coercion, defaults, numeric bounds, enumerated choices, required-parameter checks and output directory creation. What is notably absent from the script is any argument parsing, any type checking, and any usage message, handled by the BiocJobs framework. The rest of the file is ordinary analysis code reading <code>params$counts</code>, <code>params$alpha</code> and so on.</p>
</section>
<section id="what-comes-out" class="level2">
<h2 class="anchored" data-anchor-id="what-comes-out">What comes out</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-08-21-biocjobs/biocjobs-targets.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Diagram showing two files written by the package author, a job YAML declaration and an R analysis script under inst/biocjobs/, passing through BiocJobs, which validates them and generates four artifacts: a Galaxy tool wrapper XML, a GA4GH TES task template, a Nextflow DSL2 module and a WDL task."></p>
</figure>
</div>
<p>From that one declaration, BiocJobs generates:</p>
<table class="caption-top table">
<caption>Artifacts generated from a single BiocJobs declaration</caption>
<colgroup>
<col style="width: 22%">
<col style="width: 78%">
</colgroup>
<thead>
<tr class="header">
<th>Target</th>
<th>Artifact</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Galaxy</td>
<td>tool wrapper XML, with typed params, datatypes, tests and citations</td>
</tr>
<tr class="even">
<td>GA4GH TES</td>
<td>a v1.1 task template, ready to <code>POST</code> to a TES server such as Funnel or TESK, or to a cloud endpoint</td>
</tr>
<tr class="odd">
<td>Nextflow</td>
<td>a Nextflow DSL2 module with typed inputs, named <code>emit:</code> outputs and a stub block</td>
</tr>
<tr class="even">
<td>WDL</td>
<td>a 1.0 task with <code>runtime</code> and <code>parameter_meta</code></td>
</tr>
</tbody>
</table>
<p>Every target launches the same self-locating command, so the artifacts carry no absolute paths and do not drift against the installed package:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb3-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">Rscript</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-e</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'BiocJobs::execJob("DESeq2", "deseq2-differential-expression")'</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\</span></span>
<span id="cb3-2">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--counts</span> counts.tsv <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--coldata</span> coldata.tsv <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\</span></span>
<span id="cb3-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--contrast_factor</span> condition <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--contrast_numerator</span> treated <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\</span></span>
<span id="cb3-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--contrast_denominator</span> control <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--alpha</span> 0.05</span></code></pre></div></div>
</section>
<section id="first-implementation-at-the-bioc2026-hackathon" class="level2">
<h2 class="anchored" data-anchor-id="first-implementation-at-the-bioc2026-hackathon">First implementation, at the BioC2026 hackathon</h2>
<p>The first working implementation was built at the <a href="https://github.com/BiocCodingCollaborations/BiocNA2026_Hackathon">BioC2026 hackathon in Seattle</a> in August 2026, spearheaded by Alexandru Mahmoud, and taken far enough to get a first working example.</p>
<p><strong>DESeq2</strong> was chosen for this purpose. It is a popular package, batch-shaped, and is already used in many workflow engines, hence having something to compare against after generating the wrappers. A <a href="https://github.com/almahmoud/DESeq2">fork of DESeq2</a> carries the two <code>inst/biocjobs/</code> files a maintainer would add.</p>
<p>The job itself was run end to end in R against simulated data, 600 genes by 6 samples with 60 planted differentially expressed genes, recovering the planted signal; the same run through the generated command-line path produced byte-identical results. The generated artifacts were then checked with the tooling each ecosystem uses. The Nextflow module passes <code>nextflow lint</code> with zero findings and executes under <code>-stub-run</code> with correct channel and <code>emit:</code> wiring. The WDL task passes <code>miniwdl check</code>. The Galaxy wrapper validates against Galaxy’s official tool XML schema (XSD), and the TES task against the GA4GH TES 1.1 <code>tesTask</code> schema.</p>
<p>What none of that establishes is whether a generated artifact survives a real workflow run against real data, which is where the next section comes in.</p>
</section>
<section id="independent-evaluations" class="level2">
<h2 class="anchored" data-anchor-id="independent-evaluations">Independent evaluations</h2>
<p>The most useful outcome from the Hackathon collaboration was an evaluation by Nextflow and WDL users. The WDL evaluation was documented in the <a href="https://github.com/getwilds/wilds-wdl-library/pull/392">WILDS WDL Library</a> which added a <code>run_deseq2_biocjobs</code> task to the <code>ww-deseq2</code> module, calling <code>BiocJobs::execJob()</code> as an alternative to the module’s existing hand-written R script, and ran it against real data. It produced valid results tables, normalised counts and plots.</p>
<p>The PR was closed rather than merged, with more testing to come in the future.</p>
<p>Feedback, in the form of GitHub issues, was provided regarding the formatting of the Nextflow module files generated by BiocJobs. Topics to consider include:</p>
<ul>
<li>The extent to which we should strive for compatibility with nf-core</li>
<li>Separate input items vs inputs grouped into tuples, with the latter being useful in multi-sample processing</li>
<li>Use of the <code>tag</code> directive</li>
<li>Naming of output files</li>
</ul>
<p>As a test from the Bioconductor package developer perspective, an example job was successfully developed for the VariantAnnotation package. The job takes as inputs an indexed VCF, a BED indicating regions of interest, and a list of sample names, and produces a TSV of genotypes reformatted as alternative allele counts.</p>
</section>
<section id="a-subproject-per-package-containers" class="level2">
<h2 class="anchored" data-anchor-id="a-subproject-per-package-containers">A subproject: per-package containers</h2>
<p>Making a job dispatchable exposes a second problem immediately. A generated wrapper needs an environment containing R, the host package, and the job’s declared dependencies, and the generic Bioconductor container ships none of the analysis packages.</p>
<p>That pushed out a parallel subproject: a pipeline to <strong>automatically build and host a container per Bioconductor package</strong>, or per group of packages, or per BiocJobs script. Each image would carry one package plus everything it declares (<code>Depends</code>, <code>Imports</code>, <code>LinkingTo</code> and <code>Suggests</code>) so that vignettes, examples and the package’s own tests all run inside it.</p>
<p>This is not a replacement for the container infrastructure Bioconductor and BioContainers already provide; it builds directly on top of it. Images are layered on the existing Bioconductor base stacks, both the familiar <a href="https://bioconductor.org/help/docker/"><code>bioconductor_docker</code></a> images and the newer <code>bioc2u</code> stack, which installs packages as Debian binaries and so builds far faster. The distinction from what exists today is granularity. Bioconductor publishes broad base images, and <a href="https://biocontainers.pro/">BioContainers</a> publishes per-package images built from the Bioconda recipes; what a dispatched job wants is an image scoped to exactly one package and its full declared dependency closure, tracking the Bioconductor release directly. Longer term, the ambition is to work with BioContainers so that these images are published in their Quay repository alongside the Bioconda-derived ones, since that is where workflow authors already look. Per-package images on GHCR are simply the first target, because they can be built and iterated on without coordination.</p>
<p>The one image that exists so far, <code>ghcr.io/almahmoud/deseq2:devel</code>, was built ad hoc from the DESeq2 fork, and is what the WDL evaluation described above actually ran against. The work in progress for building all packages lives at <a href="https://github.com/almahmoud/biocpkgcontainers">almahmoud/biocpkgcontainers</a>.</p>
</section>
<section id="how-this-was-built" class="level2">
<h2 class="anchored" data-anchor-id="how-this-was-built">How this was built</h2>
<p>The design of the specification, meaning what a job declaration contains and what the runtime contract is, came out of the conversations described above and out of a much wider set of them over a longer period.</p>
<p>In the interest of transparency: the first implementation of the generators, and a first draft of this post, were written with substantial assistance from Claude, in order to get something runnable in front of others quickly. The result is a functioning prototype rather than a finished product, and it still needs a great deal of refinement by human hands.</p>
</section>
<section id="this-is-early-and-here-is-what-would-help-if-you-want-to-contribute" class="level2">
<h2 class="anchored" data-anchor-id="this-is-early-and-here-is-what-would-help-if-you-want-to-contribute">This is early, and here is what would help if you want to contribute</h2>
<p>BiocJobs is a <strong>work in progress</strong>. The spec is marked version 1.0 but should not be considered stable and should still be expected to change before an actual v1 release. Today it supports single-file inputs only, five option types, and one analysis command per job. Collections, multi-file inputs and a CWL generator are on the roadmap. Nothing here is set in stone, and that is deliberate, so any and all feedback is welcomed.</p>
<p>Two groups of people could help enormously right now.</p>
<p><strong>Bioconductor package developers.</strong> The single most valuable contribution is adding a job declaration to your own package. The framework has been validated on exactly one package so far, which is not enough to know whether the specification is expressive enough, whether the format vocabulary covers real use cases, or whether the runtime contract survives contact with analyses structured differently from DESeq2. Every additional package is a test of the design. If a job in your package cannot be expressed in the current spec, that is precisely the feedback needed before a first release.</p>
<p><strong>Workflow developers.</strong> If you maintain Galaxy tools, Nextflow modules, WDL tasks or <a href="https://nf-co.re/">nf-core</a> pipelines, generated wrappers need to hold up against the standards you already apply by hand. The WILDS evaluation above is a great model: take a generated artifact, try to use it in a real pipeline, and say plainly where it falls short.</p>
<p>Before a first version is stabilised, the aim is to have job declarations in ten or so packages of different shapes, with the generated artifacts reviewed manually to validate their correctness. If that describes you or your package, open an issue on the <a href="https://github.com/almahmoud/BiocJobs">BiocJobs repository</a> and say which package you have in mind!</p>
<p>There is also a good opportunity to work on this together in person or remotely. BiocJobs is one of the projects at the <a href="https://github.com/BiocCodingCollaborations/BioFAIR2026_Sprint"><strong>BioFAIR 2026 Workflow Interoperability Sprint</strong></a>, a hybrid event running <strong>15 to 17 September 2026</strong> in Milton Keynes, United Kingdom, which brings together developers from across the Bioconductor, Galaxy, Nextflow, nf-core and WDL ecosystems. If you would like to join, in person or remotely, the sprint repository has the details, and the <code>#biofair2026-workflow-sprint</code> channel on <a href="https://chat.bioconductor.org/">Bioconductor Zulip</a> is where planning happens.</p>
</section>
<section id="links" class="level2">
<h2 class="anchored" data-anchor-id="links">Links</h2>
<ul>
<li><strong><a href="https://github.com/almahmoud/BiocJobs">BiocJobs on GitHub</a></strong>, the first implementation, and where to leave feedback as issues</li>
<li><strong><a href="https://github.com/almahmoud/DESeq2">The DESeq2 fork</a></strong>, used to validate the framework on a first example</li>
<li><strong><a href="https://github.com/getwilds/wilds-wdl-library/pull/392">The WILDS WDL Library evaluation</a></strong> of the generated WDL</li>
</ul>
</section>
<section id="acknowledgements" class="level2">
<h2 class="anchored" data-anchor-id="acknowledgements">Acknowledgements</h2>
<p>The design of this framework came out of a large collaborative network and a great many conversations among researchers worldwide, particularly across the <strong>Bioconductor</strong>, <strong>Galaxy</strong> and <strong>OpenWDL</strong> communities. It would not exist without the people who kept raising these ideas.</p>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <category>Infrastructure</category>
  <category>tech-notes</category>
  <category>hackathon</category>
  <category>galaxy</category>
  <guid>https://blog.bioconductor.org/posts/2026-08-21-biocjobs/</guid>
  <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-08-21-biocjobs/biocjobs-targets.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Introducing the Bioconductor Student-ECR Council</title>
  <dc:creator>Carissa Chen</dc:creator>
  <dc:creator>Guillaume Deflandre</dc:creator>
  <dc:creator>Jasper Spitzer</dc:creator>
  <dc:creator>Sophie-Marie Wind</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/</link>
  <description><![CDATA[ 





<section id="announcing-the-bioconductor-student-ecr-council" class="level2">
<h2 class="anchored" data-anchor-id="announcing-the-bioconductor-student-ecr-council">Announcing the Bioconductor Student-ECR Council</h2>
<p>From an idea that hatched during the EuroBioC2026 Birds of a Feather session, we are super excited to announce the formation of the <a href="https://workinggroups.bioconductor.org/currently-active-working-groups-committees.html#early-career-council">Student-ECR Council</a>!</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/student-ecr-logo.png" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Student-ECR Council logo featuring symbols of mentorship, community, events, networking, and career development within Bioconductor." width="250"></p>
</figure>
</div>
<p>As a newly established Council, we aim to support <strong>students and early-career researchers (ECRs)</strong> in the Bioconductor community by providing a platform that brings together <strong>developers and data scientists</strong> through mentorship, networking, and professional development opportunities.</p>
</section>
<section id="meet-the-council-members" class="level2">
<h2 class="anchored" data-anchor-id="meet-the-council-members">Meet the Council members</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/first-zoom.jpg" class="img-fluid figure-img" alt="Screenshot of participants at the first virtual Student-ECR Council meeting"></p>
<figcaption>The first virtual Student-ECR Council meeting on 21st July, 2026.</figcaption>
</figure>
</div>
<ul>
<li><strong>Carissa Chen</strong> (Postdoctoral Researcher at University of Padova, Italy)</li>
</ul>
<p>I am a computational biologist with a background in molecular biology and bioinformatics. My current research combines deep learning and statistical methods to jointly analyse sub-cellular spatial transcriptomics and histology images. I have been a long-time user of Bioconductor packages and I am now taking my first steps into computational method development. By joining the Student-ECR Council, I hope to support interdisciplinary researchers like myself to navigate the Bioconductor community.</p>
<ul>
<li><strong>Guillaume Deflandre</strong> (PhD student at UCLouvain in Brussels, Belgium)</li>
</ul>
<p>I am a computational biologist with a background in bio-engineering. Initially out of touch with the biomedical field, I took a leap of faith during my Master’s thesis and absolutely loved it! Since then, I have been doing research on how to optimise peptidoform identification in single-cell proteomics. As soon as I delved into this world of bioinformatics, I was introduced to Bioconductor, its packages and its community. They have helped me so much so far, and by joining the Student-ECR Council, I hope to help other researchers in the same way.</p>
<ul>
<li><strong>Jasper Spitzer</strong> (Postdoctoral Researcher at the University of Bonn, Germany)</li>
</ul>
<p>I am a computational biologist with a background in immunology. Throughout my PhD, I’ve focused increasingly on computational work and am now 100% on the computational side. Currently, I am working on large-scale CRISPR screen data as well as single-cell projects and am generally interested in how structure in data can be translated into biology. I’ve been a long-time user of Bioconductor packages and have recently tried to be a more active member of the community. With the positive experience I’ve had in the community, I want to share that fun and excitement by encouraging others to be a part of the community as well.</p>
<ul>
<li><strong>Sophie-Marie Wind</strong> (PhD student at University of Münster, Germany)</li>
</ul>
<p>I am a bioinformatician with a focus on high-throughput data analysis and method development. Currently, I am developing an analysis framework for 4C-seq data. My first contact with Bioconductor was during my master’s studies, when I used Bioconductor packages for data analyses. During my PhD, I became more involved in package development and came to appreciate the supportive and inspiring Bioconductor community. This experience motivated me to become more actively involved. As a member of the Student-ECR Council, I hope to share my enthusiasm for bioinformatics, contribute to the community, and help support other early-career researchers.</p>
<ul>
<li><strong>Kateřina Matějková</strong> (PhD student at Charles University in Prague, Czech Republic)</li>
</ul>
<p>I am a computational biologist with a background in molecular biology and genetics. My research focuses on splicing analysis in Mendelian diseases. I was first introduced to Bioconductor packages during my Master’s, and during my PhD, I joined EuroBioC. I deeply appreciate the supportive and collaborative nature of this community. Currently, we are working to establish a Czech BioC community and create educational initiatives to support early career researchers working at the intersection of biology and informatics.</p>
<ul>
<li><strong>Nyasita Ondari</strong> (Research Associate at International Institute of Tropical Agriculture (IITA), Nairobi, Kenya)</li>
</ul>
<p>I am a bioinformatician focused on building pipelines and workflows for the analysis of large-scale biological data. I have a background in bioinformatics and medical biochemistry. My first introduction to Bioconductor came during my MSc, where I used its packages to analyse my data in R. Since then, my involvement has grown. In March 2025, I instructed the first Bioconductor workshop ever held in Africa, in Nairobi. Today, I lead the <a href="https://training.bioconductor.org/seminars/bioc-africa/">Bioconductor Africa Seminar Series</a> and support community engagement and social media across the Bioconductor project.</p>
</section>
<section id="our-vision" class="level2">
<h2 class="anchored" data-anchor-id="our-vision">Our vision</h2>
<p>We aim to create an <strong>inclusive and diverse environment</strong> for students and early-career researchers in the Bioconductor community, from those <strong>discovering Bioconductor for the first time to long-time users and developers</strong> of Bioconductor packages.</p>
<p>Using this platform, our goal is to create opportunities for early-career researchers (ECRs) to connect with one another, cultivating a <strong>positive and supportive</strong> community that embraces <strong>open science</strong> and <strong>reproducible research</strong> practices. We also aim to empower researchers to <strong>contribute</strong> to Bioconductor projects, <strong>strengthening transparency</strong> and <strong>encouraging community-driven software development</strong>. At the same time, we hope to strengthen the <strong>feedback loop between users and developers</strong>, encouraging collaboration and helping shape and continuously improve the Bioconductor ecosystem.</p>
<p>A few of our proposed initiatives include:</p>
<ul>
<li><u>Mentorship programme</u> providing peer support alongside technical guidance on areas such as package development, coding best practices, and contributing to Bioconductor</li>
<li><u>Targeted seminars</u> covering dissemination of the latest research and career panels</li>
<li><u>Workshops</u> such as community-contributed package demonstrations</li>
<li><u>“Good First Issue” hackathons</u> to help new contributors gain experience by working on beginner-friendly issues</li>
</ul>
<p>…and more!</p>
<p>As we’re just getting started, <strong>we would also love to hear your ideas</strong> for future events and initiatives! If you have any suggestions, please take a few minutes to fill in our <a href="https://forms.gle/KQfGcs3ALAPhCYws6">poll</a>.</p>
<p>To be notified about upcoming activities, please subscribe to our <a href="https://community-bioc.zulipchat.com/#narrow/channel/611088-student-ecr">Zulip channel</a>!</p>
</section>
<section id="bioconductor-mentorship-programme" class="level2">
<h2 class="anchored" data-anchor-id="bioconductor-mentorship-programme">Bioconductor Mentorship Programme</h2>
<p>We are launching the Bioconductor Mentorship Programme and are looking for both <strong>mentees and mentors</strong> for the upcoming intake (tentatively <strong>October/November</strong>). The proposed focus areas may include:</p>
<ul>
<li><u>Package development</u>: developing R scripts to a fully fledged Bioconductor package</li>
<li><u>Technical development</u>: guidance on coding best practices, contributing to existing packages, and navigating the Bioconductor development community.</li>
<li><u>Peer mentoring</u>: managing a PhD, career advice and more. Other areas TBC depending on interest, so please let us know if there are any specific areas you would benefit from!</li>
</ul>
<p>If you are interested in participating in the Bioconductor Mentorship Programme, please express your interest <a href="https://forms.gle/UetvHcEPfai5pMd78">here</a>.</p>
</section>
<section id="join-us" class="level2">
<h2 class="anchored" data-anchor-id="join-us">Join us!</h2>
<p>We welcome anyone from <strong>all career stages and scientific backgrounds</strong> to join the Council. Specifically, Council members are people who choose to take an active role, for example by attending meetings when they can and helping to plan or deliver activities according to their interests and availability.</p>
<p>Feel free to pop by our regular Council meetings on the <a href="https://bioconductor.org/help/events/" class="underline">third Tuesday of every month at 9am CET</a> to learn more. As we are welcoming new members who may be from different timezones, the meeting time is amenable to change so please don’t hesitate to contact us.</p>
<p>If you are interested in joining the Student-ECR Council, please connect with us on our dedicated <a href="https://community-bioc.zulipchat.com/#narrow/channel/611088-student-ecr">Zulip channel</a>, or reach out to us via <a href="student-ecr@bioconductor.org">email</a>.</p>
<p>Or just say hi and <a href="https://community-bioc.zulipchat.com/#narrow/channel/611088-student-ecr/topic/Welcome.20and.20overview/with/604108019">introduce yourself on Zulip</a>! (We need more friends!)</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/help-us-grow.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Stick man holding megaphone with text: 'Help us grow!'"></p>
</figure>
</div>
</section>
<section id="bioc2026-in-seattle" class="level2">
<h2 class="anchored" data-anchor-id="bioc2026-in-seattle">BioC2026 in Seattle</h2>
<p>We will be holding a live Q&amp;A and casual Student-ECR gathering during <a href="https://bioc2026.bioconductor.org/schedule/">BioC2026 on Tuesday, August 11, from 8:30 to 9:00 am PT</a>. Members of the Council will join by Zoom to meet attendees and answer questions following their pre-recorded lightning talk on Monday. Come along to meet other ECRs in the Bioconductor community and learn more about how to get involved with the Student-ECR Council!</p>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <category>events</category>
  <category>ecr</category>
  <guid>https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/</guid>
  <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-08-06-student-ecr-intro/first-zoom.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>EuroBioC2026 conference recap</title>
  <dc:creator>Laurah Ondari</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/</link>
  <description><![CDATA[ 





<p><a href="media/eurobioc-main-image.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/eurobioc-main-image.jpg" class="zoomable img-fluid" style="width:100.0%"></a></p>
<p>The European Bioconductor Conference 2026 (<a href="https://eurobioc2026.bioconductor.org/">EuroBioC2026</a>) took place from June 3-5, 2026, in Turku, Finland. Hosted by the <a href="https://www.utu.fi/en">University of Turku</a> and the <a href="https://www.bioinf.fi/">Finnish Society for Bioinformatics</a> at BioCity, the conference brought together the Bioconductor community to showcase the latest developments in Bioconductor software packages and discuss emerging technologies shaping computational biology. This year’s conference welcomed 147 in-person participants from 23 countries. Across three days, attendees participated in keynote lectures, short and flash talks, workshops, poster sessions, Birds-of-a-Feather discussions, and community events. The conference also marked an important milestone for the project as Bioconductor celebrated its 25th anniversary. The figures below summarise EuroBioC2026 at a glance: 147 attendees from 23 countries, 4 keynote speakers, 25 speakers, 68 posters, 6 workshops, 9 flash talks, and 3 Birds-of-a-Feather sessions.</p>
<p><a href="media/eurobioc-by-numbers.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/eurobioc-by-numbers.png" class="zoomable img-fluid" style="width:100.0%"></a></p>
<section id="participants-by-country" class="level2">
<h2 class="anchored" data-anchor-id="participants-by-country">Participants by country</h2>
<p>Participants travelled to Turku from across Europe and beyond, reflecting the increasingly global nature of the Bioconductor community. While Finland represented the largest delegation, attendees also joined from Italy, Belgium, Germany, Switzerland, the United States, Sweden, the United Kingdom, Ireland, Spain, Kenya, South Korea, Australia, and several other countries.</p>
<iframe src="media/eurobioc2026-participants-map.html" width="100%" height="600" frameborder="0">
</iframe>
</section>
<section id="preconference" class="level2">
<h2 class="anchored" data-anchor-id="preconference">Preconference</h2>
<p>Ahead of the main conference, EuroBioC2026 hosted two preconference events on June 1-2. These were delivered in collaboration with the University of Turku, CompLifeSci, the Finnish Society for Bioinformatics, and members of the Bioconductor community. Running in parallel over two days, the events allowed participants to either strengthen their analytical skills through hands-on training or contribute directly to the development of Bioconductor software through collaborative coding projects.</p>
<section id="workshop-orchestrating-microbiome-analysis-with-bioconductor" class="level3">
<h3 class="anchored" data-anchor-id="workshop-orchestrating-microbiome-analysis-with-bioconductor">Workshop: Orchestrating Microbiome Analysis with Bioconductor</h3>
<p>The preconference workshop focused on microbiome data analysis using Bioconductor and followed the Bioconductor Carpentry model, combining interactive instruction with practical exercises. Over two days, participants learned how to import, process, and analyse microbiome datasets using the established Bioconductor workflow; <a href="https://microbiome.github.io/OMA/docs/devel/">Orchestrating Microbiome Analysis (OMA)</a>. The workshop covered diversity analyses, differential abundance testing, and approaches for integrating microbiome data with other omics data types. A key component of the workshop was the use of cloud computing resources from <a href="https://csc.fi/en/">CSC</a> (Finnish IT Centre for Science) using <a href="https://noppe.2.rahtiapp.fi/welcome">Noppe</a>, which provided participants with immediate access to all required datasets, software, and computing resources. By removing installation and configuration barriers, instructors were able to begin teaching immediately and spend more time focusing on the workshop content rather than troubleshooting technical issues. The platform also ensured that all participants worked within the same environment, creating a smoother learning experience for everyone involved. The workshop was hands-on throughout: participants asked questions, worked through exercises, and discussed how the workflows related to their own projects. This practical, open, instructor-led format aligns well with the approach shared by both Bioconductor and The Carpentries. The workshop was led by Leo Lahti, Himel Mallick, Thomaz Bastiaanssen, Tuomas Borman, and Giulio Benedetti.</p>
<img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/benedetti-workshop.jpg" class="zoomable img-fluid" style="width:100.0%">
<center>
<p><em>Participants during the pre-conference microbiome workshop.</em></p>
</center>
</section>
<section id="hackathon" class="level3">
<h3 class="anchored" data-anchor-id="hackathon">Hackathon</h3>
<p>We held the first of our series of hackathons attached to Bioconductor conferences this June at EuroBioC2026 in Turku, Finland. Eighteen in-person attendees worked on four projects focused on interoperability, and at least three of those are now being prepared for submission to <a href="https://index.biohackrxiv.org/tag/EuroBioc2026">BioHackrXiv</a>.</p>
<p>A big congratulations to all the participants for their effort. You can read more about the projects from the <a href="https://github.com/BiocCodingCollaborations/EuroBioc2026_Hackathon">EuroBioC2026 Hackathon</a>. We’re looking forward to building on this work at the North American Bioconductor conference, BioC2026, in Seattle this August. See the <a href="https://github.com/BiocCodingCollaborations/BiocNA2026_Hackathon">BioC2026 Hackathon</a> for more details.</p>
<img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/hackathon.jpg" class="zoomable img-fluid" style="width:100.0%">
<center>
<p><em>Participants during the pre-conference hackathon.</em></p>
</center>
</section>
</section>
<section id="programme-overview" class="level2">
<h2 class="anchored" data-anchor-id="programme-overview">Programme overview</h2>
<p>EuroBioC2026 covered both established and emerging areas of computational biology, with a consistent focus on reproducible and open-source research.</p>
<section id="keynotes" class="level3">
<h3 class="anchored" data-anchor-id="keynotes">Keynotes</h3>
<p>Keynotes at EuroBioC2026 covered functional genomics, machine learning, microbiome research, and the direction of computational biology. Across four talks, speakers addressed how data science is changing biological research, and what that means for reproducibility, interpretation, and open-source software.</p>
<p><strong>Helena Kilpinen</strong> opened the conference with <em>Morphological profiling of in vitro neurons: Visualizing complexity in cellular disease models</em>. Her talk explored how high-content imaging and morphological profiling can be used to better understand cellular phenotypes in disease models. By combining large-scale imaging data with computational approaches, she demonstrated how researchers can uncover subtle cellular differences that may provide insights into disease mechanisms.</p>
<p><strong>Anders Krogh</strong> presented <em>A Deep Generative Model for Gene Expression and Multimodal Data</em>, showcasing how modern machine learning approaches can be used to model increasingly complex biological datasets. His keynote highlighted the potential of generative models to integrate multiple data modalities and improve our understanding of gene regulation and cellular states.</p>
<p><strong>Aura Raulo</strong> delivered a keynote titled <em>Modeling the spread of microbial communities in contact networks</em>. Drawing on concepts from ecology, microbiology, and network science, they explored how microbial communities are transmitted between individuals and populations. The talk examined how host-associated microbiomes are shaped and shared, and what drives their spread.</p>
<p>The final keynote was delivered by <strong>Levi Waldron</strong>, who addressed a topic now central to many scientific discussions: <em>Bioconductor in the age of AI. What do we do now?</em> His talk examined the opportunities and challenges that AI presents for open-source scientific software. He encouraged the community to think about how AI tools can complement existing work, without compromising the transparency, reproducibility, and scientific rigour the project has built over 25 years.</p>
</section>
<section id="short-talks-and-flash-talks" class="level3">
<h3 class="anchored" data-anchor-id="short-talks-and-flash-talks">Short talks and flash talks</h3>
<p>The short talks at EuroBioC2026 reflected the diversity of the Bioconductor community, spanning topics from single-cell and spatial biology to microbiome research, proteomics, metabolomics, and multi-omics data integration. Several presentations introduced new software packages and statistical methods aimed at improving reproducibility, scalability, and interoperability in biological data analysis. Alongside methodological advances, speakers also covered broader community topics, including sustainable open-source software, environmentally conscious computing, training initiatives, and the growing role of artificial intelligence in computational biology. Together, the talks provided a good picture of the scientific questions being addressed with Bioconductor and the people driving its development.</p>
</section>
<section id="poster-sessions" class="level3">
<h3 class="anchored" data-anchor-id="poster-sessions">Poster sessions</h3>
<p>The 68 posters presented at EuroBioC2026 covered a broad mix of biological applications and software development. Topics included spatial omics, microbiome research, proteomics, metabolomics, disease modelling, and machine learning, as well as new packages and infrastructure projects from across the Bioconductor ecosystem. The poster sessions encouraged interactions between package developers, researchers, students, and first-time conference attendees, helping strengthen collaborations across the community.</p>
<img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/poster-session.jpg" class="zoomable img-fluid" style="width:100.0%">
<center>
<p><em>EuroBioC2026 participants during a poster session.</em></p>
</center>
</section>
<section id="birds-of-a-feather-sessions" class="level3">
<h3 class="anchored" data-anchor-id="birds-of-a-feather-sessions">Birds-of-a-Feather sessions</h3>
<p>The three 90-minute Birds-of-a-Feather (BoF) sessions offered attendees an opportunity to connect around shared interests and exchange experiences, discuss challenges, and share ideas. The sessions were proposed by participants during the conference including sessions focused on strengthening the Finnish Bioconductor community, supporting early-career researchers, and embedding environmental sustainability into Bioconductor packages and research workflows. One outcome from the early-career researcher discussion was the creation of a dedicated student–ECR Zulip channel to support continued connection within the community. The BoF sessions continued a tradition of community-led discussion that has been part of Bioconductor events for years.</p>
</section>
<section id="workshops" class="level3">
<h3 class="anchored" data-anchor-id="workshops">Workshops</h3>
<p>The workshop sessions offered attendees an opportunity to explore a range of Bioconductor tools and workflows through hands-on demonstrations led by community members. Topics included proteomics data analysis, integrative analysis of histopathological images and multi-omics data, ChIP-seq analysis, differential expression analysis, post-translational modification analysis, and interoperable mass spectrometry workflows combining R and Python. Participants had the opportunity to engage directly with instructors, ask questions, and learn how the presented tools could be applied to their own research projects. Together, the workshops showcased the breadth of analytical domains supported by the Bioconductor ecosystem.</p>
</section>
<section id="celebrating-25-years-of-bioconductor" class="level3">
<h3 class="anchored" data-anchor-id="celebrating-25-years-of-bioconductor">Celebrating 25 years of Bioconductor</h3>
<p>A major highlight of EuroBioC2026 was the celebration of Bioconductor’s 25th anniversary. Since its founding in 2001, Bioconductor has grown from a small collection of software packages into a global open-source community used by thousands of researchers worldwide. Over the past quarter-century, it has become a central resource for reproducible computational biology, providing infrastructure, software, training, and community support across numerous biological disciplines.</p>
<p><a href="media/bioc25years.svg" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/bioc25years.svg" class="zoomable img-fluid" style="width:100.0%"></a></p>
<p>One of the highlights of the celebration was a retrospective presented by Maria Doyle, Bioconductor Community Manager, who took attendees through the history of Bioconductor, from the earliest contribution on the Bioconductor support site to the project’s growth into the global community it is today. The presentation highlighted how the project has evolved over the past 25 years and its impact on computational biology. The celebrations continued at the conference dinner, where attendees marked the occasion with a special anniversary cake. During the evening, Levi Waldron, one of Bioconductor’s Principal Investigators, shared a personal reflection on his journey with Bioconductor, from first encountering the project through his collaborations with Martin Morgan to becoming part of its leadership.</p>
<img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/levispeech.jpg" class="zoomable img-fluid" style="width:100.0%">
<center>
<p><em>Levi Waldron shares a personal reflection on his journey with Bioconductor during the 25th anniversary celebrations.</em></p>
</center>
</section>
</section>
<section id="infrastructure-and-tools" class="level2">
<h2 class="anchored" data-anchor-id="infrastructure-and-tools">Infrastructure and tools</h2>
<section id="zulip" class="level3">
<h3 class="anchored" data-anchor-id="zulip">Zulip</h3>
<p>EuroBioC2026 continued to use Zulip as its primary communication platform. A dedicated conference channel, along with a separate hackathon channel, organised into topic-based threads, served as a central location for announcements, technical support, social interactions, and discussions before, during, and after the event. The threaded conversation model made it easier to follow discussions and kept participants connected throughout the conference.</p>
</section>
<section id="sticker-hexwall" class="level3">
<h3 class="anchored" data-anchor-id="sticker-hexwall">Sticker Hexwall</h3>
<p>The sticker hexwall returned for EuroBioC2026 following its successful introduction in 2025. The display showcased Bioconductor package stickers contributed by Bioconductor community members and served as a visual representation of the diversity of software projects within the ecosystem.</p>
<p>The hexwall quickly became a popular gathering point and photo location throughout the conference.</p>
<img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/hexwall.jpg" class="zoomable img-fluid" style="width:100.0%">
<center>
<p><em>The hexwall at EuroBioC2026.</em></p>
</center>
</section>
</section>
<section id="social-interactions-and-networking" class="level2">
<h2 class="anchored" data-anchor-id="social-interactions-and-networking">Social interactions and networking</h2>
<section id="conference-dinner" class="level3">
<h3 class="anchored" data-anchor-id="conference-dinner">Conference Dinner</h3>
<p>The conference dinner took place on the island of Ruissalo, one of Turku’s most popular recreational areas and the gateway to the Turku Archipelago. It was hosted at the historic Villa Marjaniemi, a 150-year-old villa overlooking the sea, and the evening was inspired by Juhannus, Finland’s traditional midsummer celebration.</p>
<p>Attendees were welcomed by a live band as they arrived, then enjoyed dinner and celebrations marking 25 years of Bioconductor. The evening continued with outdoor games and activities, and was a good chance to catch up with familiar faces and meet people for the first time.</p>
</section>
<section id="walking-tour" class="level3">
<h3 class="anchored" data-anchor-id="walking-tour">Walking tour</h3>
<p>On Thursday evening, participants joined an optional walking tour. During the tour, participants learned about Finnish history while exploring the historic city centre, stopping at the Old Great Square and Brinkkala Hall, whose balcony has served as the site of the annual <a href="https://en.wikipedia.org/wiki/Christmas_Peace">Christmas Peace</a> declaration since the Middle Ages. The tour also highlighted notable Finnish figures, including the legendary runner <a href="https://en.wikipedia.org/wiki/Paavo_Nurmi">Paavo Nurmi</a>, famously known as the “Flying Finn.”</p>
<p>The tour naturally flowed into the evening’s social activities. Some participants stopped at a traditional Finnish grill kiosk to try makkaraperunat, a popular local fast-food dish, while others continued their conversations at Office (Toimisto in Finnish), a local bar where they sang karaoke until 3 AM.</p>
<div class="columns">
<div class="column" style="width:48%;">
<p><a href="media/walking-tour.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/walking-tour.jpg" class="img-fluid" style="width:100.0%"></a></p>
</div><div class="column" style="width:48%;">
<p><a href="media/dinner.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/dinner.jpg" class="img-fluid" style="width:100.0%"></a></p>
</div>
</div>
<center>
<p><em>EuroBioC2026 Participants during the walking tour (left) and enjoying the conference dinner (right).</em></p>
</center>
</section>
</section>
<section id="conference-materials" class="level2">
<h2 class="anchored" data-anchor-id="conference-materials">Conference materials</h2>
<p>Conference recordings will be available on the <a href="http://www.youtube.com/@bioconductor">Bioconductor YouTube channel</a> in the coming weeks. Auditorium sessions were also live streamed, and Slido was used to facilitate audience questions from both in-person and remote participants, alongside traditional in-room discussion. Presenters were encouraged to upload their slides, posters, and supplementary materials to the <a href="https://zenodo.org/communities/bioconductor">Bioconductor Zenodo Community</a>, making conference outputs openly available and citable through persistent digital object identifiers (DOIs).</p>
<p>These resources make conference outputs available to those who could not attend and support continued learning across the community. Additional photos from EuroBioC2026, including talks, workshops, posters, social events, and the conference dinner, are available in the <a href="https://eurobioc2026.bioconductor.org/pages/photo-gallery.html">conference photo gallery</a>. A short recap video capturing moments from the conference is also available <a href="https://youtube.com/shorts/PdMdkpTPMeM?si=Q7hu4AwztXEsZuZM">on YouTube</a>.</p>
</section>
<section id="coming-up" class="level2">
<h2 class="anchored" data-anchor-id="coming-up">Coming up…</h2>
<p>The 25th anniversary year will continue when the Bioconductor community gather next at <a href="https://bioc2026.bioconductor.org/">BioC2026</a>, which will take place from August 10-12, 2026 at the Fred Hutch Cancer Center in Seattle, Washington. The conference will continue the tradition of bringing together developers, researchers, and educators to share new software, methods, and applications in computational biology.</p>
<p>Later in the year, the community will head to Melbourne, Australia, for <a href="https://biocasia2026.bioconductor.org/">BioCAsia2026</a>, taking place on November 19-20, 2026, immediately following the ABACBS conference. BioCAsia brings together researchers across the Asia-Pacific region for scientific exchange, training, and community building. The <a href="https://brisbanebioinformatics.org/event/qld-week-biocasia/">BioCAsia Seminar Series</a> has also expanded to a bi-monthly schedule. alongside growing regional initiatives such as the <a href="https://training.bioconductor.org/workshops/bioc-africa-seminars/">Bioconductor Africa Seminar Series</a> and the Bioconductor Latin America seminar series. Stay connected with the community through dedicated Zulip channels.</p>
<p>EuroBioC2026 concluded with an invitation to Basel, Switzerland, where EuroBioC2027 will take place from September 8–10, 2027. See you there.</p>
</section>
<section id="acknowledgements" class="level2">
<h2 class="anchored" data-anchor-id="acknowledgements">Acknowledgements</h2>
<section id="sponsors" class="level3">
<h3 class="anchored" data-anchor-id="sponsors">Sponsors</h3>
<p>EuroBioC2026 gratefully acknowledges the support of all sponsors and partners whose contributions and support made the conference possible.</p>
<p><a href="media/sponsors-partners.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/sponsors-partners.png" class="zoomable img-fluid" style="width:100.0%"></a></p>
</section>
<section id="diamond-sponsors" class="level3">
<h3 class="anchored" data-anchor-id="diamond-sponsors">Diamond sponsors</h3>
<ul>
<li><a href="https://www.tsv.fi/en">Federation of Finnish Learned Societies</a></li>
<li><a href="https://skr.fi/en/">Finnish Cultural Foundation</a></li>
</ul>
</section>
<section id="gold-sponsors" class="level3">
<h3 class="anchored" data-anchor-id="gold-sponsors">Gold sponsors</h3>
<ul>
<li><a href="https://biocityturku.fi/">BioCity, Turku</a></li>
<li><a href="https://stiftelsenabo.fi/en/">Åbo Akademi University Foundation</a></li>
</ul>
</section>
<section id="bronze-sponsors" class="level3">
<h3 class="anchored" data-anchor-id="bronze-sponsors">Bronze sponsors</h3>
<ul>
<li><a href="https://bigomics.ch/">BigOmics Analytics</a></li>
<li><a href="https://www.physalia-courses.org/">Physalia Courses</a></li>
<li><a href="https://r-consortium.org/">R Consortium</a></li>
<li><a href="https://www.loimu.fi/en/">LOIMU</a></li>
<li><a href="https://liedonsaastopankkisaatio.fi/">Liedon Säästöpankkisäätiö</a></li>
</ul>
</section>
<section id="supporting-organisations" class="level3">
<h3 class="anchored" data-anchor-id="supporting-organisations">Supporting organisations</h3>
<ul>
<li><a href="https://csc.fi/en/">CSC - IT Center for Science, Finland</a> for providing computational resources for the workshops</li>
<li><a href="https://www.nordic-compbio.org/">Nordic Computational Biology</a></li>
</ul>
</section>
<section id="hosts" class="level3">
<h3 class="anchored" data-anchor-id="hosts">Hosts</h3>
<ul>
<li><a href="https://www.utu.fi/en">University of Turku</a></li>
<li><a href="https://biocityturku.fi/research-programs/complifesci/">CompLifeSci, BioCity Turku</a></li>
<li><a href="https://www.bioinf.fi/">Finnish Society for Bioinformatics</a></li>
</ul>
</section>
<section id="organising-committee" class="level3">
<h3 class="anchored" data-anchor-id="organising-committee">Organising committee</h3>
<p>We thank the local organisers, programme committee, workshop instructors, keynote speakers, volunteers, sponsors, and all participants whose contributions made EuroBioC2026 a success.</p>
<p><strong>Organising Committee</strong></p>
<ul>
<li>Leo Lahti (Chair)</li>
<li>Tuomas Borman (Local Chair)</li>
<li>Akewak Jeba (Website)</li>
<li>Anna Kaisanlahti (Local Organiser)</li>
<li>Annekathrin Nedwed</li>
<li>Charlotte Soneson (Scientific Programme)</li>
<li>Dania Machlab</li>
<li>Dario Righelli</li>
<li>Eliana Ibrahimi</li>
<li>Federico Marini</li>
<li>James Dalgleish</li>
<li>Julia Mathlin (Local Organiser)</li>
<li>Kevin Rue-Albrecht</li>
<li>Laurent Gatto</li>
<li>Lieven Clement</li>
<li>Maria Doyle (Communications)</li>
<li>Mark Robinson</li>
<li>Michael Love</li>
<li>Michael Stadler</li>
<li>Miina Vulli (Local Organiser)</li>
<li>Najla Abassi</li>
<li>Nicholas Cooley (Hackathon)</li>
<li>Nyasita Laurah Ondari (Communications)</li>
<li>Robert Castelo</li>
<li>Robert Ivánek</li>
<li>Teemu Daniel Laajala (Local Organiser)</li>
</ul>


</section>
</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <guid>https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/</guid>
  <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-06-19-EuroBioc2026-recap/media/eurobioc-main-image.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Bioconductor-centric hackathon on spatial omics and image-derived data</title>
  <dc:creator>Davide Risso</dc:creator>
  <dc:creator>Helena Crowell</dc:creator>
  <dc:creator>Wolfgang Huber</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-06-17-venice/</link>
  <description><![CDATA[ 





<p>A Bioconductor-centric hackathon dedicated to spatial omics was organized by members of the Bioconductor community – Davide Risso (University of Padua, Italy), Helena Crowell (CNAG Barcelona, Spain), and Wolfgang Huber (EMBL) – on <strong>19-22 April on San Servolo, Italy</strong>, an island off the coast of Venice, facing the Campanile of St.&nbsp;Mark’s Square.</p>
<p>The hackathon brought together <strong>27 researchers and software developers</strong> – from Germany, Switzerland, Italy, Spain, and the USA – to advance Bioconductor capabilities in spatial data handling and analysis, as well as the related topic of image analysis.</p>
<p>Participants were invited based on their experience with the hackathon’s research themes and software development, followed by an open call to the Bioconductor community (and beyond). The final group of participants included a mix of early-career and senior researchers, including two <a href="https://scverse.org/">scverse</a> members and one industry researcher, with a range of expertise in spatial omics, image analysis, and software development.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-06-17-venice/terrace.jpeg" class="img-fluid figure-img"></p>
<figcaption>Picture time on a terrace overlooking St.&nbsp;Mark’s Square from San Servolo island. (Back:) Elisabeth Purdom, Wolfgang Huber, Pere Moles Serò, Rafael Irizarry, Helena Crowell, Martin Emons, Dario Righelli, Juan Henao, Sean Davis, Gabriele Sales, Mike Smith, Ilaria Billato, Patrick Danaher, Hugo Gruson, Carissa Chen, Daria Lazic, Luca Marconato, Artür Manukyan. (Front:) Davide Risso, Sviatoslav Kharuk, Michael Stadler, Samuel Gunz, Robert Castelo, Charlotte Soneson, Matteo Calgaro, Gabriel Grajeda, Riccardo Ceccaroni.</figcaption>
</figure>
</div>
<p>The hackathon centered on spatial omics and other bioimaging data, with emphasis on data representation, interoperable serialization, scalable data handling, Python interoperability, interactive visualization. The hackathon ran over three days with the majority of the time spent in teams who independently developed and implemented a plan that addressed a challenge or met a goal important to team members.</p>
<p>On the first day, the participants organized themselves into four major themes:</p>
<ul>
<li><strong>Spatially stratified differential expression analysis</strong><br>
(Matteo Calgaro, Robert Castelo, Patrick Danaher, Pere Moles Serò)</li>
<li><strong>Image and segmentation data manipulation and visualization</strong><br>
(Riccardo Ceccaroni, Carissa Chen, Davide Risso, Mike Smith)</li>
<li><strong>Infrastructure and interoperability of spatial data in Bioconductor</strong><br>
(Helena Crowell, Martin Emons, Gabriel Grajeda, Hugo Gruson, Samuel Gunz, Rafael Irizarry, Daria Lazic, Luca Marconato, Charlotte Soneson, Michael Stadler)</li>
<li><strong>Facilitating use of foundation models for the Bioconductor community</strong><br>
(Ilaria Billato, Juan Henao, Wolfgang Huber, Sviatoslav Kharuk, Artür Manukyan, Elisabeth Purdom, Dario Righelli, Gabriele Sales)</li>
</ul>
<p><img src="https://blog.bioconductor.org/posts/2026-06-17-venice/working.jpeg" class="img-fluid"></p>
<p>Each day started with a brief session in which each team set up goals for the day. Day 1 also included a single slide, five-minute <strong>project plan presentation</strong> right after lunch. This presentation mid-day served to help teams develop a focused project quickly, with the understanding that the project plan would likely change over the next 2 days.</p>
<p>Days 1 and 2 ended with the opportunity for each team to present their work and challenges they faced that day, again with a one-slide presentation. These <strong>daily afternoon summaries</strong> were helpful to identify shared challenges, crystallize work from the day, and to provide visibility across project teams.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-06-17-venice/marco.jpeg" class="img-fluid figure-img"></p>
<figcaption>On the second day, the group journeyed across the water for a stroll through the streets of Venice towards Italian dinner. This group picture was taken on St.&nbsp;Mark’s Square (Piazza San Marco), featuring St.&nbsp;Mark’s Basilica and Campanile (bell tower) in the background.</figcaption>
</figure>
</div>
<p>The hackathon ended with a <strong>concluding showcase</strong> where each team presented their progress and demonstrated their technical achievements. To ensure these developments remain accessible to the community, teams documented their work (code, vignettes, and resources) in a dedicated <strong>GitHub repository</strong>. These results have been synthesized into a <strong>collaborative preprint</strong>, with each group contributing a detailed section summarizing their specific theme and findings.</p>
<ul>
<li><a href="https://github.com/BiocCodingCollaborations/VeniceHackathon2026">GitHub repository</a> housing code and resources developed during the hackathon.</li>
<li><a href="https://doi.org/10.37044/osf.io/9ej32_v1">Collaborative preprint</a> summarizing the format, themes, and outputs of the hackathon.</li>
</ul>
<hr>
<p>The event was organized by the Department of Statistical Sciences of the University of Padova in collaboration with EMBL and Venice International University, funded in part by the European Research Council (ERC) Grant CoG 101171662, and supported by EMBL’s Transversal Theme Theory@EMBL.</p>
<hr>



<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>events</category>
  <category>hackathon</category>
  <guid>https://blog.bioconductor.org/posts/2026-06-17-venice/</guid>
  <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-06-17-venice/terrace.jpeg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Bioconductor Maintainer Validation</title>
  <dc:creator>Lori Shepherd-Kern</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-06-16-maintainer-validation/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Bioconductor policies include being an active and reachable maintainer. Maintainer emails in the DESCRIPTION of packages often go stale as maintainers change positions. There is also a necessity to have maintainers opt into Bioconductor policies and procedures as they change over time.</p>
<p>We have created an application that uses Amazon Simple Email Service (SES) to send periodic emails to maintainers to check if the endpoint is reachable and to send a verification opt-in of Bioconductor current policies and procedures and code of conduct once a year.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-06-16-maintainer-validation/MaintainerEmail.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Photo of Email"></p>
</figure>
</div>
<p>Initial feedback is that this email is “spammy” and may be marked as such by institutions, but it is an initial attempt at compliance. We will look at alternatives to emails like specialized maintainer account access at a future date.</p>
<section id="access-to-information" class="level4">
<h4 class="anchored" data-anchor-id="access-to-information">Access to Information</h4>
<p>The information is in a publicly accessible database. We do not recommend connecting directly to the webservice but instead using the accompanied Bioconductor R package <a href="https://bioconductor.org/packages/BiocMaintainerApp/">BiocMaintainerApp</a>. It provides a Shiny application interface for querying Bioconductor package maintainers’ information.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2026-06-16-maintainer-validation/feature-image.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Photo of ShinyApp"></p>
</figure>
</div>
</section>
<section id="thank-you" class="level4">
<h4 class="anchored" data-anchor-id="thank-you">Thank you</h4>
<p>We appreciate maintainers’ cooperation moving forward.</p>


</section>
</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <category>Infrastructure</category>
  <category>Developer Engagement</category>
  <category>Policies and Procedures</category>
  <guid>https://blog.bioconductor.org/posts/2026-06-16-maintainer-validation/</guid>
  <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-06-16-maintainer-validation/feature-image.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>New Package Submission Process</title>
  <dc:creator>Lori Shepherd-Kern</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-06-15-new-submission-process-with-Runiverse/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Bioconductor is moving towards using R-universe for its daily build system. See our previous blog post <a href="https://blog.bioconductor.org/posts/2026-04-08-r-universe-collaboration/">Collaborating between Bioconductor and R-universe on Development of Common Infrastructure</a>. As we move in this direction it was also necessary to update the submission process for Bioconductor packages. While the daily builders are still transitioning, the new submission process location is now live. The new system utilizes GitHub Actions to trigger review milestones and R-Universe as the build/check backend. The new system provides a smoother experience; it is more automated and avoids administrative steps that have historically bottlenecked the review process.</p>
</section>
<section id="information" class="level2">
<h2 class="anchored" data-anchor-id="information">Information</h2>
<section id="location" class="level4">
<h4 class="anchored" data-anchor-id="location">Location:</h4>
<p>The new location for submitting new packages to Bioconductor for review is <a href="https://github.com/Bioconductor/BiocContributions">BiocContributions</a>. This replaces the old location at <code>Bioconductor/Contributions</code>.</p>
</section>
<section id="documentation" class="level4">
<h4 class="anchored" data-anchor-id="documentation">Documentation</h4>
<p>There is documentation on <a href="https://github.com/Bioconductor/BiocContributions/blob/devel/docs/submitters.md">What to Expect</a> as well as a detailed <a href="https://docs.google.com/presentation/d/1EK2wsDoRbtVGECdYC1GU5nGtYkN-h_7R-on-CSUC6CQ/edit?slide=id.p#slide=id.p">Slide Deck</a>.</p>
<p>There is also a <a href="https://github.com/Bioconductor/BiocContributions/blob/devel/docs/FAQs.md">FAQ</a> for commonly asked questions, concerns, or troubleshooting.</p>
<p>If you need to report an issue with the new system, please open an Issue on the <a href="https://github.com/BiocStaging/BiocSubmissionProcess">BiocSubmissionProcess</a> GitHub repository.</p>
</section>
<section id="what-about-bioconductorcontributions" class="level4">
<h4 class="anchored" data-anchor-id="what-about-bioconductorcontributions">What about Bioconductor/Contributions</h4>
<p>The submission location at <code>Bioconductor/Contributions</code> has been frozen and will no longer accept new issues. <a href="https://github.com/Bioconductor/BiocContributions">BiocContributions</a> replaces this location. If you already submitted to the old location, if you are assigned a reviewer, your review will finish there. If you have not been assigned a reviewer yet, we will be posting shortly to close out your submission and move to the new location.</p>
</section>
<section id="easier-reproducibility" class="level4">
<h4 class="anchored" data-anchor-id="easier-reproducibility">Easier Reproducibility</h4>
<p>One of the frequent comments we receive is how do we reproduce the results of the build reports Bioconductor creates. The switch to using R-universe as the building and checking backend allows for a reproducible testing environment. Any maintainer can apply R-Universe checking on their personal GitHub repository for a Bioconductor package by following these <a href="https://docs.r-universe.dev/bioconductor/#debugging-the-ci">instructions</a>. This allows for a maintainer to test before submitting to Bioconductor and testing any future changes before pushing directly to Bioconductor.</p>
</section>
<section id="thank-you" class="level4">
<h4 class="anchored" data-anchor-id="thank-you">Thank you!</h4>
<p>We appreciate your patience and understanding as we transition to the new system.</p>


</section>
</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <category>R-universe</category>
  <category>Infrastructure</category>
  <category>GitHub Actions</category>
  <category>Developer Engagement</category>
  <category>New Submissions</category>
  <category>bioconductor-evolution</category>
  <guid>https://blog.bioconductor.org/posts/2026-06-15-new-submission-process-with-Runiverse/</guid>
  <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-06-15-new-submission-process-with-Runiverse/featured-image.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Developer Engagement and Bioconductor</title>
  <dc:creator>Nicholas Cooley, PhD</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-04-09-developer-engagement/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>During the Chan Zuckerberg Institute’s <a href="https://blog.bioconductor.org/posts/2024-07-12-czi-eoss6-grants/">Essential Open Source Software for Science</a> cycle 6 funding round, the Bioconductor Community Manager, Maria Doyle, secured a grant to fund a developer engagement position for Bioconductor, and I was fortunate enough to be offered that role. I am Nick Cooley, and I’m excited to see what this role can bring to Bioconductor. My background is relatively diverse, I received my PhD in organic chemistry from the University of Missouri, and I worked on prokaryotic genomics and functional genomics at the University of Pittsburgh from 2017 to 2025.</p>
</section>
<section id="role-responsibilities" class="level2">
<h2 class="anchored" data-anchor-id="role-responsibilities">Role responsibilities</h2>
<p>The mandate of this role is somewhat broad. Bioconductor, and academic computing generally face a myriad of distinct and interrelated challenges as hardware, computing paradigms, and education environments change rapidly. Improving developer resources for tackling new and existing challenges, modernizing Bioconductor developer onboarding materials (particularly for early career researchers), and improving recognition mechanisms for community members who volunteer time and effort to the Bioconductor project are all general themes within the role scope.</p>
</section>
<section id="some-specific-efforts" class="level2">
<h2 class="anchored" data-anchor-id="some-specific-efforts">Some Specific Efforts</h2>
<p>A few of the specific efforts I’ll be working on in this role include:</p>
<section id="developer-forum" class="level3">
<h3 class="anchored" data-anchor-id="developer-forum">Developer Forum</h3>
<p>The <a href="https://bioconductor.org/developers/developers-forum/">Developer Forum</a> had previously been run on a volunteer basis, and served as a community resource for discussing technical and infrastructure issues, concerns, and opportunities. The creation of the Developer Engagement Lead allowed us include the Forum as direct responsibility of this role.</p>
</section>
<section id="developer-champions-program" class="level3">
<h3 class="anchored" data-anchor-id="developer-champions-program">Developer Champions Program</h3>
<p><a href="https://workinggroups.bioconductor.org">Bioconductor working groups</a> have been a pillar of Bioconductor for a while, and represent a considerable amount of volunteer work towards the project. Improving the visibility of the working groups themselves, and the recognition that project contributors receive for their participation in the working groups can go a long way towards ensuring that that work is valued by contributors home institutions and funding mechanisms. The Champions Program aims to create a clear recognition mechanism for those volunteer efforts.</p>
</section>
<section id="bioconductor-hackathon-events" class="level3">
<h3 class="anchored" data-anchor-id="bioconductor-hackathon-events">Bioconductor hackathon events</h3>
<p>Community and collaboration are irreplaceable engines of strong research. Many Bioconductor contributors find community and collaboration within their own disciplines or institutions. Providing an avenue for collaborative and technical events within Bioconductor can fill persistent gaps in the the research tooling present in the project, and present networking opportunities for early career researchers. Part of this role is <a href="https://bioconductor.org/developers/bioccommits/">planning and running these events</a>.</p>
</section>
<section id="bioconductor-documentation-and-llms" class="level3">
<h3 class="anchored" data-anchor-id="bioconductor-documentation-and-llms">Bioconductor documentation and LLMs</h3>
<p>The ways that researchers search for information, tools, and workflow examples are changing with the rise of large language models and their interfaces. There are opportunities for improving how bioinformaticians, especially those outside of the Bioconductor community, find and familiarize themselves with research solutions within the Bioconductor project, including through improvements to website search and documentation discoverability. A long term goal of this role is to work on documentation templates and checking tools to improve their searchability by LLMs, and explore the feasibility of Bioconductor sanctioned and managed LLMs.</p>
</section>
</section>
<section id="how-to-get-in-touch" class="level2">
<h2 class="anchored" data-anchor-id="how-to-get-in-touch">How to get in touch</h2>
<p>For developer discussions and ideas, the <a href="https://chat.bioconductor.org">Bioconductor Zulip</a> is the best place to connect.</p>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Developer Engagement</category>
  <guid>https://blog.bioconductor.org/posts/2026-04-09-developer-engagement/</guid>
  <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2026-04-09-developer-engagement/featured-image.jpeg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Collaborating between Bioconductor and R-universe on Development of Common Infrastructure</title>
  <dc:creator>The rOpenSci Team</dc:creator>
  <dc:creator>The Bioconductor Team</dc:creator>
  <link>https://blog.bioconductor.org/posts/2026-04-08-r-universe-collaboration/</link>
  <description><![CDATA[ 





<p><small><i>This article is cross-posted on <a href="https://ropensci.org/blog/">rOpenSci</a> and <a href="https://r-consortium.org/blog/">R-Consortium</a> blogs.</i></small></p>
<p>For more than two decades, the <a href="https://www.bioconductor.org/">Bioconductor project</a> has been a cornerstone of the R ecosystem, providing high-quality, peer-reviewed tools for bioinformatics and computational biology. Its curated repository model, rigorous review standards, and tightly coordinated release process have helped establish Bioconductor as one of the most trusted distribution channels in scientific computing.</p>
<p>However, the infrastructure that supports such a long-standing and large-scale project inevitably accumulates technical debt. Legacy build systems, bespoke tooling, and historically grown workflows add up to costly and unsustainable maintenance work. For this reason, Bioconductor is collaborating with <a href="https://r-universe.dev/">R-universe</a> to gradually modernize parts of its infrastructure, while accommodating the project’s scale, governance, and established processes. In turn, Bioconductor is helping R-universe expand and refine its features as we learn to serve the complex needs of the Bioconductor community.</p>
<p>This collaboration reflects a core principle of R-universe as an R Consortium <a href="https://r-consortium.org/all-projects/">Infrastructure Steering Committee (ISC)</a> top-level project: supporting reviewed package repositories such as rOpenSci and Bioconductor, and providing modern, open, and reusable infrastructure that strengthens the broader R ecosystem.</p>
<section id="a-shared-mission-tooling-for-managed-repositories" class="level2">
<h2 class="anchored" data-anchor-id="a-shared-mission-tooling-for-managed-repositories">A Shared Mission: Tooling for Managed Repositories</h2>
<p>R-universe was designed as a next-generation package distribution and build system for R. It provides:</p>
<ul>
<li>Continuous building and checking of R packages across platforms<br>
</li>
<li>Binary packages for Windows, macOS, Linux, and WebAssembly<br>
</li>
<li>Transparent and reproducible build environments managed via GitHub actions<br>
</li>
<li>Dashboards and metadata APIs for monitoring ecosystem health and activity<br>
</li>
<li>CRAN-like package repositories with discoverable metrics and documentation</li>
</ul>
<p>From the outset, a key objective has been to support curated and reviewed communities — such as rOpenSci and Bioconductor — by offering modern infrastructure without requiring them to redesign their governance model or review processes.</p>
<p>For Bioconductor, this means incrementally introducing piece-wise functionality, with consideration for established release cycles and quality control mechanisms:</p>
<ol type="1">
<li>Setting up independent build and dashboard tooling, replicating processes from the current Bioconductor build systems on R-universe infrastructure</li>
<li>Mirroring Windows and macOS binaries produced on R-universe to Bioconductor</li>
<li>Exploring further integration of results and metadata produced by R-universe for Bioconductor health/activity monitoring and aiding the curation processes</li>
<li>Potential future steps toward deeper automation and harmonization</li>
</ol>
<p>By taking small gradual steps towards adopting R-universe components, everyone gets the opportunity to experiment with new tooling and evaluate where adjustments may be needed in order to minimize disruption to existing practices.</p>
<p>An important milestone in this venture is that Bioconductor now uses R-universe to build the Windows and macOS binaries, which significantly reduces costs and the maintenance load on the Bioconductor team. Beyond binary distribution, we are currently exploring deeper integration of R-universe’s continuous check results into Bioconductor’s quality control and release processes.</p>
</section>
<section id="two-universes-release-and-development" class="level2">
<h2 class="anchored" data-anchor-id="two-universes-release-and-development">Two Universes: Release and Development</h2>
<p>Bioconductor maintains two distinct repositories:</p>
<ul>
<li>A <strong>release</strong> branch for stable packages<br>
</li>
<li>A <strong>devel</strong> branch for ongoing development and the next release cycle</li>
</ul>
<p>To mirror this structure, we currently operate two dedicated R-universe instances:</p>
<ul>
<li><strong>Development branch:</strong> <a href="https://bioc.r-universe.dev">https://bioc.r-universe.dev</a><br>
</li>
<li><strong>Release branch:</strong> <a href="https://bioc-release.r-universe.dev">https://bioc-release.r-universe.dev</a></li>
</ul>
<p>These universes integrate directly with Bioconductor’s existing Git infrastructure and provide continuous builds for packages in both branches.</p>
<p>Through the R-universe dashboard, package maintainers and users can:</p>
<ul>
<li>Inspect cross-platform check results<br>
</li>
<li>Review extended BiocCheck diagnostics<br>
</li>
<li>Monitor build logs and dependency graphs<br>
</li>
<li>Explore rich package metadata and metrics<br>
</li>
<li>Publish binary packages for Windows, macOS, and Linux</li>
</ul>
<p>This provides a familiar yet modern interface for Bioconductor contributors, aligned with what users increasingly expect from contemporary R package infrastructure.</p>
<p>Information about each package is available on <code>https://bioc.r-universe.dev/{pkgname}</code>. For example, <a href="https://bioc.r-universe.dev/DESeq2">https://bioc.r-universe.dev/DESeq2</a> provides details on the DESeq2 package as shown below:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="https://docs.r-universe.dev/img/bioc-pkg.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="screenshot of r-universe"><img src="https://docs.r-universe.dev/img/bioc-pkg.png" class="img-fluid figure-img" alt="screenshot of r-universe"></a></p>
<figcaption>screenshot of r-universe</figcaption>
</figure>
</div>
<p>If this is your first time visiting R-universe, we recommend clicking the “Website Tour” button which will walk you through the most important information in 1 or 2 minutes.</p>
</section>
<section id="technical-documentation-for-bioconductor-maintainers" class="level2">
<h2 class="anchored" data-anchor-id="technical-documentation-for-bioconductor-maintainers">Technical Documentation for Bioconductor Maintainers</h2>
<p>The R-universe project maintains comprehensive technical documentation at <a href="https://docs.r-universe.dev">https://docs.r-universe.dev</a>. For Bioconductor specifically, we created a dedicated section summarizing the most relevant topics for developers to get started with R-universe: <a href="https://docs.r-universe.dev/bioconductor/">https://docs.r-universe.dev/bioconductor/</a></p>
<p>As the collaboration evolves and new components get introduced, the documentation will continue to be expanded. The goal is to provide Bioconductor maintainers with a clear reference point for understanding how R-universe fits into their development workflow, while maintaining compatibility with the established practices that have made Bioconductor a successful project within the R community.</p>
</section>
<section id="looking-ahead" class="level2">
<h2 class="anchored" data-anchor-id="looking-ahead">Looking Ahead</h2>
<p>Adopting new infrastructure inevitably involves adjustments. For Bioconductor developers, integrating with a new build and distribution system will likely require some changes to workflows, and time to become familiar with new or different package checks, build diagnostics, and binary distribution.</p>
<p>However, by gradually moving toward common infrastructure, the Bioconductor project will benefit from improvements that are being continuously developed and maintained for the broader R ecosystem. A system based on modern continuous integration (CI) will provide developers with improved tooling, and will give the core team more time to focus on community coordination and quality control, rather than on maintaining costly infrastructure. At the same time, the shared platform provided by R-universe can help to increase the visibility and accessibility of Bioconductor software to the greater R community.</p>
<p>We look forward to continuing this alliance and to working with the Bioconductor community to ensure that the next generation of infrastructure supports the project for many years to come.</p>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Bioconductor</category>
  <category>R-universe</category>
  <category>Infrastructure</category>
  <guid>https://blog.bioconductor.org/posts/2026-04-08-r-universe-collaboration/</guid>
  <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
  <media:content url="https://docs.r-universe.dev/img/bioc-pkg.png" medium="image" type="image/png"/>
</item>
<item>
  <title>Outreachy June 2025 Interns with Bioconductor</title>
  <dc:creator>Anne-Marie Sharp</dc:creator>
  <dc:creator>Victoria Poromon</dc:creator>
  <link>https://blog.bioconductor.org/posts/2025-12-12-outreachy-june25/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>To a beginner, open source can be one of the best pathways into a fulfilling tech career. It not only provides access to source codes but also connects you with a global community of people from diverse backgrounds and skill sets. Together, contributors share ideas, collaborate on projects, and continuously improve the software. This collective effort makes open source projects more reliable, innovative, and adaptable, as many perspectives shape their growth. These values strongly align with the mission of the Outreachy internship, which champions diversity, inclusivity, and creating opportunities for people from underrepresented groups in tech to contribute meaningfully to open source.</p>
</section>
<section id="outreachy" class="level2">
<h2 class="anchored" data-anchor-id="outreachy">Outreachy</h2>
<p><a href="https://www.outreachy.org">Outreachy</a> is a paid, remote internship program whose main goal is to support people from groups underrepresented in tech. They help newcomers to free software and open source make their first contributions.</p>
<p>Interns work remotely for 3 months with experienced mentors from open source communities, gaining hands-on experience, building real-world skills, and contributing to meaningful projects. They receive guidance, feedback, and the support of a diverse and welcoming community.</p>
</section>
<section id="our-journeys" class="level2">
<h2 class="anchored" data-anchor-id="our-journeys">Our Journeys</h2>
<section id="victorias-experience" class="level3">
<h3 class="anchored" data-anchor-id="victorias-experience">Victoria’s Experience</h3>
<div style="text-align: center;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2025-12-12-outreachy-june25/VictoriaPoromon.jpg" class="img-fluid figure-img" alt="Photo of Victoria Poromon" width="300"></p>
<figcaption>Victoria Poromon</figcaption>
</figure>
</div>
</div>
<p>Hello, my name is Victoria Poromon, and I am a Microbiology graduate from the University of Port Harcourt, Nigeria. I have been contributing to the <a href="https://bugsigdb.org/Main_Page">BugSigDB</a> project since March 2024, and you can read about my experience as an Outreachy June2025 intern <a href="https://burah.hashnode.dev/outreachy-contribution-stage-my-experience">here</a>.</p>
<p>Over the last few months, I’ve completed individual tasks, collaborated with fellow contributors and my co-intern, participated in peer reviews, written several blog posts, including one I’m especially proud of: the <a href="https://burah.hashnode.dev/step-by-step-guide-to-contributing-to-bugsigdb">Step-by-step Guide to contributing to BugSigDB</a>. More recently, I even took my first step into co-mentoring!</p>
<p>Each encounter and milestone has taught me something new, broadened my perspective, and supported my personal and professional growth.</p>
<p>Here are the lessons that have stayed with me:</p>
<ul>
<li><strong>Take your time</strong>: I’ve always believed in not rushing important work, and this project reinforced that mindset. Because it demands careful attention to detail and accuracy, moving too quickly can easily make you overlook what truly matters.</li>
<li><strong>Collaborate, not compete</strong>: It’s natural for others to know things I don’t, but what isn’t acceptable is choosing to remain ignorant. Collaboration has allowed me to both learn from others and share my own knowledge in return.</li>
<li><strong>Know when to ask questions</strong>: If you’ve been stuck on a task for hours despite troubleshooting and research, it’s the perfect time to ask your mentors for guidance. Doing so demonstrates curiosity, helps you overcome challenges more efficiently, and often leads to deeper learning.</li>
<li><strong>Know when to ask for help</strong>: I’ve learned from my mentor, Svetlana, that asking for help is a valuable skill. It is not a sign of weakness, but a demonstration of strength, self-awareness, and a willingness to learn.</li>
<li><strong>Always speak kindly</strong>: It’s not enough to simply know how to communicate; it’s equally important to do so kindly and with consideration for others. As both a contributor and co-mentor, I’ve come to value this quality deeply. Thoughtful communication not only shows respect but also helps create a safe and supportive environment.</li>
</ul>
<p>My journey with the Bioconductor community has been guided every step of the way, from the big things, like reviewing my tasks, teaching me new skills, and offering guidance on my job applications, to the small details, like dotting my i’s and placing my commas correctly. Every day, I’m reminded why I chose to stay.</p>
<p>By the end of my internship (June 2025 cohort), I not only strengthened my technical abilities but also gained confidence, built a meaningful network, and laid a solid foundation for my continued involvement in open source. You can find all my contributions <a href="https://bugsigdb.org/Special:Contributions/Victoria">here</a>.</p>
<p>I am super thankful to everyone in the Bioconductor community for giving me a chance, especially to my mentors <a href="https://github.com/SvetlanaUP">Svetlana</a>, <a href="https://github.com/cmirzayi">Chloe</a>, and <a href="https://github.com/KateRasheed">Kate</a>, for literally holding my hand every step of the way and my brilliant co-intern <a href="https://github.com/annemarie-sharp">Anne-Marie Sharp</a>. I’ve grown tremendously and become a better contributor because I learned from the absolutely best.</p>
</section>
<section id="anne-maries-experience" class="level3">
<h3 class="anchored" data-anchor-id="anne-maries-experience">Anne-Marie’s Experience</h3>
<div style="text-align: center;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://blog.bioconductor.org/posts/2025-12-12-outreachy-june25/Anne-MarieSharp.jpg" class="img-fluid figure-img" alt="Photo of Anne-Marie Sharp" width="300"></p>
<figcaption>Anne-Marie Sharp</figcaption>
</figure>
</div>
</div>
<p>Hello, I am Anne-Marie Sharp. I am a Biomedical Scientist and an aspiring bioinformatician. In late 2024, <a href="https://annemariesharp.wordpress.com/2025/06/06/from-curiosity-to-contribution-a-new-chapter-with-outreachy/">my curiosity</a> led me to learn about the <a href="https://www.outreachy.org/">Outreachy</a> internship for the first time and then to the Bioconductor project - Microbiome Study Curation <a href="https://www.bugsigdb.org/">(BugSigDB)</a> where I contributed as an intern in the June 2025 Outreachy cohort.</p>
<p>I was completely new to the world of open source and it took extra effort for me to catch on quickly to not just the different online communication platforms but also to the art or rather science of microbiome study curation; but my curiosity and passion for science kept me going during the Outreachy contribution phase. I was also excited about the new skills I was learning such as data-curation, analysis and literature review. And I was fascinated by the collaboration within the community. Thanks to this collaboration, I was also able to learn fast as I freely asked questions and got answers from mentors and fellow-curators, and I often teamed up with other curators which gave me different perspectives and insights on curation.</p>
<p>As an avid learner, I was and I still am excited that there is always something new to learn working on the project. Whether in the core microbiome science, in improving my R-programming language skill, in curation itself or even in improving my soft skills. Indeed, it only gets better.</p>
<section id="my-contributions" class="level4">
<h4 class="anchored" data-anchor-id="my-contributions">My Contributions</h4>
<p>During the contribution and internship phase, I worked on over 50 <a href="https://github.com/waldronlab/BugSigDBcuration/issues?q=is%3Aissue%20assignee%3Aannemarie-sharp">issues</a> and <a href="https://bugsigdb.org/Special:Contributions/Anne-mariesharp">study curations</a>, these involved:</p>
<ul>
<li>curating published microbiome studies mainly regarding eye health conditions such as glaucoma, age related macular degeneration, etc.,</li>
<li>finalizing incomplete curations,</li>
<li>reviewing existing curations, and</li>
<li>handling R-related tasks such as updating unit tests and fixing errors in codes.</li>
</ul>
<p>I also blogged frequently about my experience: <a href="https://annemariesharp.wordpress.com/category/outreachy-blog/">https://annemariesharp.wordpress.com/category/outreachy-blog/</a></p>
<p>I am particularly proud of the work I have done in curating microbiome studies on vision threatening conditions such as glaucoma, age related macular degeneration and acute anterior uveitis. Integrating these underrepresented ocular microbiome findings into BugSigDB improves data discoverability, enables structured querying, and enhances cross-study reuse. And I plan to continue with this great work!</p>
</section>
<section id="so-far" class="level4">
<h4 class="anchored" data-anchor-id="so-far">So far</h4>
<p>Worthy to mention, that I am currently a co-mentor for the December 2025 Outreachy cohort! This transition from intern to co-mentor has been exciting. I now guide new contributors through the same journey I once took - from understanding GitHub workflows to mastering the intricacies of microbiome study curation.</p>
<p>So far, collaborating with experienced mentors has enlightened me on how they support and sustain the community and I am grateful for this opportunity to learn and to also give back. I am also grateful to the BugSigDB community, to my co-intern <a href="https://github.com/Buraah">Victoria Poromon</a> who made working together easy and enjoyable, and to all my mentors who made this experience worthwhile for me - <a href="https://github.com/cmirzayi">Chloe Mirzayi</a>, <a href="https://github.com/SvetlanaUP">Svetlana Ugarcina Perovic</a>, <a href="https://github.com/Omabekee">Chioma Onyido</a>, <a href="https://github.com/KateRasheed">Kate Rasheed</a>, and <a href="https://github.com/AleruDivine">Divine Aleru</a>.</p>
<p>Their patience with my endless questions, their thoughtful feedback on my curations, their willingness to share their expertise transformed me from a complete beginner into a confident contributor. Like the African proverb says, “it takes a village to raise a child” - their unique inputs, support, and guidance have truly been priceless.</p>
</section>
</section>
</section>
<section id="upcoming-opportunities" class="level2">
<h2 class="anchored" data-anchor-id="upcoming-opportunities">Upcoming Opportunities</h2>
<p>One of the core values of open source is Community, because it ensures projects remain active, relevant, and adaptable over time, preventing stagnation. The Bioconductor community is participating in the current Outreachy internship round (December 2025 to March 2026).</p>
<p>If you’re inspired by our journey and would like to contribute to the BugSigDB project, either through Outreachy or simply to share knowledge, feel free to join us on the Bioconductor <a href="https://chat.bioconductor.org/">Zulip channel</a>.</p>
<p>Applications for the next internship round (May 2026 – August 2026) will open in early February 2026, so keep an eye out for announcements <a href="https://www.outreachy.org/apply/project-selection/">here</a>.</p>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>Outreachy</category>
  <category>open science</category>
  <guid>https://blog.bioconductor.org/posts/2025-12-12-outreachy-june25/</guid>
  <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2025-12-12-outreachy-june25/featured-image.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Bioconductor in Africa: Highlights from our first workshop in West Africa - Benin</title>
  <dc:creator>Laurah Ondari</dc:creator>
  <link>https://blog.bioconductor.org/posts/2025-12-11-benin-course/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>From November 17 to 21, 2025, Bioconductor held its first in-person training workshop in West Africa. The workshop was held at the <a href="https://gbios-uac.org/">Genetics, Biotechnology, and Seed Science Unit (GBioS)</a> University of Abomey-Calavi, in Abomey-Calavi, Benin, co-hosted in partnership with the Research Unit in Applied Microbiology and Pharmacology of Natural Substances (URMAPha). The workshop brought together 25 participants, comprising students, early-career researchers, and professionals from across Benin and neighboring countries, such as Senegal and Nigeria, for a week-long, hands-on course designed to strengthen participants’ skills in R, data handling, and Bioconductor workflows for bulk RNA-seq analysis.</p>
<p>What made this workshop special was not just the curriculum, but the enthusiasm of the participants and the strong sense of community that formed throughout the week. We collected feedback from all 25 participants, and their responses paint a clear picture of both the impact the course had and the opportunities ahead.</p>
<p><a href="benin_group_photo.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/benin_group_photo.jpg" class="img-fluid" alt="Participants at the Bioconductor Benin course"></a></p>
<div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>Benin course participants posing for a group photo at GBioS in the University of Abomey-Calavi, Cotonou, Benin.</em></p>
</div>
</section>
<section id="what-we-taught-and-what-was-learned" class="level2">
<h2 class="anchored" data-anchor-id="what-we-taught-and-what-was-learned">What we taught and what was learned</h2>
<p>During the week-long Bioconductor course at the University of Abomey-Calavi, participants were introduced to the foundations of R and RStudio, good coding practices, tidyverse workflows, data handling, and reproducible research, before progressing into hands-on Bioconductor analyses for bulk RNA-seq using DESeq2 and SummarizedExperiment. Participant feedback reflected exactly these learning goals. Many highlighted how practical and hands-on the sessions were, sharing that <em>“the course was very practical with a lot of explanations”</em> and that practicing directly on their laptops made the material easy to apply. The step-by-step guidance on dplyr, tidyverse, ggplot2, and RNA-seq workflows resonated strongly, with one participant noting <em>“the step-by-step explanation about dplyr and tidyverse was highly useful,”</em> while another said they especially appreciated <em>“good step-by-step guidance on RNA-seq data analysis.”</em> Participants repeatedly praised the teaching approach and the supportive environment, noting that <em>“the trainers always came to help us when we had difficulties without judgment,”</em> and <em>“even when we didn’t understand at first, they always took the time to explain clearly.”</em> Others valued the inclusive, interactive format: <em>“the course was inclusive, with a participatory approach,”</em> and <em>“we all practiced directly with the trainers, who were highly attentive to our concerns.”</em> Many also appreciated the organisation and materials, calling the course <em>“well organized,”</em> with <em>“great interaction,”</em> <em>“well-accessible documents and scripts,”</em> and resources they could return to later.</p>
<p>Agenda and instructor list are on the <a href="https://training.bioconductor.org/workshops/2025-11-Abomey-Calavi/">workshop page</a>.</p>
<style>
#gallery-instructors img {
  height: 180px;
  width: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Optional focal point overrides */
#gallery-instructors img.focus-left  { object-position: left center; }
#gallery-instructors img.focus-right { object-position: right center; }


/* Add spacing between columns */
#gallery-instructors .column {
  padding-right: 2px;
}

</style>
<div id="gallery-instructors" class="columns">
<div class="column" style="width:20%;">
<p><a href="axelle.jpg" class="lightbox" data-gallery="gallery-instructors"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/axelle.jpg" class="focus-right img-fluid" alt="Dr. Axelle Loriot teaching"></a></p>
</div><div class="column" style="width:20%;">
<p><a href="amal.jpg" class="lightbox" data-gallery="gallery-instructors"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/amal.jpg" class="img-fluid" alt="Dr Amal Boukteb teaching"></a></p>
</div><div class="column" style="width:20%;">
<p><a href="dedeou.jpg" class="lightbox" data-gallery="gallery-instructors"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/dedeou.jpg" class="img-fluid" alt="Dr. Dedeou Tchokponhoue teaching"></a></p>
</div><div class="column" style="width:20%;">
<p><a href="kevin.jpg" class="lightbox" data-gallery="gallery-instructors"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/kevin.jpg" class="img-fluid" alt="Kevin Sintondji teaching"></a></p>
</div><div class="column" style="width:20%;">
<p><a href="marie.jpg" class="lightbox" data-gallery="gallery-instructors"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/marie.jpg" class="img-fluid" alt="Marie Hidjo teaching"></a></p>
</div><div class="figure-caption" style="text-align: left; font-size: 90%;">
<p><em>From left to right: Dr Axelle Loriot, Dr Amal Boukteb, Dr Dedeou Tchokponhoue, Kevin Sintondji, and Marie Hidjo teaching at the Benin course.</em></p>
</div>
</div>
<p><a href="DSC_4981.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/DSC_4981.jpg" class="img-fluid" alt="Participants learning at the Bioconductor Benin course"></a></p>
<div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>Benin course participants engaged in a hands-on session.</em></p>
</div>
</section>
<section id="language-accessibility-and-bilingual-support" class="level2">
<h2 class="anchored" data-anchor-id="language-accessibility-and-bilingual-support">Language accessibility and bilingual support</h2>
<p>This was the first Bioconductor Africa course where French translations of introductory materials were provided. Participants strongly appreciated having French-speaking instructors available throughout the week. Over half of the attendees (52%) found this support very helpful, with another 32% rating it helpful, emphasising that bilingual facilitation made it easier to follow explanations, ask questions, and stay engaged. While most participants felt comfortable with English as the primary teaching language (56% reported that English was sufficient), a significant portion noted that French support enhanced their understanding of the material. The French-translated Intro to R materials were also well received: one-third of participants used them during the workshop, and another third planned to consult them later.</p>
<p>Link to French translated materials <a href="https://bioconductor-translations.github.io/bioc-intro-fr/">here</a></p>
<div id="gallery-french" class="columns">
<div class="column" style="width:50%;">
<p><a href="french1.png" class="lightbox" data-gallery="gallery-french"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/french1.png" class="img-fluid" alt="French learning"></a></p>
</div><div class="column" style="width:50%;">
<p><a href="french2.png" class="lightbox" data-gallery="gallery-french"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/french2.png" class="img-fluid" alt="French learning"></a></p>
</div><div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>The impact of French-translated materials and French-speaking instructors at the Benin workshop.</em></p>
</div>
</div>
</section>
<section id="highlights" class="level2">
<h2 class="anchored" data-anchor-id="highlights">Highlights</h2>
<p>GBioS and URMAPha graciously offered us a tour of their laboratory facilities, providing the instructors and participants with an opportunity to learn more about the impactful research they lead, ranging from safeguarding seed diversity to identifying pharmaceutically active compounds.</p>
<p>Below is a photo of the instructors, hosts, and participants taken after the lab tours.</p>
<img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/afterlabtour.jpg" class="img-fluid" alt="Participants after the GBioS and URMAPha lab tours">
<div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>Benin course participants posing outside the GBioS building at the University of Abomey-Calavi after touring GBioS and URMAPha labs.</em></p>
</div>
<p>To close the workshop, the team also hosted a beautiful certificate ceremony, creating a memorable and celebratory end to an impactful week.</p>
<style>
#gallery-certificates img {
  height: 220px; /* adjust as needed */
  width: 100%;
  object-fit: cover;
  display: block;
}
#gallery-certificates .column {
  padding-right: 2px;
}
</style>
<div id="gallery-certificates" class="columns">
<div class="column" style="width:50%;">
<p><a href="men_certificates.jpg" class="lightbox" data-gallery="gallery-certificates"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/men_certificates.jpg" class="img-fluid" alt="Male participants holding their certificates"></a></p>
</div><div class="column" style="width:50%;">
<p><a href="women_certificates.jpg" class="lightbox" data-gallery="gallery-certificates"><img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/women_certificates.jpg" class="img-fluid" alt="Female participants holding their certificates"></a></p>
</div><div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>Participants holding their certificates.</em></p>
</div>
</div>
</section>
<section id="carpentries-instructor-training-and-capacity-building" class="level2">
<h2 class="anchored" data-anchor-id="carpentries-instructor-training-and-capacity-building">Carpentries Instructor Training and Capacity Building</h2>
<p>Through support from <a href="https://blog.bioconductor.org/posts/2024-07-12-czi-eoss6-grants/">the CZI EOSS6 grant</a>, two researchers from local institutions in Benin, Kevin Sintondji (URMAPha) and Dédéou Tchokponhoue (GBioS), are participating in Carpentries instructor training to become certified instructors. This initiative is helping build local capacity to deliver high-quality training and support reproducible research practices within their teams and the wider community. As they shared: <em>“The Carpentries training has been extremely valuable for strengthening our skills in data management and reproducible analysis. It helped us adopt more structured workflows, improve collaboration within our teams, and apply these methods directly in our AMR and environmental microbiology projects. This capacity building is already having a concrete impact on the quality of our research.”</em></p>
<p>In addition to the Carpentries training supported by the CZI EOSS6 grant, two of the other instructors at the Benin workshop, Marie Hidjo (Benin) and Amal Boukteb (Tunisia), were previously certified through the Bioconductor Carpentries program funded by the CZI EOSS4 grant (see <a href="https://blog.bioconductor.org/posts/2025-02-28-carpentries-update/">summary blog post</a>). This workshop was also an opportunity for these instructors to teach locally and share their expertise within the African bioinformatics community.</p>
</section>
<section id="impact-of-bioconductor-training-across-east-and-west-africa" class="level2">
<h2 class="anchored" data-anchor-id="impact-of-bioconductor-training-across-east-and-west-africa">Impact of Bioconductor Training across East and West Africa</h2>
<p>From surveys conducted across Kenya, Ethiopia, and Benin, 100% of participants reported that they would recommend the Bioconductor training course to colleagues, indicating a strong and meaningful impact. The impact was also evident in skills development: every participant reported a significant improvement in their R abilities. In Benin, 60% of the participants rated their learning gains as “very significant” (scale 5) and 40% as “significant” (scale 4), a clear indication that the training effectively strengthened practical, hands-on bioinformatics skills.</p>
<img src="https://blog.bioconductor.org/posts/2025-12-11-benin-course/feedback-twocols-bycountry.png" class="img-fluid">
<div class="figure-caption" style="text-align: center; font-size: 90%;">
<p><em>Participant feedback summary across workshops.</em></p>
</div>
</section>
<section id="looking-ahead-what-participants-want" class="level2">
<h2 class="anchored" data-anchor-id="looking-ahead-what-participants-want">Looking ahead: what participants want</h2>
<p>Across Kenya, Ethiopia, and Benin, participants expressed a strong interest in more advanced and diverse bioinformatics training that builds on the foundations of R and RNA-seq. The most recurring areas of interest were:</p>
<ul>
<li><p><strong>Advanced transcriptomics:</strong> advanced RNA-seq, transcript-level workflows, and single-cell RNA-seq.</p></li>
<li><p><strong>Genomics &amp; population genetics:</strong> variant calling, SNP/CNV analysis, and GWAS/genomic selection.</p></li>
<li><p><strong>NGS &amp; sequence analysis:</strong> raw sequence handling, QC, genome assembly, and phylogenetics.</p></li>
<li><p><strong>Metagenomics &amp; microbiome analysis using Bioconductor tools.</strong></p></li>
<li><p><strong>Multi-omics integration:</strong> combining genomics, transcriptomics, proteomics, and metabolomics.</p></li>
<li><p><strong>Computational skills:</strong> Linux basics, command-line workflows, and version control (Git/GitHub).</p></li>
<li><p><strong>Reproducible research &amp; visualisation:</strong> R Markdown/Quarto and more advanced data visualisation.</p></li>
</ul>
<p>We’re exploring ways to make Bioconductor training more accessible, including webinars and other online formats. One example is our new online seminar series, which recently featured a talk on <a href="https://bioconductor.org/help/seminar-series/">“Deep-learning-based Gene Perturbation Effect Prediction Does Not Yet Outperform Simple Linear Baselines”</a> and attracted participants who attended our workshops in Africa this year.</p>
</section>
<section id="collaborators-acknowledgements" class="level2">
<h2 class="anchored" data-anchor-id="collaborators-acknowledgements">Collaborators &amp; Acknowledgements</h2>
<p>This workshop was co-hosted by GBioS and URMAPha. We are deeply grateful for their leadership and commitment to strengthening bioinformatics capacity in Benin. Notably, there was a special link between the Kenya and Benin workshops: the Kenya training went so well that one of its participants, Abdou Mouizz Salaou, helped bring Bioconductor training to Benin, further expanding the impact of Bioconductor capacity-building efforts across the region.</p>
<p>The event was co-organised with the International Institute of Tropical Agriculture (IITA) and the University of Limerick, with funding support from <a href="https://blog.bioconductor.org/posts/2024-07-12-czi-eoss6-grants/">the Chan Zuckerberg Initiative (CZI) EOSS6 grant</a>.</p>
<p>Our organising team: Abdou Mouizz Salaou (GBioS, University of Abomey-Calavi), Aristide Carlos Houdegbe (GBioS, University of Abomey-Calavi), Prof.&nbsp;Enoch G. Achigan-Dako (GBioS, University of Abomey-Calavi), Prof.&nbsp;Victorien Dougnon (URMAPha, University of Abomey-Calavi), Trushar Shah (International Institute of Tropical Agriculture), Laurah Ondari (International Institute of Tropical Agriculture), Maria Doyle (University of Limerick / Bioconductor).</p>
</section>
<section id="get-involved" class="level2">
<h2 class="anchored" data-anchor-id="get-involved">Get involved</h2>
<ul>
<li><a href="https://training.bioconductor.org/workshops/2025-11-Abomey-Calavi/">Workshop page</a></li>
<li><a href="https://training.bioconductor.org">About Bioconductor training</a></li>
<li><a href="https://training.bioconductor.org/workshops/2025-08-Addis-Ababa/index.html#%F0%9F%8C%8D-join-the-bioconductor-africa-community">Join the Bioconductor Africa mailing list</a> or #bioc_africa channel in <a href="https://chat.bioconductor.org">Bioconductor Chat</a></li>
</ul>


</section>

<p>
© 2026 Bioconductor. Content is published under <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons CC-BY-4.0 License</a> for the text and <a href="https://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</a> for any code. | <a href="https://www.r-bloggers.com">R-Bloggers</a>
</p> ]]></description>
  <category>education</category>
  <category>events</category>
  <category>Carpentries</category>
  <category>CZI</category>
  <guid>https://blog.bioconductor.org/posts/2025-12-11-benin-course/</guid>
  <pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate>
  <media:content url="https://blog.bioconductor.org/posts/2025-12-11-benin-course/benin_group_photo.jpg" medium="image" type="image/jpeg"/>
</item>
</channel>
</rss>
