Skip to content

gosling-lang/geranium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

247 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geranium

geranium logo
Geranium

Genomics Visualization Retrieval for Authoring with Multimodality

Citation

Publication: H. N. Nguyen, S. L'Yi, T. C. Smits, S. Gao, M. Zitnik and N. Gehlenborg, "Geranium: Multimodal Retrieval of Genomics Data Visualizations," in IEEE Transactions on Visualization and Computer Graphics, doi: 10.1109/TVCG.2026.3683429.

Preprint on OSF.

@article{nguyen2026multimodal,
  author={Nguyen, Huyen N. and L'Yi, Sehi and Smits, Thomas C. and Gao, Shanghua and Zitnik, Marinka and Gehlenborg, Nils},
  journal={IEEE Transactions on Visualization and Computer Graphics}, 
  title={Geranium: Multimodal Retrieval of Genomics Data Visualizations}, 
  year={2026},
  volume={},
  number={},
  pages={1-17},
  doi={10.1109/TVCG.2026.3683429}}

Overview

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.

image

Features

  • 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

image image

Installation

The application consists of two components: a server and a client that need to be run separately.

Server Installation

  1. Navigate to the server directory:

    cd server
    
  2. Create and activate a Python virtual environment:

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. Install the required dependencies:

    python3 -m pip install -r requirements.txt
    

Alternatively, if using uv package manager: uv pip install -r requirements.txt

  1. Start the server on port 5001:

    flask --app app.py run --debug --port 5001
    

The server will start on http://localhost:5001.

Client Installation

  1. Open a new terminal and navigate to the client directory:

    cd client
    
  2. Install the necessary dependencies:

    npm install
    
  3. Start the client application:

    npm run dev
    

Once started, the client will be available at http://localhost:5173/.

Usage

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.

Troubleshooting

If the client does not run properly, you may need to update your Node.js and/or Vite versions.

  • Current Node.js version used: v22.8.0

Check your Node.js version

node -v

If you are using an older version, consider updating Node.js.

Reinstall dependencies

Sometimes deleting the node_modules folder and reinstalling dependencies can resolve issues:

rm -rf node_modules
npm install

Update Vite

To update Vite to the latest version, run:

npm update vite

Contributing

Contributions are welcome! If you'd like to contribute, please open a new issue or submit a pull request. Please read CONTRIBUTING.md to find more guidelines.

Releases

No releases published

Packages

 
 
 

Contributors