def test_serial(): universe = mda.Universe(waterPSF, waterDCD) sel_string = 'all' selection = universe.select_atoms(sel_string) xpos = np.array([0., 0., 0., 0.0072334, 0.00473299, 0., 0., 0., 0., 0.]) ld = LinearDensity(selection, binsize=5).run() assert_almost_equal(xpos, ld.results['x']['pos'])
def density(u, binsize, block): '''Computes water density profile perpendicular to a surface. Args: u: MDAnalysis Universe object containing trajectory. binsize: Bin size of profile (histogram). block: Range of frames composing block. Returns: Linear density profile. ''' # Select water water = u.select_atoms('name O or name H') # Initialize and run linear density analysis ldens = LinearDensity(water, binsize=binsize, verbose=True) ldens.run(start=block.start, stop=block.stop) return ldens.results.z.pos
def test_serial(self): ld = LinearDensity(self.selection, binsize=5).run() assert_allclose(self.xpos, ld.results['x']['pos'], rtol=1e-6, atol=0)
def electron_density_mdanalysis(self): '''This function calulate the charge density through MDAnalaysis''' u = mda.Universe(self.tprpath, self.trjpath) lipid_types_first = ''.join(self.molecules[0]) print(lipid_types_first) self.lipid_type_items = ' '.join(self.molecules) print(lipid_types_first) selection = u.select_atoms('resname {}'.format(self.lipid_type_items)) ref_selection = u.select_atoms( 'resname {} and name P'.format(lipid_types_first)) print(self.times[2]) interval_of_frames = str(self.times[2]) print(interval_of_frames) if self.times[2] == '1000': start_frame = 100 frame_intervals = 1 end_frame = 300 else: start_frame = 1000 frame_intervals = 10 end_frame = 3000 Idens = LinearDensity(selection, grouping='atoms', binsize=0.25, start=start_frame, step=frame_intervals, stop=end_frame) Idens.run() Idens.save(description='densprof', form='txt') # subtracting the center of geometry of the lipid from the first column of the data # calculating center of geometry of lipids u = self.universe cog = [] for i_ts, ts in enumerate(u.trajectory[start_frame::frame_intervals]): ref_selection_xyz = ref_selection.center_of_geometry() cog.append(ref_selection_xyz[2]) centerofgeometry_z = np.mean(cog) #### dat = np.loadtxt('{}_{}.densprof_atoms.ldens'.format(self.system, self.temperature, skiprows=2)) dat[:, 0] = dat[:, 0] - centerofgeometry_z np.savetxt('{}_{}.densprof_atoms_centered.ldens'.format( self.system, self.temperature), dat, delimiter=' ', fmt='%.5f')
def test_results_warning(): universe = mda.Universe(waterPSF, waterDCD) msg = ("The structure of the `results` dictionary will change in " "MDAnalysis version 2.0.") with pytest.warns(DeprecationWarning, match=msg): LinearDensity(universe.atoms).run()
sel.append("name OW and (around %.4f resname %s) and name OW and (not \ around %.4f resname %s)" % (cation[2], cation[0], cation[1], cation[0])) sel.append("name OW and (around %.4f resname %s)" % (anion[1], anion[0])) sel.append("name OW and (around %.4f resname %s) and name OW and (not \ around %.4f resname %s)" % (anion[2], anion[0], anion[1], anion[0])) # Water mass density analysis print("#------------------------------------------------------#") print("Start Water mass density analysis") os.system("mkdir Mass-Density") resid = int((u.select_atoms("resname SOL").n_atoms) / 3) u = mda.Universe(TPR, TRR) water = u.select_atoms("resid 0-%d" % (resid)) watermassdensity = LA(water) watermassdensity.run() watermassdensity.save(description='watermassdensity', form='txt') data = np.loadtxt("nvtnemd.watermassdensity_atoms.ldens", skiprows=2) labels = ["x", "y", "z"] colors = ["chartreuse", "deepskyblue", "r"] for i in range(len(labels)): if i == 0: plt.plot(data[:, 0] / 10.0, data[:, i + 1], color=colors[i], lw=2.0, label=labels[i]) if i == 1: