Skip to content

[MDAKit / Hackathon] State-based density analysis #26

Description

@IAlibay

Overview

Calculations of densities of solvent or ligands with the
MDAnalysis.analysis.density code can be a powerful way to
obtain a global picture of solvent/ligand behavior in relationship
to, e.g., a protein. Sometimes there are changes in the protein
that lead to a different density but when averaged over the whole
trajectory, the changes in the density are averaged out and are
less clear. It is therefore useful to generate densities only
for parts of the trajectory that correspond to a specific
state of the system.

For our purpose here, a state is a collection of trajectory frames.
Each frame only belongs to a single state.

States can be identified in many difference ways.

  • For example, we can look at the conformation of the protein itself
    and use clustering by protein RMSD (see Project above). But we
    can also cluster by ligands or specific sidechains: select
    small molecule/ion binding sites or sidechain configurations by a
    ligning to a ‘fixed’ reference (e.g. protein) and perform
    clustering using the coordinates of the group of interest.
  • Compute some form of order parameter and assign different states
    based on the order parameter (e.g., a distance that describes when
    a protein is in an "open" conformation (distance greater than a
    cutoff) and a "closed" conformation (distance smaller than a cutoff)),
    or a distance that indicates when a small molecule is bound/not bound.

Objectives

  1. Create an analysis class that takes as input a list of states
    (e.g., a dict stateID -> list of trajectory frames, or a a list of lists
    where state 0 corresponds to list 0, state 1 to list 1, etc...)
    and then creates a density for each state (making use of the existing
    MDAnalysis.analysis.density.DensityAnalysis; note the frames keyword
    of the run() method,
    which takes a list of trajectory frames).
  2. Optimize the approach so that you don't have to run DensityAnalysis
    separately for each state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions