Genomic data visualization retrieval for authoring with multimodality
Geranium is a multimodal retrieval system that helps researchers efficiently find genomics visualization examples using image, text, or specification-based queries. Search results function as adaptable templates/scaffolds that researchers can modify with their own data and design preferences.

-
Flexible query approaches: Choose your preferred search method - example images, natural language queries, or partial Gosling specification queries for precise visualization retrieval
-
Adaptable visualization scaffolds: Search results function as modifiable templates, not just static examples
-
Integrated live editor: Edit and customize retrieved visualizations directly within the application
-
Triplet output: Each resulting visualization is returned as a triplet of image, text, and its corresponding Gosling specification
-
Diverse Collection: The collection spans single-view to multi-view visualizations for specialized genomic applications like epigenomics and structural variation analysis


The application consists of two components: a server and a client that need to be run separately.
-
Navigate to the server directory:
cd server
-
Create and activate a Python virtual environment:
python3 -m venv .venv source .venv/bin/activate
-
Install the required dependencies:
python3 -m pip install -r requirements.txt
Alternatively, if using uv package manager:
uv pip install -r requirements.txt
-
Start the server:
flask --app app.py run
The server will start on http://localhost:5000 by default.
-
Open a new terminal and navigate to the client directory:
cd client
-
Install the necessary dependencies:
npm install
-
Start the client application:
npm run dev
Once started, the client will be available at http://localhost:5173/
After both the server and client are running, open your browser and navigate to http://localhost:5173/ to start using Geranium.
-
Make sure the server is running before accessing the client.
-
The client will attempt to interact with the backend hosted by Flask on its default port.
Contributions are welcome! If you'd like to contribute, please open an issue or submit a pull request.