molecular visualization introduction · • can be used to directly load or run svl programs •...

19
1 Molecular Visualization Jeffry D. Madura Department of Chemistry & Biochemistry Duquesne University Introduction Assessments of change, dynamics, and cause and effect are at the heart of thinking and explanation. To understand is to know what cause provokes what effect, by what means, at what rate. How then is such knowledge to be represented? 1 The goal is to design “…proper arrangement in space and time images, words, numbers – for presenting information about motion, process, mechanism, cause, and effect. 1 Therefore visualization, in our case molecular visualization, is extremely important since it is an extremely effective method to convey information. 1 Tufte, Edward R. “Visual Explanations” , 1997, Graphics Press. Examples Examples

Upload: others

Post on 18-Apr-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

1

Molecular Visualization

Jeffry D. MaduraDepartment of Chemistry & Biochemistry

Duquesne University

Introduction• Assessments of change, dynamics, and cause and

effect are at the heart of thinking and explanation. To understand is to know what cause provokes what effect, by what means, at what rate. How then is such knowledge to be represented?1”

• The goal is to design “…proper arrangement in space and time images, words, numbers – for presenting information about motion, process, mechanism, cause, and effect.1

• Therefore visualization, in our case molecular visualization, is extremely important since it is an extremely effective method to convey information.

1Tufte, Edward R. “Visual Explanations” , 1997, Graphics Press.

Examples Examples

Page 2: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

2

Examples Examples

History of Visualization of Biological Macromolecules

http://www.umass.edu/microbio/rasmol/history.htm

OpenDX

Page 3: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

3

RasMol• Created by Roger

Sayle• Easy to use, very

basic, and quick to learn.

PyMol• Open-source molecular

modellingsystem• http://pymol.sourceforge.net/

VMD

• Visual Molecular Dynamics• It is a molecular visualization program

for displaying, animating, and analyzing large biomolecular systems using 3-D graphics and built-in scripting.

• http://www.ks.uiuc.edu/Research/vmd/

MOE

• Molecular Operating Environment

• Chemical Computing Group (www.chemcomp.com)

• Visualization and simulation tool

• Runs of numerous computers and has distributive computing capabilities

• Programmable

Page 4: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

4

Others• Protein Explorer

– A visualization tool using a web browser

• Chime– A browser plugin

• Cn3D– From the NCBI and NLM

• For a comprehensive list of Molecular Visualization tools, tutorials, and examples visit molvisindex.org

Protein Data Bank

MOE (Molecular Object Environment)• MOE is a visualization and computational

program• Features include

– Visualization and manipulation of molecular objects– Computation of various molecular properties by a

number of methods (e.g. MM/D, Electrostatics, etc.)– Database capabilities– Programmable using SVL (Scientific Vector

Language)– Runs on different computational platforms

• PC, SGI, Sun, HP, and Dec Alpha/NT

MOE as a Visualization Tool

• MOE is capable of building as well as editing both simple molecules and complex protein structures.

• The next few slides will illustrates MOE’s visualization capabilities:– The final view will be of carbonic anhydrase (3ca2). The enzyme is

represented as a solid ribbon, the zinc atom as a green sphere, the threehistidines sticks (blue), and the drug (AMS) as ball and stick (orange).

• We will use this example to show MOE’s visualization power by:– Editing the display of an existing protein structure.– Using the atom builder to modify the drug (AMS) bound to 3ca2.

Page 5: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

5

Creating a View with MOE

• Load the structure file to be viewed (PDB).– File, Open. Find the

directory that contains the structure. Select the file by choosing either the Load PDB File Operation (mid right) or the Ok button (lower left).

Creating a View with MOE

• Manipulating the protein.- Remove bound water

molecules and 2 Hg atoms.

- Chose Window, Sequence Editor. Select the 2 Hg atoms and “Split Chain” to move them to a new chain.

- Delete Chains: Water, 2 Hg atoms.

