null
from an undefined
place,
undefined
create (a place)
an account
of us
— Viorica Hrincu
Sometimes when you stare at the void, the void sends you a poem.
The average density of the universe is about `10 \times 10^{-30} \text{ g/cm}^3` or about 6 protons per cubic meter. This should put some perspective in what we mean when we speak about voids as "underdense regions".
Distances in the universe can be expressed as either the light-travel distance or the comoving distance to the object. The first tells us how long light took to travel from the object to us.
For example, the furthest object observed is the galaxy GN-Z11 and its light-travel distance is 13 billion light-years (Gly).
But because space has expanded during the time the light from GN-Z11 has been travelling to us, the galaxy is now actually much further away. This is measured by its comoving distance which accounts for space expansion, which is 29.3 Gly for GN-Z11.
The redshift, `z`, is commonly used to specify distance, since it's a quantity that can be observed. For GN-Z11, `z = 11.09`.
All distances on the poster are expressed in terms of the light-travel distance.
To calculate these distances, the redshift `z` is used along with a few cosmological parameters.
The Hubble parameter, `H(z)`, is the function used for these calculations. It can be derived from the Friedmann equation. $$ H(z) = H_0 \sqrt { \Omega_r({1+z})^4 + \Omega_m({1+z})^3 + \Omega_k({1+z})^2 + \Omega_\Lambda } $$
The values of the parameters in `H(z)` are being continually refined and the values of some depend on various assumptions. I use the Hubble constant `H_0 = 69.6 \text{ km/s/Mpc}`, mass density of relativistic particles `\Omega_r = 8.6 \times 10^{-5}`, mass density `\Omega_m = 0.286`, curvature `\Omega_k = 0` and dark energy fraction `\Omega_\Lambda = 1 - \Omega_r - \Omega_m - \Omega_k = 0.713914`.
Bennett, C.L. et al The 1% Concordance Hubble Constant Astrophysical Journal 794 (2014)
Now given a redshift, `z` the light-travel distance is $$ d_T(z) = c \int_0^z \frac{dx}{({1+x})E(x)} $$
The age of the universe can be computed from this expression. The edge of the universe has an infinite redshift so w can calculate it using `\lim_{z \rightarrow \infty} d_T(z)`.
The comoving distance to the object with redshift `z` is $$ d_C(z) = c \int_0^z \frac{dx}{E(x)} $$
It's convenient to express the above integrals by making a variable substitution. Using the scale factor `a = 1/(1+z)`, $$E(a) = H_0 \sqrt { \frac{\Omega_r}{a^2} + \frac{\Omega_m}{a} + \Omega_k + a^4\Omega_\Lambda } $$
The light-travel distance is $$D_T(z) = c \int_a^1 \frac{dx}{E(x)}$$
The comoving distance is $$D_C(z) = c \int_a^1 \frac{dx}{xE(x)}$$
The light-travel distance to the edge of the universe is $$D_{T_U}(z) = c \int_0^1 \frac{dx}{E(x)}$$
and the light-travel distance from the edge of the universe to the object as we're observing it now is $$D_{T_0}(z) = c \int_0^a \frac{dx}{E(x)}$$
which can be interpreted as the age of the object when it emitted the light that we're seeing now.
The proper size of the universe is the comoving distance to its edge, $$D_{C_U}(z) = c \int_0^1 \frac{dx}{xE(x)}$$
Below you can You can download the full script.
### Cosmological distance calculator
### Martin Krzywinski, 2018
#
# The full script supports command-line parameters
# http://mkweb.bcgsc.ca/universe-voids-and-superclusters/cosmology_distance.py
z = 1 # redshift
a = 1/(1+z) # scale factor
Wm = 0.286 # mass density
Wr = 8.59798189985467e-05 # relativistic mass
Wk = 0 # curvature
WV = 1 - Wm - Wr - Wk # dark matter fraction
n = 10000 # integration steps
# Hubble parameter, as function of a = 1/(1+z)
def Ea(a,Wr,Wm,Wk,WV):
return(math.sqrt(Wr/a**2 + Wm/a + Wk + WV*a**2))
H0 = 69.6 # Hubble constant
c = 299792.458 # speed of light, km/s
pc = 3.26156 # parsec to light-year conversion
mult = (c/H0)*pc/1e3 # integrals are in units of c/H0, converts to Gy or Gly
sum_comoving = 0
sum_light = 0
sum_univage = 0
sum_univsize = 0
for i in range(n):
f = (i+0.5)/n
x = a + (1-a) * f # a .. 1
xx = f # 0 .. 1
ex = Ea(x,args.Wr,args.Wm,args.Wk,args.WV)
exx = Ea(xx,args.Wr,args.Wm,args.Wk,args.WV)
sum_comoving += (1-a)/(x*ex)
sum_light += (1-a)/( ex)
sum_univsize += 1/(xx*exx)
sum_univage += 1/( exx)
results = [mult*i for i in [sum_univage,sum_univsize,sum_univage-sum_light, \
sum_light,sum_comoving]]
print("z {:.2f} U {:f} Gy {:f} Gly T0 {:f} Gy T {:f} Gly C {:f} Gly". \
format(args.z,*results))
Use the script to generate distances for a given redshift, `z`. For example,
# For galaxy GN-Z11, furtest object ever observed ./cosmology_distance.py -z 11.09 z 11.09 U 13.720 Gy 46.441 Gly T0 0.414 Gy T 13.306 Gly C 32.216 Gly
The galaxy GN-Z11 has a light-travel distance of 13.3 Gly and a comoving distance of 32.2 Gly. We're seeing it now as it was only 0.4 Gy after the beginning of the universe, which is 13.7 Gy old and the distance to its edge is 46.4 Gly.
# For quasar J1342+0928, furthest quasar ever observed ./cosmology_distance.py -z 7.54 z 7.54 U 13.720 Gy 46.441 Gly T0 0.699 Gy T 13.021 Gly C 29.355 Gly
The values for U (age and size of universe), will always be the same for a given set of cosmological parameters for any value of `z`. I include them in the output of the script for convenience.
These values match those generated by Ned's online cosmological calculator for a flat universe.
It is not certain that everything is uncertain. —Blaise Pascal
We have already explored how we can mitigate bias caused by confounding variables in observational studies using propensity score (PS) matching (PSM) and propensity score weighting (PSW). However, any statistical model is only as good as its assumptions and, if it is specified incorrectly, it can itself produce biased estimates of the treatment effect.
This month, we explore double robustness, a powerful statistical concept that provides a valuable “safety net” against the risk of an incorrect model. It offers two opportunities, instead of just one, to obtain a valid estimate of the treatment effect — making it possible to draw credible causal inferences from observational data without having to depend on a single set of modeling assumptions.
Kurz, C.F., Krzywinski, M. & Altman, N. (2026) Points of significance: Double Robustness. Nat. Methods 23:868–869.
My cover design on the 7 April 2026 Nature Biotechnology issue shows the dendrogram that represents a cluster of uniquely expressed (or downregulated) genes in human naive stem cells induced from such cells. Within each dendrogram block, the genomic barcode sequence (sampled from Supplementary Table 1) is depicted with a Code 39 barcode. The highlighted barcode is one of those used for cell isolation.
Ishiguro S. et al. A multi-kingdom genetic barcoding system for precise clone isolation (2026) Nature Biotechnology 44:616–629.
Browse my gallery of cover designs.
Celebrate π Day (March 14th) and enjoy the art — but only if you're part of the 5%.
Go ahead, see what you can't see.
Authentic and accurate images of Ishihara's test plates photographed (and lovingly color-corrected) from the 38-plate Ishihara's Tests for Colour Deficiency.
I also provide the position, size, and color of each circle on each test plate.
What immortal hand or eye, could frame thy fearful symmetry? — William Blake, "The Tyger"
This month, we look at symmetric regression, which, unlike simple linear regression, it is reversible — remaining unaltered when the variables are swapped.
Simple linear regression can summarize the linear relationship between two variables `X` and `Y` — for example, when `Y` is considered the response (dependent) and `X` the predictor (independent) variable.
However, there are times when we are not interested (or able) to distinguish between dependent and independent variables — either because they have the same importance or the same role. This is where symmetric regression can help.
Luca Greco, George Luta, Martin Krzywinski & Naomi Altman (2025) Points of significance: Symmetric alternatives to the ordinary least squares regression. Nat. Methods 22:1610–1612.
Fuelled by philanthropy, findings into the workings of BRCA1 and BRCA2 genes have led to groundbreaking research and lifesaving innovations to care for families facing cancer.
This set of 100 one-of-a-kind prints explore the structure of these genes. Each artwork is unique — if you put them all together, you get the full sequence of the BRCA1 and BRCA2 proteins.