from pymix.distributions.normal import NormalDistribution from pymix.distributions.product import ProductDistribution from pymix.models.mixture import MixtureModel from pymix.util.dataset import DataSet pr1 = ProductDistribution([ NormalDistribution(-6.0, 0.5), NormalDistribution(-4.0, 0.5), NormalDistribution(-3.0, 0.5) ]) pr2 = ProductDistribution([ NormalDistribution(-5.0, 0.5), NormalDistribution(-3.3, 0.5), NormalDistribution(-2.3, 0.5) ]) m = MixtureModel(2, [0.7, 0.3], [pr1, pr2]) seq = m.sampleSet(5) #print seq z = 0 m.printTraceback(DataSet().fromList(seq), z)
from pymix import mixture import random from pymix.parse import readMixture from pymix.util.alphabet import Alphabet from pymix.util.dataset import DataSet VNTR = Alphabet(['.', '2/4', '2/7', '3/4', '3/7', '4/4', '4/6', '4/7', '4/8', '4/9', '7/7']) DIAG = Alphabet(['.', '0', '8', '1']) data = DataSet() # iq.txt = iq and achievement test fields from pheno.txt # drd4_len.txt = drd4 vntr types, only number of repeats data.fromFiles(["filt_WISC_WIAT_DISC_134.txt"]) # ,"DRD4_134_len.txt" m = readMixture('pheno_best.py') print "Without deterministic anealing:" m.randMaxEM(data, 100, 30, 0.1, tilt=0, silent=0) print "\nWith deterministic annealing:" m.randMaxEM(data, 100, 30, 0.1, tilt=1, silent=0)
import random #d = DataSet(["test.txt","drd1.txt","pheno.txt"]) from pymix.distributions.multinomial import MultinomialDistribution from pymix.distributions.normal import NormalDistribution from pymix.distributions.product import ProductDistribution from pymix.models.mixture import MixtureModel from pymix.util.dataset import DataSet from test_mixture import SNP d = DataSet(["test.txt", "drd1.txt", "pheno.txt"]) print d p1 = [] p2 = [] p3 = [] p4 = [] for i in range(25): p1.append(random.random()) p2.append(random.random()) p3.append(random.random()) p4.append(random.random()) g1 = lambda x: x / sum(p1) p1 = map(g1, p1) g2 = lambda x: x / sum(p2) p2 = map(g2, p2) g3 = lambda x: x / sum(p3) p3 = map(g3, p3)
#e2.EM(seq2,60,5) # ----------------------------- Example 3 ----------------------------- m3 = MixtureModel(2, [0.3, 0.7], [NormalDistribution(0.0, 0.5), NormalDistribution(1.3, 0.5)]) (true, seq3) = m3.sampleSetLabels(380) m4 = MixtureModel( 2, [0.5, 0.5], [NormalDistribution(-1.5, 1.5), NormalDistribution(1.5, 1.5)]) dat = DataSet() dat.fromArray(seq3) print "vorher ------\n", m4 pred = m4.cluster(dat, nr_runs=5, nr_init=9, max_iter=30, delta=0.1, labels=None, entropy_cutoff=None) classes = m4.classify(dat) m4.shortInitEM(dat, 5, 5, 5, 0.1) m4.EM(seq3, 20, 0.1)