Skip to main content
Version: 25.3

Example custom Studios

Seqera provides a collection of example custom Studio environments for common bioinformatics and data science applications. Each example includes a Dockerfile and a pre-built container image you can deploy immediately or use as a template for your own custom Studio.

Any application that serves its interface over HTTP can run in a Studio session. All example Dockerfiles and pre-built images are available in the custom-studios-examples GitHub repository. For instructions on building your own custom container image from scratch, see Custom environments.

GitHub repositoryDescriptionPre-built image URL
MarimoReactive Python notebookghcr.io/seqeralabs/custom-studios-examples/marimo
StreamlitInteractive web apps (MultiQC demo)ghcr.io/seqeralabs/custom-studios-examples/streamlit
CELLxGENESingle-cell data visualizationghcr.io/seqeralabs/custom-studios-examples/cellxgene
ShinyR-based interactive web appsghcr.io/seqeralabs/custom-studios-examples/shiny
TTYDWeb-based terminal with Samtoolsghcr.io/seqeralabs/custom-studios-examples/ttyd
note

Pre-built images may not reflect the latest version of the Seqera Connect client, system libraries, nor packages. See the GitHub repository releases for current image tags.

Deploy an example Studio

To deploy any example, follow the Add a Studio workflow, select Custom container template, and enter the image URL from the table above. For environment variables and detailed setup instructions, see the README.md in each example's directory.

For more information about managing Studios, see Manage Studios.

Provide files to Studios

Studios uses Fusion to mount cloud storage as a local filesystem inside the Studio container. When you mount a cloud bucket, its contents are available at /workspace/data/<bucket_name>/.

There are two approaches to make files available to your custom Studio:

Environment variables

Some examples define environment variables that accept cloud storage paths (such as s3://bucket/path/to/file.csv). When you create a Studio, set the value of these variables in the Environment variables section of the Compute and Data tab. The container translates the cloud path to the corresponding local path at /workspace/data/ automatically.

Data-links point to specific cloud storage paths. When you create a data-link, the linked directory appears in the running Studio at /workspace/data/<data_link_name>/. Once you Add data-links, applications that support a file browser or path input can then access data at /workspace/data/<data_link_name>/.

Overview of example Studios

Marimo

Marimo is an open-source reactive Python notebook. Unlike traditional notebooks, Marimo automatically re-executes cells when their dependencies change, which makes it well-suited to iterative analysis where inputs change frequently. It also supports SQL natively and can publish notebooks as standalone shareable apps.

The Marimo Studio uses the uv package manager and comes pre-installed with common data science packages including scikit-learn, pandas, and altair. Access your pipeline outputs by mounting the relevant S3 buckets when you create the Studio, located at /workspace/data/ inside the session.

Streamlit

Streamlit is an open-source Python framework for building interactive web applications. Hosting a Streamlit app in Studios gives it direct access to your S3 data through Fusion. This means no credentials to configure, no data to move or copy.

The example Studio ships with a MultiQC demo app that illustrates a typical bioinformatics use case: interactive quality control reports served directly from pipeline output stored in S3. The same pattern applies to any Streamlit app you want to host within your Seqera workspace.

CELLxGENE

CELLxGENE is an interactive visualization tool for single-cell and spatial omics data. It supports exploration, analysis, and annotation of single-cell datasets in .h5ad format.

The CELLxGENE Studio loads a dataset directly from S3 on startup using environment variables you set when creating the Studio. A default public dataset (PBMCs 3k) is pre-configured so you can verify the Studio is working before connecting your own data.

Shiny

Shiny is a popular framework for building interactive web applications in R or Python. The example Studio runs a demonstration R Shiny app that generates plots and output tables from CSV input data stored in S3.

Running Shiny in Studios means your app runs inside your own cloud infrastructure, with access to pipeline outputs through Fusion. Each user who connects to the Studio gets their own private session, making it suitable for sharing results with colleagues who need to interact with the data directly rather than view a static report.

TTYD

TTYD is a web-based terminal emulator. The example Studio provides browser-based terminal access to a container with Samtools pre-installed — useful when you need command-line access to a specific bioinformatics tool without the overhead of a full IDE.

This pattern is straightforward to adapt: replace the Samtools base image with any containerized tool that supports apt-get or yum, then add the TTYD and Connect client layers. It's a practical option for giving colleagues access to a tool in a controlled, reproducible environment without requiring them to configure anything locally.

Build an example image locally

To build any example image locally, clone the repository and run the Docker build command from the example directory:

git clone https://github.com/seqeralabs/custom-studios-examples.git
cd custom-studios-examples/<example-directory>
docker build --platform linux/amd64 --build-arg CONNECT_CLIENT_VERSION=0.8 -t <your-tag> .

Replace <example-directory> with the example folder name (such as marimo or streamlit) and <your-tag> with your preferred image tag. Push the built image to your container registry, then use the image URI when you deploy the Studio.

Extend or contribute examples

You can use these examples as a starting point for your own custom Studios. Any application that serves its graphical interface over an HTTP port can run in Studios. For detailed instructions on building custom container images, see Custom environments.

To contribute new examples to the repository, see the contributing guidelines in the GitHub repository.