def generate_hopgraph(topology, trajectory, densityfile, filename, localcopy=False, **hopargs): density = hop.sitemap.Density(filename=densityfile) def _generate_hopgraph(trajectory): hoptraj = hop.trajectory.HoppingTrajectory(hoppsf=topology, hopdcd=trajectory) tgraph = hop.interactive.build_hoppinggraph(hoptraj,density) return tgraph if localcopy: # should probably also write locally and then copy back from tempfile import mkstemp from shutil import copy root,ext = os.path.splitext(trajectory) fd, tmptrajectory = mkstemp(suffix=ext) logger.info("Making local copy to improve read performance: %(trajectory)r --> %(tmptrajectory)r" % vars()) try: copy(trajectory, tmptrajectory) tgraph = _generate_hopgraph(tmptrajectory) finally: unlink_f(tmptrajectory) else: tgraph = _generate_hopgraph(trajectory) h = tgraph.hopgraph # main result is the 'hopgraph' h.save(filename) # save result logger.info("Saved hopgraph as %(filename)s.pickle", vars()) hop.interactive.hopgraph_basic_analysis(h, density, filename) return h
def generate_densities_locally(topology, trajectory, atomselection, localcopy=False): def _generate_densities(traj): return hop.interactive.generate_densities(topology, traj, atomselection=atomselection) if localcopy: from tempfile import mkstemp from shutil import copy root, ext = os.path.splitext(trajectory) fd, tmptrajectory = mkstemp(suffix=ext) logger.info( "Making local copy to improve read performance: %(trajectory)r --> %(tmptrajectory)r" % vars()) try: copy(trajectory, tmptrajectory) densities = _generate_densities(tmptrajectory) finally: unlink_f(tmptrajectory) else: densities = _generate_densities(trajectory) return densities
def generate_densities_locally(topology, trajectory, atomselection, localcopy=False): def _generate_densities(traj): return hop.interactive.generate_densities(topology, traj, atomselection=atomselection) if localcopy: from tempfile import mkstemp from shutil import copy root,ext = os.path.splitext(trajectory) fd, tmptrajectory = mkstemp(suffix=ext) logger.info("Making local copy to improve read performance: %(trajectory)r --> %(tmptrajectory)r" % vars()) try: copy(trajectory, tmptrajectory) densities = _generate_densities(tmptrajectory) finally: unlink_f(tmptrajectory) else: densities = _generate_densities(trajectory) return densities
def generate_hopgraph(topology, trajectory, densityfile, filename, localcopy=False, **hopargs): density = hop.sitemap.Density(filename=densityfile) def _generate_hopgraph(trajectory): hoptraj = hop.trajectory.HoppingTrajectory(hoppsf=topology, hopdcd=trajectory) tgraph = hop.interactive.build_hoppinggraph(hoptraj, density) return tgraph if localcopy: # should probably also write locally and then copy back from tempfile import mkstemp from shutil import copy root, ext = os.path.splitext(trajectory) fd, tmptrajectory = mkstemp(suffix=ext) logger.info( "Making local copy to improve read performance: %(trajectory)r --> %(tmptrajectory)r" % vars()) try: copy(trajectory, tmptrajectory) tgraph = _generate_hopgraph(tmptrajectory) finally: unlink_f(tmptrajectory) else: tgraph = _generate_hopgraph(trajectory) h = tgraph.hopgraph # main result is the 'hopgraph' h.save(filename) # save result logger.info("Saved hopgraph as %(filename)s.pickle", vars()) hop.interactive.hopgraph_basic_analysis(h, density, filename) return h
hops = hop.trajectory.HoppingTrajectory(u.trajectory,group,density,**hopargs) hops.write(filename) return hops if localcopy: # should probably also write locally and then copy back from tempfile import mkstemp from shutil import copy root,ext = os.path.splitext(trajectory) fd, tmptrajectory = mkstemp(suffix=ext) logger.info("Making local copy to improve read performance: %(trajectory)r --> %(tmptrajectory)r" % vars()) try: copy(trajectory, tmptrajectory) hops = _generate_hoptraj(tmptrajectory) finally: unlink_f(tmptrajectory) else: hops = _generate_hoptraj(trajectory) return hops if __name__ == "__main__": import sys from optparse import OptionParser parser = OptionParser(usage=__doc__) parser.add_option("-s", "--topology", dest="topology", metavar="FILE", help="topology to go with the trajectories; can be a PSF " "PDB, GRO, or whatever else MDAnalysis accepts; default is to " "try the path recorded in DENSITY") parser.add_option("-f", "--trajectory", dest="trajectory",