API for the TNGFileIterator Class

class pytng.TNGFileIterator

File handle object for TNG files

Supports use as a context manager (“with” blocks).

block_ids

Dictionary of block names and block ids (long longs) in the TNG file

Returns:

block_ids – dictionary of block names (keys) and block ids (values)

Return type:

dict

block_strides

Dictionary of block names and the strides (in integrator steps) at which they are written in the TNG file

Returns:

block_strides – dictionary of block names (keys) and strides of each block (values)

Return type:

dict

current_integrator_step
Class that retrieves data from the file at the current integrator

step

Returns:

current_integrator_step – The data accessor at the current integrator step

Return type:

TNGCurrentIntegratorStep

make_ndarray_for_block_from_id(self, int64_t block_id) ndarray

Make a NumPy array that can hold a specified block from the block id

Parameters:

block_id (int64_t) – a block id

Returns:

target – A NumPy array that can hold the data values for a specified block

Return type:

np.ndarray

See also

block_ids

dict dictionary of block names (keys) and block ids (values) available in this TNG file

make_ndarray_for_block_from_name(self, str block_name) ndarray

Make a NumPy array that can hold a specified block from the block name

Parameters:

block_name (str) – a block name

Returns:

target – A NumPy array that can hold the data values for a specified block

Return type:

np.ndarray

See also

block_ids

dict dictionary of block names (keys) and block ids (values) available in this TNG file

n_atoms

The number of atoms in the TNG file

Returns:

n_atoms – number of atoms

Return type:

int

n_data_frames

Dictionary of block names and the number of actual steps with data for that block in the TNG file

Returns:

n_data_frames – dictionary of block names (keys) and number of steps with data (values)

Return type:

dict

n_steps

The number of integrator steps in the TNG file

Returns:

n_steps – number of integrator steps

Return type:

int

particle_dependencies

Dictionary of block names and whether the block is particle dependent

Returns:

particle_dependencies – dictionary of block names (keys) and particle dependencies (values)

Return type:

dict

read_step(self, step) TNGCurrentIntegratorStep

Read a step (integrator step) from the file

Parameters:

step (int) – step to read from the file

Returns:

current_integrator_step – The data accessor at the current integrator step

Return type:

TNGCurrentIntegratorStep

Raises:

ValueError – attempt to read a negative step or step number greater than that in the input file

step

The current integrator step being read

Returns:

step – the current step in the TNG file

Return type:

int

values_per_frame

Dictionary of block names and the number of values per frame for the block

Returns:

values_per_frame – dictionary of block names (keys) and number of values per frame (values)

Return type:

dict

class pytng.TNGCurrentIntegratorStep

Retrieves data at the curent trajectory step

frame_strides_blockid

frame_stride

Returns:

frame_strides_blockid – Dictionary of frame strides

Return type:

dict

Type:

Dictionary of blockid

get_blockid(self, int64_t block_id, ndarray data)

Get a block ID present at the current step and read it into a NumPy array

Parameters:
  • block_id (int64_t) – TNG block id to read from the current step

  • data (np.ndarray) – NumPy array to read the data into, the required shape is determined by the block dependency and the number of values per frame.

Raises:
  • TypeError – The dtype of the numpy array provided is not supported by TNG datatypes or does not match the underlying datatype.

  • IOError – The block data type cannot be understood.

  • IndexError – The shape of the numpy array provided does not match the shape of the data to be read from disk.

get_box(self, ndarray data) ndarray

Get the box vectors present at the current step and read them into a NumPy array. The box vectors are a (3,3) matrix comprised of 3 three-dimensional basis vectors for the coordinate system of the simulation. The vectors can be accessed in their proper shape by reshaping the resulting (1,9) matrix to be (3,3) with ndarray.reshape(3,3).

Parameters:

data (np.ndarray) – NumPy array to read the data into. As this is NOT a particle dependent block, the shape should be (1, n_values_per_frame) ie (1,9)

get_forces(self, ndarray data) ndarray

Get the forces present at the current step and read them into a NumPy array

Parameters:

data (np.ndarray) – NumPy array to read the data into. As this is a particle dependent block, the shape should be (n_atoms, n_values_per_frame) ie (n_atoms, 3).

get_positions(self, ndarray data) ndarray

Get the positions present at the current step and read them into a NumPy array

Parameters:

data (np.ndarray) – NumPy array to read the data into. As this is a particle dependent block, the shape should be (n_atoms, n_values_per_frame) ie (n_atoms, 3).

get_time(self)

Get the time of the current integrator step being read from the file

Returns:

time – the time of the current step

Return type:

int

get_velocities(self, ndarray data) ndarray

Get the velocities present at the current step and read them into a NumPy array

Parameters:

data (np.ndarray) – NumPy array to read the data into. As this is a particle dependent block, the shape should be (n_atoms, n_values_per_frame) ie (n_atoms, 3).

read_success

Indicates whether the last attempt to read data was successful

Returns:

read_success – Whether the last attempt to read data was successful

Return type:

bool

step

The current integrator step being read

Returns:

step – the current step in the TNG file

Return type:

int