Creating a View with MOE

– Display ligand (ams).• Zoom: Cntrl+Rt/Dial.

• Translate: Shift+Rt/Dial.• Rotate: Right/Dial.• After zooming in on

ligand , select it by clicking on any atom while using Cntrl+Lft.

• Under Render, chose Ball and Stick. Then, color the ligand by chosing Color, Basic.

Creating a View with MOE– Display the Zn atom,

highlighting the three bound His residues.

• Select the Zn atom by left clicking once. Under Render, chose Space Filling; then Color, Basic, Green.

• Select the 3 His residues (116, 93, 91) by using Cntrl+left on each. Chose Render, Line; then Color, Basic, Blue.

• Use Builder to remove unbond ligand and Zn atom.

Page 6: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

6

Creating a View with MOE• Change the display of the

protein. – Use sequence editor to

select ligand, Zn, and 3 His residues.

– Use Selection, Invert to select everything but the original selection.

– Chose Render, Backbone, Cartoon or Slab Ribbon.

3ca2 Visualized with MOE

MOE MOE

• Interactive Modeling– Color atoms by force– Indicate formation of

hydrogen bonds (white dots)

– Indicate bad van der Waal contacts (yellow dots)

– Current energy for the system

Page 7: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

7

MOE MOE

Manipulating Molecules:3D Rendering Window

• rotate: drag middle mouse• zoom in/out: <ctrl>+drag middle mouse• shift/pan: <shift>+drag middle mouse• change center of rotation: click the middle mouse

button on the desired atom. To reset, click the middle mouse button away from any atoms.

• rotate about a bond: select the bonded atoms, then use <alt>-drag left button.

Editing with Molecule Builders• Tools for Building

Molecules in MOE:– Small Molecule Builder

(Edit|Small Molecule Builder)

– Protein Builder(Edit|Protein Builder)

– Carbohydrate Builder (Edit|Carbohydrate Builder)

• Creates carbohydrates by linking sugar residues at specific positions. Can Invert chiral centers, mutate residues, specify glycosidic torsion angles between residues.

– Create Sequence(SE|Edit|Create Sequence)

• Small Molecule Builder Features:– Build molecules or add

fragments using buttons, SMILES string

– Substitutions can be made by first selecting atom in 3D rendering window

– Append residues to a chain using the name of an existing compound. Or, create a new chain if the name is new.

Page 8: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

8

Editing with 3D Rendering Window

• 3D Rendering Window:– Functions found under Edit

menu, or right button bar.– Some are on per atom basis,

others work on set of selected atoms.

• Functions include:– Adding/Removing H’s– Change Element– Change Ionization– Change Geometry– Bond/Unbond– Delete

Button Bar for 3D Rendering

Window

Editing 3ca2 Ligand• Delete the Hg atom on the

ligand as well as the H that replaces it.

• Fuse a benzene ring to the aromatic already present.– Select the 2 Carbons to fuse

the ring to. Chose Create Ring (6) with sp2 geometry

• Replace one of the sp2 Carbons with a carbonyl functional group.

• Use the Unbond key to release the fused ring from ams and delete it.

Using the Atom Manager• Used to view atom

attributes.• Accessed by Edit pulldown

in main window or by double clicking on atom of interest.

• Attributes relevant to bonding:– Element– Ionization: Formal Charge– Geometry: hybridization– HintLP (toggle to indicate if

element has a lone pair not conjugated into aromatic system)

• Use Atom Manager to:– Change aromatic ring in ams

to cyclohexane– Change formal charge of

nitrogen– Change resonance structure

of ams.

Atom Attributes

• Can be viewed in Atom Manager• Modified in atom manager or from Edit pulldown

in main window• Attributes relevant to bonding

– Element– Ionization: formal charge– Geometry: hybridization– HintLP (toggle to indicate if the element has a lone pair

not conjugated into an aromatic system)

Page 9: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

9

Viewing Molecular Data

• MOE has 3 main windows for viewing the molecular data– main window– atom manager– sequence editor

• can be used to view, edit and select molecular data

Display Options: 3D Rendering Window

• Render|Draw offers options of what to show in the main window– Ribbon, Alpha Trace, Hydrogen Bonds, Meters,

Constraints, Bond Orders, Coordinate Axes

• these modes are applied to the entire system

3D Rendering Window: Footer

• The footer in the 3D rendering window has 3 pages: Dials, 3D, View

• Dials: rotate and translate the system. Same <ctrl>+middle mouse drag and <shift>+middle mouse drag but the dials may give you more control.

• View: same as Render|View and right button bar View page but with 8 slots instead of 4.

• 3D:controls the Z-axis clipping region and Z-axis depth cue shading parameters.

Selecting Atoms and Sets of Atoms

• Atom, residue, chain selection sets

• Selection menus provide specialized operations

• most selection operations add to the current selection set

Page 10: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

10

Selecting Atoms: 3D Rendering Window

• Left mouse button for selection• Double click to select and open Atom

Manager with the selected atom highlighted• <Shift>-click to toggle a selection state• <Ctrl>-click to select entire residue• <Shift> + <Ctrl>-click to toggle selection of

entire residue

Selecting Atoms: 3D Rendering Window

• Selection Menu used for more advanced types of selections

• Substructure matching and proximity

• Save & Restore selection set

Selecting Residues: Sequence Editor

• Left mouse button click to select a residue• <Shift>-click to extend the selection set to

include all residues located in between the previous selection and the current

• <Ctrl>click to toggle a selection state of a residue

Carbohydrate Builder

• Creates carbohydrates by linking sugar residues at specific positions

• invert chiral centers or entire residues by first selecting

• mutate residues in existing carbohydrate structures

• specify glycosidic torsion angles between residues

Page 11: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

11

Protein Builder

• Located under the Edit file menu

Nucleic Acid Builder

• Hidden in the Sequence Window under Edit|Create sequence

The Scientific Vector Language (SVL)

• What is SVL?– Command language of MOE– Script language of MOE– Applications programming language of MOE

• Characteristics of SVL– High-level language - vector based– Interactive and compiled (byte code)– Very concise code (10 times less than C or Fortran)– High-performance– Inherently portable

• SVL is a practical balance between concisenessand performance

Relevant Documentation

• On-line HTML documentation– SVL Language Manual– SVL Language Reference– GUI Toolkit Manual– API Interface Manual (C programming)

• Function index– Detailed explanation of each SVL function available– Detailed explanation of each API function available

• Introductory pages group commands into logical categories

Page 12: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

12

Fundamental SVL Environment

• Basic windows (MOE)– SVL Commands Window Command-line execution– Text Editor ASCII file / SVL program editor– Crash History Source-level error trace-back– Modules & Tasks Manager Program control

• MOE menus issue SVL commands– Menu commands can always be issued by typing commands– ASCII menu configuration file for customization

• MOE/batch– Terminal-style interface (no GUI)– SVL commands entered at prompt

SVL Commands Window• Place to type commands and/or evaluate SVL

expressions• Several MOE windows contain a CLI (Command

Line Interpreter) for entering SVL commands• A history of commands is maintained and

accessed with the arrow keys• The Tab key is used for file name completion or

function name completion• The SVL Commands Window is a CLI as well as

a scrolling text window• Many programs output results to the Commands

Window so you should become accustomed to referring to it

The Text Editor

• Window-based text editor accessible from within MOE

• Can be used to directly load or run SVL programs• Files ending in .svl are automatically recognized

as SVL code• Color-coded text to make reading SVL code easier• Edit Function command used to locate the file in

which an SVL function is found (if source code is available)

• Any other text editor can be used to write SVL programs

SVL Crash History• The SVL Crash History panel gives a source-level

execution trace for the last error generated from an SVL task

• Can be used to pinpoint where a program had an error

• Can be used toopen a text editorat the line of codethat caused theproblem

Page 13: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

13

Fundamental SVL Concepts

• In order to try your ideas out in SVL you do not need to spend weeks studying the details of SVL

• However, you will need to have a good understanding of the SVL basics:– Data types: numbers, characters, tokens– Vectors: unit vectors, nested vectors, tagged vectors– Operators: mathematical, structural– Function extension: using app and apt– Data access: indexing, masking– Control flow, functions and modules

• The following slides will overview these basic concepts

Data Types and Vectors• Three fundamental data types (scalar types)

– Numeric 1 -4 1.3 -216.304 340.51e4– Character "a" "%" (double quotes)– Token 'word' 'hello there' 'myfile.dat' (single quotes)

• Vectors are collections of data– Fundamental data structure of SVL: array of elements (mixed types)– Vectors can nest arbitrarily deep: matrix is vector of vectors

• Examples of vectors– [1,2,3.5] numeric vector (array of numbers)– [ ] length 0 vector (null vector)– "hello world" character vector (string)– [ [1,2], [3,4] ] 2 x 2 matrix (nested vector)– [ 'abc', 1, [ "hello", 4] ] mixed type vector

Tokens

• A sequence of characters enclosed in single quotes• Tokens separated with white space are

automatically concatenated into a single token• The following examples both become ‘token’:

– 'to' 'ken'– 'to'

'ken'• Tokens are scalars, length 1• Null token ' ' is not the null vector [ ]

Conversion Functions• It is often necessary to convert between two data types. The

following functions help in this process:– atof convert a token to a float– atoi convert a token to an integer– string convert a token to a string– token convert a string to a token– type returns ‘char’, ‘tok’, ‘num’ depending on the argument

• Sometimes it is necessary to first find out what kind of characters are in a string. To do this you can use:– isalpha returns true if character is alphabetic– isdigit returns true if character is a number in [0..9]

• See the function reference for more is functions.– isalpha “a2b” [1,0,1]– islower “A7a” [0,0,1]i

Page 14: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

14

SVL Built-in Functions

• SVL has a multitude of built- in functions, described in the function reference. The following is an introduction to some of the functions available.

Operators

• Basic operators– Arithmetic + - * /– Relational < > <= >= <> ==– Logical and or not– Mathematical cos exp log abs …

