Skip to main content

Samples, parsers, and writers for formats used in the Glotzer Group.

Project description

garnett

CircleCI RTD Contributors License

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

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

garnett-0.7.0.tar.gz (126.1 kB view details)

Uploaded Source

Built Distribution

garnett-0.7.0-py3-none-any.whl (76.2 kB view details)

Uploaded Python 3

File details

Details for the file garnett-0.7.0.tar.gz.

File metadata

  • Download URL: garnett-0.7.0.tar.gz
  • Upload date:
  • Size: 126.1 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

Hashes for garnett-0.7.0.tar.gz
Algorithm Hash digest
SHA256 eb7d6c4a8362f65b6fe2283006fb8a248a27fd45b28fc4d4379ee4a72c90325b
MD5 0631454aeecd93ac5266b02dad7a9fa5
BLAKE2b-256 2551018f77d67651cc49ce11dfb23d1d044f536a779d40355d4e6023c4ac1caa

See more details on using hashes here.

File details

Details for the file garnett-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: garnett-0.7.0-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

Hashes for garnett-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e36d14b15f1d3da5ab59a94b344a92784ef404682067fe17245fc9d3fbc2c7f5
MD5 1cbcef7118db60a15c0a4f36d0b4b4f4
BLAKE2b-256 1eda04ca83d342a159922f9e54fa696ab921c9736011b0bed584dda24ddfb8f9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page