Exemple #1
0
    def testParameterEstimation(self):

        d = 3
        mu = numpy.ones(d)
        sigma = numpy.eye(d)

        pdf = MultivariateGaussian(mu, sigma)
        samples = pdf.random(100000)
        pdf.estimate(samples)

        for i in range(d):
            self.assertAlmostEqual(pdf.mu[i], mu[i], delta=1e-1)
            for j in range(d):
                self.assertAlmostEqual(pdf.sigma[i, j],
                                       sigma[i, j],
                                       delta=1e-1)

        d = 3
        mu = numpy.array([0., 1., 2.])
        sigma = numpy.random.random((d, d))
        sigma = numpy.dot(sigma, sigma.T)
        pdf = MultivariateGaussian(mu, sigma)
        samples = pdf.random(1000000)
        pdf.estimate(samples)

        for i in range(d):
            self.assertAlmostEqual(pdf.mu[i], mu[i], delta=1e-1)
            for j in range(d):
                self.assertAlmostEqual(pdf.sigma[i, j],
                                       sigma[i, j],
                                       delta=1e-1)
Exemple #2
0
    def testParameters(self):

        pdf = MultivariateGaussian(numpy.zeros(3), numpy.eye(3))
        d = 2
        pdf.mu = numpy.zeros(d)
        pdf.sigma = numpy.eye(d)

        self.assertEqual(list(pdf.mu), [0, 0])
        self.assertEqual(pdf.sigma.tolist(), numpy.eye(d).tolist())
 def testParameters(self):
 
     pdf = MultivariateGaussian(numpy.zeros(3), numpy.eye(3))
     d = 2
     pdf.mu = numpy.zeros(d)
     pdf.sigma = numpy.eye(d)
     
     self.assertEqual(list(pdf.mu), [0, 0])
     self.assertEqual(pdf.sigma.tolist(), numpy.eye(d).tolist())    
    def testParameterEstimation(self):
        
        d = 3
        mu = numpy.ones(d)
        sigma = numpy.eye(d)

        pdf = MultivariateGaussian(mu, sigma)
        samples = pdf.random(100000)
        pdf.estimate(samples)

        for i in range(d):
            self.assertAlmostEqual(pdf.mu[i], mu[i], delta=1e-1)
            for j in range(d):
                self.assertAlmostEqual(pdf.sigma[i, j], sigma[i, j], delta=1e-1)
                

        d = 3
        mu = numpy.array([0., 1., 2.])
        sigma = numpy.random.random((d, d))
        sigma = numpy.dot(sigma, sigma.T)
        pdf = MultivariateGaussian(mu, sigma)
        samples = pdf.random(1000000)
        pdf.estimate(samples)

        for i in range(d):
            self.assertAlmostEqual(pdf.mu[i], mu[i], delta=1e-1)
            for j in range(d):
                self.assertAlmostEqual(pdf.sigma[i, j], sigma[i, j], delta=1e-1)
Exemple #5
0
    def testLogProb(self):

        mg = MultivariateGaussian(numpy.zeros(2), numpy.eye(2))

        self.assertAlmostEqual(mg(numpy.zeros(2)),
                               1. / (2 * numpy.pi),
                               delta=1e-1)
        self.assertAlmostEqual(mg(numpy.ones(2)),
                               1. / (2 * numpy.pi) * numpy.exp(-0.5),
                               delta=1e-1)
Exemple #6
0
coords  = StructureParser(prot1 + '.pdb').parse().get_coordinates(['CA']) / 4.0
coords2 = StructureParser(prot2 + '.pdb').parse().get_coordinates(['CA']) / 4.0


## size of fake ensemble
ensemble_size = 1000
## sigma of Gausian noise added to positions to generate random ensemble
sigma = 0.05
## cutoff from which to determine contact frequencies
cutoff = 1.8

n_beads = len(coords)

if False:
    ## create data by adding Gaussian noise
    g = MultivariateGaussian(mu=coords.ravel(), sigma=sigma * numpy.eye(n_beads*3))
    ensemble1 = g.random(size=ensemble_size).reshape(ensemble_size, n_beads, 3)
    g = MultivariateGaussian(mu=coords2.ravel(), sigma=sigma * numpy.eye(n_beads*3))
    ensemble2 = g.random(size=ensemble_size).reshape(ensemble_size, n_beads, 3)
    dms1 = numpy.array(map(distance_matrix, ensemble1))
    dms2 = numpy.array(map(distance_matrix, ensemble2))
    frequencies1 = numpy.sum(dms1 < cutoff, 0)
    frequencies2 = numpy.sum(dms2 < cutoff, 0)
    summed_frequencies = frequencies1 + frequencies2

if False:
    ## create Poisson-distributed data
    dm1 = distance_matrix(coords)
    dm2 = distance_matrix(coords2)
    cs1 = ensemble_size * (dm1 < cutoff)
    cs2 = ensemble_size * (dm2 < cutoff)