Paul Harrison
banner
paulfharrison.bsky.social
Paul Harrison
@paulfharrison.bsky.social
Bioinformatician at Monash University, Melbourne, Australia.

I also use mastodon: @pfh@mastondon.online
https://mastodon.online/@pfh

My homepage is:
https://logarithmic.net/pfh/

On Twitter I was: @paulfharrison
Reposted by Paul Harrison
just added the MEGA TERMINAL CHEAT SHEET from "The Secret Rules of the Terminal" to our list of posters at wizardzines.com#posters
October 20, 2025 at 3:22 PM
Pondering k-Nearest Neighbor density estimation. There's some subtlety making the density smooth and integrate to 1. Here is a simple scheme:

- Assign each point a radius from the distance to its kth nearest neighbor.
- The density is the sum of a set of Gaussian splats with those radii.
October 11, 2025 at 7:35 AM
"... a fundamental question that often remains overlooked is whether or not model parameters can be confidently estimated from the available data."
August 26, 2025 at 9:33 AM
Reposted by Paul Harrison
Heatmap in ggplot2
yunuuuu.github.io/ggalign/ind...
I always use complexheatmap, but this seems to be a good alternative if you want to stay within the ggplot
August 6, 2025 at 1:45 PM
Happened to pick up "The Lancet Handbook of Essential Concepts in Clinical Research" (Schulz and Graves). A short read and surprisingly excellent. You can really tell that the authors have seen it all.

www.elsevierhealth.com.au/essential-co...
Essential Concepts in Clinical Research: 2nd edition | Kenneth Schulz | ISBN: 9780702073946 | Elsevier Australia Bookstore
This practical guide speaks to two audiences: those who read and those who conduct research. Clinicians are medical detectives by training. For each patient, they assemble clinical clues to establish ...
www.elsevierhealth.com.au
August 3, 2025 at 5:07 AM
uvx demakein

I've finally updated my wind instrument design program to Python 3. It only took me 10 years to get around to. I was pleased to find there is now a fairly solid python library for 3D boolean operations (manifold3d).

github.com/pfh/demakein
July 27, 2025 at 2:37 AM
grug brain bioinformatician not trust maximum a posteriori estimate. big brained bioinformatics shaman develop map estimate. danger! noise demon hide deeper in data! grug prefer count matrix. grug know what to do when have count matrix.
July 11, 2025 at 6:50 AM
Reposted by Paul Harrison
Excited to announce our first interactive article on sandbox.bio, about genomic ranges: sandbox.bio/concepts/gen...

Move & resize the ranges to see how that affects bedtools operations like merge and intersect in real time!
June 10, 2025 at 4:27 PM
Reposted by Paul Harrison
🚨 Exciting PhD Opportunities with MACSYS! The MACSYS team at Monash University is offering multiple fully funded #PhD scholarships for students eager to explore the cutting edge of computational biology, microbiology, and systems modelling.
👉More info/apply: macsys.org/monash-phd-s...
June 23, 2025 at 5:27 AM
Reposted by Paul Harrison
👩‍💻 We’re hiring! Lê Cao Lab at Uni Melbourne @mig-unimelb.bsky.social needs an R dev to power the next-gen of mixOmics 🚀
Love #RStats, #Bioconductor & multi-omics? Help expand mixOmics, run workshops & publish cutting-edge methods.
Apply: unimelb.wd105.myworkdayjobs.com/en-US/UoM_Ex...
June 23, 2025 at 10:20 PM
Reposted by Paul Harrison
📢 PostDoc opportunity in our Bioinformatics & Cellular Genomics lab at SVI! 🧬

You’d join a welcoming, supportive, and brilliant team.

Why not spend a few years in Melbourne and be part of something exciting?

Apply here: www.seek.com.au/job/84737876

