Command-line Options¶
Dabble has many command line options. See Examples for typical usage.
The command-line tool is dabble
. Run with no arguments
to see a list of all arguments, or for help:
dabble -h
Input and output¶
Dabble takes as input a pdb
, mae
, or dms
file containing a prepared protein
of interest:
-i <protein file name>
"Prepared" in this context means hydrogens are added, caps (if desired) are added to the end of protein chains, and missing atoms, residues, or loops have been filled in. Dabble will not add or remove atoms from the input protein.
Specify the output file name with:
-o <output>
The format of the output will be inferred by file extension, with the extension
referring to that of the topology file. Multiple output files will be produced
with different extensions, such as , or you can specify
it manually with the -format
argument:
--format [amber|charmm|desmond|gromacs|lammps|mae|pdb]
Note
Sometimes, Dabble will produce multiple output format files, depending on
the requested forcefield and format. For example, requesting a system be
dabbled with the charmm forcefield with output in amber format will produce
a .psf
, .pdb
CHARMM-format files, along with .prmtop
and
.inpcrd
AMBER-format files. The table only shows the files you are
guaranteed to get regardless of chosen forcefield.
The relationship between file format, file extension, and format string is:
Format |
Extension |
Supported codes |
Produced files |
---|---|---|---|
amber |
|
AMBER, NAMD, OpenMM, ACEMD |
|
charmm |
|
CHARMM, NAMD, OpenMM, ACEMD |
|
desmond |
|
Anton (via conversion), Desmond |
|
gromacs |
|
GROMACS, OpenMM |
|
lammps |
|
LAMMPS |
|
mae |
|
N/A - unparameterized |
|
pdb |
|
N/A - unparameterized |
|
Note
If building a system, Dabble will always produce a .mae
file with the
build, unparameterized system. This can be useful if testing multiple
forcefields.
Dabble will never overwrite any existing files with its output. If you wish to disable this functionality, you can enable overwriting with::
-O
Or --overwrite
.
Builder options¶
Geometry specification¶
Dabble builds the system by inserting the protein into a membrane, then adding water and ions. The exact dimensions of the membrane, and amount of water, can all be specified.
I recommend using a buffer-based specification, where water and lipid are placed so that there is the specified amount of padding in the X, Y, and Z dimensions.
The buffer distance is from the edge of the protein to the edge of the periodic box, so the distance between protein images is double this value.:
--membrane-buffer-dist 17.5 --water-buffer 10.0
For water-only systems, no need to specify the membrane buffer:
-M none --water-buffer 15.0
The X and Y dimensions of the protein are handled separately using the buffer-based calculation, so the resulting system may not be square. If instead you want to manually specify your system size, you can use the following options. This will produce a system where the periodic box is 50 x 50 x 100 A.:
--absolute-x 50.0 --absolute-y 50.0 --absolute-z 100.0
You can mix the buffer-based and absolute system size specifications. Any absolute dimensions will take priority.:
--membrane-buffer-dist 20.0 --absolute-z 50.0
Input system orientation¶
The input system will be centered in the XY plane and the membrane will be added around it on the XY plane. Water will be added in the Z dimension. If your protein or input molecule(s) is not oriented right or you need to move it, there are several ways to fix it.
The simplest is to pre-align to the Orientation of Proteins in Membranes database when preparing the protein for dabbling.
Alternatively, Dabble can attempt to perform an alignment. Note that due to the
functionality available in the vmd-python backend, the alignment must be done
to equal numbers of atoms in the reference and target proteins. You can specify
which atoms should be aligned using a VMD atom selection language, which
defaults to protein and backbone
.:
--opm-pdb <opm pdb file> --opm-align "protein and backbone"
You can also manually specify the orientation of the protein relative to the membrane in terms of its angle to the membrane and Z offset. The membrane angle is the rotation of the membrane relative to the axis of the protein, in degrees, as on the OPM website. Z offset is applied directly to the protein's coordinates. The membrane is always centered in the XY plane.:
--move-solute <z offset> --membrane-rotation <degrees>
Lipid membrane¶
Dabble can add a lipid membrane to your input structure. If no membrane is specified, Dabble will use a POPC membrane. However, you may also specify your own. The membrane should be equilibrated, and can include any amount of water in the +- Z direction, as Dabble will trim excess. If there is insufficient water to solvate your protein, Dabble will add more, but it will require equilibration.
To build your own membranes for Dabble using CHARMM-GUI, please read membranes
Todo
Support for direct loading of CHARMM-GUI membranes in PDB format will be added in the future.
The membrane should be oriented on the XY plane and in mae file format.:
-M <membrane mae file>
If you don't want a membrane, Dabble solvate the system in just water. The water model that will be used is specified elsewhere.:
-M none
Dabble tries to delete atoms from the membrane that run into the input structure. Its default logic works well, but you can provide your own selection strings if you have an unusual membrane. The defaults are shown here.
Sometimes Dabble may not recognize your custom membrane as being composed of
lipids. If this is the case, you can manually specify an atom selection for the
lipid residues. The default value will pull out the following resnames: DLPE
DMPC DPPC GPC LPPC PALM PC PGCL POPC POPE POPG POPS
. The following selection
should correspond to the lipids in the input membrane::
--lipid-selection "resname DOPC"
You can also specify the minimum distance between protein and lipid residues to move the lipid either closer or farther from the protein. The default value is 1.75 A.:
--lipid-dist 2.0
Lipid or integral membrane molecules that have rings that may clash with lipids should be represented by the lipid clash selection::
--lipid-clash-check "resname CLR CLOL"
Parts of the input system that are "lipid-friendly" and are allowed to be closer to the protein are in the lipid friendly selection. This is useful if you have a palmitoylation or other post-translational molecules on an input protein::
--lipid-friendly-sel "none"
Ions¶
Dabble will add ions in the solvent to the desired salt concentration (defaults to 0.150 M, which is approximately physiological). Then, anions or cations will be deleted until the system is neutral.
Currently the supported cations are Na:sub:+ and K:sub:+, with Na:sub:+ being the default.:
--cation K
The default anion is Cl:sub:-:
--anion Cl
To add ions just so the system is neutral::
--salt-concentration 0.0
Todo
Cations and anions with charge more than than 1 have not been tested, and the system may not be neutral.
Parameterization options¶
After building a system, Dabble can assign parameters from a force field and produce parameterized files suitable for input to a simulation code.
Dabble interfaces with the appropriate parameterization program (psfgen, tleap, or pdb2gmx). It is an expert user of the program, setting atom types and handling covalent linkages. It can even detect and apply CHARMM patches!
Force field¶
Specify the desired force field::
--forcefield "charmm"
Currently supported values are:
Forcefield |
Description |
---|---|
|
Amber 14: ff14SB protein, GAFF2 small molecule, lipid14 lipids |
|
CHARMM36m, July 2018 update |
|
OPLS AA/M, 2001 amino acid dihedrals |
Todo
Lipids are unsupported with the OPLS AA/M forcefield due to uncertainty about parameter files. If you are an expert OPLS user, please contact the developers to help.
Water model¶
You can also select which water model to use::
--water-model "tip3"
Currently supported values are:
Model |
Description |
---|---|
|
TIP3 model, from W.L. Jorgensen, J.Chandrasekhar, J.D. Madura; R.W. Impey, M.L. Klein; Comparison of simple potential functions for simulating liquid water; J. Chem. Phys. 79 926-935 (1983) |
|
TIP4P-Ewald, from H.W. Horn, W.C Swope, J.W. Pitera, J.D. Madura, T.J. Dick, G.L. Hura, T. Head-Gordon; J. Chem. Phys. 20: 9665-9678 (2004) |
|
SPC/E model, from H.J.C. Berendsen, J. R. Grigera, T. P. Straatsma; The Missing Term in Effective Pair Potentials; J. Phys. Chem 1987, 91, 6269-6271 (1987) |
Todo
TIP4P/Ew will not work with AMBER-format .prmtop
output using the
CHARMM forcefield, most likely due to a bug in ParmEd. This is under
investigation.
Additional parameter files¶
If you have ligands or other residues that are not represented in the default force field, you must provide both a topology and parameter file for these residues. See Tutorials for how to obtain these files.
Pass topology files with the -top flag, and parameter files with the -prm flag. You can provide these flags multiple times::
-ff amber -top ligand1.off -par ligand1.frcmod -top ligand2.off -parm ligand2.frcmod
For AMBER, Dabble can also parse .leaprc files that can load multiple other topology and parameter files. These are considered a topology file but can be also passed as a parameter file::
-ff amber -top all_ligands.leaprc
Some formats, like CHARMM, will combine the topology and parameter files into one. You should pass this file as both::
-ff charmm -top ligand.str -par ligand.str
Custom forcefields¶
If you want to use your own force field files and not have Dabble load any for
you, specify the forcefield flag as usual and pass --override-defaults
,
and all your parameter files.
For example, to use only the old GAFF forcefield in AMBER::
-ff amber -par $AMBERHOME/dat/leap/cmd/leaprc.gaff --override-defaults
Hydrogen mass repartitioning¶
To run your simulations in AMBER with timesteps up to 4 fs, Dabble can use the ParmEd API to conduct hydrogen mass repartitioning. This only works when requesting output in AMBER formats.:
--format amber --hmr
Debug options¶
Dabble writes temporary files to a directory that it tries to clean up when it's done. To retain this directory in a specific location::
--tmp-dir /tmp/dabble/
And to be more verbose:
--verbose