Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
IAlibay opened this issue Sep 25, 2023 · 0 comments
Open

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

IAlibay opened this issue Sep 25, 2023 · 0 comments

Comments

@IAlibay
Copy link
Member

IAlibay commented Sep 25, 2023

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant