Collective behaviour changes with age

Yushi Yang has recently completed his PhD project in Bristol focusing on the collective behaviour of a specific living organism: Zebrafish, a small, semi-transparent fish coming from tropical fresh waters employed extensively in biology as a model organism. Quantitative studies of the collective behaviour of animals have been performed in many different contexts, from midges to starlings and fish are not excluded. However, Yushi has been one of the first to concretely realise an experimental setup allowing for the three-dimensional tracking of the trajectories of a conspicuous number of individuals (about 50). 

Together we looked into some simple models making physical sense of the emerging patterns of behaviour. This approach has serious epistemological challenges: what justifies the reduction of the social behaviour of an animal to a minimal physical model? what do we actually learn in the process of reduction of complexity? what predictive power is associated with such results?

In our approach, we pursued the identification of quantitative variables describing the evolving physical features of groups of fish: their average orientation, their relative distances, and their speed. We actually did not attempt to measure any specific form of interactions between the fish: these are certainly taking place by means that can be complex (vision, hydrodynamic feedback, maybe some form of signalling) but, in our description, they only appear as effective terms. In fact, what we seek is a small number of physical properties that allow us to organise the data: for example, we identify a scaled persistence length that appears to control the degree of polarisation of groups of fish of different ages: incoherent groups of older fish and well-coordinated groups of younger fish. It is indeed a key result of Yushi’s work that the behaviour of zebrafish changes markedly with age and that non-trivial correlations appear to be present only for the younger groups. We are able to map these different behaviours on a single master curve and model it with a simple physical model dominated by alignment interactions and delay (or inertia) in reorientation. 

While the different physical ingredients of the simplified model do not have an immediate biological interpretation, they allow us to narrow down the spectrum of relevant variables controlling collective behaviour and justify further research aimed at providing a causal, biological link between the behaviour of the group and the phenotypical characteristics of the individuals.

This research has been published in PLoS Computational Biology 

Yushi Yang , Francesco Turci, Erika Kague, Chrissy L. Hammond, John Russo, C. Patrick Royall, Dominating lengthscales of zebrafish collective behaviour, PLoS Comput Biol 18(1): e1009394, (2022), doi: 10.1371/journal.pcbi.1009394

Recontructed 3D positions and orientations of a group of young zebrafish (left) and original video (right).

Wetting Transition of Active Brownian Particles on a Thin Membrane

When my 12-month old daughter started pushing her baby walker around the apartment, I noticed how often she ends up stuck against tables, walls, and obstacles in general, as she struggles (or simply does not even try) to turn the walker around. I could not avoid thinking that that was a transparent example of the typical behaviour of self-propelled agents (or particles). As they travel in a given direction and their rotational diffusion is low, they typically get stuck against hard barriers and obstacles, leading to their accumulation.

However, some self-propelled systems do more than just accumulate. For example, so-called active Brownian particles (self-propelled repulsive spheres) can display phase coexistence between a dense and a dilute phase originating from a bulk phase transition known as motility-induced phase separation. This transition is similar to vapour-liquid phase transitions in equilibrium fluids, and this similarity motivated our recent work in Physical Review Letters. Vapour-liquid coexistence is, in fact, a prerequisite for commonplace surface phase transitions in ordinary liquids. These are the transitions associated with the change in contact angle between a droplet and a surface: from spread out droplets that cover a cloth (wetting it) to almost perfectly spherical water droplets on Lotus leaves (keeping the surface dry). Whether wetting or drying occurs depends on the interaction between surface and fluid atoms/molecules: attractive interactions promote wetting while repulsive ones favour drying. Tuning the strength of these interactions can transform droplets from partially wetting/drying a surface to completely wetting /drying it. 

Active systems appear to undergo only complete wetting, as impenetrable walls lead to particle accumulation as much as attractive forces. To go beyond this regime, we explore the effect of finite strength repulsive barriers. Our hypothesis was that tuning the barrier strength would have revealed the competition between two mechanisms: the propensity to accumulate to hard walls and the tendency of potential barriers to reduce the density locally. 

This set-up allows us to realise a connection between equilibrium wetting and the behaviour of active systems. Such connection takes the form of a symmetry transition in the structure of the density profiles and highlights the role of density fluctuations. It reveals marked differences between two and three dimensional systems, with the former more prone to gas bubble formation while the latter appear more dramatically sensitive to the barrier strength, with a sharp transition from partial to complete wetting.

The article (which also Featured as an Editor’s suggestion in Physics) can be found here:

Francesco Turci, Nigel B Wilding, Wetting Transition of Active Brownian Particles on a Thin Membrane,
Phys. Rev. Lett. 127, 238002 (2021)

Phase Separation and Multibody Effects in Active Matter

