Brent Pedersen's Avatar

Brent Pedersen

@brent-p

dad creativity in: genomics, bioinformatics and solving problems languages: rust, nim, python, go, c, bash, awk, js

390
Followers
274
Following
27
Posts
20.11.2024
Joined
Posts Following

Latest posts by Brent Pedersen @brent-p

I would guess that soon, every tool will have one of these. It is more interactive than just documentation and better than waiting for a grumpy maintainer to answer the same question in a github issue or personal email.

05.03.2026 23:39 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
ChatGPT - bedder help with bedder commands and python snippets

Feeding my markdown docs to this, then using it in anger shows where the docs need to be bolstered and provides a nice reference for users:
help.openai.com/en/articles/...

here's one for bedder: chatgpt.com/g/g-69a6027f...

05.03.2026 21:47 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

I had a similar, less principled way of doing this, but this does seem to work quite well after trying a couple of large changes with it: boristane.com/blog/how-i-u...
(I use codex, but same idea)

22.02.2026 20:10 ๐Ÿ‘ 7 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

AGENTS.md > skills

vercel.com/blog/agents-...

30.01.2026 03:48 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

it does support more than 2 sets of intervals, but now, a single --b-piece controls all of them. I'll have a look at this and your other comments. thank you!

29.01.2026 15:42 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

scratch that. better to use gemini-cli, turn on preview features and then get gemini 3.0 pro and flash for free for a decent amount each day.

23.01.2026 18:16 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

cerebras is so fast it makes the human <-> agent loop (or one-shot) very quick

and crush will also detect your GEMINI/OPENAI/OPENROUTER/CLAUDE env API vars as well

14.01.2026 00:22 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

crush coding agent with a free plan from cerebras using glm4.7 model is an easy way to start with coding cli tools.

inference-docs.cerebras.ai/support/rate...
github.com/charmbracele...

crush is static binary that detects your CEREBRAS_API_KEY. GLM 4.7 isn't as good as Opus, but it is very solid.

14.01.2026 00:21 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Preview
GitHub - brentp/htsvcf: lib for scripting vcf access from rust and node module for vcf access from js/ts lib for scripting vcf access from rust and node module for vcf access from js/ts - brentp/htsvcf

another reminder about htsvcf which allows either
1. rust library to support javascript expressions (filtering/modification) on variants from VCF/BCF
2. javascript (node/bun) library for reading/writing/modifying variants from vcf/bcf.
both very performant.
github.com/brentp/htsvcf

12.01.2026 17:44 ๐Ÿ‘ 8 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
AI Coding - Brent Pedersen Writing real software with AI coding tools

a post about how, with LLMs, I wrote a new set of libraries.
Wrapping htslib is my hello-world but doing it in rust to allow javascript expressions handled by V8 was more substantial project.

The tools and LLMs are now getting quite good:
brentp.github.io/latest/blog/...

let me know what you think

30.12.2025 16:42 ๐Ÿ‘ 11 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Calendar

my LLM-coded version of the single-page year calendar that's been going around. This one can be scripted with javascript to highlight cells, change the borders and texts. It also allows saving and sharing via url:
brentp.github.io/single-page-...

with code here:
github.com/brentp/singl...

28.12.2025 20:46 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

exactly! and with Plan mode in opencode (or architect in kilo code) this becomes even more mind-blowing

28.12.2025 14:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

so Opus 4.5 is excellent for coding. I've been using these LLMs for coding for a while and it felt like slow improvement with each new model and sometimes more work to guide the model. Opus 4.5 just works. It solves hard problems and has good taste.

Anyone else notice this?

28.12.2025 05:54 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

I'll write more about this later, but as an experiment in LLM coding (GPT-5.2 and Opus 4.5), I wrote a JS wrapper for rust-htslib to read/write modify VCFs:
www.npmjs.com/package/htsvcf
works on linux (x64/aarch64) and OSX.
brentp.github.io/htsvcf/lates...

22.12.2025 15:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Release Release v0.1.8 ยท quinlan-lab/bedder-rs Changes in v0.1.8 Downloads bedder-static-linux-x86_64: Static binary for Linux x86_64 (no dependencies required) bedder-static-macos-x86_64-python3.13: macOS x86_64 binary built with Python 3.13 ...

Get bedder v0.1.8 and r๐—ฒ๐—ฎ๐—ฑ ๐˜๐—ต๐—ฒ ๐—ฑ๐—ผ๐—ฐ๐˜‚๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐˜๐—ถ๐—ผ๐—ป here: github.com/quinlan-lab/...

We are looking for researchers to kick the tires, integrate bedder into their pipelines, and provide feedback on the Python functions, performance, and overall user experience! Please share and give us your feedback.

02.12.2025 02:28 ๐Ÿ‘ 11 ๐Ÿ” 6 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Intro to Bedder โ€“ The Quinlan Lab

