Example #1
0
for freq in args.freqs:
    chr, idx, maf = freq
    maf = float(maf)
    chr, idx = int(chr), int(idx)
    # TODO: Sort out frequency semantics
    template.chromosomes[chr].frequencies[idx] = 1-maf
    
# Simulation method
if args.method.lower() == 'constrained':
    sim = ConstrainedMendelianSimulation(template, replications=args.replications)
elif args.method.lower() == 'genedrop':
    sim = NaiveGeneDroppingSimulation(template, replications=args.replications)

# Read effects file
if args.effectfile:
    trait = Architecture.from_file(args.effectsfile)
    trait.name = 'affected'
else:
    trait = Architecture('affected','dichotomous')

# More effects. Specified effects override file effects.
if args.effects:
    for effect in args.effects:
        chr, pos, a, k = effect
        locus = int(chr), int(pos)
        a, k = int(a), int(k)
        trait.add_effect(locus, a, k)
    if args.lthresh:
        trait.set_liability_threshold(args.lthresh)

if args.effects or args.effectfile:
Example #2
0
ninds = 5000
nloc = 1000
maf = 0.5

traitname = 'synthetic'
# Create population
pop = pyd.Population()

# Create chromosomes
for i in range(100):
	c = pyd.ChromosomeTemplate()
	c.add_genotype(maf, 0)
	pop.add_chromosome(c)

# Create trait architecture
trait = Architecture('synthetic', 'quantitative', chromosomes=pop.chromosomes)
for i in range(100):
	trait.add_effect((i,0), 1 * (-1 if i % 2 else 1))

print('Locus mean genotypic value: {}'.format(trait.effects[0].expected_genotypic_value))
print('Locus variance: {}'.format(trait.effects[0].locus_additive_variance))

print('Expected trait mean: {}'.format(trait.expected_genotypic_value))
print('Expected trait variance: {}'.format(trait.additive_genetic_variance))
for i in range(ninds):
	i = pop.founder_individual()
	i.get_genotypes(linkeq=True)
	i.phenotypes[traitname] = trait.predict_phenotype(i)

y = np.array([i.phenotypes[traitname] for i in pop.individuals])
print('Observed trait mean {}'.format(y.mean()))
Example #3
0
import sys
import time
from pydigree import table
from pydigree.simulation import Architecture

nchrom = 1
popsize = 500
ngen = 100

pop = pydigree.Population(popsize)
for x in range(nchrom):
    c = pydigree.ChromosomeTemplate()
    c.add_genotype(0.1,0)
    pop.add_chromosome(c)

trait = Architecture('q','quantitative')
for i in range(nchrom):
    trait.add_effect_liability((i,0), 0, 1)
print(trait)

pop.initialize_pool()
for x in range(popsize):
    pop.add_founder_individual()

def gen(popsize):
    pop.random_mating_generation(popsize)
    pop.get_genotypes()
    pop.remove_ancestry()
    return pop.allele_frequency((0,0),1)

print([round(gen(popsize),2) for x in range(ngen)])