Extract a subset from a trajectory — MMTK User Guide 2.7.7 documentation

### Navigation

- index
- modules |
- MMTK User Guide 2.7.7 documentation »

# Extract a subset from a trajectory

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    # This program reads a trajecory for a solvated protein and
    # extracts just the protein data, which it stores in a new
    # trajectory. This trajectory is smaller and easier to analyze
    # or visualize.
    #
    # Note: You cannot run this example without having a suitable
    #       trajectory file, whose name you should put in place of
    #       "full_trajectory.nc" below.
    #

    from MMTK import *
    from MMTK.Trajectory import Trajectory, TrajectoryOutput, SnapshotGenerator

    # Open the input trajectory.
    full = Trajectory(None, 'full_trajectory.nc')

    # Collect the items you want to keep. Here we keep everything but
    # water molecules.
    universe = full.universe
    keep = Collection()
    for object in universe:
        try:
            is_water = object.type.name == 'water'
        except AttributeError:
            is_water = 0
        if not is_water:
            keep.addObject(object)

    # Open the new trajectory for just the interesting objects.
    subset = Trajectory(keep, 'subset_trajectory.nc', 'w')

    # Make a snapshot generator for saving.
    snapshot = SnapshotGenerator(universe,
                                 actions = [TrajectoryOutput(subset, None,
                                                             0, None, 1)])

    # Loop over all steps and save them to the new trajectory.
    for configuration in full.configuration:
        universe.setConfiguration(configuration)
        snapshot()

    # Close both trajectories.
    full.close()
    subset.close()

### Navigation

- index
- modules |
- MMTK User Guide 2.7.7 documentation »