• Operators act on vectors (element-wise)– 2 * 3 6– [1,2,3] + [4,5,6] [5,7,9]– [ 2, [3,4] ] * [2, [5,6]] [4, [15,24]– - [10, 11, 12] [-10, -11, -12]

Comparing Vectors

• Relational operators compare vectors– eqL, ltL,eqL,minL,maxL lexicographic– eqE, ltE, gtE,minE,maxE element-wise– ==, <, <=, >=, > element-wise infix – min, max flat numeric comparisons only

• Lexicographic operators compare the top-level elements of a vector using dictionary order– natural order within fundamental types (numbers, characters, tokens) – dictionary ordering, where numbers < characters < tokens– return value is always a scalar : 1 or 0

• Element-wise comparisons operate on the leaf level – top-level vectors must conform in shape– return vector is the same shape as the top level vectors

Comparing Vectors : Examples

• eqL [[1,2,3], [1,2,10]] 0• eqE [[1,2,3], [1,2,10]] [1,1,0]• ltL [[1,2], [1,2,10]] 1• ltE igen 10 1• eqE rep [1, 10] 1• eqL [‘a’, “c”, 1] 0• gtL [‘a’, “c”, 1] 1• ltE [[1,2], [1,2,10]] // Error

Page 15: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

15

Logical Operators

• andE, orE, xorE are all element-wise operators - shapes of arguments must conform

• vectors must contain only numeric data• and, or are infix versions

– [1,2,3] and [0,1,0] [0,1,0]

• xorE is “exclusive or”– xorE [[1,2,3], [0,1,0]] [0,1,0]

• Examples:– orE [1,1,1,1,0] 1– andE [1,1,1,1,0] 0– “a” or “b” Vector of wrong type– [1,2,3] or [1,2] Vector of wrong length

Structural Functions

• Structural functions are used to query or modify the structural or “shape” properties of a vector– length x return the number of elements in a vector– cat [x,…,y] concatenate vectors x,…,y– rep [x, n] create [x, … , x] (n replicas)– keep [x, n] delete all but first n elements of x– drop [x, n] delete first n elements of x– rot [x, n] rotate elements left or right (sign of n)– igen n returns [1,2,…,n]– split [x,n] splits x into subvectors of length n

• Examples– length “abc” 3– rep [ [1,2], 4 ] [ [1,2], [1,2], [1,2], [1,2] ]– cat [ “abc”, “def”,”ghi” ] “abcdefghi”

Numerical Functions

• SVL includes the following trigonometric functions:– cos, sin, tan– acos, asin, atan– cosh, sinh, tanh– acosh, asinh, atanh– atan2

• SVL includes the following logarithmic functions:– log, log2, log10, log1p, logb, logaddexp

• And the following numeric functions:– pow, sqr, sqrt, cube, cbrt , exp

Other Useful Functions– indexof [v,w] for each el in v, return pos of first occurrence

in w– one v return vector with same shape as v but all 1– zero v return vector with same shape as v but all 0– first v return first element of v– second v return second element of v– third v return third element of v– last v return last element of v– freq [v, w] return frequency of each element of v in w– uniq v return vector with all duplicates removed– asctime[] return 26-character time/date stamp– logfile ‘filename’ start logging current session to file– logfile [] end logging session– pack remove zero-valued elements

Page 16: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

16

Examples

• igen 5 [1,2,3,4,5]• one [6, ['a','b']] [1, [1,1]]• first igen 5 1• uniq [1,1,4,5,4] [1,4,5]• freq [ "afc", "aafffe"] [2,3,0]• indexof ["abc", "xxcaa"] [4,0,3]• dropfirst igen 5 [2,3,4,5]• sort "cAab" "Aabc"• rep [0,5] [0,0,0,0,0]• split [igen 7, [1,2]] [ 1, [2,3], 4,

[5,6], 7 ]• join [ "aabc", "dbba" ] "aab"

Built-in Constants

• The following is a list of some of the built-in numeric constants available in MOE:– PI pi (3.14159…)– Inf 1/0 (Infinity)– Nan 0/0 (“not a number”)– KBOLTZ Boltzman’s constant (0.00198722)– COULOMB_SCALE Joules to kcal /mol (332.059)

• Examples:– function RAD2DEG x = x * (PI/180)– monte_carlo_test = randU 1 < exp (t1 - t2 / (KBOLTZ *

temperature))

Functions

• Functions take exactly 1 vector argument and return exactly 1 vector return value (call-by-value)– add [1,2,3] 6– sqrt [4,9,25] [2,3,5]– length “program” 7– sort “hello world” “ dehllloorw”

• Some functions unit extend, some apply to “leaves” and some apply to top -level elements only

• Examples of familiar functions– add (a*b) dot product– add x / length x mean– add sqr x sum of squares– sqrt add sqr x 2-norm

Function Extension

• “app” distributes functions to elements

app fcn [x,y,z] = [fcn x, fcn y, fcn z]• For example

– sort [ “pie”, “cat” ] [ “cat”, “pie” ]app sort [ “pie”,”cat” ] [ “eip”, “act” ]

– add [ [1,2,3], [1,2,3] ] [2,4,6]app add [ [1,2,3], [4,5,6] ] [6,15]

• “tr” is matrix transpose operator– tr [ [1,2,3], [4,5,6] ] [ [1,4], [2,5], [3,6] ]

• “apt” is short-hand for “app tr”– app reverse [ [1,2,3], [4,5,6] ] [ [3,2,1], [6,5,4] ]– apt reverse [ [1,2,3], [4,5,6] ] [ [4,1], [5,2], [6,3] ]

Page 17: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

17

Linear Algebra

• Combination of vector operators, unit extension and app/apt provides linear algebra functionality

• Matrix-matrix and matrix-vector multiply– A = [ [3,4,5], [6,7,8], [9,10,11] ]– B = [ [1,2,3], [4,5,6], [7,8,9] ]– MATMUL(A,B) = app add (A * [B])

• Row- and column-scaling of a matrix– diag(1,2,3) * A = [1,2,3] * A (row scale)– A * diag (1,2,3) = [[1,2,3]] * A (column scale)

Control Flow and Function Definition• Control flow statements

– if condition then … else … endif– while condition loop … endloop– loop … until condition endloop– for … loop … endloop– break, continue, return

• Functions must be defined in a file and loaded as a module: load ‘filename.svl’ (tokens used for filenames)

• Syntax: function mean xlocal avg = add x / length

x;return avg;

endfunction • Use:mean [1,2,3,4] (returns 2.5)

Variables and Name Spaces (Scoping)

• Three classes of variables: local, global and static• Global symbol table contains variables, functions and

constants available at the CLI– No two modules can define the same global function– No module can be loaded if a global var/ fcn conflicts with an

existing global var/ fcn

• Module symbol table contains variables, functions and constants defined within a module (or SVL source file)– Static (history sensitive) variables can be defined only in functions– Local functions are not visible outside a single SVL source file

• Function symbol table contains variables, functions and constants defined within a function– Local variables can exist only in function definitions

Output• Output can be to the display, variable, or file

– write [format, arg1, arg2, ...]– string = swrite [format, arg1, arg2, ...]– fwrite [file, format, arg1, arg2, ...]]

