Fuzzball videos

Nextflow + Fuzzball demo: Pharma-grade RNASeq workflow execution

Fuzzball now runs existing Nextflow pipelines without modification, and this tutorial from CIQ's research computing team shows how. It opens with two definitions: Fuzzball is CIQ's container-first performance-intensive computing platform, combining a workflow execution engine with services that provision and maintain infrastructure on premises, in the cloud, or in hybrid environments; Nextflow is the open-source workflow engine widely used in biomedical science, with the nf-core community maintaining best-practice pipelines for RNA sequencing analysis, variant calling, genome assembly, metagenomics, and epigenomics.

The walkthrough covers the initial release of the Fuzzball executor for Nextflow. A submission script from the nf-fuzzball plugin repository, a small Python environment with pyyaml and requests, and an active Fuzzball CLI context are all that is needed. The presenter dry-runs the nf-core rnaseq pipeline with the fuzzball and test profiles, then opens the Fuzzball interface to watch the main controller job stage storage, pull the Nextflow container, and fan out roughly ten concurrent tasks. The completed run produces the usual nf-core outputs, including the QC report, execution report, and timeline.

Bioinformaticians and research computing staff who depend on Nextflow get a clear picture of what works today and what is coming: task batching, an installable Python package, a workflow catalog entry for GUI submission, and improved remote storage handling.

Key takeaways

  • Fuzzball is CIQ's container-first performance-intensive computing platform, pairing a workflow engine with infrastructure provisioning for on-prem, cloud, and hybrid environments.
  • The new Fuzzball executor for Nextflow lets nf-core pipelines run unmodified, with each Nextflow task submitted as its own Fuzzball workflow.
  • Setup requires the submission script from the nf-fuzzball plugin repo, a Python environment with pyyaml and requests, and an active Fuzzball CLI context.
  • The submit script takes Fuzzball options, then a normal Nextflow command using the fuzzball profile; a dry-run flag prints the generated workflow.
  • The demo's nf-core rnaseq run completed with 130 cached jobs and 79 executed tasks, producing standard QC, execution, and timeline reports.
  • Planned improvements include batching tasks into single workflows, a pip-installable package, a workflow catalog entry, and better remote storage handling.

Questions this video answers

Can I run Nextflow pipelines on Fuzzball without changing them?

Yes. The initial release of the Fuzzball executor for Nextflow lets you submit an existing Nextflow command, including full nf-core pipelines, through a small submission script. You add a few Fuzzball options and the fuzzball profile, and Nextflow runs as a main controller job that submits each task as a Fuzzball workflow.

What do I need installed to submit a Nextflow pipeline to Fuzzball?

You need the submission script from the nf-fuzzball plugin repository, a Python environment (3.10 or newer should work) with the pyyaml and requests packages, and the Fuzzball command line interface with an active context created via fuzzball context login. From there a single command submits the pipeline.

What outputs does an nf-core pipeline produce when run on Fuzzball?

Because the run is a regular Nextflow execution using Fuzzball-provisioned resources, you get all the usual nf-core outputs. The demo shows the QC report, a Nextflow execution report with runtimes and resource usage, and a timeline of the run, alongside the controller job logs in the Fuzzball interface.

About this video

Our latest update makes it even easier to integrate Fuzzball into your research stack. You can now run Nextflow pipelines inside Fuzzball — unmodified.

Key features demonstrated include: --Mapping of Nextflow jobs to Fuzzball workflows --Scratch and persistent volume support --Job status and lifecycle management Example: running an RNAseq pipeline on Fuzzball

This video is part of the Fuzzball playlist. Browse every CIQ video by product and topic.

Transcript

Hello, my name is Wolfgang Rush. I'm a research computing engineer with CIQ and today I'm going to give you a tutorial on how to submit and run your existing Nexfl pipelines on Fuzzball. First, a couple of definitions. What is Fuzzball? Fuzzball is CIQ's container first performance-intensive computing platform which combines a workflow execution engine with services that help you provision and maintain the infrastructure that you need to to execute those workflows and it does so in local deployments on the cloud and in hybrid environments. What is next flow? Nexflow is an open-source workflow execution engine.

It's used heavily in the biomedical science and built on top of Nexflow is a large set of best practices workflows maintained by the NF core community that cover a lot of common research an uh analytic workflows in the biomedical science like for example um RNA sequencing analysis, variant calling for sematic and germline variants, assembly of large genomes, metagenomics and um epigenomics. And our goal is to make it possible for users of Nexflow and in general and NF core pipelines in particular to run their pipelines on their Fuzzball provisioned infrastructure. And to that end, today we present an initial release of a Fuzzball exeutor for um Next Flow.

Uh this is still early development, so we have plans for improvements, but you can already execute full um NF core pipelines with this plug-in. And in the next slide, I'm going to show you how you would go about doing this today. Okay. To start with um submission of next flow pipelines today requires a submission script. Um we will obtain this just a submission script from the NF fuzzball plug-in um direct plug-in repository that includes all the code required to run next flow pipelines on Fuzzball. Okay, so this will get us the script. Next, the script depends on a couple of Python packages. Um, we're going to use Python virtual environment, a Python VM, um, to install those two packages, but any of the tools that you like to use to manage your Python environments will work just fine.

