Skip to content

DMD Options in dmdinput.json

natjohnston edited this page Apr 27, 2022 · 5 revisions

dmdinput.json Options

Standard DMD options

The following are dmd options at are similar to the configuration file when running DMD by hand. For a more detailed explanation of these options, see the DMD manual.

  • Thermostat (string): Specifies the thermostat to use. Only known thermostat available is the ANDERSON thermostat.
  • Initial Temperature (double): initial temperature for the DMD simulation to use.
  • Final Temperature (double): final temperature for the DMD simulation to achieve. If this is different than Initial Temperature, then the system temperature will slowly be changed to this final value.
  • HEAT_X_C (double): specifies the rate at which energy is absorbed into the system from the bath. Essentially heat exchange rate.
  • Echo File (string): specifies the name of the echo file.
  • Movie File (string): specifies the name of the movie file.
  • Restart File (string): specifies the name of the restart file.
  • dt (positive int): Number of DMD time steps before saving in the echo, movie, and restart file.
  • Time (double): Number of total DMD time steps to perform.

Protonation States and Titratable DMD options

The titr (dictionary) section specifies parameters for titratable-DMD. Note that this section is experimental as the method is not currently published. The following are the available options:

  • titr on (bool): specifies if titrations are allowed to occur.
  • dt (positive int): specifies the number of DMD time steps between evaluations of the protonation states.
  • Buried Cutoff (double between 0 and 1/string): cutoff for the propka buried % above which a residue is considered solvent inaccessible. This only affects protonation state assessment and not the forcefield.
  • Partner Distance (double): distance between which 2 residues can freely exhcange protons in an equilibrated manner in the timeframe of DMD steps. Typically 3.5 is used, consistend with the maximum DMD hydrogen bonding distance potential.
  • Fixed States (list of strings): residues for which the protonation states should not change at all. Each element of the list should identify the residue using the standard notation in phd3 ("chain:resNum"). That is, if residue 43, and 54 of chain a should not have their protonation states changed, then the following is valid "Fixed States": ["A:43", ""A:54].

Furthermore, we can specify the starting protonation states for the simulation using the Custom protonation states (list of [string, string, <int = 1 >], the last int is optional and is defaulted to 0) key. The following gives an example:

    "Custom protonation states": [
        ["A", 117, "deprotonate"],
        ["A", 117, "protonate"],
        ["A", 32, "protonate", 2]
}

In this case, residue A:117 is a histidine. Since we both deprotonate and protonate it, we are actually changing the protonation state from the delta-nitrogen to the epsilon-nitrogen. The last command is for residue A:32, which is a glutamine. Since we specify the 2 at the end, we are saying to protonate the second atom in the list below (that is atom A:32:OE2). If we had not specified the 2, then it would protonate the first in the list (atom A:32:OE1). The following are all of the atoms/residues with different protonation states.

PROTONATED = {
           "ASP": [("OD1", "2HND"), ("OD2", "1HND")],
           "GLU": [("OE1", "2HNE"), ("OE2", "1HNE")],
           "HIS": [("NE2", "2HNE")]
       }
DEPROTONATED = {
           "SER": [("OG", "HO")],
           "CYS": [("SG", "HG1")],
           "THR": [("OG1", "HO")],
           "ASN": [("ND2", "1HND"), ("ND2", "2HND")],
           "GLN": [("NE2", "1HNE"), ("NE2", "2HNE")],
           "TYR": [("OH", "HO")],
           "TRP": [("NE1", "HE1")],
           "HIS": [("ND1", "HD1")],
           "ARG": [("NH1", "2HH1"), ("NH1", "1HH1"), ("NH2", "2HH2"), ("NH2","1HH2"), ("NE", "HE")],
           "LYS": [("NZ", "HZ1"), ("NZ", "HZ2"), ("NZ", "HZ3")]
}

Protein Constraints

  • Freeze Non-Residues (bool): specifies if any non-canonical amino acid residues (ie substrate and metals) should be frozen during the course of the simulation.
  • Restrict Metal Ligands (bool): specifies if any atom bonded to a metal (heteroatom within 3.5 Ang) should be frozen. Additionally, dampenings between these atoms and the atoms it are bound to are placed to soften the impact of not allowing DMD to move these atoms.
  • Frozen atoms (dictionary): specifies chains, residues, and atoms, for which they should be frozen during the course of the simulation. The following are valid options:
    • Chains (list of strings): specifies chains to freeze. All residues within the chain will be frozen. Chains are specified as "chainLetter".
    • Residues (list of strings): specifies residues to freeze. All atoms within these residues will be frozen. Residues are specified as "chainLetter:residueNumber".
    • Atoms (list of strings): specifies atoms to freeze. Atoms are specified as "chainLetter:residueNumber:atomID".
  • Restrict Displacement (list of (list(string, double, string), list(string, double, string), float)): specifies constraints between two atoms in the protein such that DMD does not change the distance between them by the value specified per DMD time step. For example, for 2 cysteine residues, A:45 and B:65, which have a disulfide bridge, it is necessary to specify "Restrict Displacement": [[["A", 45, "SG"], ["B", 65, "SG"], 0.02]] as DMD does not understand disulfide bridges. This will prevent the atoms from moving too far apart during the course of the simulation.

Specifying the Commands

The commands (dictionary) lets you control which steps to take with DMD. That is, you can string multiple pdmd calls together with slightly different parameters so that you get the simulation that you want. That is, it is often good to perform an annealing step, followed by some equilibration prior to the the final production runs. We can therefore do something like

"Commands" : {
    "Anneal": {
        "Time" : 1000,
        "Initial Temperature" : 0.2
    },
    "Equilibrate" : {
        "Time" : 100000
    },
    "Production" : {
        "Echo File" : "prod_echo",
        "Movie File" : "prod_movie",
        "Time": 500000
    }
}

This will perform 3 DMD simulations. First, it will change the initial temperature to 0.2 and run it for 1000 DMD time steps. Note these override the values specified elsewhere in the file! Next, it will perform a 100000 timestep DMD simulation. Then, it will start the production runs with a different echo and movie file, all while running for 500000 DMD time steps.

Do not touch the Remaining Commands section as this is used by phd3 to keep track of the remaining commands that you specified.