Pytorch Breeding
Project description
ChewC
In short, this will be a GPU-enabled stochastic simulation for breeding programs with an emphasis on cost-benefit-analysis for novel breeding tools and creating a suitable interface for RL agents.
We will also incorporate an emphasis on budget and costs associated with each action to manage long-term breeding budgets. As well as model theoretical tools in the plant breeder’s toolbox. e.g.
a treatment which increases crossover rates
a treatment which reduces flowering time
a treatment which enables gene drive at select loci
Each treatment will cost $$ ultimately helping guide the implementation in real-world breeding programs.
Install
pip install chewc
How to use
First, define the genome of your crop
import torch
ploidy = 2
n_chr = 10
n_loci = 100
n_Ind = 333
g = Genome(ploidy, n_chr, n_loci)
population = Population()
population.create_random_founder_population(g, n_founders=n_Ind)
init_pop = population.get_dosages().float() # gets allele dosage for calculating trait values
# multi_traits
target_means = torch.tensor([0, 5, 20])
target_vars = torch.tensor([1, 1, 0.5]) # Note: I'm assuming you want a variance of 1 for the second trait
correlation_matrix = [
[1.0, 0.2, 0.58],
[0.2, 1.0, -0.37],
[0.58, -0.37, 1.0],
]
correlation_matrix = torch.tensor(correlation_matrix)
ta = TraitModule(g, population, target_means, target_vars, correlation_matrix,100)
ta(population.get_dosages()).shape
Created genetic map
torch.Size([333, 3])
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.