ENA umbrella projects are top-level projects used to group related sub-projects (child projects) under a single accession.
Umbrella projects can only be created and updated from the command line, by using curl to submit XML files you have created.
This repository provides a simple interactive TUI (tui.sh) to generate the necessary XML files (project.xml and submission.xml) based on user input, and to submit them to the ENA Webin REST submission API.
Covered scenarios:
- Create a new umbrella project (standalone or with child sub-projects)
- Update an existing umbrella project (metadata and/or child sub-projects)
- Release (make public) an umbrella project
| File | Description |
|---|---|
tui.sh |
Interactive TUI |
parse-receipt.py |
Python script to parse the XML receipt returned by the ENA server |
templates/ |
XML templates used by tui.sh |
| File | Description |
|---|---|
blank-projects/blank-umbrella-project.xml |
Blank template for a new standalone umbrella project |
blank-projects/blank-umbrella-project-with-childs.xml |
Blank template for a new umbrella project with child sub-projects |
blank-projects/updated-umbrella-project.xml |
Blank template for updating an existing umbrella project |
templates/new-submission.xml |
Submission action file for creating a new project (ADD + HOLD) |
templates/update-submission.xml |
Submission action file for updating an existing project (MODIFY) |
templates/release-submission.xml |
Submission action file for releasing a project (RELEASE) |
whiptail(for the TUI):- pre-installed on most Debian/Ubuntu systems
apt install whiptailif missing
curl(for HTTP submissions):apt install curl
- Python3 with the
untanglelibrary (for receipt parsing):apt install python3-untangle(preferred)pip install untangle
- An ENA Webin account
Edit the .credential.template file with your ENA Webin credentials on a single line:
Webin-XXXXX password
Then copy it to .credential:
cp .credential.template .credentialThis file is used by tui.sh to authenticate with the ENA submission API.
Note: Keep this file private. It is not tracked by git (add it to
.gitignore).
Launch the TUI with:
bash tui.shThe main menu offers five actions:
1. Create a new umbrella project
2. Update an existing umbrella project
3. Release an umbrella project
4. Submit to ENA
5. Quit
The TUI will guide you through:
- Whether the project has child sub-projects (yes/no)
- If yes: how many child slots to generate
- A hold date (private until date), defaulting to today + 2 years
It generates two working files in the project directory:
project.xml— fill incenter_name,alias,NAME,TITLE,DESCRIPTION, and child accessions if applicablesubmission.xml—HoldUntilDateis pre-filled
Edit project metadata and child accessions as needed, then proceed to submission.
The TUI will ask:
- Whether you have an existing project XML to use as base (yes/no)
- If yes: provide the file path — it will be copied to
project.xml - If no: a blank update template is generated
- If yes: provide the file path — it will be copied to
- Whether to add child sub-projects (yes/no)
- If yes: how many child slots to inject
- The accession of the project to update (format:
PRJEBxxxxxx)- The
accessionattribute is set on the<PROJECT>element automatically - Works whether the source XML already has an
accessionattribute or not
- The
It generates:
project.xml— fill in fields and/or child accessions as needed;accessionis pre-filledsubmission.xml— ready to use
Edit project metadata and child accessions as needed, then proceed to submission.
The TUI will ask for the accession of the project to release (format: PRJEBxxxxxx).
It generates submission.xml with the accession pre-filled, then immediately offers
to proceed to submission.
Before submitting, the TUI checks:
.credentialfile existssubmission.xmlexistsproject.xmlexists (not required for release)
You will be asked to choose between:
- Test — validates against the ENA dev server, no data is registered
- Production — real submission; requires explicit typed confirmation (
YES)
On success, receipt files are saved:
server-receipt.xml— raw XML receipt from ENAserver-receipt.txt— tabular summary (alias, accession, status)
| Environment | URL |
|---|---|
| Test (dev) | https://wwwdev.ebi.ac.uk/ena/submit/drop-box/submit/ |
| Production | https://www.ebi.ac.uk/ena/submit/drop-box/submit/ |
We welcome you to report any issues in this document or script.
If you use this document or script in your research, please cite:
BibTeX
@misc{bigey2026,
author = {Bigey, Frédéric},
title = {ENA Umbrella Project Management},
year = {2026},
howpublished = {\url{https://github.com/bigey/ENA-umbrella-project-management}},
note = {accessed 2026-03-18}
}Biblatex
@software{bigey2026,
author = {Bigey, Frédéric},
title = {ENA Umbrella Project Management},
year = {2026},
version = {v1.0.0},
url = {https://github.com/bigey/ENA-umbrella-project-management},
note = {accessed 2026-03-18}
}