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.
Source Distribution
Built Distribution
File details
Details for the file garnett-0.7.1.tar.gz
.
File metadata
- Download URL: garnett-0.7.1.tar.gz
- Upload date:
- Size: 126.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1734a1ef477a2bae0422a6dbe9d76bd3c208d851825fe067d6a80f1339dea698 |
|
MD5 | 624a374a92c2a1e7279f552d268e22bf |
|
BLAKE2b-256 | e4d902e249c34f4575954a3a37ca13897c7b9fb076bbee618b73a50cfc93b37a |
File details
Details for the file garnett-0.7.1-py3-none-any.whl
.
File metadata
- Download URL: garnett-0.7.1-py3-none-any.whl
- Upload date:
- Size: 76.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25444120fe6aa9effde9fb3133b0269494f0f79789175fa9f67e0ea5d3f5ce95 |
|
MD5 | 32e97fe8a399ce482042aa226cb6fe30 |
|
BLAKE2b-256 | b1dbdbe598c79ca7f52b0698a17e871ca01c3aa873553f77ee867b734b03b1c7 |