Esempio n. 1
0
def test_compute_bond(trajectory):

    # 1. Compute the bond distance between atoms 0 and 1 for the trajectory.
    # Test if the first frame's bond length is correct.

    ai.compute_bond(trajectory, "R01", 0, 1)
    assert trajectory.frames[0].properties["R01"] == pt.approx(
        1.282298373, rel=1e-10)  # 0767554
def test_major_trajectory_operations(tmp_path, trajectory):
    # 1. Plot Bond Distances (Spaghetti + Blur)
    # Compute the a bond distance property for all Frames in traj
    ai.compute_bond(trajectory, "R01", 0, 1)
    ai.plot_scalar(
        tmp_path / "R.pdf",
        trajectory,
        "R01",
        ylabel=r"$R_{CC} [\AA{}]$",
        time_units="fs",
        state_colors=["r", "b"],
        plot_average=True,
    )

    # Blur the bond distance (convolve)
    R = np.linspace(0.5, 3.0, 50)
    ai.blur_property(trajectory, "R01", "Rblur", R, alpha=8.0)
    #    Plot the heat map of blurred bond distance
    ai.plot_vector(
        tmp_path / "Rblur.pdf",
        trajectory,
        "Rblur",
        y=R,
        ylabel=r"$R [\AA{}]$",
        time_units="fs",
        nlevel=64,
    )

    # 2. Plot of Torsion Angle (Spaghetti + Blur)

    # Compute the a torsion angle property for all Frames in traj
    ai.compute_torsion(trajectory, "T0123", 0, 1, 2, 3)
    ai.unwrap_property(trajectory, "T0123", 360.0)
    ai.plot_scalar(
        tmp_path / "T.pdf",
        trajectory,
        "T0123",
        ylabel=r"$\Theta [^{\circ{}}]$",
        time_units="fs",
        state_colors=["r", "b"],
        plot_average=True,
    )

    # Blur the torsion
    T = np.linspace(-180.0, +180.0, 100)
    ai.blur_property(trajectory, "T0123", "Tblur", T, alpha=0.02)
    #    Plot the heat map of blurred torison
    ai.plot_vector(
        tmp_path / "Tblur.pdf",
        trajectory,
        "Tblur",
        y=T,
        ylabel=r"$Theta [^{\circ{}}]$",
        time_units="fs",
        nlevel=64,
    )

    # 3. UED Cross Section

    # Compute the "simple" form of the UED cross section in R
    R = np.linspace(1.0, 6.0, 50)
    ai.compute_ued_simple(trajectory, "UED", R=R, alpha=8.0)

    # Plot the heat map of the UED cross section detailed above
    ai.plot_vector(
        tmp_path / "UED.pdf",
        trajectory,
        "UED",
        y=R,
        ylabel=r"$R [\AA{}]$",
        time_units="fs",
        diff=True,
    )
Esempio n. 3
0
                   x) for x in [1, 2, 3]
]
# Merge the trajectories into one super-big Bundle with uniform weights
traj = ai.Bundle.merge(trajs,
                       ws=[1.0 / len(trajs)] * len(trajs),
                       labels=[1, 2, 3])
print((traj.labels))
# Compute properties at ~1 fs intervals, removing nonsense due to adaptive timesteps
ts = np.arange(0.0, max(traj.ts), 40.0)  # TODO: Cleaner edges
traj = traj.interpolate_nearest(ts)

# => Showoff Plot of Bond Distances (Spaghetti + Blur) <= #

# Compute the a bond distance property for all Frames in traj
# This particular bond is the one that leads to a three-ring complex
ai.compute_bond(traj, "R01", 7, 8)

# Blur the bond distance
R = np.linspace(1.0, 6.0, 50)
ai.blur_property(traj, "R01", "Rblur", R, alpha=8.0)

# Plot the heat map of blurred bond distance
# ai.plot_vector('R2.pdf', traj, 'Rblur', y=R, ylabel=r'$R [\AA{}]$', time_units='fs', twosided=False, cmap=plt.get_cmap('viridis'))
ai.plot_vector("R.pdf",
               traj,
               "Rblur",
               y=R,
               ylabel=r"$R [\AA{}]$",
               time_units="fs",
               nlevel=64)
ai.plot_scalar(