SVG icons and EHLD diagrams for Reactome pathway diagrams, sourced from Figma.
icons/- SVG icons and XML metadata files (R-ICO-XXXXXX.svg and .xml)ehld/- EHLD diagram SVGs (R-HSA-XXXXXX.svg)statics/- SVG static diagrams (R-HSA-XXXXXX.svg)download_illustrations.py- Script to download icons and EHLDs from Figma and validate themVERSION- Current release version numbericon-xml-generator.html- Use this link to access: (icon-xml-generator)
- Python 3 with
requests(pip install requests) - Docker (for the illustration-validator)
- A Figma personal access token — stored as a GitHub Actions secret (
FIGMA_TOKEN) for the GitHub Actions workflow, or set as an environment variable for local use
There are two ways to download and validate illustrations: via GitHub Actions (recommended) or locally via the command line.
This is the preferred method. Everything runs on GitHub's servers — no local setup required beyond having write access to the repo.
- Go to the Actions tab in the repository
- Select "Download illustrations from Figma" from the left sidebar (it may be pinned at the top)
- Click "Run workflow"
- Fill in the options (see below) and click the green "Run workflow" button
-
What to download — choose one of:
everything— downloads all EHLDs and all iconsehlds-only— downloads EHLD diagrams onlyicons-only— downloads icons only
-
Specific EHLDs to download — optional. If you selected
ehlds-onlyand only want to update certain diagrams, enter their IDs here space-separated (e.g.R-HSA-1234567 R-HSA-9876543). Leave blank to download all EHLDs. -
Specific icons to download — optional. If you selected
icons-onlyand only want to update certain icons, enter their IDs here space-separated (e.g.R-ICO-012345 R-ICO-012346). Leave blank to download all icons.
Note: The specific ID fields are always visible but only take effect when
ehlds-onlyoricons-onlyis selected.
Use this when preparing a new release and you want to pull everything fresh from Figma.
- Make sure you are running the workflow from main (default)
- Select
everything - Leave both specific ID fields blank
- Click Run workflow
A new branch called figma-download-YYYY-MM-DD-HHMM will be created automatically with all the downloaded files. Validation runs automatically after the download. Once you're happy, open a pull request from that branch to main.
Use this when an illustrator has updated a specific file in Figma and you just want to pull that one change without re-downloading everything.
- If a download branch already exists (e.g.
figma-download-2026-03-13-1603), select it from the "Use workflow from" dropdown — this will update files directly on that branch instead of creating a new one - If starting fresh, leave it on main and a new branch will be created
- Select
ehlds-onlyoricons-only - Enter the specific ID(s) in the relevant field
- Click Run workflow
Only the specified files will be updated — everything else on the branch stays untouched.
- If validation passed → open a pull request from the download branch to main. The validator will run again automatically on the PR as a final check before merging.
- If validation failed → the branch still exists. Fix the issue (e.g. drag a missing XML file into the
icons/folder on GitHub), then manually re-run the "Validate illustrations" workflow on that branch from the Actions tab.
Once the PR is merged into main, files are automatically uploaded to S3.
Use this if you prefer to run the download script directly on your machine.
pip install requests
export FIGMA_TOKEN="your_figma_token"On Windows (PowerShell):
pip install requests
$env:FIGMA_TOKEN = "your_figma_token"# Download everything (icons + EHLDs) and validate
python3 download_illustrations.py
# Icons only
python3 download_illustrations.py --icons
# EHLDs only
python3 download_illustrations.py --ehlds
# Download without validating
python3 download_illustrations.py --skip-validation
# Download specific EHLDs only
python3 download_illustrations.py --ehlds --only R-HSA-1234567 R-HSA-9876543
# Download specific icons only
python3 download_illustrations.py --icons --only-icons R-ICO-012345 R-ICO-012346After running, create a new branch, commit the changes, push, and open a pull request to main.
- Connects to the Figma API and finds all components/frames on the "Export" page
- Exports icons (
R-ICO-*) and EHLD diagrams (R-HSA-*) as SVGs - Clears existing SVGs and saves the new ones (icon XML metadata files are preserved)
- Runs the illustration-validator Docker container to validate:
- Icons: XML metadata (categories, references, curator info)
- EHLDs: SVG structure (BG, LOGO, REGION/OVERLAY groups)
Each icon has a corresponding XML metadata file (R-ICO-XXXXXX.xml) containing categories, curator/designer info, descriptions, and database references. These are stored alongside the SVGs in the icons/ directory.
To create new XML metadata files, use the Icon XML Metadata Generator (see below).
icon-xml-generator.html is a self-contained HTML tool for generating icon XML metadata files. Open it in a browser — no build tools or dependencies required.
- Category selection — loaded from the illustration-validator
categories.txt - Curator search — searches the Reactome Content Service for people by name, auto-fills ORCID
- Designer info — pre-filled with defaults (Cristoffer Sevilla)
- Reference databases — dropdown loaded from
references.txt, with UniProt ID validation - Synonyms — add/remove as needed
- Live XML preview — updates as you fill in the form
- Download — saves the XML file with the correct filename
- Open
icon-xml-generator.htmlin a browser, or use this link to access: (icon-xml-generator) - Enter the icon identifier (e.g.
R-ICO-012345) - Select a category, search for a curator, and fill in the remaining fields
- Add references and synonyms as needed
- Click Download XML to save the file
- Move the downloaded
.xmlfile into theicons/directory