• format is a token containing format fields for interpreting the data to be output

• Format specifications Special Characters– n: numbers \\ backslash– t: tokens \n line feed– c: characters {{ {– v: vectors \’ single quote– n field width– *<n> repeat n times

Page 18: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

18

More Output

• print expr echoes the value of expression to the CLI• pr arg returns value of argument and prints result at the CLI• Examples:

– svl> print x = “hello”“hello”svl> x“hello”

– svl> a = pr diff [“ abcz”, “ bax”]“ cz”svl> b = first pr a“ cz”svl> b“c”

Input

• sread interprets data from a string according to the specified format– [v,c,f] = sread [“string data”, ‘format’]

• Returns data, #characters read, #format fields successfully read

• Format fields are similar to those in the output statements

• fread used to read from a file• freadb used to read from a binary file

RIPS Conformational Search Program• Conformational search via random perturbations

function MM; // import minimizer functionconst MAXIT = 100; // max # of iterations

local function main [] // main programlocal atoms = Atoms [];local [a,b] = BondList atoms;[a,b] = [a,b] || [ a < b and bRotatable [a,b] ];

for MAXIT loopRotateBond [a, b, (2*PI) * randU one a];local p = aPos atoms;aSetPos [atoms, p + randU one p - 0.5];MM [gtest:0.001, maxit:200];

endloopendfunction

• Save into ‘myrips.svl’ file and execute with run ’myrips.svl’

Acknowledgment

• Chemical Computing Group, Inc.– Provided the slides on SVL programming and

for the use of their software.• Bill Hayden• Chris Williams• Ken Kelly• Paul Labute

Page 19: Molecular Visualization Introduction · • Can be used to directly load or run SVL programs • Files ending in .svl are automatically recognized as SVL code • Color-coded text

19

Problems with Ice/Vacuum Calculations• Temperature of ice is 0 K!• Hydrogen bonding over emphasized!• Energy vs. free energy• Interacting not Binding