""" Testing functionality of the Universe class """ import numpy as np from isdhic import utils pymol = utils.ChainViewer() universe = utils.create_universe(n_particles=1e4 - 1, diameter=4.) for counter, particle in enumerate(universe): if counter % 100: continue print particle, np.round(universe.coords[particle.serial])
posterior, contacts = create_isd_posterior() L_intra = posterior.likelihoods['contacts'] L_bbone = posterior.likelihoods['backbone'] L_rog = posterior.likelihoods['Rg'] prior = posterior.conformational_priors['tsallis_prior'] beadsize = L_bbone.data.values[0] ## make isdhic classes n_particles = len(posterior.universe.atoms) params = isdhic.Parameters() universe = utils.create_universe(n_particles, beadsize) coords = isdhic.Coordinates(universe) forces = isdhic.Forces(universe) forcefield = isdhic.ForcefieldFactory.create_forcefield( 'rosetta', universe) forcefield.d = np.array([[beadsize]]) forcefield.k = np.array([[0.0486]]) contacts = isdhic.ModelDistances(contacts, 'contacts') logistic = isdhic.Logistic(contacts.name, L_intra.data.values, contacts, params=params) connectivity = zip(range(n_particles - 1), range(1, n_particles))
return list(pairs) def numpy_distances(distances, universe): return np.sum((universe.coords[distances.first_index] - universe.coords[distances.second_index])**2, 1)**0.5 if __name__ == '__main__': n_particles = int(1e4) - 1 n_distances = 10000 diameter = 4. universe = utils.create_universe(n_particles, diameter) precision = isdhic.Precision('lowerupper') coords = isdhic.Coordinates(universe) pairs = random_pairs(n_particles, n_distances) connectivity = zip(np.arange(1, n_particles), np.arange(n_particles - 1)) contacts = isdhic.ModelDistances(pairs, 'contacts') chain = isdhic.ModelDistances(connectivity, 'chain') distances = isdhic.ModelDistances(connectivity + pairs, 'all') params = isdhic.Parameters() for param in (precision, coords, distances): params.add(param) print 'Getting/setting of Cartesian coordinates works? -',