{VERSION 6 1 "Windows XP" "6.1" } {USTYLETAB {PSTYLE "Left Justified Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 3 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "D ash Item" -1 16 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 3 }{PSTYLE "Heading 4" -1 20 1 {CSTYLE "" -1 -1 "Times" 1 10 0 0 0 1 1 1 2 2 2 2 0 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times " 1 12 0 0 0 1 1 1 2 2 2 2 0 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 } {PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 10 255 0 255 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }3 1 0 0 8 8 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "Help" -1 10 1 {CSTYLE "" -1 -1 "Courier" 1 9 0 0 255 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "Text Ou tput" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 } {PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Line Printed Output" -1 6 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 0 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Diagnostic" -1 9 1 {CSTYLE "" -1 -1 "Cou rier" 1 10 64 128 64 1 0 0 0 2 2 1 0 0 0 1 }1 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }3 3 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Li st Item" -1 14 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 5 }{PSTYLE "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 2 }{PSTYLE "Fixed Width" -1 17 1 {CSTYLE "" -1 -1 "Co urier" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{CSTYLE "LaTeX" -1 32 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Ma ple Comment" -1 21 "Courier" 0 1 0 0 0 1 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "2D Math Bold" -1 5 "Times" 0 1 0 0 0 0 0 1 2 2 2 2 0 0 0 1 }{CSTYLE " Help Underlined" -1 44 "Times" 1 12 0 0 0 0 0 0 1 2 2 2 0 0 0 1 } {CSTYLE "Output Labels" -1 29 "Times" 1 8 0 0 0 1 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 0 0 0 1 }{CSTYLE "Page Number" -1 33 "Times" 0 1 0 0 0 0 0 0 2 2 2 2 0 0 0 1 }{CSTYLE "Maple Input Placeholder" -1 200 "Courier" 1 12 200 0 200 1 0 1 0 2 1 2 0 0 0 1 }{CSTYLE "Text" -1 201 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small" -1 202 "Times" 0 1 0 0 0 0 1 0 2 2 2 2 0 0 0 1 }{CSTYLE "Help Heading" -1 26 "" 1 14 0 0 0 0 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "Help Italic Bold" -1 40 "Times" 1 12 0 0 0 0 1 1 0 2 2 2 0 0 0 1 }{CSTYLE "Help Normal" -1 30 "Times" 1 12 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Help Nonterminal" -1 24 "Courier " 0 1 0 0 0 1 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "2D Math Small" -1 7 "Times " 0 1 0 0 0 0 0 0 2 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined Italic" -1 43 "Times" 1 12 0 0 0 0 1 0 1 2 2 2 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 2 2 2 0 0 0 1 }{CSTYLE "Copyright" -1 34 " Times" 1 10 0 0 0 0 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "" 0 1 0 128 128 1 2 0 1 2 2 2 0 0 0 1 }{CSTYLE "Plot Title" -1 27 "" 1 10 0 0 0 0 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "2D Input" -1 19 "Times" 0 1 255 0 0 1 0 0 2 2 1 2 0 0 0 1 }{CSTYLE "Help Maple Name" -1 35 "" 0 1 104 64 92 1 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "Help Italic" -1 42 "Times" 1 12 0 0 0 0 1 0 0 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined Bold" -1 41 "Times" 1 12 0 0 0 0 0 1 1 2 2 2 0 0 0 1 }{CSTYLE "Default" -1 38 " " 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Help Fixed" -1 23 "Courier " 1 10 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle263" -1 203 "Couri er" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle262" -1 204 "Cour ier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Dictionary Hyperlink" -1 45 "" 0 1 147 0 15 1 2 0 1 2 2 2 0 0 0 1 }{CSTYLE "_cstyle261" -1 205 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 0 1 0 0 255 1 0 0 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle260" -1 206 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic " -1 3 "Times" 0 1 0 0 0 0 1 0 2 2 2 2 0 0 0 1 }{CSTYLE "Popup" -1 31 "" 0 1 0 128 128 1 1 0 1 2 2 2 0 0 0 1 }{CSTYLE "2D Math Symbol 2" -1 16 "Times" 0 1 0 0 0 0 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Plot Text" -1 28 "" 1 8 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "Help Notes" -1 37 "" 0 1 0 0 0 1 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "Help Bold" -1 39 "Times" 1 12 0 0 0 0 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "Help Menus" -1 36 "" 0 1 0 0 0 1 0 1 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle259" -1 207 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle258" -1 208 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle257" -1 209 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "_cstyle256" -1 210 "Courier" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }{CSTYLE "2D Comment" -1 18 "Times" 0 1 0 0 0 0 0 0 2 2 2 2 0 0 0 1 }{CSTYLE "Help Variable" -1 25 "Courier" 0 1 0 0 0 1 2 2 0 2 2 2 0 0 0 1 }{CSTYLE "2D Math Bold Small" -1 10 "Tim es" 0 1 0 0 0 0 0 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Emphasized" -1 211 "" 0 1 0 0 0 0 1 2 0 2 2 2 0 0 0 1 }{CSTYLE "Prompt" -1 1 "Courier" 0 1 0 0 0 1 0 0 0 2 2 2 0 0 0 1 }{PSTYLE "_pstyle1" -1 200 1 {CSTYLE "" -1 -1 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{CSTYLE "_cstyle1" -1 212 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{PSTYLE "_pstyle2" -1 201 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{CSTYLE "_cstyle2" -1 213 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{PSTYLE "_ pstyle3" -1 202 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{CSTYLE "_cstyle3" -1 214 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle4" -1 215 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{PSTYLE "_pstyle4" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{CSTYLE "_cstyle5" -1 216 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle6" -1 217 "Courier New" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle7" -1 218 "Courier" 0 1 255 0 0 1 0 1 0 2 1 2 0 0 0 1 }{CSTYLE "_cstyle8" -1 219 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{PSTYLE "_pstyle5" -1 204 1 {CSTYLE "" -1 -1 "T imes" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 3 } {CSTYLE "_cstyle9" -1 220 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {PSTYLE "_pstyle6" -1 205 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }0 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 29 "restart: with(Li nearAlgebra):" }{MPLTEXT 1 212 0 "" }}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 14 "Lists in Maple" }{TEXT 213 0 "" }}{PARA 202 "" 0 "" {TEXT 214 0 "" }}{PARA 202 "" 0 "" {TEXT 214 188 " A list in Maple is \+ put in square brackets and the items in the list are separated by comm as. You can put anything in the list... integers, floating point nu mbers, strings, variables. " }{TEXT 214 0 "" }}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 36 "x := [5, 7, \"Alpha Carbon\", A, 1.9];" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 50 "To find \+ the number of elements in a list use the " }{TEXT 215 5 "nops " } {TEXT 214 59 "command. (This denotes the number of operands.) The li st " }{TEXT 215 2 "x " }{TEXT 214 28 "above contains 5 elements. ." } {TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 8 "nops(x) ;" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 45 "To f ind the jth element in the list, ask for " }{TEXT 215 4 "x[j]" }{TEXT 214 1 ":" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 5 "x[3];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 203 "" 0 "" {TEXT 216 53 "To ask for the type of elements in the list, use the " }{TEXT 217 8 "whattype" }{TEXT 216 9 " command." }}}{EXCHG {PARA 200 "> " 0 " " {MPLTEXT 1 218 17 "map(whattype, x);" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 54 "You can also have a list in a list, or a list of lists" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 39 "x := \+ [[2,1],[\"CA\", 7.0], [a +b,b,9]]; " }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 65 "Ask for the second list and the first \+ element in the second list." }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 14 "x[2]; x[2][1];" }{MPLTEXT 1 212 0 "" }}}} {SECT 1 {PARA 201 "" 0 "" {TEXT 213 7 "Strings" }{TEXT 213 0 "" }} {EXCHG {PARA 202 "" 0 "" {TEXT 214 218 "In computational biology, mani pulation of strings of letters or symbols is important. These strings \+ can be one letter codes for nucleotides or amino acids. They can also be entries from a protein structure database. " }{TEXT 214 0 "" }} {PARA 202 "" 0 "" {TEXT 214 0 "" }}{PARA 202 "" 0 "" {TEXT 214 129 "Ma ple has many procedures for dealing with strings. In Maple strings are strings of characters and are enclosed in double quotes." }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 15 "str := \"ab*+)\" ;" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 183 "You can find the length of the string by the command \"length\". Each le tter in the string is numbered by an integer starting with 1, so a str ing is the same as a list of characters. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 20 "length(str), str[3];" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 154 "You can also count from the right by using a negative integer. If you give a integer larger than the length of the string you get the empty stri ng, \"\"." }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 16 "str[-2], str[8];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 53 "You can also ask for a substring by giving a range. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 10 "s tr[2..5];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 35 "Put two strings together using the " }{TEXT 215 3 "cat" }{TEXT 214 24 "(concatenate) command. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 16 "cat(str, \"1ty\");" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 46 "You can also concatenate mor e strings together" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 25 "cat(\"ab\",\"cd\",\"gf\", \"*\");" }{MPLTEXT 1 212 0 "" }}}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 17 "Boolean variables" } {TEXT 213 0 "" }}{EXCHG {PARA 202 "" 0 "" {TEXT 214 195 "Boolean varia bles are variables that can be either true or false. They are usually given by equalities of inequalities. To find whether a boolean varia ble is true or false, you need to use the " }{TEXT 215 6 "evalb " } {TEXT 214 7 "command" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 41 "evalb(1 = 2); evalb(2 > 1); evalb(1 >2);" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 85 "You can \+ also create boolean variables with strings to test if two strings are \+ equal. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 31 "evalb(\"t+1alkjgturi\"[2] = \"+\");" }{MPLTEXT 1 212 0 "" }}} {EXCHG {PARA 203 "" 0 "" {TEXT 216 33 "Boolean variables can be used i n " }{TEXT 217 2 "if" }{TEXT 216 2 " " }{TEXT 217 4 "then" }{TEXT 216 13 " statements. " }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 218 53 "if evalb(1=2) then print(YESSS) else print(NOOOO) fi;" }}}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 9 "Functions" }{TEXT 213 0 "" }}{EXCHG {PARA 202 "" 0 "" {TEXT 214 65 "Recall that to construct a function in MAPLE use a right arrow. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 22 "f := x -> x^2: f(t);" }{MPLTEXT 1 212 0 "" } }}{EXCHG {PARA 202 "" 0 "" {TEXT 214 64 "A function of two or more var iables can also be constructed. . " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 31 "g := (x,y) -> x^2 + y: g(t,2);" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 44 "You can \+ have a function which gives you the " }{TEXT 219 1 "j" }{TEXT 214 22 " th element of a list." }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 56 "lst := [ 1, 2.5, \"CA\", \"ATOM\"]: h := j -> lst[j]: h(2);" } {MPLTEXT 1 212 0 "" }}}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 23 "Protei n Data Bank Files" }{TEXT 213 0 "" }}{PARA 202 "" 0 "" {TEXT 214 194 " A Protein Data Bank file, or pdb file, is a list of information about each atom in a protein, including the 3 coordinates for the center o f the atom. The entry for each atom is a list giving:" }{TEXT 214 0 " " }}{PARA 204 "" 0 "" {TEXT 220 52 "1. the string \"ATOM\" or \"HETAT OM\" (usually \"ATOM\")" }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 38 "2. the number of the atom in the list" }{TEXT 220 0 "" }} {PARA 204 "" 0 "" {TEXT 220 134 "3. the type of atom in the protein, \+ e.g., CA is the alpha carbon, C is the backbone carbonyl carbon, N is \+ the backbone nitrogen, etc." }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 44 "4 the three letter code for the amino acid" }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 119 "5 the letter of the chain . The protein may be made of of several chains . The letters for th e chain are A,B,C, etc." }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 80 "6 the number of the amino acid in the sequence, also called t he residue number." }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 57 " 7, 8, 9 the x,y,z coordinates of the center of the atom" }{TEXT 220 0 "" }}{PARA 204 "" 0 "" {TEXT 220 71 " items 10,11,12 contain other i nformation that will not concern us here" }{TEXT 220 0 "" }}{PARA 202 "" 0 "" {TEXT 214 60 "We can read in a pdb file for the protein bacter iorhodopsin " }{TEXT 214 29 "as a list of lists in Maple. " }{TEXT 214 416 "(1E0P is the pdb code. Download it from the couse website in to a directory you can access.) Maple treats the file as a list of l ines. Each line in the file is a list and the elements of the list ar e separated by spaces. We need to tell Maple the data type of each el ement of the list...either floating point number or string or integer. Replace the directory below with the correct directory on your compu ter. " }}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 68 "protein := read data(`c:\\\\data\\\\topics02\\\\Maple_tutorial3\\\\1E0P.txt`," } {MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 85 "\n[string,integer,string,strin g,string,integer,float,float,float,float,float,string]):" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 59 "How many atoms are \+ in this protein? Let's check using the " }{TEXT 215 5 "nops " }{TEXT 214 9 "command. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 14 "nops(protein);" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 87 "Take a look at the information for ato ms 100..105, which are in a Threonine amino acid." }{TEXT 214 0 "" }}} {EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 18 "protein[100..105];" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 148 "The pro tein has an A and a B chain. Atoms 2000...2003, for example, are fro m a Lysine in the B chain as you can see by looking in the 5 th column :" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 20 "pr otein[2000..2003];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 90 "We see, for example, that atom 2000 is in chain B by loo king at the 5th entry in the list " }{TEXT 215 13 "protein[2000]" } {TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 17 "protei n[2000][5];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 71 "Or we can use a do loop to show they atoms 2000 to 2010 are in chain B:" }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 44 "for j from 2000 to 2010 do protein[j][5] od;" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 18 "Now try problem A." } {TEXT 214 0 "" }}}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 55 "Procedure f or computing torsion angles and bond angles." }{TEXT 213 0 "" }}{PARA 202 "" 0 "" {TEXT 214 325 "Here are procedures for computing bond angl es and torsion angles. Once you have entered them you can use them to analyze the pdb file. These procedures take as input column vectors \+ giving the coordinates of the atom. The bond angle is the angle ABC \+ between three bonded atoms, A, B, and C, with A and C both bonded to B . " }{TEXT 214 0 "" }}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 40 "Bo ndAngle := proc(a,b,c) local v,w,x,y;" }{MPLTEXT 1 212 0 "" } {MPLTEXT 1 212 23 "\nv := a -b ; w := c -b;" }{MPLTEXT 1 212 0 "" } {MPLTEXT 1 212 44 "\nx := DotProduct(v,w)/(Norm(v,2)*Norm(w,2));" } {MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 16 "\ny := arccos(x);" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 19 "\nevalf((180/Pi)*y);" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 5 "\nend:" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 50 "TorsionAngle := proc(p1,p2,p3,p4) loc al x,y,a,b,c;" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 40 "\na := p2- p1; b := p3 - p2; c:= p4 - p3;" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 54 " \na := a/Norm(a,2); b := b/Norm(b,2); c := c/Norm(c,2);" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 57 "\nx := -DotProduct(a,c) + DotProduct(a,b) *DotProduct(b,c);" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 39 "\ny := Dot Product(a, CrossProduct(b,c));" }{MPLTEXT 1 212 0 "" }{MPLTEXT 1 212 36 "\nevalf((180/Pi)*argument(x+I*y), 4);" }{MPLTEXT 1 212 0 "" } {MPLTEXT 1 212 5 "\nend:" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 200 "> \+ " 0 "" {MPLTEXT 1 212 83 "BondAngle(<1|0|0>,<0|0|0>,<0|1|0>); Torsion Angle(<1|0|0>,<0|0|0>,<0|1|0>,<0|1|1>);" }{MPLTEXT 1 212 0 "" }}} {EXCHG {PARA 202 "" 0 "" {TEXT 214 18 "Now try problem B." }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 0 "" }}}{PARA 202 "" 0 "" {TEXT 214 0 "" }}}{SECT 1 {PARA 201 "" 0 "" {TEXT 213 18 "Manipulating lists " }{TEXT 213 0 "" }}{PARA 202 "" 0 "" {TEXT 214 69 "You might want to \+ add an element to a list. Suppose you have a list." }{TEXT 214 0 "" } }{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 15 "lst := [a,b,c];" } {MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 55 "If you w ant to convert the list to a sequence, use the " }{TEXT 215 2 "op" } {TEXT 214 11 " command. " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 8 "op(lst);" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 93 "Now to add the another element to the list p ut this seqence in brackets with another element." }{TEXT 214 0 "" }}} {EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 12 "[op(lst),d];" }{MPLTEXT 1 212 0 "" }}}{EXCHG {PARA 202 "" 0 "" {TEXT 214 17 "Now try problem C " }{TEXT 214 0 "" }}}{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 0 "" }} }{EXCHG {PARA 200 "> " 0 "" {MPLTEXT 1 212 0 "" }}}{PARA 202 "" 0 "" {TEXT 214 0 "" }}}{PARA 205 "" 0 "" {TEXT -1 0 "" }}}{MARK "0 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }