That our AI training really is about rather more than “chatting about artificial intelligence” is clear from the case study below. Our aim is for the team to take away from every course and workshop something they can start using in their work immediately. A great illustration is the program we developed during a series of training sessions on working with artificial intelligence at the Research and Breeding Institute of Pomology in Holovousy, Czech Republic.
This was not just a deck of slides but a concrete tool: a computational model that helps the researchers choose suitable parental combinations of cherries, saves time and makes decision-making clearer. The approach is the foundation of marker-assisted selection (MAS), where you do not look at the phenotype alone but mathematically model the probability that particular alleles will be passed on.
The breeding team works with tens to hundreds of cultivars, a detailed genotype for each one and a clear idea of which molecular markers are desirable. But as soon as the number of cultivars goes up, the number of possible crosses quickly reaches tens and easily hundreds of thousands of combinations. At that point choosing by hand is not merely inconvenient; it is practically impossible if the choice is to rest on data rather than intuition alone.
The goal of the project was therefore to build a model that can score every possible cross of two cultivars numerically from a genetic point of view, so that the breeder gets a ranked list of options, keeps control over how the score is calculated, and so that the model can later be hooked up to learning from real data.
What the model is built on
The input is the genotype data of the individual cultivars. For each marker the genotype is written in the format “0|0”, “0|1”, “1|0”, “1|1”. The value “1” represents the favourable allele, “0” the unfavourable one. The markers are split into two groups relating to particular properties of the resulting fruit, and every marker has a weight saying how much it contributes to the property in question.
An allele is a variant of a single gene. Every gene sits at a particular position on the chromosome and can exist in different versions carrying slightly different information. Those individual versions are what we call alleles. Fruit usually has two alleles of the same gene, one from the mother and one from the father. If both are the same, we speak of a homozygote. If they differ, it is a heterozygote.
What we built is not a lookup table along the lines of “if it is 1|1, add X points”. We use Mendelian segregation of alleles, so the algorithm calculates what happens in the F1 progeny (the first generation of offspring, the first filial generation), not just what the parents look like. Each parental genotype is converted into the probability with which it passes the “good” allele to the offspring. A 0|0 homozygote always passes 0 in its gametes (the probability of a “one” is 0), a 0|1 heterozygote roughly fifty-fifty (0.5), and a 1|1 homozygote always 1. That gives us, for every marker and every cultivar, a simple number p(1) between 0 and 1.
When we pair two parents, we combine those probabilities: we calculate how often the F1 progeny will carry two favourable alleles, how often a mixed genotype and how often two unfavourable alleles. We do that separately for every marker. The result is not a rough estimate but a detailed probability distribution of genotypes among the offspring.
Scoring the crosses
Genetic reality is then compressed into a handful of numbers you can actually work with. For each marker, the three possible genotype situations in the progeny carry different “values”: offspring with two favourable alleles get the full score, heterozygotes a middling one, offspring with two unfavourable alleles zero. From the probabilities of the individual genotypes an expected value is computed for that marker. That value is multiplied by the marker’s weight and summed across all the markers linked to the fruit properties.
The result for every cross is a set of numbers:
- an aggregate score for the individual properties based on the expected quality of the F1,
- variants of those scores weighted more towards “fixation” (favouring combinations with a high chance of fixing the favourable genotypes),
- an overall index combining the properties being tracked according to the weights supplied.
The whole calculation combines efficient generation of combinations with vector operations over the genotypes. For n cultivars and m markers the computation is of the order of n²·m. That means that even for dozens of cultivars the model goes through every pair of parents in a few seconds, which for the breeder is effectively instant feedback.
From a script to a tool you can use every day
The Python script itself works as the computational core. That is not enough, though, if the result is to serve everyday practice rather than being a one-off analysis. So we added two layers on top of the model: an export into spreadsheet format (Excel) and a lightweight application interface.
The Excel output is not just a raw list of tens of thousands of rows. Over the values for the individual properties and the overall index we apply colour scales, a “heat map”. The breeder therefore does not have to read numbers but can see where the genuine peaks are and where things are merely average. That turns an analytical result into a visual tool.
The next step is a web application that allows interactive work with the same data. The user picks a particular cultivar as a potential parent and the tool immediately returns a list of its most suitable partners. The table is not limited to a single score; it shows the breakdown into the contribution for each property, the “fixation” estimate and an estimate of the average level of the progeny. Cultivars can be filtered by a minimum index value, by the number of candidates displayed and by other parameters. As a result the model does not set itself against the breeder’s intuition but complements it: the breeder gets a candidate list and then makes an expert choice about what to take further into the field.
Technically the core is implemented in Python using the NumPy and pandas libraries, while the application layers rest on Streamlit and openpyxl. It is a combination of a genetic model, algorithmic design and data engineering. At the same time everything stays transparent: every number can be explained and checked afterwards.
What kind of “intelligence” is actually at work here
It is only fair to admit that the model as it runs today is not machine learning (AI). It does not learn from data, it has no neural network or other adaptive core. It is a pure probabilistic computational model that draws on Mendelian inheritance and weighted aggregation. The value of the solution does not lie in buzzwords but in how well and how simply it connects the breeders’ genetic approach with computing power.
At the same time we designed the model so that AI models can be attached to it later. The marker weights, which today come from genetic analyses and expert estimates, could in future be replaced by a layer that estimates them from real data about the progeny. Once enough observations are available (genotype plus phenotype for offspring from various crosses), a regression or Bayesian model, or a suitably chosen machine-learning algorithm, can step in. It would look for the relationship between genotype and phenotype and update the marker weights so that they match the results actually measured under your conditions as closely as possible.
The current version therefore sits somewhere between classical quantitative genetics and a fully data-driven approach. It removes the crude mechanical labour (recomputing combinations, tracking markers, weighting by hand) and standardises the genetic part of the decision. At the same time it creates a clean, structured interface to which an adaptive layer can be connected in time, should you decide to invest in collecting and using the data.
What this does to breeding work in practice
From the breeder’s point of view several fundamental things have changed. Instead of going through the possible parent combinations by hand, they have a tool that systematically scores every pair of cultivars, ranks them by a genetically defined index and visually highlights the combinations worth attention. They can work with tens of thousands of crosses, yet in practice look only at a narrow selection of the best ones, where they can also see where the advantage comes from: whether it is driven mainly by markers tied to one specific property, or whether it is the combined contribution of several properties.
For us this is not just another “AI demo” but a demonstration of how computational mathematics and a solid algorithm design can turn breeding expertise into a tool that scales. And it is also a space where it makes sense to add further layers of analysis, at the moment when the datasets grow to a size where machine learning becomes the natural next step rather than a label for its own sake.
