Example configurations for deploying custom Seqera Studio applications from a Git repository.
Do not merge studio configurations into
master! Each studio has its own dedicated branch.
This repository uses a branch-per-studio model (similar to nf-core/test-datasets). The master branch contains only this documentation. Each studio's configuration lives on its own branch with a .seqera/ directory containing the studio-config.yaml and Dockerfile required for launching Studios from a Git repository.
| Branch | Studio | Description |
|---|---|---|
marimo |
Marimo | Reactive Python notebook environment |
cellxgene |
CellxGene | Interactive single-cell data visualization |
streamlit |
Streamlit | MultiQC visualization using Streamlit |
shiny |
R Shiny | Interactive data visualization with R Shiny |
ttyd |
TTYD | Web-based terminal with bioinformatics tools |
- Navigate to Studios > Add Studio in your Seqera Platform workspace
- Select Git repository as the source
- Enter the repository URL:
https://github.com/seqeralabs/custom-studios-examples - Select the branch for the studio you want (e.g.,
marimo,cellxgene,streamlit,shiny,ttyd) - Select your compute environment
- Click Add then Start
Each branch contains a .seqera/ directory with:
studio-config.yaml— Studio configuration pointing to the DockerfileDockerfile— Container definition with connect-client integration- Any supporting files required by the Dockerfile
Each studio is also available as a pre-built container image:
ghcr.io/seqeralabs/custom-studios-examples/marimo:latest
ghcr.io/seqeralabs/custom-studios-examples/cellxgene:latest
ghcr.io/seqeralabs/custom-studios-examples/streamlit:latest
ghcr.io/seqeralabs/custom-studios-examples/shiny:latest
ghcr.io/seqeralabs/custom-studios-examples/ttyd:latest
To use a pre-built image, select Prebuilt container image instead of Git repository when adding a Studio.
You can also build any studio with the Wave CLI:
# Clone only the branch you need
git clone https://github.com/seqeralabs/custom-studios-examples.git --single-branch --branch <studio-name>
# Build with Wave
wave -f .seqera/Dockerfile --context .seqera --platform linux/amd64 --await --tower-token "$TOWER_ACCESS_TOKEN"Due to the branch-per-studio model, we recommend cloning only the branch you need:
git clone https://github.com/seqeralabs/custom-studios-examples.git --single-branch --branch <studio-name>To add another branch later:
git remote set-branches --add origin <studio-name>
git fetchSome studios support environment variable configuration:
| Studio | Variable | Default | Description |
|---|---|---|---|
| CellxGene | DATASET_FILE |
s3://cellxgene_datasets/pbmc3k.h5ad |
Path to .h5ad dataset |
| CellxGene | DATASET_TITLE |
PBMCs 3k test dataset |
Display title |
| CellxGene | USER_DATA_DIR |
/user-data/cellxgene |
User data storage |
| CellxGene | ANNOTATIONS_DIR |
/user-data/cellxgene |
Annotations storage |
| Shiny | DATA_PATH |
s3://shiny-inputs/data.csv |
Path to CSV data file |
Studios without listed variables (Marimo, Streamlit, TTYD) work with their default configurations.
All studios in this repository:
- Use the
.seqera/directory convention for Git-based Studio deployment - Include the required Seqera
connect-clientfor platform integration - Support data mounting via datalinks in Studios
- Are built for
linux/amd64platform compatibility - Use multi-stage Docker builds with connect-client
- Add a Studio from a Git repository
- Custom studio environments
- Wave CLI
- Deploying custom applications in Seqera Studios
To add a new studio:
- Create a new branch from an empty root (orphan branch):
git checkout --orphan <studio-name> - Add a
.seqera/directory withstudio-config.yamlandDockerfile - Add a
README.mddocumenting the studio - Push the branch
- Update this README on
masterto list the new studio