RSSAmplifier

Blog

Joshua Cook

Recent content on Joshua Cook

joshuacook.netlify.appRSS feed ↗94 posts

Latest posts

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.

Backpacking in the Golden Trout Wilderness

My trip report from backpacking and fishing in the Golden Trout Wilderness in the Sierra Nevada with a friend from graduate school.

Four use cases for 'uv' Workspaces

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.

DeepAgents: Testing a journal club agent

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.

DeepAgents: Getting Started

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.

One week with Cursor

My thoughts after one week of thoroughly using Cursor AI coding environment on real projects at work.

DRAGEN re-analysis of 1000 Genomes Project

A project at work to re-analyze the 1000 Genomes Project individuals and trios with the latest version of DRAGEN.

Faster file deletion with rsync

This is just a quick post about a way I found in graduate school to quickly delete large amounts of data.

James Bond

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.

2026 Book Reviews

Reviews of the books I read in 2026.

Python implementations for <i>Algorithms in Bioinformatics</i>

Python implementations for some of the algorithms covered by Algorithms in Bioinformatics by Wing-Kin Sung.

Western Native Trout Challenge

My experience taking on the Western Native Trout Challenge to explore the greatest waters in the country.

Automating the periodic checking of a product Out-of-Stock

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.

Marathon SS-GPM

A quirky watch that flies under the radar.

2025 Book Reviews

Reviews of the books I read in 2025.

Favorite books of 2024

A review of my favorite books of the year and why I particularly enjoyed them.

Adding execution environment metadata to a Jupyter notebook with 'watermark'

This is a short post to introduce a tool for Jupyter notebooks called &lsquo;watermark.&rsquo; I use it to add metadata about the execution environment to my notebooks with a simple IPython magic command.

Running

A great way to clear my mind and challenge myself.

Backpacking

Adventure is out there!

Fishing

Such a great excuse to be outside and interact with nature.

Watches

My admiration of history, brilliant engineering, and eye-catching design.

Watches

My admiration of history, brilliant engineering, and eye-catching design.

Learning the Rust programming

My reasons and methods for learning the Rust programming language.

Bookshelf Scanner

Hobby project to try to identify books and authors on a bookshelf.

Bayesian Data Analysis

The steps I have taken to learn how to conduct Bayesian data analysis.

Cacti & succulents

I love the variety of cacti and succulents, there is always more to learn and see.

How I use Python to organize my data analyses

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.

Using a progress bar while multiprocessing in Python

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.

Bread baking

Everyone loves bread.

Caution when using Python's `Final` type hint on mutable objects.

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.

Diagnosing my Pi-hole's symptoms

A story of how symptoms in my Pi-hole lead me to diagnose that my Raspberry Pi was under-powered.

Favorite apps on my Mac

A list of my favorite productivity, software development, and personal applications on my MacBook.

Quickstart for playing with LLMs locally

A simple tutorial for getting up and running with LLMs running on your local computer.

2024 Book Reviews

Reviews of the books I read in 2024.

Favorite books of 2023

A review of my favorite books of the year and why I particularly enjoyed them.

Build and push a Rust project to Deta on GitHub Actions

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.

Leveraging generic type hints of classes in Python

A simple introduction to generic type hints in Python and how to use them in classes.

Tidy Tuesday

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.

2023 Book Reviews

Reviews of the books I read in 2023.

Favorite books of 2022

A review of my favorite books of the year and why I particularly enjoyed them.

Dirichlet Regression with PyMC

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.

nciraspw

The NCI Ras Initiative&rsquo;s Ras Pathway 2.0 exposed as a NetworkX object.

tumoroscope-pymc

Tumoroscope , a generative model of spatial transcriptomics clonality, implemented in PyMC.

Comparing ML/AI summarizations of papers

Automatically download and parse research articles then summarize them with various ML and AI models.

Experimenting with multi-level and hierarchical splines in PyMC

I experimented with different structures for multi-level and hierarchical splines in PyMC, including using a multivariate normal prior distribution over the spline parameters.

PyMC3 MCMC performance with and without Theano's NumPy BLAS warning (updated with PyMC v4 comparison!)

Does the warning &lsquo;Using NumPy C-API based implementation for BLAS functions&rsquo; from Theano when using PyMC3 affect the performance of MCMC?

Non-linear model of serial dilutions with Stan

Modeling the standard curve of a standard dilution experiment with Stan as presented in Bayesian Data Analysis by Gelman et al .

SwiftBar plugin for storing text snippets

My simple application to put oft copied text in easy reach in my Mac&rsquo;s menu bar.

Type hinting a list subclass in Python with function overloading

How to support type hints of the dunder methods on your subclass of the built-in Python list using function overloading .

Setting up Appwrite on DigitalOcean

A step-by-step tutorial on how to get a powerful backend system up and running on Digital Ocean.