Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010344110 | QH324.2 B874 2015 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
A Step-by-Step Guide to Describing Biomolecular Structure
Computational and Visualization Techniques for Structural Bioinformatics Using Chimera shows how to perform computations with Python scripts in the Chimera environment. It focuses on the three core areas needed to study structural bioinformatics: biochemistry, mathematics, and computation.
Understand Important Concepts of Structural Bioinformatics
The book covers topics that deal primarily with protein structure and includes many exercises that are grounded in biological problems at the molecular level. The text encourages mathematical analysis by providing a firm foundation for computations. It analyzes numerous Python scripts for the Chimera environment, with the scripts and other material available on a supplementary website.
Build Python Scripts to Extend the Capabilities of Chimera
Through more than 60 exercises that involve the development of Python scripts, the book gives you concrete guidance on using the scripting capabilities of Chimera. You'll gain experience in solving real problems as well as understand the various applications of linear algebra. You can also use the scripts as starting points for the development of similar applications and use classes from the StructBio toolkit for computations, such as structure overlap, data plotting, scenographics, and display of residue networks.
Print Versions of this book also include access to the ebook version.
Author Notes
Forbes Burkowski is a professor of computer science at the University of Waterloo in Ontario, Canada.
Table of Contents
Preface | p. xvii |
Acknowledgments | p. xxiii |
Author | p. xxv |
Chapter 1 Introduction: Macromolecules and Chimera | p. 1 |
1.1 Motivation | p. 1 |
1.2 Why Chimera? | p. 2 |
1.3 Getting Started With Chimera | p. 4 |
1.4 Overview of Protein Structure | p. 4 |
1.4.1 Amino Acids and Primary Sequence | p. 5 |
1.4.2 Secondary Structure | p. 10 |
1.4.2.1 Alpha Helices | p. 10 |
1.4.2.2 Beta Strands | p. 12 |
1.4.2.3 Loops | p. 16 |
1.4.3 Tertiary Structure | p. 17 |
1.4.3.1 What Is Tertiary Structure? | p. 17 |
1.4.3.2 Tertiary Structure of Myoglobin | p. 18 |
1.4.3.3 Tertiary Structure beyond the Binding Pocket | p. 21 |
1.4.4 Quaternary Structure | p. 27 |
1.4.5 Protein Functionality | p. 29 |
1.4.6 Protein Domains | p. 31 |
1.5 Exercises | p. 33 |
References | p. 35 |
Chapter 2 Accessing and Displaying Molecular Data with Chimera | p. 39 |
2.1 Motivation | p. 39 |
2.2 Python Skills | p. 40 |
2.3 Python Scripting | p. 41 |
2.3.1 Script 2.1: Using Raw Input to Get a PDB ID | p. 44 |
2.4 Chimera Object Hierarchy | p. 44 |
2.5 Attributes for Molecule Objects | p. 48 |
2.6 Attributes for Sequence Objects | p. 49 |
2.6.1 Referencing a Sequence Object | p. 49 |
2.6.2 Identification of a Sequence | p. 50 |
2.6.3 Sequence Entries | p. 50 |
2.6.4 Getting Residue Objects from a Sequence | p. 51 |
2.6.5 Residue Maps for Sequences | p. 52 |
2.7 Attributes for Residue Objects | p. 53 |
2.7.1 Referencing a Residue Object | p. 53 |
2.7.2 Identification and Characterization of Residues | p. 54 |
2.7.3 Location of a Residue | p. 55 |
2.7.4 Deriving Substructure | p. 56 |
2.7.5 Other Useful Attributes | p. 57 |
2.8 Attributes for Atom Objects | p. 58 |
2.8.1 Referencing Atom Objects | p. 58 |
2.8.2 Identification of Atoms and Atom Properties | p. 59 |
2.8.3 Working with Atom Coordinates | p. 60 |
2.8.4 Atom Attributes Related to Chemical Structure | p. 60 |
2.8.5 Atoms and Bonds | p. 61 |
2.5.1 Atom Attributes Related to the Display | p. 62 |
2.9 Attributes for Bond Objects | p. 62 |
2.9.1 Referencing Bond Objects | p. 62 |
2.9.2 Bond Attributes | p. 63 |
2.10 Working with a Batch of Files | p. 64 |
2.10.1 Dealing with Files | p. 64 |
2.10.2 Script 2.2: Getting a Batch of Files from the Protein Data Bank | p. 66 |
2.10.3 Script 2.3: Getting a Batch of PDB Files by Using Chimera | p. 67 |
2.11 Hiliter Class | p. 67 |
2.12 Hbonddicts Class | p. 69 |
2.12.1 Using the HBondDicts Class | p. 69 |
2.13 Exercises | p. 71 |
References | p. 86 |
Websites for Python | p. 86 |
Chapter 3 Algorithms Dealing with Distance | p. 87 |
3.1 Motivation | p. 87 |
3.2 Calculating Interatomic Distances | p. 87 |
3.3 Applications | p. 90 |
3.4 Rapid Determination of Atom Membership in Shells | p. 90 |
3.4.1 Implementation Strategy | p. 91 |
3.5 Contact Maps for Proteins | p. 95 |
3.5.1 Script for Generating Contact and Distance Maps | p. 97 |
3.6 Inertial Axes | p. 99 |
3.6.1 Motivation | p. 99 |
3.6.2 Mathematical Analysis | p. 100 |
3.6.3 Script for Computing the Inertial Axis | p. 104 |
3.7 Dehydrons | p. 108 |
3.7.1 Motivation | p. 108 |
3.7.2 Script for Identifying Dehydrons | p. 110 |
3.8 Exercises | p. 112 |
References | p. 132 |
Chapter 4 Algorithms Dealing with Angles | p. 135 |
4.1 Motivation | p. 135 |
4.2 Bond Angle | p. 135 |
4.2.1 Calculating Bond Angles in a Script | p. 136 |
4.3 Dihedral Angles | p. 137 |
4.3.1 Denning Dihedral Angles | p. 137 |
4.3.2 Mathematics for the Computation of a Dihedral Angle | p. 139 |
4.3.3 Computation of a Normal | p. 139 |
4.3.4 Calculating the Phi Dihedral Angle | p. 142 |
4.3.5 Sign of the Dihedral Angle | p. 142 |
4.3.6 Calculating the Psi Dihedral Angle | p. 144 |
4.3.7 Calculating Dihedral Angles in a Script | p. 144 |
4.4 Ramachandran Plots | p. 145 |
4.4.1 Scripts for Generating Ramachandran Plots | p. 149 |
4.4.2 Script 4.1: Generating a Ramachandran Plot for a Protein | p. 150 |
4.4.3 Background Densities for Ramachandran Plots | p. 151 |
4.4.4 3D Ramachandran Plots | p. 152 |
4.5 Least Squares Plane | p. 154 |
4.5.1 Motivation | p. 154 |
4.5.2 Least Squares Plane: Mathematical Analysis | p. 154 |
4.5.3 A Script for Computing the Least Squares Plane | p. 159 |
4.6 Exercises | p. 165 |
References | p. 179 |
Chapter 5 Structure Overlap and Alignment | p. 181 |
5.1 Motivation | p. 181 |
5.2 Introduction | p. 184 |
5.2.1 Specifying the Problem | p. 184 |
5.3 Techniques for Structural Comparison | p. 185 |
5.4 Scoring Similarities and Optimizing Scores | p. 186 |
5.5 Superposition Algorithms | p. 186 |
5.5.1 Overview | p. 186 |
5.5.2 Characterizing the Superposition Algorithm | p. 188 |
5.5.3 Formal Problem Description | p. 189 |
5.5.4 Computations to Achieve Maximal Overlap | p. 190 |
5.5.5 Summary | p. 197 |
5.5.6 Measuring Overlap | p. 198 |
5.5.6.1 Calculation of the Root Mean Square Deviation | p. 198 |
5.6 A Simple Script to Do Structural Superimposition | p. 199 |
5.7 Protein Sequence Alignment | p. 202 |
5.7.1 Partial matches | p. 203 |
5.7.2 Gaps | p. 205 |
5.7.3 Summary | p. 206 |
5.7.4 Computation | p. 206 |
5.7.4.1 Subproblem Specification | p. 207 |
5.7.4.2 Scoring Alignments | p. 207 |
5.7.4.3 Suitability of the Subproblem | p. 208 |
5.7.4.4 A Global Alignment Example | p. 211 |
5.8 Variations in the Global Alignment Algorithm | p. 212 |
5.9 Percent Identity Comparison | p. 213 |
5.10 Local Alignment | p. 214 |
5.11 A Script to do Sequence Alignment and then Structural Overlap | p. 216 |
5.12 Dealing with Weaker Sequence Similarity | p. 218 |
5.12.1 Structural Alignment by Overlapping Pairs of Secondary Structure Elements | p. 220 |
5.12.2 A Script for Structural Alignment by Overlapping Secondary Structure Elements | p. 224 |
5.13 Exercises | p. 226 |
References | p. 242 |
Chapter 6 Potential Energy Functions | p. 245 |
6.1 Motivation | p. 245 |
6.1.1 Empirical Observations | p. 246 |
6.1.2 Mathematical Modeling | p. 246 |
6.1.2.1 Energy Terms for Bonded Atoms | p. 247 |
6.1.2.2 Energy Terms for Nonbonded Atoms | p. 249 |
6.1.2.3 Total Potential Energy | p. 250 |
6.1.3 Computational Issues | p. 251 |
6.2 Some Simple Scripts to do Energy Calculations | p. 254 |
6.2.1 Linear Repulsive Energy Terms | p. 254 |
6.2.2 An Energy Function Based on the Lennard-Jones Formula | p. 255 |
6.2.3 Computing Energy Using Amber Parameters in Chimera | p. 256 |
6.3 Exercises | p. 258 |
6.3.1 Comparing Lennard-Jones and Piecewise Linear Energy Functions | p. 258 |
References | p. 260 |
Chapter 7 Rotamers and Side-Chain Conformation | p. 263 |
7.1 Motivation | p. 263 |
7.2 Side-Chain Packing: Computational Issues | p. 264 |
7.3 Rotamericity | p. 265 |
7.4 Accessing Rotamers Using a Python Script | p. 267 |
7.5 Rotamers and Dihedral Angles | p. 271 |
7.6 A Single Side Chain and Energy Considerations | p. 271 |
7.7 Side-Chain Packing and Dead-End Elimination | p. 275 |
7.7.1 Goldstein's DEE: Basic Strategy | p. 276 |
7.7.2 Goldstein's DEE: A More Efficient Strategy | p. 278 |
7.7.3 Side-Chain Packing | p. 278 |
7.8 Exercises | p. 278 |
7.8.1 Dead-End Elimination | p. 278 |
References | p. 279 |
Chapter 8 Residue Networks | p. 281 |
8.1 Motivation | p. 281 |
8.2 Three-Dimensional (3D) Visualization of Residue Networks | p. 282 |
8.3 Allostery and Contact Rearrangement Networks | p. 283 |
8.4 Exercises | p. 285 |
8.4.1 Spheres Representing Residues | p. 285 |
8.4.2 Spheres and Spindles for Residue Networks | p. 286 |
8.4.3 Spheres and Spindles for Residue Networks: Graphical User Interface (GUI) Implementation | p. 289 |
8.4.4 Graphs for Residue Networks: GUI Implementation | p. 290 |
8.4.5 Contact Rearrangement Networks: Evaluating RF(i, j) | p. 290 |
8.4.6 Displaying the Residue Network for Rearranged Contacts | p. 292 |
References | p. 295 |
Appendix A Simple Dialogs | p. 297 |
Appendix B Scenographics | p. 317 |
Appendix C The Graph Class | p. 345 |
Appendix D 2D and 3D Plots | p. 365 |
Appendix E Dynamic Programming | p. 395 |
Index | p. 409 |