latest news

Distractions and amusements, with a sandwich and coffee.

listen; there's a hell of a good universe next door: let's go.
•
• go there
• more quotes

On March 14th celebrate `\pi` Day. Hug `\pi`—find a way to do it.

For those who favour `\tau=2\pi` will have to postpone celebrations until July 26th. That's what you get for thinking that `\pi` is wrong. I sympathize with this position and have `\tau` day art too!

If you're not into details, you may opt to party on July 22nd, which is `\pi` approximation day (`\pi` ≈ 22/7). It's 20% more accurate that the official `\pi` day!

Finally, if you believe that `\pi = 3`, you should read why `\pi` is not equal to 3.

For the 2014 `\pi` day, two styles of posters are available: folded paths and frequency circles.

The folded paths show `\pi` on a path that maximizes adjacent prime digits and were created using a protein-folding algorithm.

The frequency circles colourfully depict the ratio of digits in groupings of 3 or 6. Oh, look, there's the Feynman Point!

Download the HP lattice simulation binary. You'll need one of the three 2D methods — I used `rem2dm`

, which does local and pull moves. If you'd like to learn more about the algorithm, read the publication.

A replica exchange Monte Carlo algorithm for protein folding in the HP model. Chris Thachuk, Alena Shmygelska and Holger H Hoos, BMC Bioinformatics 2007, 8:342 (17 Sep 2007).

Download the batch file for 64- or 768-digit folding.

When you run the 64-digit simulation, you're likely to find a path with `E=-23`

, which is the lowest energy I've been able to sample. On my Intel Xeon E5540 (2.53 GHz) it takes anywhere from 1-30 seconds to find a `E=-23`

path (there are many possible paths at this energy), depending on the random seed. Here's the output of a typical run of the 64-digit folding simulation

> rem2dm -seq=hppphphphhhpphphhhppphpphhphhhphphppppphppphpphhhpphphpphpppphph -maxT=220 -numLocalSteps=500 -eng=100 -maxRunTime=60 -traceFile=pi.64 -minT=160 -expID=pi.64 -numReps=10 REMC-HP2D-M Begin Simulation 0.01: Current Best Solution: -8 0.01: Current Best Solution: -10 0.01: Current Best Solution: -13 0.02: Current Best Solution: -15 0.03: Current Best Solution: -16 0.03: Current Best Solution: -17 0.04: Current Best Solution: -18 0.04: Current Best Solution: -19 0.16: Current Best Solution: -20 0.27: Current Best Solution: -21 0.69: Current Best Solution: -22 36.23: Current Best Solution: -23 Real time: 120 ggslrrsrllssrrlrrllsrrlrrlslslrrsrlssrrsllrslrrlrsllsrsrrlsrssrs p--h--p | | h--h h--p--p--p | | p--p h H h--p--p | | | | | p--h h--h--p p p--p | | | p--p--h h--p p--p p | | | | | h--h h h--p--h h--p | | | p--h h h--p--H h--p | | | | p--p p p--h--h | | p p--h--p | | p--p--h h | | p--p End Simulation

If you want to apply this to different number (e.g.
φ
or
e
), you'll need to replace the digits with either `p`

or `h`

. Remember, the simulation will try to group the `h`

's together. You can download 1,000,000 of
π
,
φ
and
e
.

The best path I could find for 768 digits is one with `E=-223`

. In 1000s of simulations this solution came up only once. I also saw one path at `E=-222`

. After that, there were many solutions at each of the less optimal energy levels.

If you manage to find a better one, let me know right away!

If you obtain a segmentation fault,

> ./rem2dlm REMC-HP2D-LM Begin Simulation Real time: 0 Segmentation fault

don't panic just yet. The folding binaries don't do a lot of error checking, so you have to get the input parameters correct.

For example, if you do not include the `-eng`

parameter, the code will segfault.

Try one of the batch files above (64 digit batch file, 768 digit batch file) or the following simple job

> bin/rem2dm -seq=hhpppphhhhpppphh -maxRunTime=5 -eng 10 REMC-HP2D-M Begin Simulation 3.13877e-17: Current Best Solution: -2 5.49284e-17: Current Best Solution: -3 1.0201e-16: Current Best Solution: -4 1.33398e-16: Current Best Solution: -5 Real time: 5 ggrllslsssrllsls p--p--p | | h h--p | | H h | H h | | p--h h | | p--p--p

If this segfaults, then you'll need to recompile the code (see below).

Precompiled binaries are available for download directly: rem2dm, rem2dlm, rem2dpm, rem3dm, rem3dlm, rem3dpm.

If these don't work on your system, you need to recompile them. Download the the protein folding code and see INSTALL.txt for compilation instructions.

*Science. Timeliness. Respect.*

Read about the design of the clothing, music, drinks and art for the Genome Sciences Center 20th Anniversary Celebration, held on 15 November 2019.

As part of the celebration and with the help of our engineering team, we framed 48 flow cells from the lab.

Each flow cell was accompanied by an interpretive plaque explaining the technology behind the flow cell and the sample information and sequence content.

*The scientific process works because all its output is empirically constrained.*

My chapter from The Aesthetics of Scientific Data Representation, More than Pretty Pictures, in which I discuss the principles of data visualization and connect them to the concept of "quality" introduced by Robert Pirsig in Zen and the Art of Motorcycle Maintenance.

Discover Cantor's transfinite numbers through my music video for the Aleph 2 track of Max Cooper's Yearning for the Infinite (album page, event page).

I discuss the math behind the video and the system I built to create the video.

*Everything we see hides another thing, we always want to see what is hidden by what we see.
—Rene Magritte*

A Hidden Markov Model extends a Markov chain to have hidden states. Hidden states are used to model aspects of the system that cannot be directly observed and themselves form a Markov chain and each state may emit one or more observed values.

Hidden states in HMMs do not have to have meaning—they can be used to account for measurement errors, compress multi-modal observational data, or to detect unobservable events.

In this column, we extend the cell growth model from our Markov Chain column to include two hidden states: normal and sedentary.

We show how to calculate forward probabilities that can predict the most likely path through the HMM given an observed sequence.

Grewal, J., Krzywinski, M. & Altman, N. (2019) Points of significance: Hidden Markov Models. *Nature Methods* **16**:795–796.

Altman, N. & Krzywinski, M. (2019) Points of significance: Markov Chains. *Nature Methods* **16**:663–664.

My cover design for Hola Mundo by Hannah Fry. Published by Blackie Books.

Curious how the design was created? Read the full details.

*You can look back there to explain things,
but the explanation disappears.
You'll never find it there.
Things are not explained by the past.
They're explained by what happens now.
—Alan Watts*

A Markov chain is a probabilistic model that is used to model how a system changes over time as a series of transitions between states. Each transition is assigned a probability that defines the chance of the system changing from one state to another.

Together with the states, these transitions probabilities define a stochastic model with the Markov property: transition probabilities only depend on the current stateâ€”the future is independent of the past if the present is known.

Once the transition probabilities are defined in matrix form, it is easy to predict the distribution of future states of the system. We cover concepts of aperiodicity, irreducibility, limiting and stationary distributions and absorption.

This column is the first part of a series and pairs particularly well with Alan Watts and Blond:ish.

Grewal, J., Krzywinski, M. & Altman, N. (2019) Points of significance: Markov Chains. *Nature Methods* **16**:663–664.