The 1000 Genomes Project, reanalyzed: A new analytical baseline for human genomics
The Illumina bioinformatics team reanalyzed the 1000 Genomes Project to establish a new analytical baseline for common human genetic variation.
Recent content on Joshua Cook
The Illumina bioinformatics team reanalyzed the 1000 Genomes Project to establish a new analytical baseline for common human genetic variation.
My trip report from backpacking and fishing in the Golden Trout Wilderness in the Sierra Nevada with a friend from graduate school.
Working in a ‘uv’ Workspace brings complication and overhead, but here I provide four real-life use cases that this mono-repo style makes more manageable.
I document my first trial run of a non-trivial agent with a multi-step task. The aim of the project is to develop an AI agent to assist in preparing for an academic journal club. In this initial run, I explore the DeepAgents library’s capabilities by making a simple request to download a journal article and convert it to Markdown format.
This is the beginning of what I hope will be a series of posts about using the DeepAgents library to build powerful AI agents. This posts describes how to get started running a simple research agent locally on a MacBook.
My thoughts after one week of thoroughly using Cursor AI coding environment on real projects at work.
A project at work to re-analyze the 1000 Genomes Project individuals and trios with the latest version of DRAGEN.
This is just a quick post about a way I found in graduate school to quickly delete large amounts of data.
Between 2025 and 2026, I read the original James Bond series by Iam Fleming and then watched the canonical movie series. These are my thoughts and rankings of each series.
Reviews of the books I read in 2026.
Python implementations for some of the algorithms covered by Algorithms in Bioinformatics by Wing-Kin Sung.
My experience taking on the Western Native Trout Challenge to explore the greatest waters in the country.
In persuit of the out-of-stock Colter Thorofare Net, I quickly created a GitHub Action to email me when it appeared back in-stock.
A quirky watch that flies under the radar.
Reviews of the books I read in 2025.
A review of my favorite books of the year and why I particularly enjoyed them.
This is a short post to introduce a tool for Jupyter notebooks called ‘watermark.’ I use it to add metadata about the execution environment to my notebooks with a simple IPython magic command.
A great way to clear my mind and challenge myself.
Adventure is out there!
Such a great excuse to be outside and interact with nature.
My admiration of history, brilliant engineering, and eye-catching design.
My admiration of history, brilliant engineering, and eye-catching design.
My reasons and methods for learning the Rust programming language.
Hobby project to try to identify books and authors on a bookshelf.
The steps I have taken to learn how to conduct Bayesian data analysis.
I love the variety of cacti and succulents, there is always more to learn and see.
This is a description of how I use Python in my data analyses, a system that has evolved over 7 years of a computational biology Ph.D. and working in industry.
Spreading out computation is made simple in Python with the built-in multiprocessing module. Yet, it is not immediately obvious how to effectively portray the completion status in a progress bar. In this brief tutorial, I demonstrate how to easily and accurately display the progress of a multiprocessing pool.
Everyone loves bread.
In the course of my work, I stumbled across a misconception I had about the Final type annotation. I perceived it to mean that the annotated object should not be mutated. In this post, I demonstrate how this is an incorrect understanding of the Final type hint and a better solution to get help from the type checker in these situations.
A story of how symptoms in my Pi-hole lead me to diagnose that my Raspberry Pi was under-powered.
A list of my favorite productivity, software development, and personal applications on my MacBook.
A simple tutorial for getting up and running with LLMs running on your local computer.
Reviews of the books I read in 2024.
A review of my favorite books of the year and why I particularly enjoyed them.
Pushing Rust projects to Deta can require cross-compiling or timeout during the build process. Compiling on a Linux runner on GitHub Actions and pushing the artifact can solve both of these issues.
A simple introduction to generic type hints in Python and how to use them in classes.
This links to my repository of #TidyTuesday submissions. This is a series of notebooks and scripts that analyze a different dataset each week where I experiment with various modeling and data visualization techniques.
Reviews of the books I read in 2023.
A review of my favorite books of the year and why I particularly enjoyed them.
I provide a simple example of a Dirichlet regression in PyMC. This form of generalized linear model is appropriate when modeling proportions of multiple groups, that is, when modeling a collection of positive values that must sum to a constant. Some common examples include ratios and percentages.
The NCI Ras Initiative’s Ras Pathway 2.0 exposed as a NetworkX object.
Tumoroscope , a generative model of spatial transcriptomics clonality, implemented in PyMC.
Automatically download and parse research articles then summarize them with various ML and AI models.
I experimented with different structures for multi-level and hierarchical splines in PyMC, including using a multivariate normal prior distribution over the spline parameters.
Does the warning ‘Using NumPy C-API based implementation for BLAS functions’ from Theano when using PyMC3 affect the performance of MCMC?
Modeling the standard curve of a standard dilution experiment with Stan as presented in Bayesian Data Analysis by Gelman et al .
My simple application to put oft copied text in easy reach in my Mac’s menu bar.
How to support type hints of the dunder methods on your subclass of the built-in Python list using function overloading .
A step-by-step tutorial on how to get a powerful backend system up and running on Digital Ocean.