Samples, parsers, and writers for formats used in the Glotzer Group.
Project description
garnett
About
This is a collection of samples, parsers and writers for formats used in the Glotzer Group at the University of Michigan, Ann Arbor.
Maintainers
- Luis Y. Rivera-Rivera, lyrivera@umich.edu
- Kelly Wang, kelwang@umich.edu
- Carl Simon Adorf, csadorf@umich.edu
- Bradley Dice, bdice@umich.edu
Setup
To install this package with pip, execute:
pip install garnett --user
Documentation
The package's documentation is available at: https://garnett.readthedocs.io/
To build the documentation yourself using sphinx, execute within the repository:
cd doc
make html
open _build/html/index.html
Quickstart
Reading and writing
import garnett # Autodetects file format for a uniform trajectory API with garnett.read('gsdfile.gsd') as traj: for frame in traj: pos = frame.position # Simple conversion of trajectory formats with garnett.read('posfile.pos') as traj: garnett.write(traj, 'gsdfile.gsd')
Data access
Access individual frames by indexing or create subsets of trajectories with slicing:
first_frame = traj[0] last_frame = traj[-1] nth_frame = traj[n] # and so on sub_trajectory = traj[i:j]
Access properties of trajectories:
traj.load_arrays() traj.box # M traj.N # M traj.types # MxT traj.type_shapes # MxT traj.typeid # MxN traj.position # MxNx3 traj.orientation # MxNx4 traj.velocity # MxNx3 traj.mass # MxN traj.charge # MxN traj.diameter # MxN traj.moment_inertia # MxNx3 traj.angmom # MxNx4 traj.image # MxNx3 # M is the number of frames # T is the number of particle types in a frame # N is the number of particles in a frame
Access properties of individual frames:
frame = traj[i] frame.box # garnett.trajectory.Box object frame.N # scalar, number of particles frame.types # T, string names for each type frame.type_shapes # T, list of shapes for each type frame.typeid # N, type indices of each particle frame.position # Nx3 frame.orientation # Nx4 frame.velocity # Nx3 frame.mass # N frame.charge # N frame.diameter # N frame.moment_inertia # Nx3 frame.angmom # Nx4 frame.image # Nx3 frame.data # Dictionary of lists for each attribute frame.data_key # List of strings
All matrices are NumPy arrays.
Example use with HOOMD-blue
See the examples directory for additional examples.
pos_reader = PosFileReader() with open('cube.pos') as posfile: traj = pos_reader.read(posfile) # Initialize from last frame snapshot = traj[-1].to_hoomd_snapshot() system = init.read_snapshot(snapshot) # Restore last frame snapshot = system.take_snapshot() traj[-1].to_hoomd_snapshot(snapshot)
Testing
To run all garnett tests, ddt
, HOOMD-blue (hoomd
), and pycifrw
must be installed in the testing environments.
Execute the tests with:
python -m unittest discover tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size garnett-0.7.1-py3-none-any.whl (76.2 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size garnett-0.7.1.tar.gz (126.3 kB) | File type Source | Python version None | Upload date | Hashes View |