Natural gene / paints nothing itself

Shade — how far black spreads over a bay

The regulatory locus beside agouti. It draws no pixel of its own and every horse carries it, but on a bay its dosage — plus whether extension is E/E and whether agouti is A/a — decides whether that bay is a blood bay, an ordinary bay, a liver bay or a seal brown.

What it does

What it does: decides how dark a bay is. Every horse carries it and it draws nothing of its own, but on a bay it is the difference between a bright blood bay, an ordinary bay, a dark liver bay and a nearly-black seal brown.

So if you are breeding for a particular shade of bay, this is the gene to chase rather than agouti — agouti only decides whether the horse is a bay at all.

Crossing two of them

Its gene carrot

See it doing something — the agouti preview offers this locus as a modifier, because that is the only place it has anything to show.

Gene key
horsegenetics.shade
Alleles
ShD Sh ShL
Outcomes
five, and all of them wild type — it paints nothing alone
Read by
agouti, through Gene.coatDependsOn()
Default allele
Sh
Priority
95 — the “paints nothing” band
Founder draws
1 × nextFloat()
Model
common.genetics.BayShade, common.genetics.genes.ShadeGene
Unplayed

Everything on this page is asserted by BayShadeGeneTest and by coat-golden.txt, and the shade range has been eyeballed as rendered sheets and side views — but no shade of bay has been seen in the game yet. See verification.

The three haplotypes

CombinationDosageWhat it does to a bay
ShL/ShL−3Black held to the points; the body stays at its reddest.
ShL/Sh−1.5Leans red.
ShL/ShD, Sh/Sh0The ordinary red-brown body with black points.
Sh/ShD+1.5Black spreads over the body — mahogany.
ShD/ShD+3Black over nearly the whole horse.

It is additive, not dominant: ShL/ShD and Sh/Sh land on the same place because their dosages cancel, which is what an incomplete-additive haplotype means and what the two-outcome “dominant/recessive” vocabulary could not have said. Each combination gets its own sentence in the gene dictionary even though none of them paints, because “carried, and pushing dark” and “carried, and pushing light” are different things to read.

The shade score

BayShade sums four things. Three of them are genotype and fix the label; the fourth is a per-horse roll and moves the look inside it.

Shade dosage−3 … +3. The chromosome-22 region above.
MC1R dosage+BayShade.EE_BONUS for E/E. In the shade study EE bays averaged darker than Ee ones — two functional copies make somewhat more eumelanin.
ASIP dosage+BayShade.ONE_AGOUTI_BONUS for A/a. One functional A copy averages darker than two. Real, weak, inconsistent — so it is deliberately the smallest term of the three.
Expression roll±BayShade.EXPRESSION_RANGE, uniform. This is the polygenic / developmental / seasonal spread, and it rides on the expressing A copy’s stored values — so it is inherited with that copy exactly the way a set of background modifier loci would be, and the same horse regenerates the same coat forever.

The four bay labels are bands of the genetic part, so a breeding prediction never depends on a roll. The roll is deliberately narrower than a band: two horses of the same genotype differ visibly, but neither of them contradicts the name the gene dictionary gave it by more than an edge.

Where the band edges come from

They are placed so that every Sh/Sh bay is an ordinary bay, whatever the two dosage terms do. If a dosage term could push a horse out of its band on its own it would be standing in for the shade locus, and E/E would read as a diagnostic test for liver bay — which is precisely the claim the research does not support. Everything past an ordinary bay needs a haplotype to carry it there, which is what makes shade the locus a breeder selects on.

Over the wild population that comes out at roughly 15% blood bay, 61% bay, 19% liver bay and 5% seal brown — the seal being scarce because it needs ShD/ShD and a dosage term on top of it. The exact numbers are arithmetic on ShadeGene.founderTable(); the shape is the point.

Silent, and carried by everyone

Every combination of this gene is a Expression.wildType(), so affectsCoat() is false: it never enters the coat pipeline, it collapses to one pen in the gallery whatever its dosage, and it is invisible in the genome display as an expressed thing. Agouti names it in coatDependsOn(), which is what folds its alleles into a bay’s texture key — and, because that fold is conditional on agouti actually painting, leaves them out of a chestnut’s, so two chestnuts of different shade genotype still share one baked texture.

That is the same mechanism PATN1 and PATN2 use, with one deliberate difference: the appaloosa modifiers only reach a founder that already rolled LP, and shade reaches every founder. The regulatory region is present in every horse. A chestnut carries and transmits it with nothing to show for it, which is exactly how a chestnut line hands a seal brown to a grandfoal.

Interactions

  • It does nothing without a bay. No black to move on a chestnut; nothing restricted to move on a black. Both still carry it.
  • The dilutions run after the shade is resolved, so a buckskin has a bay shade underneath it — a cream over a liver bay and a cream over a blood bay are different buckskins. The same goes for dun, silver and champagne.
  • Grey hides it progressively, the way it hides everything; the score stays in the genome, so a grey horse is still on record as having been born a seal brown.
  • Breeds all name it. Shade is a modifier a coat gene reads, so BreedFounder would force it wild on any breed that did not — leaving every breed horse shade-neutral while only feral mixed ones varied. Breed.Builder.shadeAny() is called by all three agouti helpers so that cannot happen quietly.

What it is modelling

A genome-wide association study of 126 genetically confirmed bay horses found a ~0.5 Mb region on equine chromosome 22, immediately upstream of ASIP and taking in the neighbouring RALY gene, very strongly associated with the continuum from light bay (black confined to mane, tail, lower legs and ear margins) through to near-black bay (black over most of the body with only small red areas left). It is by a wide margin the strongest known signal for bay shade — much stronger than the ordinary A/a test.

The causal mutation has not been identified. The lead marker sits in a high-linkage block and nobody has yet disentangled whether the functional variant is in ASIP, in RALY, or in a regulatory element controlling one or both. The leading biological guess is a regulatory variant that alters when, where or how strongly ASIP is expressed: broader ASIP activity inhibits MC1R over more of the horse and biases it redder; narrower activity lets eumelanin cover more of it.

So there is no allele to name, and this gene does not pretend there is. What it models is the thing the association actually describes: a haplotype dosage, as three alleles worth -1.5, 0 and +1.5, summed.

Why there is no At

The model you will see everywhere else

Most horse-colour material, and most horse games, use an agouti allelic series: A+ wild bay, A bay, At seal brown, a black. It is tidy, it is easy to teach, and it is not a validated equine explanation.

A tan-point at allele is genuinely mapped in several other mammals, and the horse version was borrowed from them by analogy. But the commercial equine agouti test distinguishes A from the recessive 11 bp deletion a and nothing else, and seal-brown-looking horses test as ordinary A/A or A/a — genetically bay at that locus. The chromosome-22 region above is a far stronger modern lead.

So a mod that advertises genetic accuracy (see philosophy) does not get to ship At as a real allele. There were three honest options — give each shade a made-up allele (arcade), ship At and label it a simplification (fine for a teaching game), or model a shade locus plus the dosage terms. This is the third.

Source: common/genetics/genes/ShadeGene.java, common/genetics/BayShade.java