MODELLER
A Program for Protein Structure Modeling
Release 10.1, r12156
ˇ
Andrej Sali
with help from
Ben Webb, M.S. Madhusudhan, Min-Yi Shen, Guangqiang Dong, Marc A. Martı-Renom, Narayanan Eswar, Frank Alber, Maya Topf, Baldomero Oliva, Andr´as Fiser, Roberto S´anchez, Bozidar Yerkovich,
Azat Badretdinov, Francisco Melo, John P. Overington, and Eric Feyfant
email: modeller-care AT salilab.org URL https://salilab.org/modeller/
2021/03/12
ii
Contents
Copyright notice Acknowledgments xxi xxv
- 1
- Introduction
- 1
12345889
1.1 What is Modeller? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Modeller bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Obtaining and installing the program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Bug reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Method for comparative protein structure modeling by Modeller . . . . . . . . . . . . . . . . . . . 1.6 Using Modeller for comparative modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.1 Preparing input files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.2 Running Modeller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- 2
- Automated comparative modeling with AutoModel
- 11
2.1 Simple usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 More advanced usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Including water molecules, HETATM residues, and hydrogen atoms . . . . . . . . . . . . . . 12 2.2.2 Changing the default optimization and refinement protocol . . . . . . . . . . . . . . . . . . . 14 2.2.3 Getting a very fast and approximate model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.4 Building a model from multiple templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.5 Building an all hydrogen model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.6 Refining only part of the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.7 Including disulfide bridges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.8 Generating new-style PDBx/mmCIF outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.9 Providing your own restraints file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.10 Using your own initial model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.11 Adding additional restraints to the defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.12 Building multi-chain models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.13 Residues and chains in multi-chain models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.14 Accessing output data after modeling is complete . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.15 Fully automated alignment and modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Loop optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1 Automatic loop refinement after model building . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.2 Defining loop regions for refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 iv
CONTENTS
2.3.3 Refining an existing PDB file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
- 3
- Frequently asked questions and history
- 31
3.1 Frequently asked questions (FAQ) and examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Modeller updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1 Changes since release 10.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2.2 Changes since release 9.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
- 4
- Comparative modeling class reference
- 39
4.1 AutoModel reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.1 AutoModel() — prepare to build one or more comparative models . . . . . . . . . . . . . . . 39 4.1.2 AutoModel.library schedule — select optimization schedule . . . . . . . . . . . . . . . . . . . 40 4.1.3 AutoModel.md level — control the model refinement level . . . . . . . . . . . . . . . . . . . . 40 4.1.4 AutoModel.outputs — all output data for generated models . . . . . . . . . . . . . . . . . . . 40 4.1.5 AutoModel.rand method — control initial model randomization . . . . . . . . . . . . . . . . 40 4.1.6 AutoModel.generate method — control initial model generation . . . . . . . . . . . . . . . . . 40 4.1.7 AutoModel.max var iterations — select length of optimizations . . . . . . . . . . . . . . . . . 41 4.1.8 AutoModel.repeat optimization — number of times to repeat optimization . . . . . . . . . . 41 4.1.9 AutoModel.max molpdf — objective function cutoff . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.10 AutoModel.initial malign3d — initial template alignment . . . . . . . . . . . . . . . . . . . . 41 4.1.11 AutoModel.starting model — first model to build . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.12 AutoModel.ending model — last model to build . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.13 AutoModel.final malign3d — final template-model alignment . . . . . . . . . . . . . . . . . . 41 4.1.14 AutoModel.write intermediates — write intermediate files during optimization . . . . . . . . 41 4.1.15 AutoModel.trace output — control optimization output . . . . . . . . . . . . . . . . . . . . . 41 4.1.16 AutoModel.max ca ca distance — Distance cutoff for CA-CA homology-derived restraints . . 42 4.1.17 AutoModel.max n o distance — Distance cutoff for N-O homology-derived restraints . . . . . 42 4.1.18 AutoModel.max sc mc distance — Distance cutoff for sidechain-mainchain homology-derived restraints 42 4.1.19 AutoModel.max sc sc distance — Distance cutoff for sidechain-sidechain homology-derived restraints 42 4.1.20 AutoModel.blank single chain — Control chain ID for single-chain models . . . . . . . . . . . 42 4.1.21 AutoModel.set output model format() — set format for output models . . . . . . . . . . . . . 42 4.1.22 AutoModel.get optimize actions() — get actions to carry out during the initial optimization . 43 4.1.23 AutoModel.get refine actions() — get actions to carry out during the refinement . . . . . . . 43 4.1.24 AutoModel.select atoms() — select region for optimization and assessment . . . . . . . . . . 43 4.1.25 AutoModel.auto align() — generate an automatic initial alignment . . . . . . . . . . . . . . . 43 4.1.26 AutoModel.very fast() — request rapid optimization . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.27 AutoModel.make() — build all models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1.28 AutoModel.cluster() — cluster all built models . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.1.29 AutoModel.special restraints() — add additional restraints . . . . . . . . . . . . . . . . . . . 44 4.1.30 AutoModel.nonstd restraints() — add restraints on ligands . . . . . . . . . . . . . . . . . . . 44 4.1.31 AutoModel.special patches() — add additional patches to the topology . . . . . . . . . . . . 44 4.1.32 AutoModel.user after single model() — analyze or refine each model . . . . . . . . . . . . . . 45 4.1.33 AutoModel.get model filename() — get the model PDB/mmCIF name . . . . . . . . . . . . . 45 4.1.34 AutoModel.use parallel job() — parallelize model building . . . . . . . . . . . . . . . . . . . . 45
CONTENTS
v
4.1.35 AutoModel.guess atom types() — automatically assign Charmm atom types . . . . . . . . . 45 4.1.36 AutoModel.guess atom type() — automatically assign Charmm atom type . . . . . . . . . . 45
4.2 AllHModel reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.1 AllHModel() — prepare to build all-hydrogen models . . . . . . . . . . . . . . . . . . . . . . 46
4.3 LoopModel reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.1 LoopModel() — prepare to build models with loop refinement . . . . . . . . . . . . . . . . . . 46 4.3.2 LoopModel.loop.md level — control the loop model refinement level . . . . . . . . . . . . . . 46 4.3.3 LoopModel.loop.max var iterations — select length of optimizations . . . . . . . . . . . . . . 46 4.3.4 LoopModel.loop.library schedule — select optimization schedule . . . . . . . . . . . . . . . . 47 4.3.5 LoopModel.loop.starting model — first loop model to build . . . . . . . . . . . . . . . . . . . 47 4.3.6 LoopModel.loop.ending model — last loop model to build . . . . . . . . . . . . . . . . . . . . 47 4.3.7 LoopModel.loop.write selection only — write PDB/mmCIFs containing only the loops . . . . 47 4.3.8 LoopModel.loop.write defined only — only write non-loop atoms present in the input model 47 4.3.9 LoopModel.loop.outputs — all output data for generated loop models . . . . . . . . . . . . . 47 4.3.10 LoopModel.select loop atoms() — select region for loop optimization and assessment . . . . . 47 4.3.11 LoopModel.get loop model filename() — get the model PDB/mmCIF name . . . . . . . . . . 48 4.3.12 LoopModel.user after single loop model() — analyze or refine each loop model . . . . . . . . 48 4.3.13 LoopModel.read potential() — read in the loop modeling potential . . . . . . . . . . . . . . . 48 4.3.14 LoopModel.build ini loop() — create the initial conformation of the loop . . . . . . . . . . . 48
4.4 DOPELoopModel reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4.1 DOPELoopModel() — prepare to build models with DOPE loop refinement . . . . . . . . . . 49
4.5 DOPEHRLoopModel reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
- 5
- Modeller general reference
- 51
5.1 Miscellaneous rules and features of Modeller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.1 Modeller system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1.2 Controlling breakpoints and the amount of output . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1.3 File naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1.4 File types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Stereochemical parameters and molecular topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.1 Modeling residues with non-existing or incomplete entries in the topology and parameter libraries 54
5.3 Spatial restraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.1 Specification of restraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.3.2 Specification of pseudo atoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3.3 Excluded pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3.4 Rigid bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.3.5 Symmetry restraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
- 6
- Modeller command reference
- 65
6.1 Key for command descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2 The Environ class: Modeller environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2.1 Environ() — create a new Modeller environment . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2.2 Environ.io — default input parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.3 Environ.edat — default objective function parameters . . . . . . . . . . . . . . . . . . . . . . 66 vi
CONTENTS
6.2.4 Environ.libs — Modeller libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.5 Environ.schedule scale — energy function scaling factors . . . . . . . . . . . . . . . . . . . . . 66 6.2.6 Environ.dendrogram() — clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.7 Environ.principal components() — clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.2.8 Environ.system() — execute system command . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.2.9 Environ.make pssmdb() — Create a database of PSSMs given a list of profiles . . . . . . . . 67
6.3 The EnergyData class: objective function parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.3.1 EnergyData() — create a new set of objective function parameters . . . . . . . . . . . . . . . 69 6.3.2 EnergyData.contact shell — nonbond distance cutoff . . . . . . . . . . . . . . . . . . . . . . . 69 6.3.3 EnergyData.update dynamic — nonbond recalculation threshold . . . . . . . . . . . . . . . . 69 6.3.4 EnergyData.sphere stdv — soft-sphere standard deviation . . . . . . . . . . . . . . . . . . . . 70 6.3.5 EnergyData.dynamic sphere — calculate soft-sphere overlap restraints . . . . . . . . . . . . . 70 6.3.6 EnergyData.dynamic lennard — calculate Lennard-Jones restraints . . . . . . . . . . . . . . . 70 6.3.7 EnergyData.dynamic coulomb — calculate Coulomb restraints . . . . . . . . . . . . . . . . . 70 6.3.8 EnergyData.dynamic modeller — calculate non-bonded spline restraints . . . . . . . . . . . . 70 6.3.9 EnergyData.excl local — exclude certain local pairs of atoms . . . . . . . . . . . . . . . . . . 70 6.3.10 EnergyData.radii factor — scale atomic radii . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.3.11 EnergyData.lennard jones switch — Lennard-Jones switching parameters . . . . . . . . . . . 70 6.3.12 EnergyData.coulomb switch — Coulomb switching parameters . . . . . . . . . . . . . . . . . 71 6.3.13 EnergyData.relative dielectric — relative dielectric . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3.14 EnergyData.covalent cys — use disulfide bridges in residue distance . . . . . . . . . . . . . . 71 6.3.15 EnergyData.nonbonded sel atoms — control interaction with picked atoms . . . . . . . . . . 71 6.3.16 EnergyData.nlogn use — select non-bond list generation algorithm . . . . . . . . . . . . . . . 71 6.3.17 EnergyData.max nlogn grid cells — maximum number of grid cells for NlogN nonbond pairs routine 71 6.3.18 EnergyData.energy terms — user-defined global energy terms . . . . . . . . . . . . . . . . . . 72
6.4 The IOData class: coordinate file input parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.4.1 IOData() — create a new input parameters object . . . . . . . . . . . . . . . . . . . . . . . . 73 6.4.2 IOData.hetatm — whether to read HETATM records . . . . . . . . . . . . . . . . . . . . . . 73 6.4.3 IOData.hydrogen — whether to read hydrogen atoms . . . . . . . . . . . . . . . . . . . . . . 73 6.4.4 IOData.water — whether to read water molecules . . . . . . . . . . . . . . . . . . . . . . . . 73 6.4.5 IOData.convert modres — whether to convert modified residues . . . . . . . . . . . . . . . . 73 6.4.6 IOData.hybrid36 — whether to read PDB files conformant with hybrid-36 . . . . . . . . . . . 74 6.4.7 IOData.two char chain — whether to read PDB files with two-character chain IDs . . . . . . 74 6.4.8 IOData.atom files directory — search path for coordinate files . . . . . . . . . . . . . . . . . 74
6.5 The Libraries class: stereochemical parameters and molecular topology . . . . . . . . . . . . . . . 75
6.5.1 Libraries.topology — topology library information . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.2 Libraries.parameters — parameter library information . . . . . . . . . . . . . . . . . . . . . . 75 6.5.3 Topology.append() — append residue topology library . . . . . . . . . . . . . . . . . . . . . . 75 6.5.4 Topology.clear() — clear residue topology library . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.5 Topology.read() — read residue topology library . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.6 Parameters.append() — append parameters library . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.7 Parameters.clear() — clear parameters library . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.8 Parameters.read() — read parameters library . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
CONTENTS
vii
6.5.9 Topology.make() — make a subset topology library . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.10 Topology.submodel — select topology model type . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.5.11 Topology.write() — write residue topology library . . . . . . . . . . . . . . . . . . . . . . . . 77
6.6 The Model class: handling of atomic coordinates, and model building . . . . . . . . . . . . . . . . . . 78
6.6.1 Model() — create a new 3D model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.6.2 Model.seq id — sequence identity between the model and templates . . . . . . . . . . . . . . 78 6.6.3 Model.resolution — resolution of protein structure . . . . . . . . . . . . . . . . . . . . . . . . 78 6.6.4 Model.last energy — last objective function value . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.6.5 Model.remark — text remark(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.6.6 Model.restraints — all static restraints which act on the model . . . . . . . . . . . . . . . . . 78 6.6.7 Model.group restraints — all restraints which act on atom groups . . . . . . . . . . . . . . . 79 6.6.8 Model.atoms — all atoms in the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.6.9 Model.point() — return a point in Cartesian space . . . . . . . . . . . . . . . . . . . . . . . . 79 6.6.10 Model.atom range() — return a subset of all atoms . . . . . . . . . . . . . . . . . . . . . . . . 79 6.6.11 Model.residue range() — return a subset of all residues . . . . . . . . . . . . . . . . . . . . . 79 6.6.12 Model.get insertions() — return a list of all insertions . . . . . . . . . . . . . . . . . . . . . . 80 6.6.13 Model.get deletions() — return a list of all deletions . . . . . . . . . . . . . . . . . . . . . . . 80 6.6.14 Model.loops() — return a list of all loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.6.15 Model.read() — read coordinates for MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.6.16 Model.build sequence() — build model from a sequence of one-letter codes . . . . . . . . . . 82 6.6.17 Model.write() — write MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.6.18 Model.clear topology() — clear model topology . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.6.19 Model.generate topology() — generate MODEL topology . . . . . . . . . . . . . . . . . . . . 83 6.6.20 Model.make valid pdb coordinates() — make coordinates fit in PDB format . . . . . . . . . . 84 6.6.21 Model.write psf() — write molecular topology to PSF file . . . . . . . . . . . . . . . . . . . . 84 6.6.22 Model.patch() — patch MODEL topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.6.23 Model.patch ss templates() — guess MODEL disulfides from templates . . . . . . . . . . . . 85 6.6.24 Model.patch ss() — guess MODEL disulfides from model structure . . . . . . . . . . . . . . . 87 6.6.25 Model.build() — build MODEL coordinates from topology . . . . . . . . . . . . . . . . . . . 87 6.6.26 Model.transfer xyz() — copy templates’ coordinates to MODEL . . . . . . . . . . . . . . . . 88 6.6.27 Model.res num from() — residue numbers from MODEL2 to MODEL . . . . . . . . . . . . . 90 6.6.28 Model.rename segments() — rename MODEL segments . . . . . . . . . . . . . . . . . . . . . 90 6.6.29 Model.to iupac() — standardize certain dihedral angles . . . . . . . . . . . . . . . . . . . . . 91 6.6.30 Model.reorder atoms() — standardize order of MODEL atoms . . . . . . . . . . . . . . . . . 91 6.6.31 Model.orient() — center and orient MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.6.32 Model.write data() — write derivative model data . . . . . . . . . . . . . . . . . . . . . . . . 93 6.6.33 Model.make region() — define a random surface patch of atoms . . . . . . . . . . . . . . . . 95 6.6.34 Model.color() — color MODEL according to alignment . . . . . . . . . . . . . . . . . . . . . 95 6.6.35 Model.make chains() — Fetch sequences from PDB file . . . . . . . . . . . . . . . . . . . . . 97 6.6.36 Model.saxs intens() — Calculate SAXS intensity from model . . . . . . . . . . . . . . . . . . 97 6.6.37 Model.saxs pr() — Calculate P(r) of model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.6.38 Model.saxs chifun() — Calculate SAXS score chi from model . . . . . . . . . . . . . . . . . . 97 6.6.39 Model.assess ga341() — assess a model with the GA341 method . . . . . . . . . . . . . . . . 97 viii