Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca - contact me Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca on Twitter Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca - Lumondo Photography Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca - Pi Art Martin Krzywinski / Genome Sciences Center / mkweb.bcgsc.ca - Hilbertonians - Creatures on the Hilbert Curve
Sun is on my face ...a beautiful day without you.Royskoppbe apartmore quotes

UCD Computational and Molecular Biology Symposium, Dublin, Ireland. 1-2 Dec 2016.


visualization + design

Christopher Hitchens—Out of Letters

ASCII Art

The images shown here were created as part of my ASCII Art project, which extends ASCII art to include

  • proportionally spaced fonts
  • a variety of font weights in a single image
  • both tone and structure of the image to select characters
  • fixed strings to render an image in legible text

Applying the code to images of Hitchens was motivated by my own deep love of Hitchens and a typographic portrait of Christopher Hitchens, created out of Gill Sans letters by Miles Chic at Capilano University.

This adds to my growing shrines to Hitchens, including Merry Hitchmas! and hitchslap t-shirts.

Christopher Hitchens in Letters and Words

All images are generated using Gotham, with up to 8 weights (Extra Light to Ultra). Each image includes size and characters used for the image. I give the absolute type size, though only useful to know in relative terms to the size of the image and other images drawn with the same method. The color of text in each layer is the same—black— but font weight may vary.

Some images are generated using more than one layer of ASCII. In some cases the characters used in each layer are different.

basic ascii

