Zeqian Li's Avatar

Zeqian Li

@zeqianli

Senior Bioinformatics Scientist @BillionToOne. Formerly Seppe Kuehn Lab (UChicago)

71
Followers
32
Following
21
Posts
06.04.2025
Joined
Posts Following

Latest posts by Zeqian Li @zeqianli

Genome Browser FAQ

It supports Ns (genome.ucsc.edu/FAQ/FAQforma...), but I can see it being problematic when more letters are needed. But (a) it seems fixable given how long it's been around? (b) A good proportion of research is aligning short reads to reference DNA so those applications could have been more efficient

15.09.2025 16:54 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I wonder why the 2bit format wasn't more popular. It's been around for a while. It's fantastic for reference genome random access in tgv.

15.09.2025 16:30 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

tgv 0.1.0 release: github.com/zeqianli/tgv
- Rich CIGAR and base visualization
- Allele frequency visualization
- VCF and BED file support
- Mouse dragging and hovering
- Filter alignment

Now 90% of what I need from IGV can be done in the terminal.

Some interesting behind-the-scenes:

07.09.2025 23:47 ๐Ÿ‘ 11 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

If you want to learn Rust, contributing to tgv is a great way! A genome viewer consists of many small, isolated components. Many improvements need <10 lines of code change. You can find them by searching "FIXME" comments. Let's make open source better together! bsky.app/profile/robp...

07.09.2025 23:47 ๐Ÿ‘ 8 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I learned so many things with tgv. Writing a mini-interpreter is one of them. Now you can filter reads by:

FILTER BASE(1234)=C

It will be extended to a SQL-like mini language:

ORDER by STRAND WHERE BASE(123)=C AND MAPQ>=30

The parse is built and the backend is under development.

07.09.2025 23:47 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

The allele frequency stacked-bar is trickier: we need to calculate how stacks overlap and use the foreground/background trick + โ–ˆโ–‡โ–†โ–…โ–„โ–ƒโ–‚โ– characters. This became a sweet ratatui widget: github.com/ratatui/rata...

The half-block trick is yet to be implemented to alignments. Contribution is open!

07.09.2025 23:47 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

The minimal resolution of terminal graphics is one character. To visualize more information, we use Unicode tricks:

At 2x zoom, to render 2 bases per cell, we use the half-block trick: render the "โ–Œ" Unicode character with the foreground of first base color and the background being the second base.

07.09.2025 23:47 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

tgv 0.1.0 release: github.com/zeqianli/tgv
- Rich CIGAR and base visualization
- Allele frequency visualization
- VCF and BED file support
- Mouse dragging and hovering
- Filter alignment

Now 90% of what I need from IGV can be done in the terminal.

Some interesting behind-the-scenes:

07.09.2025 23:47 ๐Ÿ‘ 11 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Come on Claude, I give you one more chance. This is just a simple refactoring. I wrote instructions in comments. I'll write a good prompt. I'll use your PRO model with MAX reasoning. You got it. No mistake.

> Deletes all the code

05.09.2025 17:19 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Nom -- how to raise an error / convert other errors to nom errors? Funny how 9 months later I googled the exact question and found my own question. I still don't know the answer to this, and none of the nom exampes (as far as I can see) show how to do this. The id...

These are needed by another library and not my enums ๐Ÿ˜‚ I did find some helper function tho users.rust-lang.org/t/nom-how-to...

27.08.2025 14:38 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

In this case it's a bunch of custom enums in the library unfortunately :(

27.08.2025 13:41 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

Types are cool but how do I explain this

27.08.2025 03:39 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I think ai is most helpful at making learning less scary (not sure I would have learned rust as fast as I did without help). But the actual learning still needs to happen.

16.08.2025 03:02 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

My day job is mostly Python - @pola.rs is expressive enough that typing out exactly what I want is not much more keystrokes than asking AI. Hallucinations are getting so bad that it's hurting the science. The new Python type checkers (pyrefly or ty) are much bigger productivity boost.

16.08.2025 01:53 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Cigar visualization improvements by zeqianli ยท Pull Request #65 ยท zeqianli/tgv Read alignment rendering re-write Now supports base mismatch, deletion, and insertion rendering. Also corrected lots of vibe-coded mistakes before. The rendering contexts are calculated at read loa...

These two weeks was an epic refactor to get rid of Claude's vibe-coded mess. I finally leaned how databases and requests actually work in Rust. It's so simple and nice.

github.com/zeqianli/tgv...

16.08.2025 01:25 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

tgv is becoming so good. Next release gonna be epic.

On a side note, I stopped using AI all together a month ago (except occasionally turning on tabbing for boilerplate). I'm so much happier. Coding is much more flowy and I'm learning a ton. Vim motion boosts productivity way more than any AI.

16.08.2025 01:18 ๐Ÿ‘ 15 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Anyone uses marimo notebooks regularly? What do you use it for?

24.07.2025 18:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
GitHub - zeqianli/tgv: Explore 5,000+ genomes in the terminal. Light, blazing fast ๐Ÿš€, vim-motion. Explore 5,000+ genomes in the terminal. Light, blazing fast ๐Ÿš€, vim-motion. - zeqianli/tgv

New tgv release: local cache!

tgv download hg38

Download UCSC reference genomes to a local sqlite db for much faster browsing. Awesome Rust tools (twobit, bigtools) made this simple.

github.com/zeqianli/tgv

19.07.2025 23:37 ๐Ÿ‘ 29 ๐Ÿ” 8 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This is still at an early stage. This is the best I got ๐Ÿ˜…: github.com/zeqianli/tgv...

28.05.2025 17:34 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I started tgv to learn Rust and building it has been unbelievably fun! If you wanna pick up a super fast and fun programming language, tgv is open for contribution! There aren't many bioinformatics tools built entirely by the community. If tgv can become one, I'll be so psyched

28.05.2025 05:57 ๐Ÿ‘ 68 ๐Ÿ” 20 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1

Thanks for posting! tgv is still at a very early stage so expect bugs :)

28.05.2025 05:46 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Congratulations!

17.05.2025 15:08 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0