Self-organisation has many forms, many of which have been studied for systems in equilibrium or metastable equilibrium, as in crystal formation or in gelation. The striking feature of these phenomena is the emergence of complex patterns of aggregation just from elementary interactions among the constituents. These are driven by an imbalance in the thermodynamic potentials for example the chemical potential. However, in recent years it has been shown that this spontaneous organisation is not the prerogative of equilibrium for (passive) systems: completely out of equilibrium systems such as bacterial colonies or self-propelled colloids present a similar behaviour, even if thermodynamic concepts such as a chemical potential are difficult to generalise to these systems. An interesting example is the amoeba-like crawling crystals that Abraham Mauleon-Amieva, here in Bristol has studied in his PhD and which present an interesting competition between electrostatic and active forces, with multiple mesh-phases, see Phys. Rev. E 102, 032609.

An important question in this area is to understand whether the phase diagrams of similar active systems can be understood exclusively invoking effective equilibrium concepts. A possible route is, for example, to think that the active forces lead to collisions and these can be effectively coarse-grained into suitable attractive effective two-body interactions. It would such an effective attraction to favour aggregation and hence explain (in an effective picture) the observed motility-induced self organisation.

(a) Low-density (purple) and high-density (orange) disordered phases at phase coexistence in 3D active Brownian particles. (b) Gas-crystal phase coexistence for the same active Brownian particles.


In a recent article published in Physical Review letters with Nigel B Wilding we explore these ideas for an elementary model for active matter in three dimensions, active Brownian particles. Through the characterisation of the phase diagram, its phase separations and single phase fluid region we show that the system indeed shares many similarities with passive systems with short ranged interactions in 3d: a metastable liquid-gas phase separation, a crystalline phase, several pre-critical lines. However, a quantitative analysis of the effective interactions shows that it is not possible to explain the motility-induced phase separation only in terms of effective twobody interactions: multibody effects involving large numbers of particles are important, and can be quantified using information-theoretic tools.

For more details, see

Francesco Turci and Nigel B. Wilding Phys. Rev. Lett. 126, 038002 (2021)

Minimal Vicsek model in Python

The Vicsek model is one of the simplest models for active matter. It displays interesting features, such as swarming.

Large scale simulations are often needed in order to provide firm statements on the statistical properties of this kind of models. However, for a pedagogical and illustrative purpose it may be useful to have an elementary code to play with. For this purpose, I have written a relatively simple Python code which implements the model with a few clever tricks to make simulations of a few thousands of agents possible on a standard laptop.

We follow Gregoire and Chaté in the formalism: point-wise particles move synchronously at constant speed v in discretised time of steps Δt=1. The particles have an orientation described by an angle θ which evolves taking into account all particles k within a given radius of interaction

\theta_{j}^{t+1}=\arg \left[\sum_{k \sim j} e^{i \theta_{k}^{t}}\right]+\eta \xi_{j}^{t}

For the neighbourhood calculations, cell-lists would be ideal, but they are too complex for the kind of elementary code that we want to write. What we are going to use is the kd-tree quick nearest neighbour lookup algorithm as implemented in Scipy and some clever sparse matrix manipulation. For visualisation, we employ matplotlib, so that the resulting code is just 60 lines with only very popular libraries.

import numpy as np
import scipy as sp
from scipy import sparse
from scipy.spatial import cKDTree
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


L = 32.0
rho = 3.0
N =	int(rho*L**2)
print(" N",N)

r0 = 1.0
deltat = 1.0
factor =0.5
v0 = r0/deltat*factor
iterations = 10000
eta = 0.15


pos = np.random.uniform(0,L,size=(N,2))
orient = np.random.uniform(-np.pi, np.pi,size=N)

fig, ax= plt.subplots(figsize=(6,6))

qv = ax.quiver(pos[:,0], pos[:,1], np.cos(orient[0]), np.sin(orient), orient, clim=[-np.pi, np.pi])

def animate(i):
	print(i)

	global orient
	tree = cKDTree(pos,boxsize=[L,L])
	dist = tree.sparse_distance_matrix(tree, max_distance=r0,output_type='coo_matrix')

	#important 3 lines: we evaluate a quantity for every column j
	data = np.exp(orient[dist.col]*1j)
	# construct  a new sparse marix with entries in the same places ij of the dist matrix
	neigh = sparse.coo_matrix((data,(dist.row,dist.col)), shape=dist.get_shape())
	# and sum along the columns (sum over j)
	S = np.squeeze(np.asarray(neigh.tocsr().sum(axis=1)))
	
	
	orient = np.angle(S)+eta*np.random.uniform(-np.pi, np.pi, size=N)


	cos, sin= np.cos(orient), np.sin(orient)
	pos[:,0] += cos*v0
	pos[:,1] += sin*v0

	pos[pos>L] -= L
	pos[pos<0] += L

	qv.set_offsets(pos)
	qv.set_UVC(cos, sin,orient)
	return qv,

anim = FuncAnimation(fig,animate,np.arange(1, 200),interval=1, blit=True)
plt.show()

The result is the following animation (the colour indicates the orientation):