#ScienceCareers #PostDoc #Bioinformatics
Research Officer - Bioinformatics Job in Fitzroy, Melbourne VIC - SEEK
Seeking a Postdoc to develop computational toolkits to enable large-scale studies of single-cell and spatial 'omics and statistical genetics
www.seek.com.au
June 16, 2025 at 7:07 AM
I continue to be astounded at the number of compositional data analysis packages that will happily report differential abundance of individual species.

Did they not understand the concept of compositional data? How is it possible to publish methods with this premise?
May 18, 2025 at 12:11 AM
Normalization and log transformation of log count data. Pseudocounts, library size adjustment, Centered Log Ratios (CLR), Variance Stabilizing Transformation, and all that. Many variations on a similar task. Here's something I haven't seen done:
May 3, 2025 at 8:55 PM
Random 2d Turing Machines make interesting patterns.

pointersgonewild.com/2012/12/31/t...
Turing Drawings
Turing Drawings
pointersgonewild.com
April 22, 2025 at 1:54 AM
An experimental design I've seen this three times in different contexts in the last couple of years. The RNA-Seq DE analysis turns out to be non-obvious:

You apply treatment X to one group of subjects and treatment
Y to another group.

You have samples from before and after the treatment.
April 16, 2025 at 5:07 AM
Reposted by Paul Harrison
🧵 PCA is everywhere in bioinformatics—but did you know it’s just SVD in disguise?

1/ If you've done bioinformatics, you've likely used PCA. But did you know Singular Value Decomposition (SVD) is at its core? Let’s break it down. 👇
April 2, 2025 at 1:45 PM
Happy little accidents...
March 9, 2025 at 1:44 AM
I'm really liking this course on generative diffusion models. They seem to have boiled many years of confusing development of ideas down to a simple approach.

diffusion.csail.mit.edu
March 8, 2025 at 8:42 AM
Monash University is considering the use of AI assisted assessment. Implementation planned to begin in semester 2 of this year.

www.monash.edu/learning-tea...
Programmatic Assessment and AI Review (PAAIR)
You are here:
www.monash.edu
March 5, 2025 at 12:23 AM
Comparison of optimization and sampling from a distribution defined by an energy function. I use a continuous version of the Ising model spin lattice energy.

First, optimization from a random initial state using gradient descent with momentum, using the SGD optimizer in PyTorch.
February 23, 2025 at 3:50 AM
I think I'm a little bit in love with the withr package in R.

Similar to "with" in Python, you can guarantee to properly clean up when using a resource such as a connection to a file, a temporary directory, or a temporary global setting change.

withr.r-lib.org
Run Code With Temporarily Modified Global State
A set of functions to run code with safely and temporarily modified global state. Many of these functions were originally a part of the devtools package, this provides a simple package with limited de...
withr.r-lib.org
February 13, 2025 at 2:28 AM
Reposted by Paul Harrison
Bash Strict Mode: Stop Silent Failures in Your Scripts 🧵
1/ Ever had a Bash script fail silently, leading to hours of debugging?
Bash doesn't fail by default—it keeps running even after errors. Here's how to fix it with strict mode. 👇
February 10, 2025 at 2:45 PM
I've been playing with a Langevin Dynamics sampler as an optimizer in PyTorch -- SGD with momentum and noise. It's a remarkably simple algorithm for sampling from a distribution (approximately). Should eliminate over-fitting, and can also be used for generative tasks.
February 10, 2025 at 10:40 PM
Reposted by Paul Harrison
Trying to bring some old family photos back to life with g.i.m.p and its truly amazing resynthesizer add-on created by @paulfharrison.bsky.social getting some pretty good results. Takes me a few hours per photo, but is super satisfying…
January 20, 2025 at 6:52 PM
Reposted by Paul Harrison
This is long overdue, but over the winter break we were finally able to write up our sgdGMF paper:
arxiv.org/abs/2412.20509

We present a stochastic gradient descent method that allows to efficiently and very quickly estimate latent factors for, e.g., dimensionality reduction of single-cell data
January 21, 2025 at 11:06 AM