cucapra / cucapra/pollen

New GFA operator: `lace`

Open
#236 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
45
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Here is another pre-existing GFA operator that we could add to FlatGFA! It's `impg lace`, described in [the impg README][r]:

```
# Combine multiple GFA files (auto-detects format)
impg lace -f file1.gfa file2.gfa file3.gfa -o combined.gfa
```

The `impg lace` command can combine multiple GFA files into one. It can also do other things (including handling [VCF][] files), but let's ignore that. We would implement this as a transformation on FlatGFA data structures.

The to-do list for this subproject would be identical to every other "let's add a new operator" effort:

* [ ] Play with the existing tool to understand the specification. Write it out in natural language.
* [ ] Add a reference implementation to `slow-odgi`. Add differential tests to compare the behavior to the existing tool.
* [ ] Implement the core functionality in FlatGFA.
* [ ] Add an `fgfa` subcommand to expose the functionality on the command line. Extend the differential tests to now compare all three implementations.
* [ ] Compare the performance between the three implementations, and possibly find stuff to optimize in the FlatGFA implementation.
* [ ] Add the function to the Python bindings.

[r]: https://github.com/pangenome/impg#lace
[vcf]: https://en.wikipedia.org/wiki/Variant_Call_Format

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked impg README and experiment with `impg lace` to write down its behavior for combining GFA files. Then add a reference implementation in `slow-odgi`, implement the transformation in FlatGFA, expose it through an `fgfa` subcommand, and extend differential tests across the implementations. Done also requires performance comparison and Python bindings.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
bioinformatics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.