🧬Jacob L Steenwyk's Avatar

🧬Jacob L Steenwyk

@jlsteenwyk

UC-Berkeley Postdoc🐻, Evomics Workshop Codirector🧬 prev Vanderbilt PhD, FutureHouse/Edison Scientific, Latch, MantleBio (acquired) 🌲 https://linktr.ee/jlsteenwyk πŸ“ https://jlsteenwyk.com/

7,577
Followers
1,969
Following
1,446
Posts
23.08.2023
Joined
Posts Following

Latest posts by 🧬Jacob L Steenwyk @jlsteenwyk

awesome work - congrats!

05.03.2026 21:26 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Great - happy to hear it worked! Please let me know if anything else comes up!

02.03.2026 15:36 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Can you email me your issue and I can try and help you resolve it?

02.03.2026 15:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

PhyKIT dev will be moving fast over the coming weeks so newer releases will be coming

02.03.2026 14:42 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thank you for your interest in these tools!

Bioconda usually has a temporal lag. Can you link to the conda version you are looking at?

Conda aside, the fastest solution would be to use β€˜pip install phykit’ to get the latest release, which, of course, can be done in a conda env

02.03.2026 14:42 πŸ‘ 0 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0
Post image

What if Claude got to pick the origin story of their name?

In brief, Claude would pick Claude Shannon - the father of information theory, a unicycle rider through Bell Labs, and proof that deep rigor and playful curiosity aren't opposites.

Precision meets delight

That's the vibe

02.03.2026 05:24 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Grateful to have been able to help someone by adding a new function to PhyKIT.

In v2.1.20, users can specify an occupancy threshold when creating a concatenation matrix.

jlsteenwyk.com/PhyKIT/usage...
bsky.app/profile/lati...

01.03.2026 21:40 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Thresholding option for create_concat Β· Issue #51 Β· JLSteenwyk/PhyKIT CΓ‘ssia Bitencourt kindly requests a thresholding option for the create_concat function that excludes species with insufficient representation. Add a 50% threshold Account for taxa in single-gene al...

Thank you for your request, @latincassia.bsky.social. The create_concat function now has a thresholding argument as of version 2.1.20
Docs: jlsteenwyk.com/PhyKIT/usage...
pypi release: pypi.org/project/phyk...

01.03.2026 21:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Thresholding option for create_concat Β· Issue #51 Β· JLSteenwyk/PhyKIT CΓ‘ssia Bitencourt kindly requests a thresholding option for the create_concat function that excludes species with insufficient representation. Add a 50% threshold Account for taxa in single-gene al...

Okay, this should be fairly straightforward. I created a GitHub issue so that I don't forget.
github.com/JLSteenwyk/P...

01.03.2026 17:41 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

This can be done. I have to ask a clarifying question, though.

Are you asking whether the user can skip a specific taxon (or taxa) when creating a concatenation matrix by specifying its name? Or, are you asking that an occupancy threshold be applied when creating a concatenation matrix?

01.03.2026 16:08 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Watching agents work on their own for hours at a time is so wild

28.02.2026 23:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

What would you like to see next?
bsky.app/profile/did:...

28.02.2026 20:23 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Related note: I am considering reorganizing the docs to revolve around what the user is doing - ie, function categories like alignment properties (length, GC content, etc), tree manipulation (root tree, prune tree, etc) - not by input type

Very open to user feedback on this
bsky.app/profile/jlst...

28.02.2026 20:04 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

PhyKIT v2.1.8 now supports phylogenetic signal testing - Blomberg's K and Pagel's lambda for continuous traits

Method was inspired and validated against phytools across 95 simulated datasets (r = 1.0 for K, r > 0.999 for lambda)

Docs: jlsteenwyk.com/PhyKIT/usage...

28.02.2026 19:43 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 2
Attached image

Attached image

Grateful to see the uptick in SubStack subscribers.

Currently posting weekly listicles on advances in bio-x-ai and biotech business happenings.

Will be adding more deep dives soon, especially around benchmarks and evaluations on AI performance.

Subscribe for free :) https://genomely.substack.com/

28.02.2026 16:01 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

That is an incredibly kind statement -- and I agree with 2/3rd of it, the field would look very different without Stamatakis and Mirarab!

I'm very happy to hear that PhyKIT is meeting your needs. If there are functions you would find useful, I'm all ears!

28.02.2026 15:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

will be rerunning some soon

https://github.com/JLSteenwyk/ClipKIT (2/2)

27.02.2026 18:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

ClipKIT will be expanding its trimming options and tuneability.

Users can expect growing flexibility and choice in how they run ClipKIT.

For those less interested in parameter exploration, the default will remain the best method based on the most recent benchmarks.

Speaking of benchmarks, I (1/2)

27.02.2026 18:10 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

One of my favorite features is running multiple study foregrounds at once and automatically obtaining a semantic similarity network from that analysis
bsky.app/profile/did:...

27.02.2026 17:58 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Recommendations and suggestions welcome

Docs: https://jlsteenwyk.com/gokit/
GitHub: https://github.com/JLSteenwyk/gokit (2/2)

27.02.2026 17:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Attached image

Attached image

Attached image

Attached image

Attached image

Attached image

GOKIT is a new tool for a mainstay analysis:
gokit conducts GO enrichment analysis w/ one clean CLI, native batch mode and network comparison, built-in plots, and deterministic outputs with run manifests

Just `gokit enrich` and you're done.

Simple. Easy. Agent ready. (1/2)

27.02.2026 17:52 πŸ‘ 8 πŸ” 2 πŸ’¬ 1 πŸ“Œ 1

Low-level piRNAs are generated from any abundant transcript, seeding recognition before ping-pong amplification kicks inβ€”shown across silkworms, flies, and mice.

26.02.2026 16:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

How does the piRNA system first recognize a new transposon or virus as foreign?

https://www.biorxiv.org/content/10.1101/2024.01.24.577019

26.02.2026 16:25 πŸ‘ 5 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

Having a blast casting multiple agents at once. It’s speeding up the planning phase and boosting agent capacity significantly

24.02.2026 19:50 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

ggpubfigs: https://github.com/JLSteenwyk/ggpubfigs
pypubfigs: https://github.com/JLSteenwyk/pypubfigs

24.02.2026 17:18 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

ggpubfigs and pypubfigs now include four new colorblind-friendly palettes.

These tools make it simple to create figures that everyone can visually access, helping you share your insights with a wider audience.

24.02.2026 17:18 πŸ‘ 5 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

observed in 57% replicates.

Single-tree ortholog assignments give you a clean answer but hide uncertainty. This bootstrap consensus approach makes that uncertainty visible and quantifiable. (3/3)

23.02.2026 22:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

phylogeny, I generated 1000 ufboot trees and found that 3 snap-ogs were present in 99-100% of ufboot replicates, indicating they were high-confidence subgroups. 2 snap-ogs were recovered in 89% and 85% replicates, suggesting moderate support. In contrast, one snap-og was fragile and was only (2/3)

23.02.2026 22:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Attached image

Attached image

One of my favorite functions in the latest version of OrthoSNAP is running it across bootstrap trees and getting a frequency score for every subgroup. Now you can see which snap-ogs (single-copy subgroups) are rock-solid and which ones fall apart under phylogenetic uncertainty

For the imaged (1/3)

23.02.2026 22:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Watch today be my last commit lol

23.02.2026 22:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0