## Anatomy model construction.

Panels A–F show in order the steps involved in moving from a dendrite model to a probability function of contacts between two neuron types. **A** We create complete dendrograms using a stochastic algorithm, bounded by known properties of the dendrites. This example shows all six dendritic trees of the complete dendrogram for one MSN. **B** Each segment of each branch is modelled as a cylinder. The diameter of successive cylinders tapers with distance from the soma. Summing over all branches gives the total volume of dendrite (or axon) at each distance from the soma. **C** We then compute the proportion of spherical volume occupied by dendrite (or axon) at each distance from the soma. **D** Expected values for occupied volume are computed over many repetitions of the growth algorithm. The result is a continuous function of volume occupancy for each dendrite and axon type. **E** We find the intersecting volume between the dendrite and axon spherical fields for each distance between somas. The volumes are discretised into voxels. **F** For each voxel, given its distance from the respective somas, we compute the probability of intersection between neurites (dendrite-axon or dendrite-dendrite) from the volume occupancy functions (in panel D). We then sum over all probabilities to get the expected number of intersections between neuron pairs as a function of distance between their somas. We use the resulting functions to construct our networks.