As the font size is reduced, greater detail and contrast can be achieved.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 43pt set: . x 8 : * @ - \ | _space_ / (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 29pt set: . x 8 : * @ - \ | _space_ / (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 17pt set: . x 8 : * @ - \ | _space_ / (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: . x 8 : * @ - \ | _space_ / (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)

By setting the image with a fixed string, such as a short quote or longer body of text, detail is lost but the ASCII representation takes on more meaning.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: godisnotgreat (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 29pt set: godisnotgreat (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: Hitchslap 11 (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 5 layers (11pt -6deg, 17pt 6deg, 29pt -3deg, 43pt 3deg, 59pt 0deg) set: godisnotgreat (source from Christian Witkin/Twelve/Grand Central Publishing) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 7pt set: . x 8 : * @ - \ | _space_ / (source from Gasper Tringale) (zoom, source)

multi-layered ascii art

Images take on detail when multiple rotated layers of text is used. Each of the images below is composed of more than one layer, starting with a 2-layer image which uses the uppercase alphabet at 0 and 90 degrees.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers (0deg, 90deg) set: A-Z (source from HBO) (zoom, source)

Meaning can be added to the image by using different text in each layer. In the examples below, I set the same image using the pair "Godisnotgreat" (at 0 degrees) and "religionpoisonseverything" (at 90 degrees). In the second example, I use the unlikely combination of "Jesus" and "Mohammad"—inspired by Jesus and Mo.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: Godisnotgreat. 0deg Relionpoisonseverything. 90deg (source from HBO) (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: Jesus 0deg Mohammad 90deg (source from HBO) (zoom, source)

When rotated layers contain punctuation, very high level of detail can be achieved.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: . : - + * _space_ 0deg / 90deg (zoom, source)

The image below is made out of layers that contain only forward (/) and back (\) slashes.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: \ / (zoom, source)

The image below is made using only the period character in three layers rotated at -45, 0 and 45 degrees. Although the image looks like a pixelated version of the original—it is more than that. It is a typeset representation that uses 8 weights of Gotham. Character spacing between periods is informed by font metrics.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: . (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 2 layers set: 8 X x | ^ : . - = + ' " @ \ / | * ~ , # (source from The Australian) (zoom, source)

hitchens at the podium

The three images below show the difference between using a variety of punctuation characters and setting an image using a block of text. The first image uses "8 X x" and common punctuation.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: 8 X x | ^ : . - = + ' " @ \ / | * ~ , # (zoom, source)

I use hitchslap 9 for the first image below, and all the hitchslaps for the second image. When setting an image in using a block of text, the choice of character at any position is fixed and only the font weight is allowed to vary. When the text is relatively short (e.g. hitchslap 9 is 544 characters and is repeated 50 times in the image), rivers of space appear in the image.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: Hitchslap 9 (zoom, source)
Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: all Hitchslaps (zoom, source)

In both cases, the image is very recognizable.

recursive ascii art

When an image of text is set with the text itself, you have recursive ASCII art. Below is hitchslap 2, set with itself. In the image, the font is Gotham and the text used to asciify the image is also Gotham.

It makes ordinary moral people, compels them, forces them, in some cases orders them do disgusting wicked unforgivable things. There's no expiation for the generations of misery and suffering that religion has inflicted in this way and continues to inflict. And I still haven't heard enough apology for it. — Christopher Hitchens

The quote is 307 characters long and is repeated 391 times in the image.

Christopher Hitchens - ASCII Art / Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Christopher Hitchens ASCII Art. method: Gotham font, 8 weights, 11pt set: Hitchslap 2 (source from hitchslap 2) (zoom, source)

In principle, the process of asciifying text with text can be repeated, by using the asciified image as input for asciification with progressively smaller text.

VIEW ALL

news + thoughts

Happy 2016 `\pi` Approximation, roughly speaking

Sun 24-07-2016

Today is the day and it's hardly an approximation. In fact, `22/7` is 20% more accurate of a representation of `\pi` than `3.14`!

Time to celebrate, graphically. This year I do so with perfect packing of circles that embody the approximation.

By warping the circle by 8% along one axis, we can create a shape whose ratio of circumference to diameter, taken as twice the average radius, is 22/7.

If you prefer something more accurate, check out art from previous `\pi` days: 2013 `\pi` Day and 2014 `\pi` Day, 2015 `\pi` Day, and 2016 `\pi` Day.

Logistic Regression

Wed 13-07-2016

Regression can be used on categorical responses to estimate probabilities and to classify.

The next column in our series on regression deals with how to classify categorical data.

We show how linear regression can be used for classification and demonstrate that it can be unreliable in the presence of outliers. Using a logistic regression, which fits a linear model to the log odds ratio, improves robustness.

Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Nature Methods Points of Significance column: Logistic regression? (read)

Logistic regression is solved numerically and in most cases, the maximum-likelihood estimates are unique and optimal. However, when the classes are perfectly separable, the numerical approach fails because there is an infinite number of solutions.

Altman, N. & Krzywinski, M. (2016) Points of Significance: Logistic regression. Nature Methods 13:541-542.

Background reading

Altman, N. & Krzywinski, M. (2016) Points of Significance: Regression diagnostics? Nature Methods 13:385-386.

Altman, N. & Krzywinski, M. (2015) Points of Significance: Multiple Linear Regression Nature Methods 12:1103-1104.

Altman, N. & Krzywinski, M. (2015) Points of significance: Simple Linear Regression Nature Methods 12:999-1000.

...more about the Points of Significance column

Visualizing Clonal Evolution in Cancer

Thu 02-06-2016

Genomic instability is one of the defining characteristics of cancer and within a tumor, which is an ever-evolving population of cells, there are many genomes. Mutations accumulate and propagate to create subpopulations and these groups of cells, called clones, may respond differently to treatment.

It is now possible to sequence individual cells within a tumor to create a profile of genomes. This profile changes with time, both in the kinds of mutation that are found and in their proportion in the overall population.

Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Ways to present temporal and phylogenetic evolution of clones in cancer. M Krzywinski (2016) Molecular Cell 62:652-656. (read)

Clone evolution diagrams visualize these data. These diagrams can be qualitative, showing only trends, or quantitative, showing temporal and population changes to scale. In this Molecular Cell forum article I provide guidelines for drawing these diagrams, focusing with how to use color and navigational elements, such as grids, to clarify the relationships between clones.

Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
How to draw clone evolution diagrams better. M Krzywinski (2016) Molecular Cell xxx:xxx-xxx. (read)

I'd like to thank Maia Smith and Cydney Nielsen for assistance in preparing some of the figures in the paper.

Krzywinski, M. (2016) Visualizing Clonal Evolution in Cancer. Mol Cell 62:652-656.

Binning High-Resolution Data

Wed 01-06-2016

Limitations in print resolution and visual acuity impose limits on data density and detail.

Your printer can print at 1,200 or 2,400 dots per inch. At reading distance, your reader can resolve about 200–300 lines per inch. This large gap—how finely we can print and how well we can see—can create problems when we don't take visual acuity into account.

Martin Krzywinski @MKrzywinski mkweb.bcgsc.ca
Nature Methods Points of View column: Binning high-resolution data. (read)

The column provides some guidelines—particularly relevant when showing whole-genome data, where the scale of elements of interest such as genes is below the visual acuity limit—for binning data so that they are represented by elements that can be comfortably discerned.

Krzywinski, M. (2016) Points of view: Binning high-resolution data. Nature Methods 13:463.

...more about the Points of View column