Pollen
generating hardware accelerators for pangenomic graph queries
Install / Use
/learn @cucapra/PollenREADME
Accelerated Pangenome Graph Queries
Pollen is a nascent project to accelerate queries on pangenomic graphs. We are designing a graph-manipulating DSL that exposes functionality that pangenomicists care about. Our DSL will support graph queries in the vein of the odgi project. We will compile programs written in this DSL into fast query code. Eventually, we aim to generate custom hardware accelerators for these queries via the Calyx compiler.
There are several things in this repository:
- mygfa, a simple Python library for parsing, processing, and emitting GFA files. See its documentation.
- slow_odgi, a reference implementation of several GFA queries from the odgi tool using
mygfa. - FlatGFA, an experimental fast binary format for representing and analyzing GFA files. There are also Python bindings for this library; check out their documentation.
- A proof-of-concept Calyx-based hardware accelerator generator for a single GFA query (
odgi depth) and a data generator for this hardware.
mygfa and slow_odgi
The mygfa library is an extremely simple Python library for representing (and parsing and emitting) GFA files. It emphasizes clarity over efficiency. Use pip install mygfa to get started, and read the API documentation for details.
Similarly, slow_odgi is a set of GFA analyses based on mygfa; it's meant to act as a reference implementation of the much faster functionality in odgi. Check out the slow_odgi README for more details.
To set up both of them from this repository, try using uv:
$ uv run slow_odgi --help
Or, alternatively, you can set up and activate the environment manually:
$ uv sync
$ source .venv/bin/activate
$ slow_odgi --help
FlatGFA
FlatGFA is an efficient representation for GFA files. It is implemented in Rust and available with Python bindings and C bindings. The Python interface is on PyPI, so you can get started with:
$ pip install flatgfa
Then read the API documentation to see what's available. Or see the included example for a synopsis.
Credits
This is a project of the Capra lab at Cornell. The license is MIT.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