The two packages that are required are pyaml and requests. So it's a very simple environment. Uh we are using python 3.13. Um I think everything down to 3.12 or 3.10 should work. Um okay. So let's create that local environment and then we will activate it and install pyaml and requests. Once we have that, we can now run with the environment activated the submit next flow script. Um, first let's just look at the help message. So you can see that the structure of this is um basically a script that takes a couple of um that takes a few options to tell it how to interact with Fuzzball followed by a relatively unmodified Nexflow command that you would use that that that is very similar to what you would use if you were running Nexflow locally or with a traditional HPC umuler back end.

View full transcriptHide full transcript

Before we can actually run the script, we do need a fuzzball um context activated. For this, we need the Fuzzball command line interface installed. Here's the URL that tells you how to do that for your particular system. And the command would be Fuzzball context login, but I'm not actually executing this because I already have an active context. Next, we run the actual command. Um, in in this particular case, we are going to only do a dry run because I've already submitted this workflow. And we we're going to show what this looks like later on. But as I mentioned before, the structure is the the script followed by some options that tell it how to interact with fus ball.

In this case, what do I want to name the main job that's submitting that is running next flow and submitting subtasks. We also have to tell it that we're running an NF core pipeline because NF core requires some special settings for next flow and in this case we're doing a dry run which will just dump out the fus ball workflow as it would be run if we had submitted it followed by double dashes and then a normal next flow command. In this case we will be running um the NF core NF core pipeline RNA seek. We have to tell it to use a fball profile. The fball profile contains all the information and code required to submit uh tasks as fastball jobs.

And we're also telling it to use the test profile which includes a small test data set, small genome, and so on. And then we're specifying a path on fuzbar storage where to store the output. And again because this is a dry run, we will just look at the output and um you can see that it generates a essentially a fuzzball workflow that runs next flow which then in turn submits jobs to the Fuzzball cluster that it's running on. Okay, now that we've submitted this, we can go and look what this actually looks like in the Fuzzball interface. When we first come over to the bus interface, we can see that the submission script has started the main fus ball job.

Um, in this case, we're still setting up the storage, transferring files, obtaining the next flow container. Um, and we will revisit this in a few minutes when the actual processing has start. Okay, so we're back a few minutes later now and you can see that the actual next flow main controller job has started now and we can look at it and we can see the logs and let's look at all of them and you can see that it started running the NF core RDA pipeline and here it is submitting uh running starting all the tasks and if we go back to the list of workflows we can now see that we're running um one two I'm running about 10 tasks concurrently.

I think that's that was the the number of jobs that I set it to run concurrently. So this will run through the entire pipeline until it's done and then we can reconvene when that's completed and look at the outputs. Okay, we're back after a little bit. The next full pipeline execution for this NF core RNA pipeline finished. For those of you with good eyes, you'll notice that this is actually a different workfl ID because we had to restart the pipeline once due to completely unrelated to reasons completely unrelated to either the next flow or the next flow plug-in. Uh you see the pipeline completed successfully. Again, this is the log from the main controller job with 130 jobs using results from reusing results from a previous run and 79 tasks that were actually run as part of this execution of the pipeline.

And again, each of those runs as a separate fuzz workflow. And because this is just a normal NF core pipeline run, you get all the usual outputs. uh you get the the QC report, you get an Xflow report that shows basic statistics like runtimes, resource usage and so on and you can get a timeline of the execution. So it in essence this is just a regular execution of in next flow pipeline which is the goal of this whole project. Um but it was using resources provisioned by fuzzball. Okay, so that was a basic overview of how you can run Nextflow pipelines on fuzzball and let me go back and talk a little bit more about future plans.

Uh there is still improvements to be made for efficiency and execution. Uh in particular, we're looking at batching multiple tasks into a single spa workflow which should help with with workflow execution. We're also going to make this into a easily installable for the command line submission. We're going to going to make this into an easily installable Python package. And we will also be making this into an entry in the fuzbal workflow catalog which is essentially a a pre-anned um set of applications that you can run directly from um the fuzal graphical user interface. So you should be able to submit your Nexflow pipelines directly from the from the GUI if you prefer that over command line submission.

And we will also be working on improving um some aspects of storage in particular remote storage handling. Okay. Well, that concludes our tutorial and we will see you um when the next version comes out and there's hopefully new and exciting features. Thank you very much for your attention.

Built for scale. Chosen by the world’s best.

2.75M+

Rocky Linux instances

Being used world wide

90%

Of fortune 100 companies

Use CIQ supported technologies

250k

Avg. monthly downloads

Rocky Linux

9

Enterprise products

Spanning the kernel to the orchestrator

Have questions about your infrastructure?

Talk to a CIQ engineer about Rocky Linux, HPC, and AI infrastructure.

Talk to an Expert