#!/usr/bin/env python
# -*- coding: utf-8 -*-
from chemharp import Trajectory
def main():
traj = Trajectory("filename.xyz")
frame = traj.read_next_step()
positions = frame.positions()
indexes = []
for i in range(len(frame)):
# positions is a numpy ndarray
if positions[i, 0] < 5:
indexes.append(i)
print("Atoms with x < 5: ")
for i in indexes:
print(" - {}".format(i))
if __name__ == "__main__":
main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from chemharp import Trajectory
import math
def main():
traj = Trajectory("filename.nc")
distances = []
# Accumulate the distances to the origin of the 10th atom throughtout the
# trajectory
while (not traj.done()):
frame = traj.read()
# Position of the 10th atom
position = frame.positions()[9, :]
distance = math.sqrt(position.dot(position))
distances.append(distance)
mean = sum(distances)/len(distances)
rmsd = 0.0
for dist in distances:
rmsd += (mean - dist)*(mean - dist)
rmsd /= len(distances)
rmsd = math.sqrt(rmsd)
print("Root-mean square displacement is: {}".format(rmsd))
if __name__ == "__main__":
main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from chemharp import Trajectory, UnitCell, Atom, Topology
def main():
input_file = Trajectory("water.xyz")
water_topology = Topology()
# Orthorombic UnitCell with lengths of 20, 15 and 35 A
cell = UnitCell(20, 15, 35)
# Create Atoms
O = Atom("O")
H = Atom("H")
# Fill the topology with one water molecule
water_topology.append(O)
water_topology.append(H)
water_topology.append(H)
water_topology.add_bond(0, 1)
water_topology.add_bond(0, 2)
output = Trajectory("water.pdb", "w")
while not input_file.done():
frame = input_file.read()
# Set the frame cell and topology
frame.cell = cell
frame.topology = water_topology
# Write the frame to the output file, using PDB format
output.write(frame)
if __name__ == "__main__":
main()