We are thrilled to announce the first official release (v0.1.8) of #๐—ฏ๐—ฒ๐—ฑ๐—ฑ๐—ฒ๐—ฟ, the successor to one of our flagship tool, #๐—ฏ๐—ฒ๐—ฑ๐˜๐—ผ๐—ผ๐—น๐˜€! Based on ideas we conceived of long ago (!), this was achieved thanks to the dedication of Brent Pedersen.

1/n

02.12.2025 02:28 ๐Ÿ‘ 298 ๐Ÿ” 152 ๐Ÿ’ฌ 5 ๐Ÿ“Œ 11

thank you. I'll have a look next week!

21.11.2025 18:31 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

thanks Matt! Is this: docs.rs/aardvark-bio...
the entry point if I want to compare, e.g. 2 STR variants with slightly different positions to see if they are identical?
(Would be nice to have a quick example ๐Ÿ˜œ)

21.11.2025 17:56 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - PacificBiosciences/aardvark: A tool for sniffing out the differences in vari-Ants A tool for sniffing out the differences in vari-Ants - PacificBiosciences/aardvark

Aardvark?

github.com/PacificBiosc...

18.11.2025 17:40 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

yep! that's what I was thinking of. Thank you! (for software and pointer)

18.11.2025 18:26 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I vaguely recall seeing #bioinformatics tool that could compare variants (or set of variants) using haplotypes rather than simply normalize and check for equality. That murky description is about as specific as I can get. Any pointers? IIRC, it's not just a truth-set evaluation tool. Has API

18.11.2025 17:32 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

how do we feel about putting JSON in the INFO field of a VCF?

06.11.2025 23:03 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 6 ๐Ÿ“Œ 0
Preview
Vcfexpress: flexible, rapid user-expressions to filter and format VCFs AbstractMotivation. Variant Call Format (VCF) files are the standard output format for various software tools that identify genetic variation from DNA sequ

This is very cool work and I'm happy to see it published. Vcfexpress by @brent-p.bsky.social and @aaronquinlan.bsky.social allows building (essentially) arbitrary VCF filters expressed in lua code with parsing & eval powered by rust!

academic.oup.com/bioinformati...

06.03.2025 15:05 ๐Ÿ‘ 26 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Preview
vcfexpress/examples at main ยท brentp/vcfexpress expressions on VCFs. Contribute to brentp/vcfexpress development by creating an account on GitHub.

vcfexpress applies simple user expressions variants in a VCF.
it can replace one-off python scripts to manipulate VCFs, likely with better performance.

we'd like to collect use-cases here: github.com/brentp/vcfex...

if you have a use-case and want some pointers, open an issue

04.02.2025 17:05 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

vcfexpress is a command-line tool built in rust that lets users apply lua expressions to modify or filter a vcf from the command-line
github.com/brentp/vcfex...
new release with better docs github.com/brentp/vcfex...
and examples github.com/brentp/vcfex...

28.01.2025 17:45 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

awesome! it'll take me some time to digest this but this gives me a great start. thank you!

27.01.2025 17:48 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

and thanks for your offer to help!

27.01.2025 17:17 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
error[E0599]: the method `indexed_records` exists for struct `Query<'_, &mut Reader<BufReader<File>>>`, but its trait bounds were not satisfied
   --> src/lib.rs:374:27
    |
374 |                 let q = q.indexed_records(&header).filter_by_region(&region);
    |                           ^^^^^^^^^^^^^^^ method cannot be called on `Query<'_, &mut Reader<BufReader<File>>>` due to unsatisfied trait bounds
    |
    = note: the following trait bounds were not satisfied:
            `&mut noodles::noodles_bgzf::Reader<BufReader<File>>: noodles::noodles_bgzf::io::BufRead`
            `&mut noodles::noodles_bgzf::Reader<BufReader<File>>: noodles::noodles_bgzf::io::Seek`

error[E0599]: the method `indexed_records` exists for struct `Query<'_, &mut Reader<BufReader<File>>>`, but its trait bounds were not satisfied --> src/lib.rs:374:27 | 374 | let q = q.indexed_records(&header).filter_by_region(&region); | ^^^^^^^^^^^^^^^ method cannot be called on `Query<'_, &mut Reader<BufReader<File>>>` due to unsatisfied trait bounds | = note: the following trait bounds were not satisfied: `&mut noodles::noodles_bgzf::Reader<BufReader<File>>: noodles::noodles_bgzf::io::BufRead` `&mut noodles::noodles_bgzf::Reader<BufReader<File>>: noodles::noodles_bgzf::io::Seek`

I think it might require more interactive help, but here's the error. I understand why, but not how to architect my code to fix.

27.01.2025 17:17 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I am looking for a mentor for the rust programming language. My latest issue is with trait bounds (github.com/brentp/simpl...) but I have a few things I generally hit. I can compensate with $$ or interesting problems. :)

Please share with relevant people and feel free to DM.

27.01.2025 15:42 ๐Ÿ‘ 4 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0