nucleic2.sch 137 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773
  1. ; File: "nucleic2.scm"
  2. ;
  3. ; Author: Marc Feeley (feeley@iro.umontreal.ca)
  4. ; Last modification by Feeley: June 6, 1994.
  5. ; Modified for R5RS Scheme by William D Clinger: 22 October 1996.
  6. ; Last modification by Clinger: 19 March 1999.
  7. ;
  8. ; This program is a modified version of the program described in
  9. ;
  10. ; M. Feeley, M. Turcotte, G. Lapalme. Using Multilisp for Solving
  11. ; Constraint Satisfaction Problems: an Application to Nucleic Acid 3D
  12. ; Structure Determination. Lisp and Symbolic Computation 7(2/3),
  13. ; 231-246, 1994.
  14. ;
  15. ; The differences between this program and the original are described in
  16. ;
  17. ; P.H. Hartel, M. Feeley, et al. Benchmarking Implementations of
  18. ; Functional Languages with "Pseudoknot", a Float-Intensive Benchmark.
  19. ; Journal of Functional Programming 6(4), 621-655, 1996.
  20. ; This procedure uses Marc Feeley's run-benchmark procedure to time
  21. ; the benchmark.
  22. (define (nucleic2-benchmark . rest)
  23. (let ((n (if (null? rest) 1 (car rest))))
  24. (run-benchmark (string-append "nucleic2"
  25. (if (> n 1)
  26. (string-append " ("
  27. (number->string n)
  28. " iterations)")
  29. ""))
  30. n
  31. run
  32. (lambda (x)
  33. (and (number? x)
  34. (real? x)
  35. (< (abs (- x 33.797594890762696)) 0.01))))))
  36. ; PORTABILITY.
  37. ;
  38. ; This program should run in any R5RS-conforming implementation of Scheme.
  39. ; To run this program in an implementation that does not support the R5RS
  40. ; macro system, however, you will have to place a single quotation mark (')
  41. ; on the following line and also modify the "SYSTEM DEPENDENT CODE" below.
  42. ; ********** R5RS Scheme
  43. (begin
  44. (define-syntax FLOAT+ (syntax-rules () ((FLOAT+ x ...) (+ x ...))))
  45. (define-syntax FLOAT- (syntax-rules () ((FLOAT- x ...) (- x ...))))
  46. (define-syntax FLOAT* (syntax-rules () ((FLOAT* x ...) (* x ...))))
  47. (define-syntax FLOAT/ (syntax-rules () ((FLOAT/ x ...) (/ x ...))))
  48. (define-syntax FLOAT= (syntax-rules () ((FLOAT= x y) (= x y))))
  49. (define-syntax FLOAT< (syntax-rules () ((FLOAT< x y) (< x y))))
  50. (define-syntax FLOAT<= (syntax-rules () ((FLOAT<= x y) (<= x y))))
  51. (define-syntax FLOAT> (syntax-rules () ((FLOAT> x y) (> x y))))
  52. (define-syntax FLOAT>= (syntax-rules () ((FLOAT>= x y) (>= x y))))
  53. (define-syntax FLOATsin (syntax-rules () ((FLOATsin x) (sin x))))
  54. (define-syntax FLOATcos (syntax-rules () ((FLOATcos x) (cos x))))
  55. (define-syntax FLOATatan (syntax-rules () ((FLOATatan x) (atan x))))
  56. (define-syntax FLOATsqrt (syntax-rules () ((FLOATsqrt x) (sqrt x))))
  57. (define-syntax FUTURE (syntax-rules () ((FUTURE x) x)))
  58. (define-syntax TOUCH (syntax-rules () ((TOUCH x) x)))
  59. (define-syntax def-macro (syntax-rules () ((def-macro stuff ...) #t)))
  60. (define-syntax def-struct (syntax-rules () ((def-macro stuff ...) #t)))
  61. (define-syntax def-nuc (syntax-rules () ((def-nuc stuff ...) #t)))
  62. (define-syntax define-structure
  63. (syntax-rules ()
  64. ((define-structure #f
  65. name make make-constant (select1 ...) (set1 ...))
  66. (begin (define-syntax make
  67. (syntax-rules ()
  68. ((make select1 ...)
  69. (vector select1 ...))))
  70. (define-syntax make-constant
  71. (syntax-rules ()
  72. ; The vectors that are passed to make-constant aren't quoted.
  73. ((make-constant . args)
  74. (constant-maker make . args))))
  75. (define-selectors (select1 ...)
  76. (0 1 2 3 4 5 6 7 8 9
  77. 10 11 12 13 14 15 16 17 18 19
  78. 20 21 22 23 24 25 26 27 28 29
  79. 30 31 32 33 34 35 36 37 38 39
  80. 40 41 42 43 44 45 46 47 48 49))
  81. (define-setters (set1 ...)
  82. (0 1 2 3 4 5 6 7 8 9
  83. 10 11 12 13 14 15 16 17 18 19
  84. 20 21 22 23 24 25 26 27 28 29
  85. 30 31 32 33 34 35 36 37 38 39
  86. 40 41 42 43 44 45 46 47 48 49))))
  87. ((define-structure pred?
  88. name make make-constant (select1 ...) (set1 ...))
  89. (begin (define-syntax pred?
  90. (syntax-rules ()
  91. ((pred? v)
  92. (and (vector? v) (eq? (vector-ref v 0) 'name)))))
  93. (define-syntax make
  94. (syntax-rules ()
  95. ((make select1 ...)
  96. (vector 'name select1 ...))))
  97. (define-syntax make-constant
  98. (syntax-rules ()
  99. ; The vectors that are passed to make-constant aren't quoted.
  100. ((make-constant . args)
  101. (constant-maker make . args))))
  102. (define-selectors (select1 ...)
  103. (1 2 3 4 5 6 7 8 9
  104. 10 11 12 13 14 15 16 17 18 19
  105. 20 21 22 23 24 25 26 27 28 29
  106. 30 31 32 33 34 35 36 37 38 39
  107. 40 41 42 43 44 45 46 47 48 49))
  108. (define-setters (set1 ...)
  109. (1 2 3 4 5 6 7 8 9
  110. 10 11 12 13 14 15 16 17 18 19
  111. 20 21 22 23 24 25 26 27 28 29
  112. 30 31 32 33 34 35 36 37 38 39
  113. 40 41 42 43 44 45 46 47 48 49))))))
  114. (define-syntax constant-maker
  115. (syntax-rules ()
  116. ; The quotation marks are added here.
  117. ((constant-maker make arg ...)
  118. (make 'arg ...))))
  119. (define-syntax define-selectors
  120. (syntax-rules ()
  121. ((define-selectors (select) (i i1 ...))
  122. (define-syntax select
  123. (syntax-rules ()
  124. ((select v) (vector-ref v i)))))
  125. ((define-selectors (select select1 ...) (i i1 ...))
  126. (begin (define-syntax select
  127. (syntax-rules ()
  128. ((select v) (vector-ref v i))))
  129. (define-selectors (select1 ...) (i1 ...))))))
  130. (define-syntax define-setters
  131. (syntax-rules ()
  132. ((define-setters (set) (i i1 ...))
  133. (define-syntax set
  134. (syntax-rules ()
  135. ((set v x) (vector-set! v i x)))))
  136. ((define-setters (set set1 ...) (i i1 ...))
  137. (begin (define-syntax set
  138. (syntax-rules ()
  139. ((set v x) (vector-set! v i x))))
  140. (define-setters (set1 ...) (i1 ...))))))
  141. (define-structure #f pt
  142. make-pt make-constant-pt
  143. (pt-x pt-y pt-z)
  144. (pt-x-set! pt-y-set! pt-z-set!))
  145. (define-structure #f tfo
  146. make-tfo make-constant-tfo
  147. (tfo-a tfo-b tfo-c tfo-d tfo-e tfo-f tfo-g tfo-h tfo-i tfo-tx tfo-ty tfo-tz)
  148. (tfo-a-set! tfo-b-set! tfo-c-set! tfo-d-set! tfo-e-set! tfo-f-set!
  149. tfo-g-set! tfo-h-set! tfo-i-set! tfo-tx-set! tfo-ty-set! tfo-tz-set!))
  150. (define-structure nuc? nuc
  151. make-nuc make-constant-nuc
  152. (nuc-dgf-base-tfo ; defines the standard position for wc and wc-dumas
  153. nuc-P-O3*-275-tfo ; defines the standard position for the connect function
  154. nuc-P-O3*-180-tfo
  155. nuc-P-O3*-60-tfo
  156. nuc-P nuc-O1P nuc-O2P nuc-O5* nuc-C5*
  157. nuc-H5* nuc-H5**
  158. nuc-C4* nuc-H4* nuc-O4* nuc-C1* nuc-H1*
  159. nuc-C2* nuc-H2**
  160. nuc-O2* nuc-H2* nuc-C3* nuc-H3* nuc-O3*
  161. nuc-N1 nuc-N3 nuc-C2 nuc-C4 nuc-C5 nuc-C6)
  162. (nuc-dgf-base-tfo-set!
  163. nuc-P-O3*-275-tfo-set!
  164. nuc-P-O3*-180-tfo-set!
  165. nuc-P-O3*-60-tfo-set!
  166. nuc-P-set! nuc-O1P-set! nuc-O2P-set! nuc-O5*-set! nuc-C5*-set!
  167. nuc-H5*-set! nuc-H5**-set!
  168. nuc-C4*-set! nuc-H4*-set! nuc-O4*-set! nuc-C1*-set! nuc-H1*-set!
  169. nuc-C2*-set! nuc-H2**-set!
  170. nuc-O2*-set! nuc-H2*-set! nuc-C3*-set! nuc-H3*-set! nuc-O3*-set!
  171. nuc-N1-set! nuc-N3-set! nuc-C2-set! nuc-C4-set! nuc-C5-set! nuc-C6-set!))
  172. (define-structure rA? rA
  173. make-rA make-constant-rA
  174. (nuc-dgf-base-tfo ; defines the standard position for wc and wc-dumas
  175. nuc-P-O3*-275-tfo ; defines the standard position for the connect function
  176. nuc-P-O3*-180-tfo
  177. nuc-P-O3*-60-tfo
  178. nuc-P nuc-O1P nuc-O2P nuc-O5* nuc-C5*
  179. nuc-H5* nuc-H5**
  180. nuc-C4* nuc-H4* nuc-O4* nuc-C1* nuc-H1*
  181. nuc-C2* nuc-H2**
  182. nuc-O2* nuc-H2* nuc-C3* nuc-H3* nuc-O3*
  183. nuc-N1 nuc-N3 nuc-C2 nuc-C4 nuc-C5 nuc-C6
  184. rA-N6 rA-N7 rA-N9 rA-C8
  185. rA-H2 rA-H61 rA-H62 rA-H8)
  186. (nuc-dgf-base-tfo-set!
  187. nuc-P-O3*-275-tfo-set!
  188. nuc-P-O3*-180-tfo-set!
  189. nuc-P-O3*-60-tfo-set!
  190. nuc-P-set! nuc-O1P-set! nuc-O2P-set! nuc-O5*-set! nuc-C5*-set!
  191. nuc-H5*-set! nuc-H5**-set!
  192. nuc-C4*-set! nuc-H4*-set! nuc-O4*-set! nuc-C1*-set! nuc-H1*-set!
  193. nuc-C2*-set! nuc-H2**-set!
  194. nuc-O2*-set! nuc-H2*-set! nuc-C3*-set! nuc-H3*-set! nuc-O3*-set!
  195. nuc-N1-set! nuc-N3-set! nuc-C2-set! nuc-C4-set! nuc-C5-set! nuc-C6-set!
  196. rA-N6-set! rA-N7-set! rA-N9-set! rA-C8-set!
  197. rA-H2-set! rA-H61-set! rA-H62-set! rA-H8-set!))
  198. (define-structure rC? rC
  199. make-rC make-constant-rC
  200. (nuc-dgf-base-tfo ; defines the standard position for wc and wc-dumas
  201. nuc-P-O3*-275-tfo ; defines the standard position for the connect function
  202. nuc-P-O3*-180-tfo
  203. nuc-P-O3*-60-tfo
  204. nuc-P nuc-O1P nuc-O2P nuc-O5* nuc-C5*
  205. nuc-H5* nuc-H5**
  206. nuc-C4* nuc-H4* nuc-O4* nuc-C1* nuc-H1*
  207. nuc-C2* nuc-H2**
  208. nuc-O2* nuc-H2* nuc-C3* nuc-H3* nuc-O3*
  209. nuc-N1 nuc-N3 nuc-C2 nuc-C4 nuc-C5 nuc-C6
  210. rC-N4 rC-O2 rC-H41 rC-H42 rC-H5 rC-H6)
  211. (nuc-dgf-base-tfo-set!
  212. nuc-P-O3*-275-tfo-set!
  213. nuc-P-O3*-180-tfo-set!
  214. nuc-P-O3*-60-tfo-set!
  215. nuc-P-set! nuc-O1P-set! nuc-O2P-set! nuc-O5*-set! nuc-C5*-set!
  216. nuc-H5*-set! nuc-H5**-set!
  217. nuc-C4*-set! nuc-H4*-set! nuc-O4*-set! nuc-C1*-set! nuc-H1*-set!
  218. nuc-C2*-set! nuc-H2**-set!
  219. nuc-O2*-set! nuc-H2*-set! nuc-C3*-set! nuc-H3*-set! nuc-O3*-set!
  220. nuc-N1-set! nuc-N3-set! nuc-C2-set! nuc-C4-set! nuc-C5-set! nuc-C6-set!
  221. rC-N4-set! rC-O2-set! rC-H41-set! rC-H42-set! rC-H5-set! rC-H6-set!))
  222. (define-structure rG? rG
  223. make-rG make-constant-rG
  224. (nuc-dgf-base-tfo ; defines the standard position for wc and wc-dumas
  225. nuc-P-O3*-275-tfo ; defines the standard position for the connect function
  226. nuc-P-O3*-180-tfo
  227. nuc-P-O3*-60-tfo
  228. nuc-P nuc-O1P nuc-O2P nuc-O5* nuc-C5*
  229. nuc-H5* nuc-H5**
  230. nuc-C4* nuc-H4* nuc-O4* nuc-C1* nuc-H1*
  231. nuc-C2* nuc-H2**
  232. nuc-O2* nuc-H2* nuc-C3* nuc-H3* nuc-O3*
  233. nuc-N1 nuc-N3 nuc-C2 nuc-C4 nuc-C5 nuc-C6
  234. rG-N2 rG-N7 rG-N9 rG-C8 rG-O6
  235. rG-H1 rG-H21 rG-H22 rG-H8)
  236. (nuc-dgf-base-tfo-set!
  237. nuc-P-O3*-275-tfo-set!
  238. nuc-P-O3*-180-tfo-set!
  239. nuc-P-O3*-60-tfo-set!
  240. nuc-P-set! nuc-O1P-set! nuc-O2P-set! nuc-O5*-set! nuc-C5*-set!
  241. nuc-H5*-set! nuc-H5**-set!
  242. nuc-C4*-set! nuc-H4*-set! nuc-O4*-set! nuc-C1*-set! nuc-H1*-set!
  243. nuc-C2*-set! nuc-H2**-set!
  244. nuc-O2*-set! nuc-H2*-set! nuc-C3*-set! nuc-H3*-set! nuc-O3*-set!
  245. nuc-N1-set! nuc-N3-set! nuc-C2-set! nuc-C4-set! nuc-C5-set! nuc-C6-set!
  246. rG-N2-set! rG-N7-set! rG-N9-set! rG-C8-set! rG-O6-set!
  247. rG-H1-set! rG-H21-set! rG-H22-set! rG-H8-set!))
  248. (define-structure rU? rU
  249. make-rU make-constant-rU
  250. (nuc-dgf-base-tfo ; defines the standard position for wc and wc-dumas
  251. nuc-P-O3*-275-tfo ; defines the standard position for the connect function
  252. nuc-P-O3*-180-tfo
  253. nuc-P-O3*-60-tfo
  254. nuc-P nuc-O1P nuc-O2P nuc-O5* nuc-C5*
  255. nuc-H5* nuc-H5**
  256. nuc-C4* nuc-H4* nuc-O4* nuc-C1* nuc-H1*
  257. nuc-C2* nuc-H2**
  258. nuc-O2* nuc-H2* nuc-C3* nuc-H3* nuc-O3*
  259. nuc-N1 nuc-N3 nuc-C2 nuc-C4 nuc-C5 nuc-C6
  260. rU-O2 rU-O4 rU-H3 rU-H5 rU-H6)
  261. (nuc-dgf-base-tfo-set!
  262. nuc-P-O3*-275-tfo-set!
  263. nuc-P-O3*-180-tfo-set!
  264. nuc-P-O3*-60-tfo-set!
  265. nuc-P-set! nuc-O1P-set! nuc-O2P-set! nuc-O5*-set! nuc-C5*-set!
  266. nuc-H5*-set! nuc-H5**-set!
  267. nuc-C4*-set! nuc-H4*-set! nuc-O4*-set! nuc-C1*-set! nuc-H1*-set!
  268. nuc-C2*-set! nuc-H2**-set!
  269. nuc-O2*-set! nuc-H2*-set! nuc-C3*-set! nuc-H3*-set! nuc-O3*-set!
  270. nuc-N1-set! nuc-N3-set! nuc-C2-set! nuc-C4-set! nuc-C5-set! nuc-C6-set!
  271. rU-O2-set! rU-O4-set! rU-H3-set! rU-H5-set! rU-H6-set!))
  272. (define-structure #f var
  273. make-var make-constant-var
  274. (var-id var-tfo var-nuc)
  275. (var-id-set! var-tfo-set! var-nuc-set!))
  276. ; Comment out the next three syntax definitions if you want
  277. ; lazy computation.
  278. (define-syntax mk-var
  279. (syntax-rules ()
  280. ((mk-var i tfo nuc)
  281. (make-var i tfo nuc))))
  282. (define-syntax absolute-pos
  283. (syntax-rules ()
  284. ((absolute-pos var p)
  285. (tfo-apply (var-tfo var) p))))
  286. (define-syntax lazy-computation-of
  287. (syntax-rules ()
  288. ((lazy-computation-of expr)
  289. expr)))
  290. ; Uncomment the next three syntax definitions if you want
  291. ; lazy computation.
  292. ; (define-syntax mk-var
  293. ; (syntax-rules ()
  294. ; ((mk-var i tfo nuc)
  295. ; (make-var i tfo (make-relative-nuc tfo nuc)))))
  296. ;
  297. ; (define-syntax absolute-pos
  298. ; (syntax-rules ()
  299. ; ((absolute-pos var p)
  300. ; (force p))))
  301. ;
  302. ; (define-syntax lazy-computation-of
  303. ; (syntax-rules ()
  304. ; ((lazy-computation-of expr)
  305. ; (delay expr))))
  306. (define-syntax atom-pos
  307. (syntax-rules ()
  308. ((atom-pos atom var)
  309. (let ((v var))
  310. (absolute-pos v (atom (var-nuc v)))))))
  311. )
  312. ; -- SYSTEM DEPENDENT CODE ----------------------------------------------------
  313. ; The code in this section is not portable. It must be adapted to
  314. ; the Scheme system you are using.
  315. ; ********** GAMBIT 2.2
  316. '; Add a single-quote at the start of this line if you are NOT using Gambit
  317. (begin
  318. (declare ; Compiler declarations for fast code:
  319. (multilisp) ; - Enable the FUTURE special-form
  320. (block) ; - Assume this file contains the entire program
  321. (standard-bindings) ; - Assume standard bindings (this permits open-coding)
  322. (extended-bindings) ; - Same for extensions (such as "##flonum.+")
  323. (fixnum) ; - Use fixnum arithmetic by default
  324. (not safe) ; - Remove all runtime type checks
  325. )
  326. (define-macro (def-macro form . body)
  327. `(DEFINE-MACRO ,form (LET () ,@body)))
  328. (def-macro (FLOAT+ x . l) `(,(string->symbol "##flonum.+") ,x ,@l))
  329. (def-macro (FLOAT- x . l) `(,(string->symbol "##flonum.-") ,x ,@l))
  330. (def-macro (FLOAT* x . l) `(,(string->symbol "##flonum.*") ,x ,@l))
  331. (def-macro (FLOAT/ x . l) `(,(string->symbol "##flonum./") ,x ,@l))
  332. (def-macro (FLOAT= x y) `(,(string->symbol "##flonum.=") ,x ,y))
  333. (def-macro (FLOAT< x y) `(,(string->symbol "##flonum.<") ,x ,y))
  334. (def-macro (FLOAT<= x y) `(not (,(string->symbol "##flonum.<") ,y ,x)))
  335. (def-macro (FLOAT> x y) `(,(string->symbol "##flonum.<") ,y ,x))
  336. (def-macro (FLOAT>= x y) `(not (,(string->symbol "##flonum.<") ,x ,y)))
  337. (def-macro (FLOATsin x) `(,(string->symbol "##flonum.sin") ,x))
  338. (def-macro (FLOATcos x) `(,(string->symbol "##flonum.cos") ,x))
  339. (def-macro (FLOATatan x) `(,(string->symbol "##flonum.atan") ,x))
  340. (def-macro (FLOATsqrt x) `(,(string->symbol "##flonum.sqrt") ,x))
  341. )
  342. ; ********** MIT-SCHEME
  343. '; Remove the single-quote from this line if you are using MIT-Scheme
  344. (begin
  345. (declare (usual-integrations))
  346. (define-macro (def-macro form . body)
  347. `(DEFINE-MACRO ,form (LET () ,@body)))
  348. (def-macro (nary-function op1 op2 args)
  349. (if (null? (cdr args))
  350. `(,op1 ,@args)
  351. (let loop ((args args))
  352. (if (null? (cdr args))
  353. (car args)
  354. (loop (cons (list op2 (car args) (cadr args)) (cddr args)))))))
  355. (def-macro (FLOAT+ x . l) `(nary-function begin flo:+ ,(cons x l)))
  356. (def-macro (FLOAT- x . l) `(nary-function flo:negate flo:- ,(cons x l)))
  357. (def-macro (FLOAT* x . l) `(nary-function begin flo:* ,(cons x l)))
  358. (def-macro (FLOAT/ x . l) `(nary-function error flo:/ ,(cons x l)))
  359. (def-macro (FLOAT= x y) `(flo:= ,x ,y))
  360. (def-macro (FLOAT< x y) `(flo:< ,x ,y))
  361. (def-macro (FLOAT<= x y) `(not (flo:< ,y ,x)))
  362. (def-macro (FLOAT> x y) `(flo:< ,y ,x))
  363. (def-macro (FLOAT>= x y) `(not (flo:< ,x ,y)))
  364. (def-macro (FLOATsin x) `(flo:sin ,x))
  365. (def-macro (FLOATcos x) `(flo:cos ,x))
  366. (def-macro (FLOATatan x) `(flo:atan ,x))
  367. (def-macro (FLOATsqrt x) `(flo:sqrt ,x))
  368. (def-macro (FUTURE x) x)
  369. (def-macro (TOUCH x) x)
  370. )
  371. ; ********** SCM
  372. '; Remove the single-quote from this line if you are using SCM
  373. (begin
  374. (defmacro def-macro (form . body)
  375. `(DEFMACRO ,(car form) ,(cdr form) (LET () ,@body)))
  376. (def-macro (FLOAT+ x . l) `(+ ,x ,@l))
  377. (def-macro (FLOAT- x . l) `(- ,x ,@l))
  378. (def-macro (FLOAT* x . l) `(* ,x ,@l))
  379. (def-macro (FLOAT/ x . l) `(/ ,x ,@l))
  380. (def-macro (FLOAT= x y) `(= ,x ,y))
  381. (def-macro (FLOAT< x y) `(< ,x ,y))
  382. (def-macro (FLOAT<= x y) `(not (< ,y ,x)))
  383. (def-macro (FLOAT> x y) `(< ,y ,x))
  384. (def-macro (FLOAT>= x y) `(not (< ,x ,y)))
  385. (def-macro (FLOATsin x) `(sin ,x))
  386. (def-macro (FLOATcos x) `(cos ,x))
  387. (def-macro (FLOATatan x) `(atan ,x))
  388. (def-macro (FLOATsqrt x) `(sqrt ,x))
  389. (def-macro (FUTURE x) x)
  390. (def-macro (TOUCH x) x)
  391. )
  392. ; -- STRUCTURE DEFINITION MACRO -----------------------------------------------
  393. ; The macro "def-struct" provides a simple mechanism to define record
  394. ; structures out of vectors. The first argument to "def-struct" is a boolean
  395. ; indicating whether the vector should be tagged (to allow the type of the
  396. ; structure to be tested). The second argument is the name of the structure.
  397. ; The remaining arguments are the names of the structure's fields. A call
  398. ; to "def-struct" defines macros to
  399. ;
  400. ; 1) construct a record object of this type
  401. ; 2) fetch and store each field
  402. ; 3) test a record to see if it is of this type (only if tags are used)
  403. ; 4) define subclasses of this record with additional fields
  404. ;
  405. ; The call "(def-struct #t foo a b c)" will define the following macros:
  406. ;
  407. ; (make-foo x y) -- make a record
  408. ; (make-constant-foo x y) -- make a record (args must be constants)
  409. ; (foo? x) -- test a record
  410. ; (foo-a x) -- get field "a"
  411. ; (foo-b x) -- get field "b"
  412. ; (foo-a-set! x y) -- mutate field "a"
  413. ; (foo-b-set! x y) -- mutate field "b"
  414. ; (def-foo tag? name fields...) -- define subclass of "foo"
  415. (def-macro (def-struct tag? name . fields)
  416. `(DEF-SUBSTRUCT () () 0 ,tag? ,name ,@fields))
  417. (def-macro (def-substruct sup-fields sup-tags sup-length tag? name . fields)
  418. (define (err)
  419. (error "Ill-formed `def-substruct'") #f)
  420. (define (sym . strings)
  421. (string->symbol (apply string-append strings)))
  422. (if (symbol? name)
  423. (let* ((name-str (symbol->string name))
  424. (tag (sym "." name-str "."))
  425. (all-tags (append sup-tags
  426. (if tag?
  427. (list (cons tag sup-length))
  428. '()))))
  429. (let loop ((l1 fields)
  430. (l2 '())
  431. (l3 '())
  432. (i (+ sup-length (if tag? 1 0))))
  433. (if (pair? l1)
  434. (let ((rest (cdr l1)) (field (car l1)))
  435. (if (symbol? field)
  436. (let* ((field-str (symbol->string field))
  437. (field-ref (sym name-str "-" field-str))
  438. (field-set! (sym name-str "-" field-str "-set!")))
  439. (loop rest
  440. (cons `(DEF-MACRO (,field-set! X Y)
  441. `(VECTOR-SET! ,X ,,i ,Y))
  442. (cons `(DEF-MACRO (,field-ref X)
  443. `(VECTOR-REF ,X ,,i))
  444. l2))
  445. (cons (cons field i) l3)
  446. (+ i 1)))
  447. (err)))
  448. (let ((all-fields (append sup-fields (reverse l3))))
  449. `(BEGIN
  450. ,@l2
  451. (DEFINE ,(sym "fields-of-" name-str)
  452. ',all-fields)
  453. (DEF-MACRO (,(sym "def-" name-str) TAG? NAME . FIELDS)
  454. `(DEF-SUBSTRUCT ,',all-fields ,',all-tags ,',i
  455. ,TAG? ,NAME ,@FIELDS))
  456. (DEF-MACRO (,(sym "make-constant-" name-str) . REST)
  457. (DEFINE (ADD-TAGS I TAGS LST)
  458. (COND ((NULL? TAGS)
  459. LST)
  460. ((= I (CDAR TAGS))
  461. (CONS (CAAR TAGS)
  462. (ADD-TAGS (+ I 1) (CDR TAGS) LST)))
  463. (ELSE
  464. (CONS (CAR LST)
  465. (ADD-TAGS (+ I 1) TAGS (CDR LST))))))
  466. `'#(,@(ADD-TAGS 0 ',all-tags REST)))
  467. (DEF-MACRO (,(sym "make-" name-str) . REST)
  468. (DEFINE (ADD-TAGS I TAGS LST)
  469. (COND ((NULL? TAGS)
  470. LST)
  471. ((= I (CDAR TAGS))
  472. (CONS `',(CAAR TAGS)
  473. (ADD-TAGS (+ I 1) (CDR TAGS) LST)))
  474. (ELSE
  475. (CONS (CAR LST)
  476. (ADD-TAGS (+ I 1) TAGS (CDR LST))))))
  477. `(VECTOR ,@(ADD-TAGS 0 ',all-tags REST)))
  478. ,@(if tag?
  479. `((DEF-MACRO (,(sym name-str "?") X)
  480. `(EQ? (VECTOR-REF ,X ,,sup-length) ',',tag)))
  481. '())
  482. ',name)))))
  483. (err)))
  484. ; -- MATH UTILITIES -----------------------------------------------------------
  485. (define constant-pi 3.14159265358979323846)
  486. (define constant-minus-pi -3.14159265358979323846)
  487. (define constant-pi/2 1.57079632679489661923)
  488. (define constant-minus-pi/2 -1.57079632679489661923)
  489. (define (math-atan2 y x)
  490. (cond ((FLOAT> x 0.0)
  491. (FLOATatan (FLOAT/ y x)))
  492. ((FLOAT< y 0.0)
  493. (if (FLOAT= x 0.0)
  494. constant-minus-pi/2
  495. (FLOAT+ (FLOATatan (FLOAT/ y x)) constant-minus-pi)))
  496. (else
  497. (if (FLOAT= x 0.0)
  498. constant-pi/2
  499. (FLOAT+ (FLOATatan (FLOAT/ y x)) constant-pi)))))
  500. ; -- POINTS -------------------------------------------------------------------
  501. (def-struct #f pt x y z)
  502. (define (pt-sub p1 p2)
  503. (make-pt (FLOAT- (pt-x p1) (pt-x p2))
  504. (FLOAT- (pt-y p1) (pt-y p2))
  505. (FLOAT- (pt-z p1) (pt-z p2))))
  506. (define (pt-dist p1 p2)
  507. (let ((dx (FLOAT- (pt-x p1) (pt-x p2)))
  508. (dy (FLOAT- (pt-y p1) (pt-y p2)))
  509. (dz (FLOAT- (pt-z p1) (pt-z p2))))
  510. (FLOATsqrt (FLOAT+ (FLOAT* dx dx) (FLOAT* dy dy) (FLOAT* dz dz)))))
  511. (define (pt-phi p)
  512. (let* ((x (pt-x p))
  513. (y (pt-y p))
  514. (z (pt-z p))
  515. (b (math-atan2 x z)))
  516. (math-atan2 (FLOAT+ (FLOAT* (FLOATcos b) z) (FLOAT* (FLOATsin b) x)) y)))
  517. (define (pt-theta p)
  518. (math-atan2 (pt-x p) (pt-z p)))
  519. ; -- COORDINATE TRANSFORMATIONS -----------------------------------------------
  520. ; The notation for the transformations follows "Paul, R.P. (1981) Robot
  521. ; Manipulators. MIT Press." with the exception that our transformation
  522. ; matrices don't have the perspective terms and are the transpose of
  523. ; Paul's one. See also "M\"antyl\"a, M. (1985) An Introduction to
  524. ; Solid Modeling, Computer Science Press" Appendix A.
  525. ;
  526. ; The components of a transformation matrix are named like this:
  527. ;
  528. ; a b c
  529. ; d e f
  530. ; g h i
  531. ; tx ty tz
  532. ;
  533. ; The components tx, ty, and tz are the translation vector.
  534. (def-struct #f tfo a b c d e f g h i tx ty tz)
  535. (define tfo-id ; the identity transformation matrix
  536. '#(1.0 0.0 0.0
  537. 0.0 1.0 0.0
  538. 0.0 0.0 1.0
  539. 0.0 0.0 0.0))
  540. ; The function "tfo-apply" multiplies a transformation matrix, tfo, by a
  541. ; point vector, p. The result is a new point.
  542. (define (tfo-apply tfo p)
  543. (let ((x (pt-x p))
  544. (y (pt-y p))
  545. (z (pt-z p)))
  546. (make-pt
  547. (FLOAT+ (FLOAT* x (tfo-a tfo))
  548. (FLOAT* y (tfo-d tfo))
  549. (FLOAT* z (tfo-g tfo))
  550. (tfo-tx tfo))
  551. (FLOAT+ (FLOAT* x (tfo-b tfo))
  552. (FLOAT* y (tfo-e tfo))
  553. (FLOAT* z (tfo-h tfo))
  554. (tfo-ty tfo))
  555. (FLOAT+ (FLOAT* x (tfo-c tfo))
  556. (FLOAT* y (tfo-f tfo))
  557. (FLOAT* z (tfo-i tfo))
  558. (tfo-tz tfo)))))
  559. ; The function "tfo-combine" multiplies two transformation matrices A and B.
  560. ; The result is a new matrix which cumulates the transformations described
  561. ; by A and B.
  562. (define (tfo-combine A B)
  563. (make-tfo
  564. (FLOAT+ (FLOAT* (tfo-a A) (tfo-a B))
  565. (FLOAT* (tfo-b A) (tfo-d B))
  566. (FLOAT* (tfo-c A) (tfo-g B)))
  567. (FLOAT+ (FLOAT* (tfo-a A) (tfo-b B))
  568. (FLOAT* (tfo-b A) (tfo-e B))
  569. (FLOAT* (tfo-c A) (tfo-h B)))
  570. (FLOAT+ (FLOAT* (tfo-a A) (tfo-c B))
  571. (FLOAT* (tfo-b A) (tfo-f B))
  572. (FLOAT* (tfo-c A) (tfo-i B)))
  573. (FLOAT+ (FLOAT* (tfo-d A) (tfo-a B))
  574. (FLOAT* (tfo-e A) (tfo-d B))
  575. (FLOAT* (tfo-f A) (tfo-g B)))
  576. (FLOAT+ (FLOAT* (tfo-d A) (tfo-b B))
  577. (FLOAT* (tfo-e A) (tfo-e B))
  578. (FLOAT* (tfo-f A) (tfo-h B)))
  579. (FLOAT+ (FLOAT* (tfo-d A) (tfo-c B))
  580. (FLOAT* (tfo-e A) (tfo-f B))
  581. (FLOAT* (tfo-f A) (tfo-i B)))
  582. (FLOAT+ (FLOAT* (tfo-g A) (tfo-a B))
  583. (FLOAT* (tfo-h A) (tfo-d B))
  584. (FLOAT* (tfo-i A) (tfo-g B)))
  585. (FLOAT+ (FLOAT* (tfo-g A) (tfo-b B))
  586. (FLOAT* (tfo-h A) (tfo-e B))
  587. (FLOAT* (tfo-i A) (tfo-h B)))
  588. (FLOAT+ (FLOAT* (tfo-g A) (tfo-c B))
  589. (FLOAT* (tfo-h A) (tfo-f B))
  590. (FLOAT* (tfo-i A) (tfo-i B)))
  591. (FLOAT+ (FLOAT* (tfo-tx A) (tfo-a B))
  592. (FLOAT* (tfo-ty A) (tfo-d B))
  593. (FLOAT* (tfo-tz A) (tfo-g B))
  594. (tfo-tx B))
  595. (FLOAT+ (FLOAT* (tfo-tx A) (tfo-b B))
  596. (FLOAT* (tfo-ty A) (tfo-e B))
  597. (FLOAT* (tfo-tz A) (tfo-h B))
  598. (tfo-ty B))
  599. (FLOAT+ (FLOAT* (tfo-tx A) (tfo-c B))
  600. (FLOAT* (tfo-ty A) (tfo-f B))
  601. (FLOAT* (tfo-tz A) (tfo-i B))
  602. (tfo-tz B))))
  603. ; The function "tfo-inv-ortho" computes the inverse of a homogeneous
  604. ; transformation matrix.
  605. (define (tfo-inv-ortho tfo)
  606. (let* ((tx (tfo-tx tfo))
  607. (ty (tfo-ty tfo))
  608. (tz (tfo-tz tfo)))
  609. (make-tfo
  610. (tfo-a tfo) (tfo-d tfo) (tfo-g tfo)
  611. (tfo-b tfo) (tfo-e tfo) (tfo-h tfo)
  612. (tfo-c tfo) (tfo-f tfo) (tfo-i tfo)
  613. (FLOAT- (FLOAT+ (FLOAT* (tfo-a tfo) tx)
  614. (FLOAT* (tfo-b tfo) ty)
  615. (FLOAT* (tfo-c tfo) tz)))
  616. (FLOAT- (FLOAT+ (FLOAT* (tfo-d tfo) tx)
  617. (FLOAT* (tfo-e tfo) ty)
  618. (FLOAT* (tfo-f tfo) tz)))
  619. (FLOAT- (FLOAT+ (FLOAT* (tfo-g tfo) tx)
  620. (FLOAT* (tfo-h tfo) ty)
  621. (FLOAT* (tfo-i tfo) tz))))))
  622. ; Given three points p1, p2, and p3, the function "tfo-align" computes
  623. ; a transformation matrix such that point p1 gets mapped to (0,0,0), p2 gets
  624. ; mapped to the Y axis and p3 gets mapped to the YZ plane.
  625. (define (tfo-align p1 p2 p3)
  626. (let* ((x1 (pt-x p1)) (y1 (pt-y p1)) (z1 (pt-z p1))
  627. (x3 (pt-x p3)) (y3 (pt-y p3)) (z3 (pt-z p3))
  628. (x31 (FLOAT- x3 x1)) (y31 (FLOAT- y3 y1)) (z31 (FLOAT- z3 z1))
  629. (rotpY (pt-sub p2 p1))
  630. (Phi (pt-phi rotpY))
  631. (Theta (pt-theta rotpY))
  632. (sinP (FLOATsin Phi))
  633. (sinT (FLOATsin Theta))
  634. (cosP (FLOATcos Phi))
  635. (cosT (FLOATcos Theta))
  636. (sinPsinT (FLOAT* sinP sinT))
  637. (sinPcosT (FLOAT* sinP cosT))
  638. (cosPsinT (FLOAT* cosP sinT))
  639. (cosPcosT (FLOAT* cosP cosT))
  640. (rotpZ
  641. (make-pt
  642. (FLOAT- (FLOAT* cosT x31)
  643. (FLOAT* sinT z31))
  644. (FLOAT+ (FLOAT* sinPsinT x31)
  645. (FLOAT* cosP y31)
  646. (FLOAT* sinPcosT z31))
  647. (FLOAT+ (FLOAT* cosPsinT x31)
  648. (FLOAT- (FLOAT* sinP y31))
  649. (FLOAT* cosPcosT z31))))
  650. (Rho (pt-theta rotpZ))
  651. (cosR (FLOATcos Rho))
  652. (sinR (FLOATsin Rho))
  653. (x (FLOAT+ (FLOAT- (FLOAT* x1 cosT))
  654. (FLOAT* z1 sinT)))
  655. (y (FLOAT- (FLOAT- (FLOAT- (FLOAT* x1 sinPsinT))
  656. (FLOAT* y1 cosP))
  657. (FLOAT* z1 sinPcosT)))
  658. (z (FLOAT- (FLOAT+ (FLOAT- (FLOAT* x1 cosPsinT))
  659. (FLOAT* y1 sinP))
  660. (FLOAT* z1 cosPcosT))))
  661. (make-tfo
  662. (FLOAT- (FLOAT* cosT cosR) (FLOAT* cosPsinT sinR))
  663. sinPsinT
  664. (FLOAT+ (FLOAT* cosT sinR) (FLOAT* cosPsinT cosR))
  665. (FLOAT* sinP sinR)
  666. cosP
  667. (FLOAT- (FLOAT* sinP cosR))
  668. (FLOAT- (FLOAT- (FLOAT* sinT cosR)) (FLOAT* cosPcosT sinR))
  669. sinPcosT
  670. (FLOAT+ (FLOAT- (FLOAT* sinT sinR)) (FLOAT* cosPcosT cosR))
  671. (FLOAT- (FLOAT* x cosR) (FLOAT* z sinR))
  672. y
  673. (FLOAT+ (FLOAT* x sinR) (FLOAT* z cosR)))))
  674. ; -- NUCLEIC ACID CONFORMATIONS DATA BASE -------------------------------------
  675. ; Numbering of atoms follows the paper:
  676. ;
  677. ; IUPAC-IUB Joint Commission on Biochemical Nomenclature (JCBN)
  678. ; (1983) Abbreviations and Symbols for the Description of
  679. ; Conformations of Polynucleotide Chains. Eur. J. Biochem 131,
  680. ; 9-15.
  681. ;
  682. ; In the atom names, we have used "*" instead of "'".
  683. ; Define part common to all 4 nucleotide types.
  684. (def-struct #f nuc
  685. dgf-base-tfo ; defines the standard position for wc and wc-dumas
  686. P-O3*-275-tfo ; defines the standard position for the connect function
  687. P-O3*-180-tfo
  688. P-O3*-60-tfo
  689. P O1P O2P O5* C5* H5* H5** C4* H4* O4* C1* H1* C2* H2** O2* H2* C3*
  690. H3* O3* N1 N3 C2 C4 C5 C6)
  691. ; Define remaining atoms for each nucleotide type.
  692. (def-nuc #t rA N6 N7 N9 C8 H2 H61 H62 H8)
  693. (def-nuc #t rC N4 O2 H41 H42 H5 H6)
  694. (def-nuc #t rG N2 N7 N9 C8 O6 H1 H21 H22 H8)
  695. (def-nuc #t rU O2 O4 H3 H5 H6)
  696. ; Database of nucleotide conformations:
  697. (define rA
  698. (make-constant-rA
  699. #( -0.0018 -0.8207 0.5714 ; dgf-base-tfo
  700. 0.2679 -0.5509 -0.7904
  701. 0.9634 0.1517 0.2209
  702. 0.0073 8.4030 0.6232)
  703. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  704. -0.0433 -0.4257 0.9038
  705. -0.5788 0.7480 0.3246
  706. 1.5227 6.9114 -7.0765)
  707. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  708. 0.4552 0.6637 0.5935
  709. -0.8042 0.0203 0.5941
  710. -6.9472 -4.1186 -5.9108)
  711. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  712. -0.8247 0.5587 -0.0878
  713. 0.0426 0.2162 0.9754
  714. 6.2694 -7.0540 3.3316)
  715. #( 2.8930 8.5380 -3.3280) ; P
  716. #( 1.6980 7.6960 -3.5570) ; O1P
  717. #( 3.2260 9.5010 -4.4020) ; O2P
  718. #( 4.1590 7.6040 -3.0340) ; O5*
  719. #( 5.4550 8.2120 -2.8810) ; C5*
  720. #( 5.4546 8.8508 -1.9978) ; H5*
  721. #( 5.7588 8.6625 -3.8259) ; H5**
  722. #( 6.4970 7.1480 -2.5980) ; C4*
  723. #( 7.4896 7.5919 -2.5214) ; H4*
  724. #( 6.1630 6.4860 -1.3440) ; O4*
  725. #( 6.5400 5.1200 -1.4190) ; C1*
  726. #( 7.2763 4.9681 -0.6297) ; H1*
  727. #( 7.1940 4.8830 -2.7770) ; C2*
  728. #( 6.8667 3.9183 -3.1647) ; H2**
  729. #( 8.5860 5.0910 -2.6140) ; O2*
  730. #( 8.9510 4.7626 -1.7890) ; H2*
  731. #( 6.5720 6.0040 -3.6090) ; C3*
  732. #( 5.5636 5.7066 -3.8966) ; H3*
  733. #( 7.3801 6.3562 -4.7350) ; O3*
  734. #( 4.7150 0.4910 -0.1360) ; N1
  735. #( 6.3490 2.1730 -0.6020) ; N3
  736. #( 5.9530 0.9650 -0.2670) ; C2
  737. #( 5.2900 2.9790 -0.8260) ; C4
  738. #( 3.9720 2.6390 -0.7330) ; C5
  739. #( 3.6770 1.3160 -0.3660) ; C6
  740. #( 2.4280 0.8450 -0.2360) ; N6
  741. #( 3.1660 3.7290 -1.0360) ; N7
  742. #( 5.3170 4.2990 -1.1930) ; N9
  743. #( 4.0100 4.6780 -1.2990) ; C8
  744. #( 6.6890 0.1903 -0.0518) ; H2
  745. #( 1.6470 1.4460 -0.4040) ; H61
  746. #( 2.2780 -0.1080 -0.0280) ; H62
  747. #( 3.4421 5.5744 -1.5482) ; H8
  748. ))
  749. (define rA01
  750. (make-constant-rA
  751. #( -0.0043 -0.8175 0.5759 ; dgf-base-tfo
  752. 0.2617 -0.5567 -0.7884
  753. 0.9651 0.1473 0.2164
  754. 0.0359 8.3929 0.5532)
  755. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  756. -0.0433 -0.4257 0.9038
  757. -0.5788 0.7480 0.3246
  758. 1.5227 6.9114 -7.0765)
  759. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  760. 0.4552 0.6637 0.5935
  761. -0.8042 0.0203 0.5941
  762. -6.9472 -4.1186 -5.9108)
  763. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  764. -0.8247 0.5587 -0.0878
  765. 0.0426 0.2162 0.9754
  766. 6.2694 -7.0540 3.3316)
  767. #( 2.8930 8.5380 -3.3280) ; P
  768. #( 1.6980 7.6960 -3.5570) ; O1P
  769. #( 3.2260 9.5010 -4.4020) ; O2P
  770. #( 4.1590 7.6040 -3.0340) ; O5*
  771. #( 5.4352 8.2183 -2.7757) ; C5*
  772. #( 5.3830 8.7883 -1.8481) ; H5*
  773. #( 5.7729 8.7436 -3.6691) ; H5**
  774. #( 6.4830 7.1518 -2.5252) ; C4*
  775. #( 7.4749 7.5972 -2.4482) ; H4*
  776. #( 6.1626 6.4620 -1.2827) ; O4*
  777. #( 6.5431 5.0992 -1.3905) ; C1*
  778. #( 7.2871 4.9328 -0.6114) ; H1*
  779. #( 7.1852 4.8935 -2.7592) ; C2*
  780. #( 6.8573 3.9363 -3.1645) ; H2**
  781. #( 8.5780 5.1025 -2.6046) ; O2*
  782. #( 8.9516 4.7577 -1.7902) ; H2*
  783. #( 6.5522 6.0300 -3.5612) ; C3*
  784. #( 5.5420 5.7356 -3.8459) ; H3*
  785. #( 7.3487 6.4089 -4.6867) ; O3*
  786. #( 4.7442 0.4514 -0.1390) ; N1
  787. #( 6.3687 2.1459 -0.5926) ; N3
  788. #( 5.9795 0.9335 -0.2657) ; C2
  789. #( 5.3052 2.9471 -0.8125) ; C4
  790. #( 3.9891 2.5987 -0.7230) ; C5
  791. #( 3.7016 1.2717 -0.3647) ; C6
  792. #( 2.4553 0.7925 -0.2390) ; N6
  793. #( 3.1770 3.6859 -1.0198) ; N7
  794. #( 5.3247 4.2695 -1.1710) ; N9
  795. #( 4.0156 4.6415 -1.2759) ; C8
  796. #( 6.7198 0.1618 -0.0547) ; H2
  797. #( 1.6709 1.3900 -0.4039) ; H61
  798. #( 2.3107 -0.1627 -0.0373) ; H62
  799. #( 3.4426 5.5361 -1.5199) ; H8
  800. ))
  801. (define rA02
  802. (make-constant-rA
  803. #( 0.5566 0.0449 0.8296 ; dgf-base-tfo
  804. 0.5125 0.7673 -0.3854
  805. -0.6538 0.6397 0.4041
  806. -9.1161 -3.7679 -2.9968)
  807. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  808. -0.0433 -0.4257 0.9038
  809. -0.5788 0.7480 0.3246
  810. 1.5227 6.9114 -7.0765)
  811. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  812. 0.4552 0.6637 0.5935
  813. -0.8042 0.0203 0.5941
  814. -6.9472 -4.1186 -5.9108)
  815. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  816. -0.8247 0.5587 -0.0878
  817. 0.0426 0.2162 0.9754
  818. 6.2694 -7.0540 3.3316)
  819. #( 2.8930 8.5380 -3.3280) ; P
  820. #( 1.6980 7.6960 -3.5570) ; O1P
  821. #( 3.2260 9.5010 -4.4020) ; O2P
  822. #( 4.1590 7.6040 -3.0340) ; O5*
  823. #( 4.5778 6.6594 -4.0364) ; C5*
  824. #( 4.9220 7.1963 -4.9204) ; H5*
  825. #( 3.7996 5.9091 -4.1764) ; H5**
  826. #( 5.7873 5.8869 -3.5482) ; C4*
  827. #( 6.0405 5.0875 -4.2446) ; H4*
  828. #( 6.9135 6.8036 -3.4310) ; O4*
  829. #( 7.7293 6.4084 -2.3392) ; C1*
  830. #( 8.7078 6.1815 -2.7624) ; H1*
  831. #( 7.1305 5.1418 -1.7347) ; C2*
  832. #( 7.2040 5.1982 -0.6486) ; H2**
  833. #( 7.7417 4.0392 -2.3813) ; O2*
  834. #( 8.6785 4.1443 -2.5630) ; H2*
  835. #( 5.6666 5.2728 -2.1536) ; C3*
  836. #( 5.1747 5.9805 -1.4863) ; H3*
  837. #( 4.9997 4.0086 -2.1973) ; O3*
  838. #( 10.3245 8.5459 1.5467) ; N1
  839. #( 9.8051 6.9432 -0.1497) ; N3
  840. #( 10.5175 7.4328 0.8408) ; C2
  841. #( 8.7523 7.7422 -0.4228) ; C4
  842. #( 8.4257 8.9060 0.2099) ; C5
  843. #( 9.2665 9.3242 1.2540) ; C6
  844. #( 9.0664 10.4462 1.9610) ; N6
  845. #( 7.2750 9.4537 -0.3428) ; N7
  846. #( 7.7962 7.5519 -1.3859) ; N9
  847. #( 6.9479 8.6157 -1.2771) ; C8
  848. #( 11.4063 6.9047 1.1859) ; H2
  849. #( 8.2845 11.0341 1.7552) ; H61
  850. #( 9.6584 10.6647 2.7198) ; H62
  851. #( 6.0430 8.9853 -1.7594) ; H8
  852. ))
  853. (define rA03
  854. (make-constant-rA
  855. #( -0.5021 0.0731 0.8617 ; dgf-base-tfo
  856. -0.8112 0.3054 -0.4986
  857. -0.2996 -0.9494 -0.0940
  858. 6.4273 -5.1944 -3.7807)
  859. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  860. -0.0433 -0.4257 0.9038
  861. -0.5788 0.7480 0.3246
  862. 1.5227 6.9114 -7.0765)
  863. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  864. 0.4552 0.6637 0.5935
  865. -0.8042 0.0203 0.5941
  866. -6.9472 -4.1186 -5.9108)
  867. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  868. -0.8247 0.5587 -0.0878
  869. 0.0426 0.2162 0.9754
  870. 6.2694 -7.0540 3.3316)
  871. #( 2.8930 8.5380 -3.3280) ; P
  872. #( 1.6980 7.6960 -3.5570) ; O1P
  873. #( 3.2260 9.5010 -4.4020) ; O2P
  874. #( 4.1590 7.6040 -3.0340) ; O5*
  875. #( 4.1214 6.7116 -1.9049) ; C5*
  876. #( 3.3465 5.9610 -2.0607) ; H5*
  877. #( 4.0789 7.2928 -0.9837) ; H5**
  878. #( 5.4170 5.9293 -1.8186) ; C4*
  879. #( 5.4506 5.3400 -0.9023) ; H4*
  880. #( 5.5067 5.0417 -2.9703) ; O4*
  881. #( 6.8650 4.9152 -3.3612) ; C1*
  882. #( 7.1090 3.8577 -3.2603) ; H1*
  883. #( 7.7152 5.7282 -2.3894) ; C2*
  884. #( 8.5029 6.2356 -2.9463) ; H2**
  885. #( 8.1036 4.8568 -1.3419) ; O2*
  886. #( 8.3270 3.9651 -1.6184) ; H2*
  887. #( 6.7003 6.7565 -1.8911) ; C3*
  888. #( 6.5898 7.5329 -2.6482) ; H3*
  889. #( 7.0505 7.2878 -0.6105) ; O3*
  890. #( 9.6740 4.7656 -7.6614) ; N1
  891. #( 9.0739 4.3013 -5.3941) ; N3
  892. #( 9.8416 4.2192 -6.4581) ; C2
  893. #( 7.9885 5.0632 -5.6446) ; C4
  894. #( 7.6822 5.6856 -6.8194) ; C5
  895. #( 8.5831 5.5215 -7.8840) ; C6
  896. #( 8.4084 6.0747 -9.0933) ; N6
  897. #( 6.4857 6.3816 -6.7035) ; N7
  898. #( 6.9740 5.3703 -4.7760) ; N9
  899. #( 6.1133 6.1613 -5.4808) ; C8
  900. #( 10.7627 3.6375 -6.4220) ; H2
  901. #( 7.6031 6.6390 -9.2733) ; H61
  902. #( 9.1004 5.9708 -9.7893) ; H62
  903. #( 5.1705 6.6830 -5.3167) ; H8
  904. ))
  905. (define rA04
  906. (make-constant-rA
  907. #( -0.5426 -0.8175 0.1929 ; dgf-base-tfo
  908. 0.8304 -0.5567 -0.0237
  909. 0.1267 0.1473 0.9809
  910. -0.5075 8.3929 0.2229)
  911. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  912. -0.0433 -0.4257 0.9038
  913. -0.5788 0.7480 0.3246
  914. 1.5227 6.9114 -7.0765)
  915. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  916. 0.4552 0.6637 0.5935
  917. -0.8042 0.0203 0.5941
  918. -6.9472 -4.1186 -5.9108)
  919. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  920. -0.8247 0.5587 -0.0878
  921. 0.0426 0.2162 0.9754
  922. 6.2694 -7.0540 3.3316)
  923. #( 2.8930 8.5380 -3.3280) ; P
  924. #( 1.6980 7.6960 -3.5570) ; O1P
  925. #( 3.2260 9.5010 -4.4020) ; O2P
  926. #( 4.1590 7.6040 -3.0340) ; O5*
  927. #( 5.4352 8.2183 -2.7757) ; C5*
  928. #( 5.3830 8.7883 -1.8481) ; H5*
  929. #( 5.7729 8.7436 -3.6691) ; H5**
  930. #( 6.4830 7.1518 -2.5252) ; C4*
  931. #( 7.4749 7.5972 -2.4482) ; H4*
  932. #( 6.1626 6.4620 -1.2827) ; O4*
  933. #( 6.5431 5.0992 -1.3905) ; C1*
  934. #( 7.2871 4.9328 -0.6114) ; H1*
  935. #( 7.1852 4.8935 -2.7592) ; C2*
  936. #( 6.8573 3.9363 -3.1645) ; H2**
  937. #( 8.5780 5.1025 -2.6046) ; O2*
  938. #( 8.9516 4.7577 -1.7902) ; H2*
  939. #( 6.5522 6.0300 -3.5612) ; C3*
  940. #( 5.5420 5.7356 -3.8459) ; H3*
  941. #( 7.3487 6.4089 -4.6867) ; O3*
  942. #( 3.6343 2.6680 2.0783) ; N1
  943. #( 5.4505 3.9805 1.2446) ; N3
  944. #( 4.7540 3.3816 2.1851) ; C2
  945. #( 4.8805 3.7951 0.0354) ; C4
  946. #( 3.7416 3.0925 -0.2305) ; C5
  947. #( 3.0873 2.4980 0.8606) ; C6
  948. #( 1.9600 1.7805 0.7462) ; N6
  949. #( 3.4605 3.1184 -1.5906) ; N7
  950. #( 5.3247 4.2695 -1.1710) ; N9
  951. #( 4.4244 3.8244 -2.0953) ; C8
  952. #( 5.0814 3.4352 3.2234) ; H2
  953. #( 1.5423 1.6454 -0.1520) ; H61
  954. #( 1.5716 1.3398 1.5392) ; H62
  955. #( 4.2675 3.8876 -3.1721) ; H8
  956. ))
  957. (define rA05
  958. (make-constant-rA
  959. #( -0.5891 0.0449 0.8068 ; dgf-base-tfo
  960. 0.5375 0.7673 0.3498
  961. -0.6034 0.6397 -0.4762
  962. -0.3019 -3.7679 -9.5913)
  963. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  964. -0.0433 -0.4257 0.9038
  965. -0.5788 0.7480 0.3246
  966. 1.5227 6.9114 -7.0765)
  967. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  968. 0.4552 0.6637 0.5935
  969. -0.8042 0.0203 0.5941
  970. -6.9472 -4.1186 -5.9108)
  971. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  972. -0.8247 0.5587 -0.0878
  973. 0.0426 0.2162 0.9754
  974. 6.2694 -7.0540 3.3316)
  975. #( 2.8930 8.5380 -3.3280) ; P
  976. #( 1.6980 7.6960 -3.5570) ; O1P
  977. #( 3.2260 9.5010 -4.4020) ; O2P
  978. #( 4.1590 7.6040 -3.0340) ; O5*
  979. #( 4.5778 6.6594 -4.0364) ; C5*
  980. #( 4.9220 7.1963 -4.9204) ; H5*
  981. #( 3.7996 5.9091 -4.1764) ; H5**
  982. #( 5.7873 5.8869 -3.5482) ; C4*
  983. #( 6.0405 5.0875 -4.2446) ; H4*
  984. #( 6.9135 6.8036 -3.4310) ; O4*
  985. #( 7.7293 6.4084 -2.3392) ; C1*
  986. #( 8.7078 6.1815 -2.7624) ; H1*
  987. #( 7.1305 5.1418 -1.7347) ; C2*
  988. #( 7.2040 5.1982 -0.6486) ; H2**
  989. #( 7.7417 4.0392 -2.3813) ; O2*
  990. #( 8.6785 4.1443 -2.5630) ; H2*
  991. #( 5.6666 5.2728 -2.1536) ; C3*
  992. #( 5.1747 5.9805 -1.4863) ; H3*
  993. #( 4.9997 4.0086 -2.1973) ; O3*
  994. #( 10.2594 10.6774 -1.0056) ; N1
  995. #( 9.7528 8.7080 -2.2631) ; N3
  996. #( 10.4471 9.7876 -1.9791) ; C2
  997. #( 8.7271 8.5575 -1.3991) ; C4
  998. #( 8.4100 9.3803 -0.3580) ; C5
  999. #( 9.2294 10.5030 -0.1574) ; C6
  1000. #( 9.0349 11.3951 0.8250) ; N6
  1001. #( 7.2891 8.9068 0.3121) ; N7
  1002. #( 7.7962 7.5519 -1.3859) ; N9
  1003. #( 6.9702 7.8292 -0.3353) ; C8
  1004. #( 11.3132 10.0537 -2.5851) ; H2
  1005. #( 8.2741 11.2784 1.4629) ; H61
  1006. #( 9.6733 12.1368 0.9529) ; H62
  1007. #( 6.0888 7.3990 0.1403) ; H8
  1008. ))
  1009. (define rA06
  1010. (make-constant-rA
  1011. #( -0.9815 0.0731 -0.1772 ; dgf-base-tfo
  1012. 0.1912 0.3054 -0.9328
  1013. -0.0141 -0.9494 -0.3137
  1014. 5.7506 -5.1944 4.7470)
  1015. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  1016. -0.0433 -0.4257 0.9038
  1017. -0.5788 0.7480 0.3246
  1018. 1.5227 6.9114 -7.0765)
  1019. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  1020. 0.4552 0.6637 0.5935
  1021. -0.8042 0.0203 0.5941
  1022. -6.9472 -4.1186 -5.9108)
  1023. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  1024. -0.8247 0.5587 -0.0878
  1025. 0.0426 0.2162 0.9754
  1026. 6.2694 -7.0540 3.3316)
  1027. #( 2.8930 8.5380 -3.3280) ; P
  1028. #( 1.6980 7.6960 -3.5570) ; O1P
  1029. #( 3.2260 9.5010 -4.4020) ; O2P
  1030. #( 4.1590 7.6040 -3.0340) ; O5*
  1031. #( 4.1214 6.7116 -1.9049) ; C5*
  1032. #( 3.3465 5.9610 -2.0607) ; H5*
  1033. #( 4.0789 7.2928 -0.9837) ; H5**
  1034. #( 5.4170 5.9293 -1.8186) ; C4*
  1035. #( 5.4506 5.3400 -0.9023) ; H4*
  1036. #( 5.5067 5.0417 -2.9703) ; O4*
  1037. #( 6.8650 4.9152 -3.3612) ; C1*
  1038. #( 7.1090 3.8577 -3.2603) ; H1*
  1039. #( 7.7152 5.7282 -2.3894) ; C2*
  1040. #( 8.5029 6.2356 -2.9463) ; H2**
  1041. #( 8.1036 4.8568 -1.3419) ; O2*
  1042. #( 8.3270 3.9651 -1.6184) ; H2*
  1043. #( 6.7003 6.7565 -1.8911) ; C3*
  1044. #( 6.5898 7.5329 -2.6482) ; H3*
  1045. #( 7.0505 7.2878 -0.6105) ; O3*
  1046. #( 6.6624 3.5061 -8.2986) ; N1
  1047. #( 6.5810 3.2570 -5.9221) ; N3
  1048. #( 6.5151 2.8263 -7.1625) ; C2
  1049. #( 6.8364 4.5817 -5.8882) ; C4
  1050. #( 7.0116 5.4064 -6.9609) ; C5
  1051. #( 6.9173 4.8260 -8.2361) ; C6
  1052. #( 7.0668 5.5163 -9.3763) ; N6
  1053. #( 7.2573 6.7070 -6.5394) ; N7
  1054. #( 6.9740 5.3703 -4.7760) ; N9
  1055. #( 7.2238 6.6275 -5.2453) ; C8
  1056. #( 6.3146 1.7741 -7.3641) ; H2
  1057. #( 7.2568 6.4972 -9.3456) ; H61
  1058. #( 7.0437 5.0478 -10.2446) ; H62
  1059. #( 7.4108 7.6227 -4.8418) ; H8
  1060. ))
  1061. (define rA07
  1062. (make-constant-rA
  1063. #( 0.2379 0.1310 -0.9624 ; dgf-base-tfo
  1064. -0.5876 -0.7696 -0.2499
  1065. -0.7734 0.6249 -0.1061
  1066. 30.9870 -26.9344 42.6416)
  1067. #( 0.7529 0.1548 0.6397 ; P-O3*-275-tfo
  1068. 0.2952 -0.9481 -0.1180
  1069. 0.5882 0.2777 -0.7595
  1070. -58.8919 -11.3095 6.0866)
  1071. #( -0.0239 0.9667 -0.2546 ; P-O3*-180-tfo
  1072. 0.9731 -0.0359 -0.2275
  1073. -0.2290 -0.2532 -0.9399
  1074. 3.5401 -29.7913 52.2796)
  1075. #( -0.8912 -0.4531 0.0242 ; P-O3*-60-tfo
  1076. -0.1183 0.1805 -0.9764
  1077. 0.4380 -0.8730 -0.2145
  1078. 19.9023 54.8054 15.2799)
  1079. #( 41.8210 8.3880 43.5890) ; P
  1080. #( 42.5400 8.0450 44.8330) ; O1P
  1081. #( 42.2470 9.6920 42.9910) ; O2P
  1082. #( 40.2550 8.2030 43.7340) ; O5*
  1083. #( 39.3505 8.4697 42.6565) ; C5*
  1084. #( 39.1377 7.5433 42.1230) ; H5*
  1085. #( 39.7203 9.3119 42.0717) ; H5**
  1086. #( 38.0405 8.9195 43.2869) ; C4*
  1087. #( 37.3687 9.3036 42.5193) ; H4*
  1088. #( 37.4319 7.8146 43.9387) ; O4*
  1089. #( 37.1959 8.1354 45.3237) ; C1*
  1090. #( 36.1788 8.5202 45.3970) ; H1*
  1091. #( 38.1721 9.2328 45.6504) ; C2*
  1092. #( 39.1555 8.7939 45.8188) ; H2**
  1093. #( 37.7862 10.0617 46.7013) ; O2*
  1094. #( 37.3087 9.6229 47.4092) ; H2*
  1095. #( 38.1844 10.0268 44.3367) ; C3*
  1096. #( 39.1578 10.5054 44.2289) ; H3*
  1097. #( 37.0547 10.9127 44.3441) ; O3*
  1098. #( 34.8811 4.2072 47.5784) ; N1
  1099. #( 35.1084 6.1336 46.1818) ; N3
  1100. #( 34.4108 5.1360 46.7207) ; C2
  1101. #( 36.3908 6.1224 46.6053) ; C4
  1102. #( 36.9819 5.2334 47.4697) ; C5
  1103. #( 36.1786 4.1985 48.0035) ; C6
  1104. #( 36.6103 3.2749 48.8452) ; N6
  1105. #( 38.3236 5.5522 47.6595) ; N7
  1106. #( 37.3887 7.0024 46.2437) ; N9
  1107. #( 38.5055 6.6096 46.9057) ; C8
  1108. #( 33.3553 5.0152 46.4771) ; H2
  1109. #( 37.5730 3.2804 49.1507) ; H61
  1110. #( 35.9775 2.5638 49.1828) ; H62
  1111. #( 39.5461 6.9184 47.0041) ; H8
  1112. ))
  1113. (define rA08
  1114. (make-constant-rA
  1115. #( 0.1084 -0.0895 -0.9901 ; dgf-base-tfo
  1116. 0.9789 -0.1638 0.1220
  1117. -0.1731 -0.9824 0.0698
  1118. -2.9039 47.2655 33.0094)
  1119. #( 0.7529 0.1548 0.6397 ; P-O3*-275-tfo
  1120. 0.2952 -0.9481 -0.1180
  1121. 0.5882 0.2777 -0.7595
  1122. -58.8919 -11.3095 6.0866)
  1123. #( -0.0239 0.9667 -0.2546 ; P-O3*-180-tfo
  1124. 0.9731 -0.0359 -0.2275
  1125. -0.2290 -0.2532 -0.9399
  1126. 3.5401 -29.7913 52.2796)
  1127. #( -0.8912 -0.4531 0.0242 ; P-O3*-60-tfo
  1128. -0.1183 0.1805 -0.9764
  1129. 0.4380 -0.8730 -0.2145
  1130. 19.9023 54.8054 15.2799)
  1131. #( 41.8210 8.3880 43.5890) ; P
  1132. #( 42.5400 8.0450 44.8330) ; O1P
  1133. #( 42.2470 9.6920 42.9910) ; O2P
  1134. #( 40.2550 8.2030 43.7340) ; O5*
  1135. #( 39.4850 8.9301 44.6977) ; C5*
  1136. #( 39.0638 9.8199 44.2296) ; H5*
  1137. #( 40.0757 9.0713 45.6029) ; H5**
  1138. #( 38.3102 8.0414 45.0789) ; C4*
  1139. #( 37.7842 8.4637 45.9351) ; H4*
  1140. #( 37.4200 7.9453 43.9769) ; O4*
  1141. #( 37.2249 6.5609 43.6273) ; C1*
  1142. #( 36.3360 6.2168 44.1561) ; H1*
  1143. #( 38.4347 5.8414 44.1590) ; C2*
  1144. #( 39.2688 5.9974 43.4749) ; H2**
  1145. #( 38.2344 4.4907 44.4348) ; O2*
  1146. #( 37.6374 4.0386 43.8341) ; H2*
  1147. #( 38.6926 6.6079 45.4637) ; C3*
  1148. #( 39.7585 6.5640 45.6877) ; H3*
  1149. #( 37.8238 6.0705 46.4723) ; O3*
  1150. #( 33.9162 6.2598 39.7758) ; N1
  1151. #( 34.6709 6.5759 42.0215) ; N3
  1152. #( 33.7257 6.5186 41.0858) ; C2
  1153. #( 35.8935 6.3324 41.5018) ; C4
  1154. #( 36.2105 6.0601 40.1932) ; C5
  1155. #( 35.1538 6.0151 39.2537) ; C6
  1156. #( 35.3088 5.7642 37.9649) ; N6
  1157. #( 37.5818 5.8677 40.0507) ; N7
  1158. #( 37.0932 6.3197 42.1810) ; N9
  1159. #( 38.0509 6.0354 41.2635) ; C8
  1160. #( 32.6830 6.6898 41.3532) ; H2
  1161. #( 36.2305 5.5855 37.5925) ; H61
  1162. #( 34.5056 5.7512 37.3528) ; H62
  1163. #( 39.1318 5.8993 41.2285) ; H8
  1164. ))
  1165. (define rA09
  1166. (make-constant-rA
  1167. #( 0.8467 0.4166 -0.3311 ; dgf-base-tfo
  1168. -0.3962 0.9089 0.1303
  1169. 0.3552 0.0209 0.9346
  1170. -42.7319 -26.6223 -29.8163)
  1171. #( 0.7529 0.1548 0.6397 ; P-O3*-275-tfo
  1172. 0.2952 -0.9481 -0.1180
  1173. 0.5882 0.2777 -0.7595
  1174. -58.8919 -11.3095 6.0866)
  1175. #( -0.0239 0.9667 -0.2546 ; P-O3*-180-tfo
  1176. 0.9731 -0.0359 -0.2275
  1177. -0.2290 -0.2532 -0.9399
  1178. 3.5401 -29.7913 52.2796)
  1179. #( -0.8912 -0.4531 0.0242 ; P-O3*-60-tfo
  1180. -0.1183 0.1805 -0.9764
  1181. 0.4380 -0.8730 -0.2145
  1182. 19.9023 54.8054 15.2799)
  1183. #( 41.8210 8.3880 43.5890) ; P
  1184. #( 42.5400 8.0450 44.8330) ; O1P
  1185. #( 42.2470 9.6920 42.9910) ; O2P
  1186. #( 40.2550 8.2030 43.7340) ; O5*
  1187. #( 39.3505 8.4697 42.6565) ; C5*
  1188. #( 39.1377 7.5433 42.1230) ; H5*
  1189. #( 39.7203 9.3119 42.0717) ; H5**
  1190. #( 38.0405 8.9195 43.2869) ; C4*
  1191. #( 37.6479 8.1347 43.9335) ; H4*
  1192. #( 38.2691 10.0933 44.0524) ; O4*
  1193. #( 37.3999 11.1488 43.5973) ; C1*
  1194. #( 36.5061 11.1221 44.2206) ; H1*
  1195. #( 37.0364 10.7838 42.1836) ; C2*
  1196. #( 37.8636 11.0489 41.5252) ; H2**
  1197. #( 35.8275 11.3133 41.7379) ; O2*
  1198. #( 35.6214 12.1896 42.0714) ; H2*
  1199. #( 36.9316 9.2556 42.2837) ; C3*
  1200. #( 37.1778 8.8260 41.3127) ; H3*
  1201. #( 35.6285 8.9334 42.7926) ; O3*
  1202. #( 38.1482 15.2833 46.4641) ; N1
  1203. #( 37.3641 13.0968 45.9007) ; N3
  1204. #( 37.5032 14.1288 46.7300) ; C2
  1205. #( 37.9570 13.3377 44.7113) ; C4
  1206. #( 38.6397 14.4660 44.3267) ; C5
  1207. #( 38.7473 15.5229 45.2609) ; C6
  1208. #( 39.3720 16.6649 45.0297) ; N6
  1209. #( 39.1079 14.3351 43.0223) ; N7
  1210. #( 38.0132 12.4868 43.6280) ; N9
  1211. #( 38.7058 13.1402 42.6620) ; C8
  1212. #( 37.0731 14.0857 47.7306) ; H2
  1213. #( 39.8113 16.8281 44.1350) ; H61
  1214. #( 39.4100 17.3741 45.7478) ; H62
  1215. #( 39.0412 12.9660 41.6397) ; H8
  1216. ))
  1217. (define rA10
  1218. (make-constant-rA
  1219. #( 0.7063 0.6317 -0.3196 ; dgf-base-tfo
  1220. -0.0403 -0.4149 -0.9090
  1221. -0.7068 0.6549 -0.2676
  1222. 6.4402 -52.1496 30.8246)
  1223. #( 0.7529 0.1548 0.6397 ; P-O3*-275-tfo
  1224. 0.2952 -0.9481 -0.1180
  1225. 0.5882 0.2777 -0.7595
  1226. -58.8919 -11.3095 6.0866)
  1227. #( -0.0239 0.9667 -0.2546 ; P-O3*-180-tfo
  1228. 0.9731 -0.0359 -0.2275
  1229. -0.2290 -0.2532 -0.9399
  1230. 3.5401 -29.7913 52.2796)
  1231. #( -0.8912 -0.4531 0.0242 ; P-O3*-60-tfo
  1232. -0.1183 0.1805 -0.9764
  1233. 0.4380 -0.8730 -0.2145
  1234. 19.9023 54.8054 15.2799)
  1235. #( 41.8210 8.3880 43.5890) ; P
  1236. #( 42.5400 8.0450 44.8330) ; O1P
  1237. #( 42.2470 9.6920 42.9910) ; O2P
  1238. #( 40.2550 8.2030 43.7340) ; O5*
  1239. #( 39.4850 8.9301 44.6977) ; C5*
  1240. #( 39.0638 9.8199 44.2296) ; H5*
  1241. #( 40.0757 9.0713 45.6029) ; H5**
  1242. #( 38.3102 8.0414 45.0789) ; C4*
  1243. #( 37.7099 7.8166 44.1973) ; H4*
  1244. #( 38.8012 6.8321 45.6380) ; O4*
  1245. #( 38.2431 6.6413 46.9529) ; C1*
  1246. #( 37.3505 6.0262 46.8385) ; H1*
  1247. #( 37.8484 8.0156 47.4214) ; C2*
  1248. #( 38.7381 8.5406 47.7690) ; H2**
  1249. #( 36.8286 8.0368 48.3701) ; O2*
  1250. #( 36.8392 7.3063 48.9929) ; H2*
  1251. #( 37.3576 8.6512 46.1132) ; C3*
  1252. #( 37.5207 9.7275 46.1671) ; H3*
  1253. #( 35.9985 8.2392 45.9032) ; O3*
  1254. #( 39.9117 2.2278 48.8527) ; N1
  1255. #( 38.6207 3.6941 47.4757) ; N3
  1256. #( 38.9872 2.4888 47.9057) ; C2
  1257. #( 39.2961 4.6720 48.1174) ; C4
  1258. #( 40.2546 4.5307 49.0912) ; C5
  1259. #( 40.5932 3.2189 49.4985) ; C6
  1260. #( 41.4938 2.9317 50.4229) ; N6
  1261. #( 40.7195 5.7755 49.5060) ; N7
  1262. #( 39.1730 6.0305 47.9170) ; N9
  1263. #( 40.0413 6.6250 48.7728) ; C8
  1264. #( 38.5257 1.5960 47.4838) ; H2
  1265. #( 41.9907 3.6753 50.8921) ; H61
  1266. #( 41.6848 1.9687 50.6599) ; H62
  1267. #( 40.3571 7.6321 49.0452) ; H8
  1268. ))
  1269. (define rAs
  1270. (list rA01 rA02 rA03 rA04 rA05 rA06 rA07 rA08 rA09 rA10))
  1271. (define rC
  1272. (make-constant-rC
  1273. #( -0.0359 -0.8071 0.5894 ; dgf-base-tfo
  1274. -0.2669 0.5761 0.7726
  1275. -0.9631 -0.1296 -0.2361
  1276. 0.1584 8.3434 0.5434)
  1277. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1278. 0.0649 0.4366 -0.8973
  1279. 0.5521 -0.7648 -0.3322
  1280. 1.6833 6.8060 -7.0011)
  1281. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1282. -0.4628 -0.6450 -0.6082
  1283. 0.8168 -0.0436 -0.5753
  1284. -6.8179 -3.9778 -5.9887)
  1285. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1286. 0.8103 -0.5790 0.0906
  1287. -0.0255 -0.1894 -0.9816
  1288. 6.1203 -7.1051 3.1984)
  1289. #( 2.6760 -8.4960 3.2880) ; P
  1290. #( 1.4950 -7.6230 3.4770) ; O1P
  1291. #( 2.9490 -9.4640 4.3740) ; O2P
  1292. #( 3.9730 -7.5950 3.0340) ; O5*
  1293. #( 5.2430 -8.2420 2.8260) ; C5*
  1294. #( 5.1974 -8.8497 1.9223) ; H5*
  1295. #( 5.5548 -8.7348 3.7469) ; H5**
  1296. #( 6.3140 -7.2060 2.5510) ; C4*
  1297. #( 7.2954 -7.6762 2.4898) ; H4*
  1298. #( 6.0140 -6.5420 1.2890) ; O4*
  1299. #( 6.4190 -5.1840 1.3620) ; C1*
  1300. #( 7.1608 -5.0495 0.5747) ; H1*
  1301. #( 7.0760 -4.9560 2.7270) ; C2*
  1302. #( 6.7770 -3.9803 3.1099) ; H2**
  1303. #( 8.4500 -5.1930 2.5810) ; O2*
  1304. #( 8.8309 -4.8755 1.7590) ; H2*
  1305. #( 6.4060 -6.0590 3.5580) ; C3*
  1306. #( 5.4021 -5.7313 3.8281) ; H3*
  1307. #( 7.1570 -6.4240 4.7070) ; O3*
  1308. #( 5.2170 -4.3260 1.1690) ; N1
  1309. #( 4.2960 -2.2560 0.6290) ; N3
  1310. #( 5.4330 -3.0200 0.7990) ; C2
  1311. #( 2.9930 -2.6780 0.7940) ; C4
  1312. #( 2.8670 -4.0630 1.1830) ; C5
  1313. #( 3.9570 -4.8300 1.3550) ; C6
  1314. #( 2.0187 -1.8047 0.5874) ; N4
  1315. #( 6.5470 -2.5560 0.6290) ; O2
  1316. #( 1.0684 -2.1236 0.7109) ; H41
  1317. #( 2.2344 -0.8560 0.3162) ; H42
  1318. #( 1.8797 -4.4972 1.3404) ; H5
  1319. #( 3.8479 -5.8742 1.6480) ; H6
  1320. ))
  1321. (define rC01
  1322. (make-constant-rC
  1323. #( -0.0137 -0.8012 0.5983 ; dgf-base-tfo
  1324. -0.2523 0.5817 0.7733
  1325. -0.9675 -0.1404 -0.2101
  1326. 0.2031 8.3874 0.4228)
  1327. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1328. 0.0649 0.4366 -0.8973
  1329. 0.5521 -0.7648 -0.3322
  1330. 1.6833 6.8060 -7.0011)
  1331. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1332. -0.4628 -0.6450 -0.6082
  1333. 0.8168 -0.0436 -0.5753
  1334. -6.8179 -3.9778 -5.9887)
  1335. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1336. 0.8103 -0.5790 0.0906
  1337. -0.0255 -0.1894 -0.9816
  1338. 6.1203 -7.1051 3.1984)
  1339. #( 2.6760 -8.4960 3.2880) ; P
  1340. #( 1.4950 -7.6230 3.4770) ; O1P
  1341. #( 2.9490 -9.4640 4.3740) ; O2P
  1342. #( 3.9730 -7.5950 3.0340) ; O5*
  1343. #( 5.2416 -8.2422 2.8181) ; C5*
  1344. #( 5.2050 -8.8128 1.8901) ; H5*
  1345. #( 5.5368 -8.7738 3.7227) ; H5**
  1346. #( 6.3232 -7.2037 2.6002) ; C4*
  1347. #( 7.3048 -7.6757 2.5577) ; H4*
  1348. #( 6.0635 -6.5092 1.3456) ; O4*
  1349. #( 6.4697 -5.1547 1.4629) ; C1*
  1350. #( 7.2354 -5.0043 0.7018) ; H1*
  1351. #( 7.0856 -4.9610 2.8521) ; C2*
  1352. #( 6.7777 -3.9935 3.2487) ; H2**
  1353. #( 8.4627 -5.1992 2.7423) ; O2*
  1354. #( 8.8693 -4.8638 1.9399) ; H2*
  1355. #( 6.3877 -6.0809 3.6362) ; C3*
  1356. #( 5.3770 -5.7562 3.8834) ; H3*
  1357. #( 7.1024 -6.4754 4.7985) ; O3*
  1358. #( 5.2764 -4.2883 1.2538) ; N1
  1359. #( 4.3777 -2.2062 0.7229) ; N3
  1360. #( 5.5069 -2.9779 0.9088) ; C2
  1361. #( 3.0693 -2.6246 0.8500) ; C4
  1362. #( 2.9279 -4.0146 1.2149) ; C5
  1363. #( 4.0101 -4.7892 1.4017) ; C6
  1364. #( 2.1040 -1.7437 0.6331) ; N4
  1365. #( 6.6267 -2.5166 0.7728) ; O2
  1366. #( 1.1496 -2.0600 0.7287) ; H41
  1367. #( 2.3303 -0.7921 0.3815) ; H42
  1368. #( 1.9353 -4.4465 1.3419) ; H5
  1369. #( 3.8895 -5.8371 1.6762) ; H6
  1370. ))
  1371. (define rC02
  1372. (make-constant-rC
  1373. #( 0.5141 0.0246 0.8574 ; dgf-base-tfo
  1374. -0.5547 -0.7529 0.3542
  1375. 0.6542 -0.6577 -0.3734
  1376. -9.1111 -3.4598 -3.2939)
  1377. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1378. 0.0649 0.4366 -0.8973
  1379. 0.5521 -0.7648 -0.3322
  1380. 1.6833 6.8060 -7.0011)
  1381. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1382. -0.4628 -0.6450 -0.6082
  1383. 0.8168 -0.0436 -0.5753
  1384. -6.8179 -3.9778 -5.9887)
  1385. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1386. 0.8103 -0.5790 0.0906
  1387. -0.0255 -0.1894 -0.9816
  1388. 6.1203 -7.1051 3.1984)
  1389. #( 2.6760 -8.4960 3.2880) ; P
  1390. #( 1.4950 -7.6230 3.4770) ; O1P
  1391. #( 2.9490 -9.4640 4.3740) ; O2P
  1392. #( 3.9730 -7.5950 3.0340) ; O5*
  1393. #( 4.3825 -6.6585 4.0489) ; C5*
  1394. #( 4.6841 -7.2019 4.9443) ; H5*
  1395. #( 3.6189 -5.8889 4.1625) ; H5**
  1396. #( 5.6255 -5.9175 3.5998) ; C4*
  1397. #( 5.8732 -5.1228 4.3034) ; H4*
  1398. #( 6.7337 -6.8605 3.5222) ; O4*
  1399. #( 7.5932 -6.4923 2.4548) ; C1*
  1400. #( 8.5661 -6.2983 2.9064) ; H1*
  1401. #( 7.0527 -5.2012 1.8322) ; C2*
  1402. #( 7.1627 -5.2525 0.7490) ; H2**
  1403. #( 7.6666 -4.1249 2.4880) ; O2*
  1404. #( 8.5944 -4.2543 2.6981) ; H2*
  1405. #( 5.5661 -5.3029 2.2009) ; C3*
  1406. #( 5.0841 -6.0018 1.5172) ; H3*
  1407. #( 4.9062 -4.0452 2.2042) ; O3*
  1408. #( 7.6298 -7.6136 1.4752) ; N1
  1409. #( 8.6945 -8.7046 -0.2857) ; N3
  1410. #( 8.6943 -7.6514 0.6066) ; C2
  1411. #( 7.7426 -9.6987 -0.3801) ; C4
  1412. #( 6.6642 -9.5742 0.5722) ; C5
  1413. #( 6.6391 -8.5592 1.4526) ; C6
  1414. #( 7.9033 -10.6371 -1.3010) ; N4
  1415. #( 9.5840 -6.8186 0.6136) ; O2
  1416. #( 7.2009 -11.3604 -1.3619) ; H41
  1417. #( 8.7058 -10.6168 -1.9140) ; H42
  1418. #( 5.8585 -10.3083 0.5822) ; H5
  1419. #( 5.8197 -8.4773 2.1667) ; H6
  1420. ))
  1421. (define rC03
  1422. (make-constant-rC
  1423. #( -0.4993 0.0476 0.8651 ; dgf-base-tfo
  1424. 0.8078 -0.3353 0.4847
  1425. 0.3132 0.9409 0.1290
  1426. 6.2989 -5.2303 -3.8577)
  1427. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1428. 0.0649 0.4366 -0.8973
  1429. 0.5521 -0.7648 -0.3322
  1430. 1.6833 6.8060 -7.0011)
  1431. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1432. -0.4628 -0.6450 -0.6082
  1433. 0.8168 -0.0436 -0.5753
  1434. -6.8179 -3.9778 -5.9887)
  1435. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1436. 0.8103 -0.5790 0.0906
  1437. -0.0255 -0.1894 -0.9816
  1438. 6.1203 -7.1051 3.1984)
  1439. #( 2.6760 -8.4960 3.2880) ; P
  1440. #( 1.4950 -7.6230 3.4770) ; O1P
  1441. #( 2.9490 -9.4640 4.3740) ; O2P
  1442. #( 3.9730 -7.5950 3.0340) ; O5*
  1443. #( 3.9938 -6.7042 1.9023) ; C5*
  1444. #( 3.2332 -5.9343 2.0319) ; H5*
  1445. #( 3.9666 -7.2863 0.9812) ; H5**
  1446. #( 5.3098 -5.9546 1.8564) ; C4*
  1447. #( 5.3863 -5.3702 0.9395) ; H4*
  1448. #( 5.3851 -5.0642 3.0076) ; O4*
  1449. #( 6.7315 -4.9724 3.4462) ; C1*
  1450. #( 7.0033 -3.9202 3.3619) ; H1*
  1451. #( 7.5997 -5.8018 2.4948) ; C2*
  1452. #( 8.3627 -6.3254 3.0707) ; H2**
  1453. #( 8.0410 -4.9501 1.4724) ; O2*
  1454. #( 8.2781 -4.0644 1.7570) ; H2*
  1455. #( 6.5701 -6.8129 1.9714) ; C3*
  1456. #( 6.4186 -7.5809 2.7299) ; H3*
  1457. #( 6.9357 -7.3841 0.7235) ; O3*
  1458. #( 6.8024 -5.4718 4.8475) ; N1
  1459. #( 7.9218 -5.5700 6.8877) ; N3
  1460. #( 7.8908 -5.0886 5.5944) ; C2
  1461. #( 6.9789 -6.3827 7.4823) ; C4
  1462. #( 5.8742 -6.7319 6.6202) ; C5
  1463. #( 5.8182 -6.2769 5.3570) ; C6
  1464. #( 7.1702 -6.7511 8.7402) ; N4
  1465. #( 8.7747 -4.3728 5.1568) ; O2
  1466. #( 6.4741 -7.3461 9.1662) ; H41
  1467. #( 7.9889 -6.4396 9.2429) ; H42
  1468. #( 5.0736 -7.3713 6.9922) ; H5
  1469. #( 4.9784 -6.5473 4.7170) ; H6
  1470. ))
  1471. (define rC04
  1472. (make-constant-rC
  1473. #( -0.5669 -0.8012 0.1918 ; dgf-base-tfo
  1474. -0.8129 0.5817 0.0273
  1475. -0.1334 -0.1404 -0.9811
  1476. -0.3279 8.3874 0.3355)
  1477. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1478. 0.0649 0.4366 -0.8973
  1479. 0.5521 -0.7648 -0.3322
  1480. 1.6833 6.8060 -7.0011)
  1481. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1482. -0.4628 -0.6450 -0.6082
  1483. 0.8168 -0.0436 -0.5753
  1484. -6.8179 -3.9778 -5.9887)
  1485. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1486. 0.8103 -0.5790 0.0906
  1487. -0.0255 -0.1894 -0.9816
  1488. 6.1203 -7.1051 3.1984)
  1489. #( 2.6760 -8.4960 3.2880) ; P
  1490. #( 1.4950 -7.6230 3.4770) ; O1P
  1491. #( 2.9490 -9.4640 4.3740) ; O2P
  1492. #( 3.9730 -7.5950 3.0340) ; O5*
  1493. #( 5.2416 -8.2422 2.8181) ; C5*
  1494. #( 5.2050 -8.8128 1.8901) ; H5*
  1495. #( 5.5368 -8.7738 3.7227) ; H5**
  1496. #( 6.3232 -7.2037 2.6002) ; C4*
  1497. #( 7.3048 -7.6757 2.5577) ; H4*
  1498. #( 6.0635 -6.5092 1.3456) ; O4*
  1499. #( 6.4697 -5.1547 1.4629) ; C1*
  1500. #( 7.2354 -5.0043 0.7018) ; H1*
  1501. #( 7.0856 -4.9610 2.8521) ; C2*
  1502. #( 6.7777 -3.9935 3.2487) ; H2**
  1503. #( 8.4627 -5.1992 2.7423) ; O2*
  1504. #( 8.8693 -4.8638 1.9399) ; H2*
  1505. #( 6.3877 -6.0809 3.6362) ; C3*
  1506. #( 5.3770 -5.7562 3.8834) ; H3*
  1507. #( 7.1024 -6.4754 4.7985) ; O3*
  1508. #( 5.2764 -4.2883 1.2538) ; N1
  1509. #( 3.8961 -3.0896 -0.1893) ; N3
  1510. #( 5.0095 -3.8907 -0.0346) ; C2
  1511. #( 3.0480 -2.6632 0.8116) ; C4
  1512. #( 3.4093 -3.1310 2.1292) ; C5
  1513. #( 4.4878 -3.9124 2.3088) ; C6
  1514. #( 2.0216 -1.8941 0.4804) ; N4
  1515. #( 5.7005 -4.2164 -0.9842) ; O2
  1516. #( 1.4067 -1.5873 1.2205) ; H41
  1517. #( 1.8721 -1.6319 -0.4835) ; H42
  1518. #( 2.8048 -2.8507 2.9918) ; H5
  1519. #( 4.7491 -4.2593 3.3085) ; H6
  1520. ))
  1521. (define rC05
  1522. (make-constant-rC
  1523. #( -0.6298 0.0246 0.7763 ; dgf-base-tfo
  1524. -0.5226 -0.7529 -0.4001
  1525. 0.5746 -0.6577 0.4870
  1526. -0.0208 -3.4598 -9.6882)
  1527. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1528. 0.0649 0.4366 -0.8973
  1529. 0.5521 -0.7648 -0.3322
  1530. 1.6833 6.8060 -7.0011)
  1531. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1532. -0.4628 -0.6450 -0.6082
  1533. 0.8168 -0.0436 -0.5753
  1534. -6.8179 -3.9778 -5.9887)
  1535. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1536. 0.8103 -0.5790 0.0906
  1537. -0.0255 -0.1894 -0.9816
  1538. 6.1203 -7.1051 3.1984)
  1539. #( 2.6760 -8.4960 3.2880) ; P
  1540. #( 1.4950 -7.6230 3.4770) ; O1P
  1541. #( 2.9490 -9.4640 4.3740) ; O2P
  1542. #( 3.9730 -7.5950 3.0340) ; O5*
  1543. #( 4.3825 -6.6585 4.0489) ; C5*
  1544. #( 4.6841 -7.2019 4.9443) ; H5*
  1545. #( 3.6189 -5.8889 4.1625) ; H5**
  1546. #( 5.6255 -5.9175 3.5998) ; C4*
  1547. #( 5.8732 -5.1228 4.3034) ; H4*
  1548. #( 6.7337 -6.8605 3.5222) ; O4*
  1549. #( 7.5932 -6.4923 2.4548) ; C1*
  1550. #( 8.5661 -6.2983 2.9064) ; H1*
  1551. #( 7.0527 -5.2012 1.8322) ; C2*
  1552. #( 7.1627 -5.2525 0.7490) ; H2**
  1553. #( 7.6666 -4.1249 2.4880) ; O2*
  1554. #( 8.5944 -4.2543 2.6981) ; H2*
  1555. #( 5.5661 -5.3029 2.2009) ; C3*
  1556. #( 5.0841 -6.0018 1.5172) ; H3*
  1557. #( 4.9062 -4.0452 2.2042) ; O3*
  1558. #( 7.6298 -7.6136 1.4752) ; N1
  1559. #( 8.5977 -9.5977 0.7329) ; N3
  1560. #( 8.5951 -8.5745 1.6594) ; C2
  1561. #( 7.7372 -9.7371 -0.3364) ; C4
  1562. #( 6.7596 -8.6801 -0.4476) ; C5
  1563. #( 6.7338 -7.6721 0.4408) ; C6
  1564. #( 7.8849 -10.7881 -1.1289) ; N4
  1565. #( 9.3993 -8.5377 2.5743) ; O2
  1566. #( 7.2499 -10.8809 -1.9088) ; H41
  1567. #( 8.6122 -11.4649 -0.9468) ; H42
  1568. #( 6.0317 -8.6941 -1.2588) ; H5
  1569. #( 5.9901 -6.8809 0.3459) ; H6
  1570. ))
  1571. (define rC06
  1572. (make-constant-rC
  1573. #( -0.9837 0.0476 -0.1733 ; dgf-base-tfo
  1574. -0.1792 -0.3353 0.9249
  1575. -0.0141 0.9409 0.3384
  1576. 5.7793 -5.2303 4.5997)
  1577. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  1578. 0.0649 0.4366 -0.8973
  1579. 0.5521 -0.7648 -0.3322
  1580. 1.6833 6.8060 -7.0011)
  1581. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  1582. -0.4628 -0.6450 -0.6082
  1583. 0.8168 -0.0436 -0.5753
  1584. -6.8179 -3.9778 -5.9887)
  1585. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  1586. 0.8103 -0.5790 0.0906
  1587. -0.0255 -0.1894 -0.9816
  1588. 6.1203 -7.1051 3.1984)
  1589. #( 2.6760 -8.4960 3.2880) ; P
  1590. #( 1.4950 -7.6230 3.4770) ; O1P
  1591. #( 2.9490 -9.4640 4.3740) ; O2P
  1592. #( 3.9730 -7.5950 3.0340) ; O5*
  1593. #( 3.9938 -6.7042 1.9023) ; C5*
  1594. #( 3.2332 -5.9343 2.0319) ; H5*
  1595. #( 3.9666 -7.2863 0.9812) ; H5**
  1596. #( 5.3098 -5.9546 1.8564) ; C4*
  1597. #( 5.3863 -5.3702 0.9395) ; H4*
  1598. #( 5.3851 -5.0642 3.0076) ; O4*
  1599. #( 6.7315 -4.9724 3.4462) ; C1*
  1600. #( 7.0033 -3.9202 3.3619) ; H1*
  1601. #( 7.5997 -5.8018 2.4948) ; C2*
  1602. #( 8.3627 -6.3254 3.0707) ; H2**
  1603. #( 8.0410 -4.9501 1.4724) ; O2*
  1604. #( 8.2781 -4.0644 1.7570) ; H2*
  1605. #( 6.5701 -6.8129 1.9714) ; C3*
  1606. #( 6.4186 -7.5809 2.7299) ; H3*
  1607. #( 6.9357 -7.3841 0.7235) ; O3*
  1608. #( 6.8024 -5.4718 4.8475) ; N1
  1609. #( 6.6920 -5.0495 7.1354) ; N3
  1610. #( 6.6201 -4.5500 5.8506) ; C2
  1611. #( 6.9254 -6.3614 7.4926) ; C4
  1612. #( 7.1046 -7.2543 6.3718) ; C5
  1613. #( 7.0391 -6.7951 5.1106) ; C6
  1614. #( 6.9614 -6.6648 8.7815) ; N4
  1615. #( 6.4083 -3.3696 5.6340) ; O2
  1616. #( 7.1329 -7.6280 9.0324) ; H41
  1617. #( 6.8204 -5.9469 9.4777) ; H42
  1618. #( 7.2954 -8.3135 6.5440) ; H5
  1619. #( 7.1753 -7.4798 4.2735) ; H6
  1620. ))
  1621. (define rC07
  1622. (make-constant-rC
  1623. #( 0.0033 0.2720 -0.9623 ; dgf-base-tfo
  1624. 0.3013 -0.9179 -0.2584
  1625. -0.9535 -0.2891 -0.0850
  1626. 43.0403 13.7233 34.5710)
  1627. #( 0.9187 0.2887 0.2694 ; P-O3*-275-tfo
  1628. 0.0302 -0.7316 0.6811
  1629. 0.3938 -0.6176 -0.6808
  1630. -48.4330 26.3254 13.6383)
  1631. #( -0.1504 0.7744 -0.6145 ; P-O3*-180-tfo
  1632. 0.7581 0.4893 0.4311
  1633. 0.6345 -0.4010 -0.6607
  1634. -31.9784 -13.4285 44.9650)
  1635. #( -0.6236 -0.7810 -0.0337 ; P-O3*-60-tfo
  1636. -0.6890 0.5694 -0.4484
  1637. 0.3694 -0.2564 -0.8932
  1638. 12.1105 30.8774 46.0946)
  1639. #( 33.3400 11.0980 46.1750) ; P
  1640. #( 34.5130 10.2320 46.4660) ; O1P
  1641. #( 33.4130 12.3960 46.9340) ; O2P
  1642. #( 31.9810 10.3390 46.4820) ; O5*
  1643. #( 30.8152 11.1619 46.2003) ; C5*
  1644. #( 30.4519 10.9454 45.1957) ; H5*
  1645. #( 31.0379 12.2016 46.4400) ; H5**
  1646. #( 29.7081 10.7448 47.1428) ; C4*
  1647. #( 28.8710 11.4416 47.0982) ; H4*
  1648. #( 29.2550 9.4394 46.8162) ; O4*
  1649. #( 29.3907 8.5625 47.9460) ; C1*
  1650. #( 28.4416 8.5669 48.4819) ; H1*
  1651. #( 30.4468 9.2031 48.7952) ; C2*
  1652. #( 31.4222 8.9651 48.3709) ; H2**
  1653. #( 30.3701 8.9157 50.1624) ; O2*
  1654. #( 30.0652 8.0304 50.3740) ; H2*
  1655. #( 30.1622 10.6879 48.6120) ; C3*
  1656. #( 31.0952 11.2399 48.7254) ; H3*
  1657. #( 29.1076 11.1535 49.4702) ; O3*
  1658. #( 29.7883 7.2209 47.5235) ; N1
  1659. #( 29.1825 5.0438 46.8275) ; N3
  1660. #( 28.8008 6.2912 47.2263) ; C2
  1661. #( 30.4888 4.6890 46.7186) ; C4
  1662. #( 31.5034 5.6405 47.0249) ; C5
  1663. #( 31.1091 6.8691 47.4156) ; C6
  1664. #( 30.8109 3.4584 46.3336) ; N4
  1665. #( 27.6171 6.5989 47.3189) ; O2
  1666. #( 31.7923 3.2301 46.2638) ; H41
  1667. #( 30.0880 2.7857 46.1215) ; H42
  1668. #( 32.5542 5.3634 46.9395) ; H5
  1669. #( 31.8523 7.6279 47.6603) ; H6
  1670. ))
  1671. (define rC08
  1672. (make-constant-rC
  1673. #( 0.0797 -0.6026 -0.7941 ; dgf-base-tfo
  1674. 0.7939 0.5201 -0.3150
  1675. 0.6028 -0.6054 0.5198
  1676. -36.8341 41.5293 1.6628)
  1677. #( 0.9187 0.2887 0.2694 ; P-O3*-275-tfo
  1678. 0.0302 -0.7316 0.6811
  1679. 0.3938 -0.6176 -0.6808
  1680. -48.4330 26.3254 13.6383)
  1681. #( -0.1504 0.7744 -0.6145 ; P-O3*-180-tfo
  1682. 0.7581 0.4893 0.4311
  1683. 0.6345 -0.4010 -0.6607
  1684. -31.9784 -13.4285 44.9650)
  1685. #( -0.6236 -0.7810 -0.0337 ; P-O3*-60-tfo
  1686. -0.6890 0.5694 -0.4484
  1687. 0.3694 -0.2564 -0.8932
  1688. 12.1105 30.8774 46.0946)
  1689. #( 33.3400 11.0980 46.1750) ; P
  1690. #( 34.5130 10.2320 46.4660) ; O1P
  1691. #( 33.4130 12.3960 46.9340) ; O2P
  1692. #( 31.9810 10.3390 46.4820) ; O5*
  1693. #( 31.8779 9.9369 47.8760) ; C5*
  1694. #( 31.3239 10.6931 48.4322) ; H5*
  1695. #( 32.8647 9.6624 48.2489) ; H5**
  1696. #( 31.0429 8.6773 47.9401) ; C4*
  1697. #( 31.0779 8.2331 48.9349) ; H4*
  1698. #( 29.6956 8.9669 47.5983) ; O4*
  1699. #( 29.2784 8.1700 46.4782) ; C1*
  1700. #( 28.8006 7.2731 46.8722) ; H1*
  1701. #( 30.5544 7.7940 45.7875) ; C2*
  1702. #( 30.8837 8.6410 45.1856) ; H2**
  1703. #( 30.5100 6.6007 45.0582) ; O2*
  1704. #( 29.6694 6.4168 44.6326) ; H2*
  1705. #( 31.5146 7.5954 46.9527) ; C3*
  1706. #( 32.5255 7.8261 46.6166) ; H3*
  1707. #( 31.3876 6.2951 47.5516) ; O3*
  1708. #( 28.3976 8.9302 45.5933) ; N1
  1709. #( 26.2155 9.6135 44.9910) ; N3
  1710. #( 27.0281 8.8961 45.8192) ; C2
  1711. #( 26.7044 10.3489 43.9595) ; C4
  1712. #( 28.1088 10.3837 43.7247) ; C5
  1713. #( 28.8978 9.6708 44.5535) ; C6
  1714. #( 25.8715 11.0249 43.1749) ; N4
  1715. #( 26.5733 8.2371 46.7484) ; O2
  1716. #( 26.2707 11.5609 42.4177) ; H41
  1717. #( 24.8760 10.9939 43.3427) ; H42
  1718. #( 28.5089 10.9722 42.8990) ; H5
  1719. #( 29.9782 9.6687 44.4097) ; H6
  1720. ))
  1721. (define rC09
  1722. (make-constant-rC
  1723. #( 0.8727 0.4760 -0.1091 ; dgf-base-tfo
  1724. -0.4188 0.6148 -0.6682
  1725. -0.2510 0.6289 0.7359
  1726. -8.1687 -52.0761 -25.0726)
  1727. #( 0.9187 0.2887 0.2694 ; P-O3*-275-tfo
  1728. 0.0302 -0.7316 0.6811
  1729. 0.3938 -0.6176 -0.6808
  1730. -48.4330 26.3254 13.6383)
  1731. #( -0.1504 0.7744 -0.6145 ; P-O3*-180-tfo
  1732. 0.7581 0.4893 0.4311
  1733. 0.6345 -0.4010 -0.6607
  1734. -31.9784 -13.4285 44.9650)
  1735. #( -0.6236 -0.7810 -0.0337 ; P-O3*-60-tfo
  1736. -0.6890 0.5694 -0.4484
  1737. 0.3694 -0.2564 -0.8932
  1738. 12.1105 30.8774 46.0946)
  1739. #( 33.3400 11.0980 46.1750) ; P
  1740. #( 34.5130 10.2320 46.4660) ; O1P
  1741. #( 33.4130 12.3960 46.9340) ; O2P
  1742. #( 31.9810 10.3390 46.4820) ; O5*
  1743. #( 30.8152 11.1619 46.2003) ; C5*
  1744. #( 30.4519 10.9454 45.1957) ; H5*
  1745. #( 31.0379 12.2016 46.4400) ; H5**
  1746. #( 29.7081 10.7448 47.1428) ; C4*
  1747. #( 29.4506 9.6945 47.0059) ; H4*
  1748. #( 30.1045 10.9634 48.4885) ; O4*
  1749. #( 29.1794 11.8418 49.1490) ; C1*
  1750. #( 28.4388 11.2210 49.6533) ; H1*
  1751. #( 28.5211 12.6008 48.0367) ; C2*
  1752. #( 29.1947 13.3949 47.7147) ; H2**
  1753. #( 27.2316 13.0683 48.3134) ; O2*
  1754. #( 27.0851 13.3391 49.2227) ; H2*
  1755. #( 28.4131 11.5507 46.9391) ; C3*
  1756. #( 28.4451 12.0512 45.9713) ; H3*
  1757. #( 27.2707 10.6955 47.1097) ; O3*
  1758. #( 29.8751 12.7405 50.0682) ; N1
  1759. #( 30.7172 13.1841 52.2328) ; N3
  1760. #( 30.0617 12.3404 51.3847) ; C2
  1761. #( 31.1834 14.3941 51.8297) ; C4
  1762. #( 30.9913 14.8074 50.4803) ; C5
  1763. #( 30.3434 13.9610 49.6548) ; C6
  1764. #( 31.8090 15.1847 52.6957) ; N4
  1765. #( 29.6470 11.2494 51.7616) ; O2
  1766. #( 32.1422 16.0774 52.3606) ; H41
  1767. #( 31.9392 14.8893 53.6527) ; H42
  1768. #( 31.3632 15.7771 50.1491) ; H5
  1769. #( 30.1742 14.2374 48.6141) ; H6
  1770. ))
  1771. (define rC10
  1772. (make-constant-rC
  1773. #( 0.1549 0.8710 -0.4663 ; dgf-base-tfo
  1774. 0.6768 -0.4374 -0.5921
  1775. -0.7197 -0.2239 -0.6572
  1776. 25.2447 -14.1920 50.3201)
  1777. #( 0.9187 0.2887 0.2694 ; P-O3*-275-tfo
  1778. 0.0302 -0.7316 0.6811
  1779. 0.3938 -0.6176 -0.6808
  1780. -48.4330 26.3254 13.6383)
  1781. #( -0.1504 0.7744 -0.6145 ; P-O3*-180-tfo
  1782. 0.7581 0.4893 0.4311
  1783. 0.6345 -0.4010 -0.6607
  1784. -31.9784 -13.4285 44.9650)
  1785. #( -0.6236 -0.7810 -0.0337 ; P-O3*-60-tfo
  1786. -0.6890 0.5694 -0.4484
  1787. 0.3694 -0.2564 -0.8932
  1788. 12.1105 30.8774 46.0946)
  1789. #( 33.3400 11.0980 46.1750) ; P
  1790. #( 34.5130 10.2320 46.4660) ; O1P
  1791. #( 33.4130 12.3960 46.9340) ; O2P
  1792. #( 31.9810 10.3390 46.4820) ; O5*
  1793. #( 31.8779 9.9369 47.8760) ; C5*
  1794. #( 31.3239 10.6931 48.4322) ; H5*
  1795. #( 32.8647 9.6624 48.2489) ; H5**
  1796. #( 31.0429 8.6773 47.9401) ; C4*
  1797. #( 30.0440 8.8473 47.5383) ; H4*
  1798. #( 31.6749 7.6351 47.2119) ; O4*
  1799. #( 31.9159 6.5022 48.0616) ; C1*
  1800. #( 31.0691 5.8243 47.9544) ; H1*
  1801. #( 31.9300 7.0685 49.4493) ; C2*
  1802. #( 32.9024 7.5288 49.6245) ; H2**
  1803. #( 31.5672 6.1750 50.4632) ; O2*
  1804. #( 31.8416 5.2663 50.3200) ; H2*
  1805. #( 30.8618 8.1514 49.3749) ; C3*
  1806. #( 31.1122 8.9396 50.0850) ; H3*
  1807. #( 29.5351 7.6245 49.5409) ; O3*
  1808. #( 33.1890 5.8629 47.7343) ; N1
  1809. #( 34.4004 4.2636 46.4828) ; N3
  1810. #( 33.2062 4.8497 46.7851) ; C2
  1811. #( 35.5600 4.6374 47.0822) ; C4
  1812. #( 35.5444 5.6751 48.0577) ; C5
  1813. #( 34.3565 6.2450 48.3432) ; C6
  1814. #( 36.6977 4.0305 46.7598) ; N4
  1815. #( 32.1661 4.5034 46.2348) ; O2
  1816. #( 37.5405 4.3347 47.2259) ; H41
  1817. #( 36.7033 3.2923 46.0706) ; H42
  1818. #( 36.4713 5.9811 48.5428) ; H5
  1819. #( 34.2986 7.0426 49.0839) ; H6
  1820. ))
  1821. (define rCs
  1822. (list rC01 rC02 rC03 rC04 rC05 rC06 rC07 rC08 rC09 rC10))
  1823. (define rG
  1824. (make-constant-rG
  1825. #( -0.0018 -0.8207 0.5714 ; dgf-base-tfo
  1826. 0.2679 -0.5509 -0.7904
  1827. 0.9634 0.1517 0.2209
  1828. 0.0073 8.4030 0.6232)
  1829. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  1830. -0.0433 -0.4257 0.9038
  1831. -0.5788 0.7480 0.3246
  1832. 1.5227 6.9114 -7.0765)
  1833. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  1834. 0.4552 0.6637 0.5935
  1835. -0.8042 0.0203 0.5941
  1836. -6.9472 -4.1186 -5.9108)
  1837. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  1838. -0.8247 0.5587 -0.0878
  1839. 0.0426 0.2162 0.9754
  1840. 6.2694 -7.0540 3.3316)
  1841. #( 2.8930 8.5380 -3.3280) ; P
  1842. #( 1.6980 7.6960 -3.5570) ; O1P
  1843. #( 3.2260 9.5010 -4.4020) ; O2P
  1844. #( 4.1590 7.6040 -3.0340) ; O5*
  1845. #( 5.4550 8.2120 -2.8810) ; C5*
  1846. #( 5.4546 8.8508 -1.9978) ; H5*
  1847. #( 5.7588 8.6625 -3.8259) ; H5**
  1848. #( 6.4970 7.1480 -2.5980) ; C4*
  1849. #( 7.4896 7.5919 -2.5214) ; H4*
  1850. #( 6.1630 6.4860 -1.3440) ; O4*
  1851. #( 6.5400 5.1200 -1.4190) ; C1*
  1852. #( 7.2763 4.9681 -0.6297) ; H1*
  1853. #( 7.1940 4.8830 -2.7770) ; C2*
  1854. #( 6.8667 3.9183 -3.1647) ; H2**
  1855. #( 8.5860 5.0910 -2.6140) ; O2*
  1856. #( 8.9510 4.7626 -1.7890) ; H2*
  1857. #( 6.5720 6.0040 -3.6090) ; C3*
  1858. #( 5.5636 5.7066 -3.8966) ; H3*
  1859. #( 7.3801 6.3562 -4.7350) ; O3*
  1860. #( 4.7150 0.4910 -0.1360) ; N1
  1861. #( 6.3490 2.1730 -0.6020) ; N3
  1862. #( 5.9530 0.9650 -0.2670) ; C2
  1863. #( 5.2900 2.9790 -0.8260) ; C4
  1864. #( 3.9720 2.6390 -0.7330) ; C5
  1865. #( 3.6770 1.3160 -0.3660) ; C6
  1866. #( 6.8426 0.0056 -0.0019) ; N2
  1867. #( 3.1660 3.7290 -1.0360) ; N7
  1868. #( 5.3170 4.2990 -1.1930) ; N9
  1869. #( 4.0100 4.6780 -1.2990) ; C8
  1870. #( 2.4280 0.8450 -0.2360) ; O6
  1871. #( 4.6151 -0.4677 0.1305) ; H1
  1872. #( 6.6463 -0.9463 0.2729) ; H21
  1873. #( 7.8170 0.2642 -0.0640) ; H22
  1874. #( 3.4421 5.5744 -1.5482) ; H8
  1875. ))
  1876. (define rG01
  1877. (make-constant-rG
  1878. #( -0.0043 -0.8175 0.5759 ; dgf-base-tfo
  1879. 0.2617 -0.5567 -0.7884
  1880. 0.9651 0.1473 0.2164
  1881. 0.0359 8.3929 0.5532)
  1882. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  1883. -0.0433 -0.4257 0.9038
  1884. -0.5788 0.7480 0.3246
  1885. 1.5227 6.9114 -7.0765)
  1886. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  1887. 0.4552 0.6637 0.5935
  1888. -0.8042 0.0203 0.5941
  1889. -6.9472 -4.1186 -5.9108)
  1890. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  1891. -0.8247 0.5587 -0.0878
  1892. 0.0426 0.2162 0.9754
  1893. 6.2694 -7.0540 3.3316)
  1894. #( 2.8930 8.5380 -3.3280) ; P
  1895. #( 1.6980 7.6960 -3.5570) ; O1P
  1896. #( 3.2260 9.5010 -4.4020) ; O2P
  1897. #( 4.1590 7.6040 -3.0340) ; O5*
  1898. #( 5.4352 8.2183 -2.7757) ; C5*
  1899. #( 5.3830 8.7883 -1.8481) ; H5*
  1900. #( 5.7729 8.7436 -3.6691) ; H5**
  1901. #( 6.4830 7.1518 -2.5252) ; C4*
  1902. #( 7.4749 7.5972 -2.4482) ; H4*
  1903. #( 6.1626 6.4620 -1.2827) ; O4*
  1904. #( 6.5431 5.0992 -1.3905) ; C1*
  1905. #( 7.2871 4.9328 -0.6114) ; H1*
  1906. #( 7.1852 4.8935 -2.7592) ; C2*
  1907. #( 6.8573 3.9363 -3.1645) ; H2**
  1908. #( 8.5780 5.1025 -2.6046) ; O2*
  1909. #( 8.9516 4.7577 -1.7902) ; H2*
  1910. #( 6.5522 6.0300 -3.5612) ; C3*
  1911. #( 5.5420 5.7356 -3.8459) ; H3*
  1912. #( 7.3487 6.4089 -4.6867) ; O3*
  1913. #( 4.7442 0.4514 -0.1390) ; N1
  1914. #( 6.3687 2.1459 -0.5926) ; N3
  1915. #( 5.9795 0.9335 -0.2657) ; C2
  1916. #( 5.3052 2.9471 -0.8125) ; C4
  1917. #( 3.9891 2.5987 -0.7230) ; C5
  1918. #( 3.7016 1.2717 -0.3647) ; C6
  1919. #( 6.8745 -0.0224 -0.0058) ; N2
  1920. #( 3.1770 3.6859 -1.0198) ; N7
  1921. #( 5.3247 4.2695 -1.1710) ; N9
  1922. #( 4.0156 4.6415 -1.2759) ; C8
  1923. #( 2.4553 0.7925 -0.2390) ; O6
  1924. #( 4.6497 -0.5095 0.1212) ; H1
  1925. #( 6.6836 -0.9771 0.2627) ; H21
  1926. #( 7.8474 0.2424 -0.0653) ; H22
  1927. #( 3.4426 5.5361 -1.5199) ; H8
  1928. ))
  1929. (define rG02
  1930. (make-constant-rG
  1931. #( 0.5566 0.0449 0.8296 ; dgf-base-tfo
  1932. 0.5125 0.7673 -0.3854
  1933. -0.6538 0.6397 0.4041
  1934. -9.1161 -3.7679 -2.9968)
  1935. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  1936. -0.0433 -0.4257 0.9038
  1937. -0.5788 0.7480 0.3246
  1938. 1.5227 6.9114 -7.0765)
  1939. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  1940. 0.4552 0.6637 0.5935
  1941. -0.8042 0.0203 0.5941
  1942. -6.9472 -4.1186 -5.9108)
  1943. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  1944. -0.8247 0.5587 -0.0878
  1945. 0.0426 0.2162 0.9754
  1946. 6.2694 -7.0540 3.3316)
  1947. #( 2.8930 8.5380 -3.3280) ; P
  1948. #( 1.6980 7.6960 -3.5570) ; O1P
  1949. #( 3.2260 9.5010 -4.4020) ; O2P
  1950. #( 4.1590 7.6040 -3.0340) ; O5*
  1951. #( 4.5778 6.6594 -4.0364) ; C5*
  1952. #( 4.9220 7.1963 -4.9204) ; H5*
  1953. #( 3.7996 5.9091 -4.1764) ; H5**
  1954. #( 5.7873 5.8869 -3.5482) ; C4*
  1955. #( 6.0405 5.0875 -4.2446) ; H4*
  1956. #( 6.9135 6.8036 -3.4310) ; O4*
  1957. #( 7.7293 6.4084 -2.3392) ; C1*
  1958. #( 8.7078 6.1815 -2.7624) ; H1*
  1959. #( 7.1305 5.1418 -1.7347) ; C2*
  1960. #( 7.2040 5.1982 -0.6486) ; H2**
  1961. #( 7.7417 4.0392 -2.3813) ; O2*
  1962. #( 8.6785 4.1443 -2.5630) ; H2*
  1963. #( 5.6666 5.2728 -2.1536) ; C3*
  1964. #( 5.1747 5.9805 -1.4863) ; H3*
  1965. #( 4.9997 4.0086 -2.1973) ; O3*
  1966. #( 10.3245 8.5459 1.5467) ; N1
  1967. #( 9.8051 6.9432 -0.1497) ; N3
  1968. #( 10.5175 7.4328 0.8408) ; C2
  1969. #( 8.7523 7.7422 -0.4228) ; C4
  1970. #( 8.4257 8.9060 0.2099) ; C5
  1971. #( 9.2665 9.3242 1.2540) ; C6
  1972. #( 11.6077 6.7966 1.2752) ; N2
  1973. #( 7.2750 9.4537 -0.3428) ; N7
  1974. #( 7.7962 7.5519 -1.3859) ; N9
  1975. #( 6.9479 8.6157 -1.2771) ; C8
  1976. #( 9.0664 10.4462 1.9610) ; O6
  1977. #( 10.9838 8.7524 2.2697) ; H1
  1978. #( 12.2274 7.0896 2.0170) ; H21
  1979. #( 11.8502 5.9398 0.7984) ; H22
  1980. #( 6.0430 8.9853 -1.7594) ; H8
  1981. ))
  1982. (define rG03
  1983. (make-constant-rG
  1984. #( -0.5021 0.0731 0.8617 ; dgf-base-tfo
  1985. -0.8112 0.3054 -0.4986
  1986. -0.2996 -0.9494 -0.0940
  1987. 6.4273 -5.1944 -3.7807)
  1988. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  1989. -0.0433 -0.4257 0.9038
  1990. -0.5788 0.7480 0.3246
  1991. 1.5227 6.9114 -7.0765)
  1992. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  1993. 0.4552 0.6637 0.5935
  1994. -0.8042 0.0203 0.5941
  1995. -6.9472 -4.1186 -5.9108)
  1996. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  1997. -0.8247 0.5587 -0.0878
  1998. 0.0426 0.2162 0.9754
  1999. 6.2694 -7.0540 3.3316)
  2000. #( 2.8930 8.5380 -3.3280) ; P
  2001. #( 1.6980 7.6960 -3.5570) ; O1P
  2002. #( 3.2260 9.5010 -4.4020) ; O2P
  2003. #( 4.1590 7.6040 -3.0340) ; O5*
  2004. #( 4.1214 6.7116 -1.9049) ; C5*
  2005. #( 3.3465 5.9610 -2.0607) ; H5*
  2006. #( 4.0789 7.2928 -0.9837) ; H5**
  2007. #( 5.4170 5.9293 -1.8186) ; C4*
  2008. #( 5.4506 5.3400 -0.9023) ; H4*
  2009. #( 5.5067 5.0417 -2.9703) ; O4*
  2010. #( 6.8650 4.9152 -3.3612) ; C1*
  2011. #( 7.1090 3.8577 -3.2603) ; H1*
  2012. #( 7.7152 5.7282 -2.3894) ; C2*
  2013. #( 8.5029 6.2356 -2.9463) ; H2**
  2014. #( 8.1036 4.8568 -1.3419) ; O2*
  2015. #( 8.3270 3.9651 -1.6184) ; H2*
  2016. #( 6.7003 6.7565 -1.8911) ; C3*
  2017. #( 6.5898 7.5329 -2.6482) ; H3*
  2018. #( 7.0505 7.2878 -0.6105) ; O3*
  2019. #( 9.6740 4.7656 -7.6614) ; N1
  2020. #( 9.0739 4.3013 -5.3941) ; N3
  2021. #( 9.8416 4.2192 -6.4581) ; C2
  2022. #( 7.9885 5.0632 -5.6446) ; C4
  2023. #( 7.6822 5.6856 -6.8194) ; C5
  2024. #( 8.5831 5.5215 -7.8840) ; C6
  2025. #( 10.9733 3.5117 -6.4286) ; N2
  2026. #( 6.4857 6.3816 -6.7035) ; N7
  2027. #( 6.9740 5.3703 -4.7760) ; N9
  2028. #( 6.1133 6.1613 -5.4808) ; C8
  2029. #( 8.4084 6.0747 -9.0933) ; O6
  2030. #( 10.3759 4.5855 -8.3504) ; H1
  2031. #( 11.6254 3.3761 -7.1879) ; H21
  2032. #( 11.1917 3.0460 -5.5593) ; H22
  2033. #( 5.1705 6.6830 -5.3167) ; H8
  2034. ))
  2035. (define rG04
  2036. (make-constant-rG
  2037. #( -0.5426 -0.8175 0.1929 ; dgf-base-tfo
  2038. 0.8304 -0.5567 -0.0237
  2039. 0.1267 0.1473 0.9809
  2040. -0.5075 8.3929 0.2229)
  2041. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  2042. -0.0433 -0.4257 0.9038
  2043. -0.5788 0.7480 0.3246
  2044. 1.5227 6.9114 -7.0765)
  2045. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  2046. 0.4552 0.6637 0.5935
  2047. -0.8042 0.0203 0.5941
  2048. -6.9472 -4.1186 -5.9108)
  2049. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  2050. -0.8247 0.5587 -0.0878
  2051. 0.0426 0.2162 0.9754
  2052. 6.2694 -7.0540 3.3316)
  2053. #( 2.8930 8.5380 -3.3280) ; P
  2054. #( 1.6980 7.6960 -3.5570) ; O1P
  2055. #( 3.2260 9.5010 -4.4020) ; O2P
  2056. #( 4.1590 7.6040 -3.0340) ; O5*
  2057. #( 5.4352 8.2183 -2.7757) ; C5*
  2058. #( 5.3830 8.7883 -1.8481) ; H5*
  2059. #( 5.7729 8.7436 -3.6691) ; H5**
  2060. #( 6.4830 7.1518 -2.5252) ; C4*
  2061. #( 7.4749 7.5972 -2.4482) ; H4*
  2062. #( 6.1626 6.4620 -1.2827) ; O4*
  2063. #( 6.5431 5.0992 -1.3905) ; C1*
  2064. #( 7.2871 4.9328 -0.6114) ; H1*
  2065. #( 7.1852 4.8935 -2.7592) ; C2*
  2066. #( 6.8573 3.9363 -3.1645) ; H2**
  2067. #( 8.5780 5.1025 -2.6046) ; O2*
  2068. #( 8.9516 4.7577 -1.7902) ; H2*
  2069. #( 6.5522 6.0300 -3.5612) ; C3*
  2070. #( 5.5420 5.7356 -3.8459) ; H3*
  2071. #( 7.3487 6.4089 -4.6867) ; O3*
  2072. #( 3.6343 2.6680 2.0783) ; N1
  2073. #( 5.4505 3.9805 1.2446) ; N3
  2074. #( 4.7540 3.3816 2.1851) ; C2
  2075. #( 4.8805 3.7951 0.0354) ; C4
  2076. #( 3.7416 3.0925 -0.2305) ; C5
  2077. #( 3.0873 2.4980 0.8606) ; C6
  2078. #( 5.1433 3.4373 3.4609) ; N2
  2079. #( 3.4605 3.1184 -1.5906) ; N7
  2080. #( 5.3247 4.2695 -1.1710) ; N9
  2081. #( 4.4244 3.8244 -2.0953) ; C8
  2082. #( 1.9600 1.7805 0.7462) ; O6
  2083. #( 3.2489 2.2879 2.9191) ; H1
  2084. #( 4.6785 3.0243 4.2568) ; H21
  2085. #( 5.9823 3.9654 3.6539) ; H22
  2086. #( 4.2675 3.8876 -3.1721) ; H8
  2087. ))
  2088. (define rG05
  2089. (make-constant-rG
  2090. #( -0.5891 0.0449 0.8068 ; dgf-base-tfo
  2091. 0.5375 0.7673 0.3498
  2092. -0.6034 0.6397 -0.4762
  2093. -0.3019 -3.7679 -9.5913)
  2094. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  2095. -0.0433 -0.4257 0.9038
  2096. -0.5788 0.7480 0.3246
  2097. 1.5227 6.9114 -7.0765)
  2098. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  2099. 0.4552 0.6637 0.5935
  2100. -0.8042 0.0203 0.5941
  2101. -6.9472 -4.1186 -5.9108)
  2102. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  2103. -0.8247 0.5587 -0.0878
  2104. 0.0426 0.2162 0.9754
  2105. 6.2694 -7.0540 3.3316)
  2106. #( 2.8930 8.5380 -3.3280) ; P
  2107. #( 1.6980 7.6960 -3.5570) ; O1P
  2108. #( 3.2260 9.5010 -4.4020) ; O2P
  2109. #( 4.1590 7.6040 -3.0340) ; O5*
  2110. #( 4.5778 6.6594 -4.0364) ; C5*
  2111. #( 4.9220 7.1963 -4.9204) ; H5*
  2112. #( 3.7996 5.9091 -4.1764) ; H5**
  2113. #( 5.7873 5.8869 -3.5482) ; C4*
  2114. #( 6.0405 5.0875 -4.2446) ; H4*
  2115. #( 6.9135 6.8036 -3.4310) ; O4*
  2116. #( 7.7293 6.4084 -2.3392) ; C1*
  2117. #( 8.7078 6.1815 -2.7624) ; H1*
  2118. #( 7.1305 5.1418 -1.7347) ; C2*
  2119. #( 7.2040 5.1982 -0.6486) ; H2**
  2120. #( 7.7417 4.0392 -2.3813) ; O2*
  2121. #( 8.6785 4.1443 -2.5630) ; H2*
  2122. #( 5.6666 5.2728 -2.1536) ; C3*
  2123. #( 5.1747 5.9805 -1.4863) ; H3*
  2124. #( 4.9997 4.0086 -2.1973) ; O3*
  2125. #( 10.2594 10.6774 -1.0056) ; N1
  2126. #( 9.7528 8.7080 -2.2631) ; N3
  2127. #( 10.4471 9.7876 -1.9791) ; C2
  2128. #( 8.7271 8.5575 -1.3991) ; C4
  2129. #( 8.4100 9.3803 -0.3580) ; C5
  2130. #( 9.2294 10.5030 -0.1574) ; C6
  2131. #( 11.5110 10.1256 -2.7114) ; N2
  2132. #( 7.2891 8.9068 0.3121) ; N7
  2133. #( 7.7962 7.5519 -1.3859) ; N9
  2134. #( 6.9702 7.8292 -0.3353) ; C8
  2135. #( 9.0349 11.3951 0.8250) ; O6
  2136. #( 10.9013 11.4422 -0.9512) ; H1
  2137. #( 12.1031 10.9341 -2.5861) ; H21
  2138. #( 11.7369 9.5180 -3.4859) ; H22
  2139. #( 6.0888 7.3990 0.1403) ; H8
  2140. ))
  2141. (define rG06
  2142. (make-constant-rG
  2143. #( -0.9815 0.0731 -0.1772 ; dgf-base-tfo
  2144. 0.1912 0.3054 -0.9328
  2145. -0.0141 -0.9494 -0.3137
  2146. 5.7506 -5.1944 4.7470)
  2147. #( -0.8143 -0.5091 -0.2788 ; P-O3*-275-tfo
  2148. -0.0433 -0.4257 0.9038
  2149. -0.5788 0.7480 0.3246
  2150. 1.5227 6.9114 -7.0765)
  2151. #( 0.3822 -0.7477 0.5430 ; P-O3*-180-tfo
  2152. 0.4552 0.6637 0.5935
  2153. -0.8042 0.0203 0.5941
  2154. -6.9472 -4.1186 -5.9108)
  2155. #( 0.5640 0.8007 -0.2022 ; P-O3*-60-tfo
  2156. -0.8247 0.5587 -0.0878
  2157. 0.0426 0.2162 0.9754
  2158. 6.2694 -7.0540 3.3316)
  2159. #( 2.8930 8.5380 -3.3280) ; P
  2160. #( 1.6980 7.6960 -3.5570) ; O1P
  2161. #( 3.2260 9.5010 -4.4020) ; O2P
  2162. #( 4.1590 7.6040 -3.0340) ; O5*
  2163. #( 4.1214 6.7116 -1.9049) ; C5*
  2164. #( 3.3465 5.9610 -2.0607) ; H5*
  2165. #( 4.0789 7.2928 -0.9837) ; H5**
  2166. #( 5.4170 5.9293 -1.8186) ; C4*
  2167. #( 5.4506 5.3400 -0.9023) ; H4*
  2168. #( 5.5067 5.0417 -2.9703) ; O4*
  2169. #( 6.8650 4.9152 -3.3612) ; C1*
  2170. #( 7.1090 3.8577 -3.2603) ; H1*
  2171. #( 7.7152 5.7282 -2.3894) ; C2*
  2172. #( 8.5029 6.2356 -2.9463) ; H2**
  2173. #( 8.1036 4.8568 -1.3419) ; O2*
  2174. #( 8.3270 3.9651 -1.6184) ; H2*
  2175. #( 6.7003 6.7565 -1.8911) ; C3*
  2176. #( 6.5898 7.5329 -2.6482) ; H3*
  2177. #( 7.0505 7.2878 -0.6105) ; O3*
  2178. #( 6.6624 3.5061 -8.2986) ; N1
  2179. #( 6.5810 3.2570 -5.9221) ; N3
  2180. #( 6.5151 2.8263 -7.1625) ; C2
  2181. #( 6.8364 4.5817 -5.8882) ; C4
  2182. #( 7.0116 5.4064 -6.9609) ; C5
  2183. #( 6.9173 4.8260 -8.2361) ; C6
  2184. #( 6.2717 1.5402 -7.4250) ; N2
  2185. #( 7.2573 6.7070 -6.5394) ; N7
  2186. #( 6.9740 5.3703 -4.7760) ; N9
  2187. #( 7.2238 6.6275 -5.2453) ; C8
  2188. #( 7.0668 5.5163 -9.3763) ; O6
  2189. #( 6.5754 2.9964 -9.1545) ; H1
  2190. #( 6.1908 1.1105 -8.3354) ; H21
  2191. #( 6.1346 0.9352 -6.6280) ; H22
  2192. #( 7.4108 7.6227 -4.8418) ; H8
  2193. ))
  2194. (define rG07
  2195. (make-constant-rG
  2196. #( 0.0894 -0.6059 0.7905 ; dgf-base-tfo
  2197. -0.6810 0.5420 0.4924
  2198. -0.7268 -0.5824 -0.3642
  2199. 34.1424 45.9610 -11.8600)
  2200. #( -0.8644 -0.4956 -0.0851 ; P-O3*-275-tfo
  2201. -0.0427 0.2409 -0.9696
  2202. 0.5010 -0.8345 -0.2294
  2203. 4.0167 54.5377 12.4779)
  2204. #( 0.3706 -0.6167 0.6945 ; P-O3*-180-tfo
  2205. -0.2867 -0.7872 -0.5460
  2206. 0.8834 0.0032 -0.4686
  2207. -52.9020 18.6313 -0.6709)
  2208. #( 0.4155 0.9025 -0.1137 ; P-O3*-60-tfo
  2209. 0.9040 -0.4236 -0.0582
  2210. -0.1007 -0.0786 -0.9918
  2211. -7.6624 -25.2080 49.5181)
  2212. #( 31.3810 0.1400 47.5810) ; P
  2213. #( 29.9860 0.6630 47.6290) ; O1P
  2214. #( 31.7210 -0.6460 48.8090) ; O2P
  2215. #( 32.4940 1.2540 47.2740) ; O5*
  2216. #( 33.8709 0.7918 47.2113) ; C5*
  2217. #( 34.1386 0.5870 46.1747) ; H5*
  2218. #( 34.0186 -0.0095 47.9353) ; H5**
  2219. #( 34.7297 1.9687 47.6685) ; C4*
  2220. #( 35.7723 1.6845 47.8113) ; H4*
  2221. #( 34.6455 2.9768 46.6660) ; O4*
  2222. #( 34.1690 4.1829 47.2627) ; C1*
  2223. #( 35.0437 4.7633 47.5560) ; H1*
  2224. #( 33.4145 3.7532 48.4954) ; C2*
  2225. #( 32.4340 3.3797 48.2001) ; H2**
  2226. #( 33.3209 4.6953 49.5217) ; O2*
  2227. #( 33.2374 5.6059 49.2295) ; H2*
  2228. #( 34.2724 2.5970 48.9773) ; C3*
  2229. #( 33.6373 1.8935 49.5157) ; H3*
  2230. #( 35.3453 3.1884 49.7285) ; O3*
  2231. #( 34.0511 7.8930 43.7791) ; N1
  2232. #( 34.9937 6.3369 45.3199) ; N3
  2233. #( 35.0882 7.3126 44.4200) ; C2
  2234. #( 33.7190 5.9650 45.5374) ; C4
  2235. #( 32.5845 6.4770 44.9458) ; C5
  2236. #( 32.7430 7.5179 43.9914) ; C6
  2237. #( 36.3030 7.7827 44.1036) ; N2
  2238. #( 31.4499 5.8335 45.4368) ; N7
  2239. #( 33.2760 4.9817 46.4043) ; N9
  2240. #( 31.9235 4.9639 46.2934) ; C8
  2241. #( 31.8602 8.1000 43.3695) ; O6
  2242. #( 34.2623 8.6223 43.1283) ; H1
  2243. #( 36.5188 8.5081 43.4347) ; H21
  2244. #( 37.0888 7.3524 44.5699) ; H22
  2245. #( 31.0815 4.4201 46.7218) ; H8
  2246. ))
  2247. (define rG08
  2248. (make-constant-rG
  2249. #( 0.2224 0.6335 0.7411 ; dgf-base-tfo
  2250. -0.3644 -0.6510 0.6659
  2251. 0.9043 -0.4181 0.0861
  2252. -47.6824 -0.5823 -31.7554)
  2253. #( -0.8644 -0.4956 -0.0851 ; P-O3*-275-tfo
  2254. -0.0427 0.2409 -0.9696
  2255. 0.5010 -0.8345 -0.2294
  2256. 4.0167 54.5377 12.4779)
  2257. #( 0.3706 -0.6167 0.6945 ; P-O3*-180-tfo
  2258. -0.2867 -0.7872 -0.5460
  2259. 0.8834 0.0032 -0.4686
  2260. -52.9020 18.6313 -0.6709)
  2261. #( 0.4155 0.9025 -0.1137 ; P-O3*-60-tfo
  2262. 0.9040 -0.4236 -0.0582
  2263. -0.1007 -0.0786 -0.9918
  2264. -7.6624 -25.2080 49.5181)
  2265. #( 31.3810 0.1400 47.5810) ; P
  2266. #( 29.9860 0.6630 47.6290) ; O1P
  2267. #( 31.7210 -0.6460 48.8090) ; O2P
  2268. #( 32.4940 1.2540 47.2740) ; O5*
  2269. #( 32.5924 2.3488 48.2255) ; C5*
  2270. #( 33.3674 2.1246 48.9584) ; H5*
  2271. #( 31.5994 2.5917 48.6037) ; H5**
  2272. #( 33.0722 3.5577 47.4258) ; C4*
  2273. #( 33.0310 4.4778 48.0089) ; H4*
  2274. #( 34.4173 3.3055 47.0316) ; O4*
  2275. #( 34.5056 3.3910 45.6094) ; C1*
  2276. #( 34.7881 4.4152 45.3663) ; H1*
  2277. #( 33.1122 3.1198 45.1010) ; C2*
  2278. #( 32.9230 2.0469 45.1369) ; H2**
  2279. #( 32.7946 3.6590 43.8529) ; O2*
  2280. #( 33.5170 3.6707 43.2207) ; H2*
  2281. #( 32.2730 3.8173 46.1566) ; C3*
  2282. #( 31.3094 3.3123 46.2244) ; H3*
  2283. #( 32.2391 5.2039 45.7807) ; O3*
  2284. #( 39.3337 2.7157 44.1441) ; N1
  2285. #( 37.4430 3.8242 45.0824) ; N3
  2286. #( 38.7276 3.7646 44.7403) ; C2
  2287. #( 36.7791 2.6963 44.7704) ; C4
  2288. #( 37.2860 1.5653 44.1678) ; C5
  2289. #( 38.6647 1.5552 43.8235) ; C6
  2290. #( 39.5123 4.8216 44.9936) ; N2
  2291. #( 36.2829 0.6110 44.0078) ; N7
  2292. #( 35.4394 2.4314 44.9931) ; N9
  2293. #( 35.2180 1.1815 44.5128) ; C8
  2294. #( 39.2907 0.6514 43.2796) ; O6
  2295. #( 40.3076 2.8048 43.9352) ; H1
  2296. #( 40.4994 4.9066 44.7977) ; H21
  2297. #( 39.0738 5.6108 45.4464) ; H22
  2298. #( 34.3856 0.4842 44.4185) ; H8
  2299. ))
  2300. (define rG09
  2301. (make-constant-rG
  2302. #( -0.9699 -0.1688 -0.1753 ; dgf-base-tfo
  2303. -0.1050 -0.3598 0.9271
  2304. -0.2196 0.9176 0.3312
  2305. 45.6217 -38.9484 -12.3208)
  2306. #( -0.8644 -0.4956 -0.0851 ; P-O3*-275-tfo
  2307. -0.0427 0.2409 -0.9696
  2308. 0.5010 -0.8345 -0.2294
  2309. 4.0167 54.5377 12.4779)
  2310. #( 0.3706 -0.6167 0.6945 ; P-O3*-180-tfo
  2311. -0.2867 -0.7872 -0.5460
  2312. 0.8834 0.0032 -0.4686
  2313. -52.9020 18.6313 -0.6709)
  2314. #( 0.4155 0.9025 -0.1137 ; P-O3*-60-tfo
  2315. 0.9040 -0.4236 -0.0582
  2316. -0.1007 -0.0786 -0.9918
  2317. -7.6624 -25.2080 49.5181)
  2318. #( 31.3810 0.1400 47.5810) ; P
  2319. #( 29.9860 0.6630 47.6290) ; O1P
  2320. #( 31.7210 -0.6460 48.8090) ; O2P
  2321. #( 32.4940 1.2540 47.2740) ; O5*
  2322. #( 33.8709 0.7918 47.2113) ; C5*
  2323. #( 34.1386 0.5870 46.1747) ; H5*
  2324. #( 34.0186 -0.0095 47.9353) ; H5**
  2325. #( 34.7297 1.9687 47.6685) ; C4*
  2326. #( 34.5880 2.8482 47.0404) ; H4*
  2327. #( 34.3575 2.2770 49.0081) ; O4*
  2328. #( 35.5157 2.1993 49.8389) ; C1*
  2329. #( 35.9424 3.2010 49.8893) ; H1*
  2330. #( 36.4701 1.2820 49.1169) ; C2*
  2331. #( 36.1545 0.2498 49.2683) ; H2**
  2332. #( 37.8262 1.4547 49.4008) ; O2*
  2333. #( 38.0227 1.6945 50.3094) ; H2*
  2334. #( 36.2242 1.6797 47.6725) ; C3*
  2335. #( 36.4297 0.8197 47.0351) ; H3*
  2336. #( 37.0289 2.8480 47.4426) ; O3*
  2337. #( 34.3005 3.5042 54.6070) ; N1
  2338. #( 34.7693 3.7936 52.2874) ; N3
  2339. #( 34.4484 4.2541 53.4939) ; C2
  2340. #( 34.9354 2.4584 52.2785) ; C4
  2341. #( 34.8092 1.5915 53.3422) ; C5
  2342. #( 34.4646 2.1367 54.6085) ; C6
  2343. #( 34.2514 5.5708 53.6503) ; N2
  2344. #( 35.0641 0.2835 52.9337) ; N7
  2345. #( 35.2669 1.6690 51.1915) ; N9
  2346. #( 35.3288 0.3954 51.6563) ; C8
  2347. #( 34.3151 1.5317 55.6650) ; O6
  2348. #( 34.0623 3.9797 55.4539) ; H1
  2349. #( 33.9950 6.0502 54.5016) ; H21
  2350. #( 34.3512 6.1432 52.8242) ; H22
  2351. #( 35.5414 -0.6006 51.2679) ; H8
  2352. ))
  2353. (define rG10
  2354. (make-constant-rG
  2355. #( -0.0980 -0.9723 0.2122 ; dgf-base-tfo
  2356. -0.9731 0.1383 0.1841
  2357. -0.2083 -0.1885 -0.9597
  2358. 17.8469 38.8265 37.0475)
  2359. #( -0.8644 -0.4956 -0.0851 ; P-O3*-275-tfo
  2360. -0.0427 0.2409 -0.9696
  2361. 0.5010 -0.8345 -0.2294
  2362. 4.0167 54.5377 12.4779)
  2363. #( 0.3706 -0.6167 0.6945 ; P-O3*-180-tfo
  2364. -0.2867 -0.7872 -0.5460
  2365. 0.8834 0.0032 -0.4686
  2366. -52.9020 18.6313 -0.6709)
  2367. #( 0.4155 0.9025 -0.1137 ; P-O3*-60-tfo
  2368. 0.9040 -0.4236 -0.0582
  2369. -0.1007 -0.0786 -0.9918
  2370. -7.6624 -25.2080 49.5181)
  2371. #( 31.3810 0.1400 47.5810) ; P
  2372. #( 29.9860 0.6630 47.6290) ; O1P
  2373. #( 31.7210 -0.6460 48.8090) ; O2P
  2374. #( 32.4940 1.2540 47.2740) ; O5*
  2375. #( 32.5924 2.3488 48.2255) ; C5*
  2376. #( 33.3674 2.1246 48.9584) ; H5*
  2377. #( 31.5994 2.5917 48.6037) ; H5**
  2378. #( 33.0722 3.5577 47.4258) ; C4*
  2379. #( 34.0333 3.3761 46.9447) ; H4*
  2380. #( 32.0890 3.8338 46.4332) ; O4*
  2381. #( 31.6377 5.1787 46.5914) ; C1*
  2382. #( 32.2499 5.8016 45.9392) ; H1*
  2383. #( 31.9167 5.5319 48.0305) ; C2*
  2384. #( 31.1507 5.0820 48.6621) ; H2**
  2385. #( 32.0865 6.8890 48.3114) ; O2*
  2386. #( 31.5363 7.4819 47.7942) ; H2*
  2387. #( 33.2398 4.8224 48.2563) ; C3*
  2388. #( 33.3166 4.5570 49.3108) ; H3*
  2389. #( 34.2528 5.7056 47.7476) ; O3*
  2390. #( 28.2782 6.3049 42.9364) ; N1
  2391. #( 30.4001 5.8547 43.9258) ; N3
  2392. #( 29.6195 6.1568 42.8913) ; C2
  2393. #( 29.7005 5.7006 45.0649) ; C4
  2394. #( 28.3383 5.8221 45.2343) ; C5
  2395. #( 27.5519 6.1461 44.0958) ; C6
  2396. #( 30.1838 6.3385 41.6890) ; N2
  2397. #( 27.9936 5.5926 46.5651) ; N7
  2398. #( 30.2046 5.3825 46.3136) ; N9
  2399. #( 29.1371 5.3398 47.1506) ; C8
  2400. #( 26.3361 6.3024 44.0495) ; O6
  2401. #( 27.8122 6.5394 42.0833) ; H1
  2402. #( 29.7125 6.5595 40.8235) ; H21
  2403. #( 31.1859 6.2231 41.6389) ; H22
  2404. #( 28.9406 5.1504 48.2059) ; H8
  2405. ))
  2406. (define rGs
  2407. (list rG01 rG02 rG03 rG04 rG05 rG06 rG07 rG08 rG09 rG10))
  2408. (define rU
  2409. (make-constant-rU
  2410. #( -0.0359 -0.8071 0.5894 ; dgf-base-tfo
  2411. -0.2669 0.5761 0.7726
  2412. -0.9631 -0.1296 -0.2361
  2413. 0.1584 8.3434 0.5434)
  2414. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2415. 0.0649 0.4366 -0.8973
  2416. 0.5521 -0.7648 -0.3322
  2417. 1.6833 6.8060 -7.0011)
  2418. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2419. -0.4628 -0.6450 -0.6082
  2420. 0.8168 -0.0436 -0.5753
  2421. -6.8179 -3.9778 -5.9887)
  2422. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2423. 0.8103 -0.5790 0.0906
  2424. -0.0255 -0.1894 -0.9816
  2425. 6.1203 -7.1051 3.1984)
  2426. #( 2.6760 -8.4960 3.2880) ; P
  2427. #( 1.4950 -7.6230 3.4770) ; O1P
  2428. #( 2.9490 -9.4640 4.3740) ; O2P
  2429. #( 3.9730 -7.5950 3.0340) ; O5*
  2430. #( 5.2430 -8.2420 2.8260) ; C5*
  2431. #( 5.1974 -8.8497 1.9223) ; H5*
  2432. #( 5.5548 -8.7348 3.7469) ; H5**
  2433. #( 6.3140 -7.2060 2.5510) ; C4*
  2434. #( 7.2954 -7.6762 2.4898) ; H4*
  2435. #( 6.0140 -6.5420 1.2890) ; O4*
  2436. #( 6.4190 -5.1840 1.3620) ; C1*
  2437. #( 7.1608 -5.0495 0.5747) ; H1*
  2438. #( 7.0760 -4.9560 2.7270) ; C2*
  2439. #( 6.7770 -3.9803 3.1099) ; H2**
  2440. #( 8.4500 -5.1930 2.5810) ; O2*
  2441. #( 8.8309 -4.8755 1.7590) ; H2*
  2442. #( 6.4060 -6.0590 3.5580) ; C3*
  2443. #( 5.4021 -5.7313 3.8281) ; H3*
  2444. #( 7.1570 -6.4240 4.7070) ; O3*
  2445. #( 5.2170 -4.3260 1.1690) ; N1
  2446. #( 4.2960 -2.2560 0.6290) ; N3
  2447. #( 5.4330 -3.0200 0.7990) ; C2
  2448. #( 2.9930 -2.6780 0.7940) ; C4
  2449. #( 2.8670 -4.0630 1.1830) ; C5
  2450. #( 3.9570 -4.8300 1.3550) ; C6
  2451. #( 6.5470 -2.5560 0.6290) ; O2
  2452. #( 2.0540 -1.9000 0.6130) ; O4
  2453. #( 4.4300 -1.3020 0.3600) ; H3
  2454. #( 1.9590 -4.4570 1.3250) ; H5
  2455. #( 3.8460 -5.7860 1.6240) ; H6
  2456. ))
  2457. (define rU01
  2458. (make-constant-rU
  2459. #( -0.0137 -0.8012 0.5983 ; dgf-base-tfo
  2460. -0.2523 0.5817 0.7733
  2461. -0.9675 -0.1404 -0.2101
  2462. 0.2031 8.3874 0.4228)
  2463. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2464. 0.0649 0.4366 -0.8973
  2465. 0.5521 -0.7648 -0.3322
  2466. 1.6833 6.8060 -7.0011)
  2467. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2468. -0.4628 -0.6450 -0.6082
  2469. 0.8168 -0.0436 -0.5753
  2470. -6.8179 -3.9778 -5.9887)
  2471. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2472. 0.8103 -0.5790 0.0906
  2473. -0.0255 -0.1894 -0.9816
  2474. 6.1203 -7.1051 3.1984)
  2475. #( 2.6760 -8.4960 3.2880) ; P
  2476. #( 1.4950 -7.6230 3.4770) ; O1P
  2477. #( 2.9490 -9.4640 4.3740) ; O2P
  2478. #( 3.9730 -7.5950 3.0340) ; O5*
  2479. #( 5.2416 -8.2422 2.8181) ; C5*
  2480. #( 5.2050 -8.8128 1.8901) ; H5*
  2481. #( 5.5368 -8.7738 3.7227) ; H5**
  2482. #( 6.3232 -7.2037 2.6002) ; C4*
  2483. #( 7.3048 -7.6757 2.5577) ; H4*
  2484. #( 6.0635 -6.5092 1.3456) ; O4*
  2485. #( 6.4697 -5.1547 1.4629) ; C1*
  2486. #( 7.2354 -5.0043 0.7018) ; H1*
  2487. #( 7.0856 -4.9610 2.8521) ; C2*
  2488. #( 6.7777 -3.9935 3.2487) ; H2**
  2489. #( 8.4627 -5.1992 2.7423) ; O2*
  2490. #( 8.8693 -4.8638 1.9399) ; H2*
  2491. #( 6.3877 -6.0809 3.6362) ; C3*
  2492. #( 5.3770 -5.7562 3.8834) ; H3*
  2493. #( 7.1024 -6.4754 4.7985) ; O3*
  2494. #( 5.2764 -4.2883 1.2538) ; N1
  2495. #( 4.3777 -2.2062 0.7229) ; N3
  2496. #( 5.5069 -2.9779 0.9088) ; C2
  2497. #( 3.0693 -2.6246 0.8500) ; C4
  2498. #( 2.9279 -4.0146 1.2149) ; C5
  2499. #( 4.0101 -4.7892 1.4017) ; C6
  2500. #( 6.6267 -2.5166 0.7728) ; O2
  2501. #( 2.1383 -1.8396 0.6581) ; O4
  2502. #( 4.5223 -1.2489 0.4716) ; H3
  2503. #( 2.0151 -4.4065 1.3290) ; H5
  2504. #( 3.8886 -5.7486 1.6535) ; H6
  2505. ))
  2506. (define rU02
  2507. (make-constant-rU
  2508. #( 0.5141 0.0246 0.8574 ; dgf-base-tfo
  2509. -0.5547 -0.7529 0.3542
  2510. 0.6542 -0.6577 -0.3734
  2511. -9.1111 -3.4598 -3.2939)
  2512. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2513. 0.0649 0.4366 -0.8973
  2514. 0.5521 -0.7648 -0.3322
  2515. 1.6833 6.8060 -7.0011)
  2516. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2517. -0.4628 -0.6450 -0.6082
  2518. 0.8168 -0.0436 -0.5753
  2519. -6.8179 -3.9778 -5.9887)
  2520. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2521. 0.8103 -0.5790 0.0906
  2522. -0.0255 -0.1894 -0.9816
  2523. 6.1203 -7.1051 3.1984)
  2524. #( 2.6760 -8.4960 3.2880) ; P
  2525. #( 1.4950 -7.6230 3.4770) ; O1P
  2526. #( 2.9490 -9.4640 4.3740) ; O2P
  2527. #( 3.9730 -7.5950 3.0340) ; O5*
  2528. #( 4.3825 -6.6585 4.0489) ; C5*
  2529. #( 4.6841 -7.2019 4.9443) ; H5*
  2530. #( 3.6189 -5.8889 4.1625) ; H5**
  2531. #( 5.6255 -5.9175 3.5998) ; C4*
  2532. #( 5.8732 -5.1228 4.3034) ; H4*
  2533. #( 6.7337 -6.8605 3.5222) ; O4*
  2534. #( 7.5932 -6.4923 2.4548) ; C1*
  2535. #( 8.5661 -6.2983 2.9064) ; H1*
  2536. #( 7.0527 -5.2012 1.8322) ; C2*
  2537. #( 7.1627 -5.2525 0.7490) ; H2**
  2538. #( 7.6666 -4.1249 2.4880) ; O2*
  2539. #( 8.5944 -4.2543 2.6981) ; H2*
  2540. #( 5.5661 -5.3029 2.2009) ; C3*
  2541. #( 5.0841 -6.0018 1.5172) ; H3*
  2542. #( 4.9062 -4.0452 2.2042) ; O3*
  2543. #( 7.6298 -7.6136 1.4752) ; N1
  2544. #( 8.6945 -8.7046 -0.2857) ; N3
  2545. #( 8.6943 -7.6514 0.6066) ; C2
  2546. #( 7.7426 -9.6987 -0.3801) ; C4
  2547. #( 6.6642 -9.5742 0.5722) ; C5
  2548. #( 6.6391 -8.5592 1.4526) ; C6
  2549. #( 9.5840 -6.8186 0.6136) ; O2
  2550. #( 7.8505 -10.5925 -1.2223) ; O4
  2551. #( 9.4601 -8.7514 -0.9277) ; H3
  2552. #( 5.9281 -10.2509 0.5782) ; H5
  2553. #( 5.8831 -8.4931 2.1028) ; H6
  2554. ))
  2555. (define rU03
  2556. (make-constant-rU
  2557. #( -0.4993 0.0476 0.8651 ; dgf-base-tfo
  2558. 0.8078 -0.3353 0.4847
  2559. 0.3132 0.9409 0.1290
  2560. 6.2989 -5.2303 -3.8577)
  2561. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2562. 0.0649 0.4366 -0.8973
  2563. 0.5521 -0.7648 -0.3322
  2564. 1.6833 6.8060 -7.0011)
  2565. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2566. -0.4628 -0.6450 -0.6082
  2567. 0.8168 -0.0436 -0.5753
  2568. -6.8179 -3.9778 -5.9887)
  2569. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2570. 0.8103 -0.5790 0.0906
  2571. -0.0255 -0.1894 -0.9816
  2572. 6.1203 -7.1051 3.1984)
  2573. #( 2.6760 -8.4960 3.2880) ; P
  2574. #( 1.4950 -7.6230 3.4770) ; O1P
  2575. #( 2.9490 -9.4640 4.3740) ; O2P
  2576. #( 3.9730 -7.5950 3.0340) ; O5*
  2577. #( 3.9938 -6.7042 1.9023) ; C5*
  2578. #( 3.2332 -5.9343 2.0319) ; H5*
  2579. #( 3.9666 -7.2863 0.9812) ; H5**
  2580. #( 5.3098 -5.9546 1.8564) ; C4*
  2581. #( 5.3863 -5.3702 0.9395) ; H4*
  2582. #( 5.3851 -5.0642 3.0076) ; O4*
  2583. #( 6.7315 -4.9724 3.4462) ; C1*
  2584. #( 7.0033 -3.9202 3.3619) ; H1*
  2585. #( 7.5997 -5.8018 2.4948) ; C2*
  2586. #( 8.3627 -6.3254 3.0707) ; H2**
  2587. #( 8.0410 -4.9501 1.4724) ; O2*
  2588. #( 8.2781 -4.0644 1.7570) ; H2*
  2589. #( 6.5701 -6.8129 1.9714) ; C3*
  2590. #( 6.4186 -7.5809 2.7299) ; H3*
  2591. #( 6.9357 -7.3841 0.7235) ; O3*
  2592. #( 6.8024 -5.4718 4.8475) ; N1
  2593. #( 7.9218 -5.5700 6.8877) ; N3
  2594. #( 7.8908 -5.0886 5.5944) ; C2
  2595. #( 6.9789 -6.3827 7.4823) ; C4
  2596. #( 5.8742 -6.7319 6.6202) ; C5
  2597. #( 5.8182 -6.2769 5.3570) ; C6
  2598. #( 8.7747 -4.3728 5.1568) ; O2
  2599. #( 7.1154 -6.7509 8.6509) ; O4
  2600. #( 8.7055 -5.3037 7.4491) ; H3
  2601. #( 5.1416 -7.3178 6.9665) ; H5
  2602. #( 5.0441 -6.5310 4.7784) ; H6
  2603. ))
  2604. (define rU04
  2605. (make-constant-rU
  2606. #( -0.5669 -0.8012 0.1918 ; dgf-base-tfo
  2607. -0.8129 0.5817 0.0273
  2608. -0.1334 -0.1404 -0.9811
  2609. -0.3279 8.3874 0.3355)
  2610. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2611. 0.0649 0.4366 -0.8973
  2612. 0.5521 -0.7648 -0.3322
  2613. 1.6833 6.8060 -7.0011)
  2614. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2615. -0.4628 -0.6450 -0.6082
  2616. 0.8168 -0.0436 -0.5753
  2617. -6.8179 -3.9778 -5.9887)
  2618. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2619. 0.8103 -0.5790 0.0906
  2620. -0.0255 -0.1894 -0.9816
  2621. 6.1203 -7.1051 3.1984)
  2622. #( 2.6760 -8.4960 3.2880) ; P
  2623. #( 1.4950 -7.6230 3.4770) ; O1P
  2624. #( 2.9490 -9.4640 4.3740) ; O2P
  2625. #( 3.9730 -7.5950 3.0340) ; O5*
  2626. #( 5.2416 -8.2422 2.8181) ; C5*
  2627. #( 5.2050 -8.8128 1.8901) ; H5*
  2628. #( 5.5368 -8.7738 3.7227) ; H5**
  2629. #( 6.3232 -7.2037 2.6002) ; C4*
  2630. #( 7.3048 -7.6757 2.5577) ; H4*
  2631. #( 6.0635 -6.5092 1.3456) ; O4*
  2632. #( 6.4697 -5.1547 1.4629) ; C1*
  2633. #( 7.2354 -5.0043 0.7018) ; H1*
  2634. #( 7.0856 -4.9610 2.8521) ; C2*
  2635. #( 6.7777 -3.9935 3.2487) ; H2**
  2636. #( 8.4627 -5.1992 2.7423) ; O2*
  2637. #( 8.8693 -4.8638 1.9399) ; H2*
  2638. #( 6.3877 -6.0809 3.6362) ; C3*
  2639. #( 5.3770 -5.7562 3.8834) ; H3*
  2640. #( 7.1024 -6.4754 4.7985) ; O3*
  2641. #( 5.2764 -4.2883 1.2538) ; N1
  2642. #( 3.8961 -3.0896 -0.1893) ; N3
  2643. #( 5.0095 -3.8907 -0.0346) ; C2
  2644. #( 3.0480 -2.6632 0.8116) ; C4
  2645. #( 3.4093 -3.1310 2.1292) ; C5
  2646. #( 4.4878 -3.9124 2.3088) ; C6
  2647. #( 5.7005 -4.2164 -0.9842) ; O2
  2648. #( 2.0800 -1.9458 0.5503) ; O4
  2649. #( 3.6834 -2.7882 -1.1190) ; H3
  2650. #( 2.8508 -2.8721 2.9172) ; H5
  2651. #( 4.7188 -4.2247 3.2295) ; H6
  2652. ))
  2653. (define rU05
  2654. (make-constant-rU
  2655. #( -0.6298 0.0246 0.7763 ; dgf-base-tfo
  2656. -0.5226 -0.7529 -0.4001
  2657. 0.5746 -0.6577 0.4870
  2658. -0.0208 -3.4598 -9.6882)
  2659. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2660. 0.0649 0.4366 -0.8973
  2661. 0.5521 -0.7648 -0.3322
  2662. 1.6833 6.8060 -7.0011)
  2663. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2664. -0.4628 -0.6450 -0.6082
  2665. 0.8168 -0.0436 -0.5753
  2666. -6.8179 -3.9778 -5.9887)
  2667. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2668. 0.8103 -0.5790 0.0906
  2669. -0.0255 -0.1894 -0.9816
  2670. 6.1203 -7.1051 3.1984)
  2671. #( 2.6760 -8.4960 3.2880) ; P
  2672. #( 1.4950 -7.6230 3.4770) ; O1P
  2673. #( 2.9490 -9.4640 4.3740) ; O2P
  2674. #( 3.9730 -7.5950 3.0340) ; O5*
  2675. #( 4.3825 -6.6585 4.0489) ; C5*
  2676. #( 4.6841 -7.2019 4.9443) ; H5*
  2677. #( 3.6189 -5.8889 4.1625) ; H5**
  2678. #( 5.6255 -5.9175 3.5998) ; C4*
  2679. #( 5.8732 -5.1228 4.3034) ; H4*
  2680. #( 6.7337 -6.8605 3.5222) ; O4*
  2681. #( 7.5932 -6.4923 2.4548) ; C1*
  2682. #( 8.5661 -6.2983 2.9064) ; H1*
  2683. #( 7.0527 -5.2012 1.8322) ; C2*
  2684. #( 7.1627 -5.2525 0.7490) ; H2**
  2685. #( 7.6666 -4.1249 2.4880) ; O2*
  2686. #( 8.5944 -4.2543 2.6981) ; H2*
  2687. #( 5.5661 -5.3029 2.2009) ; C3*
  2688. #( 5.0841 -6.0018 1.5172) ; H3*
  2689. #( 4.9062 -4.0452 2.2042) ; O3*
  2690. #( 7.6298 -7.6136 1.4752) ; N1
  2691. #( 8.5977 -9.5977 0.7329) ; N3
  2692. #( 8.5951 -8.5745 1.6594) ; C2
  2693. #( 7.7372 -9.7371 -0.3364) ; C4
  2694. #( 6.7596 -8.6801 -0.4476) ; C5
  2695. #( 6.7338 -7.6721 0.4408) ; C6
  2696. #( 9.3993 -8.5377 2.5743) ; O2
  2697. #( 7.8374 -10.6990 -1.1008) ; O4
  2698. #( 9.2924 -10.3081 0.8477) ; H3
  2699. #( 6.0932 -8.6982 -1.1929) ; H5
  2700. #( 6.0481 -6.9515 0.3446) ; H6
  2701. ))
  2702. (define rU06
  2703. (make-constant-rU
  2704. #( -0.9837 0.0476 -0.1733 ; dgf-base-tfo
  2705. -0.1792 -0.3353 0.9249
  2706. -0.0141 0.9409 0.3384
  2707. 5.7793 -5.2303 4.5997)
  2708. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  2709. 0.0649 0.4366 -0.8973
  2710. 0.5521 -0.7648 -0.3322
  2711. 1.6833 6.8060 -7.0011)
  2712. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  2713. -0.4628 -0.6450 -0.6082
  2714. 0.8168 -0.0436 -0.5753
  2715. -6.8179 -3.9778 -5.9887)
  2716. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  2717. 0.8103 -0.5790 0.0906
  2718. -0.0255 -0.1894 -0.9816
  2719. 6.1203 -7.1051 3.1984)
  2720. #( 2.6760 -8.4960 3.2880) ; P
  2721. #( 1.4950 -7.6230 3.4770) ; O1P
  2722. #( 2.9490 -9.4640 4.3740) ; O2P
  2723. #( 3.9730 -7.5950 3.0340) ; O5*
  2724. #( 3.9938 -6.7042 1.9023) ; C5*
  2725. #( 3.2332 -5.9343 2.0319) ; H5*
  2726. #( 3.9666 -7.2863 0.9812) ; H5**
  2727. #( 5.3098 -5.9546 1.8564) ; C4*
  2728. #( 5.3863 -5.3702 0.9395) ; H4*
  2729. #( 5.3851 -5.0642 3.0076) ; O4*
  2730. #( 6.7315 -4.9724 3.4462) ; C1*
  2731. #( 7.0033 -3.9202 3.3619) ; H1*
  2732. #( 7.5997 -5.8018 2.4948) ; C2*
  2733. #( 8.3627 -6.3254 3.0707) ; H2**
  2734. #( 8.0410 -4.9501 1.4724) ; O2*
  2735. #( 8.2781 -4.0644 1.7570) ; H2*
  2736. #( 6.5701 -6.8129 1.9714) ; C3*
  2737. #( 6.4186 -7.5809 2.7299) ; H3*
  2738. #( 6.9357 -7.3841 0.7235) ; O3*
  2739. #( 6.8024 -5.4718 4.8475) ; N1
  2740. #( 6.6920 -5.0495 7.1354) ; N3
  2741. #( 6.6201 -4.5500 5.8506) ; C2
  2742. #( 6.9254 -6.3614 7.4926) ; C4
  2743. #( 7.1046 -7.2543 6.3718) ; C5
  2744. #( 7.0391 -6.7951 5.1106) ; C6
  2745. #( 6.4083 -3.3696 5.6340) ; O2
  2746. #( 6.9679 -6.6901 8.6800) ; O4
  2747. #( 6.5626 -4.3957 7.8812) ; H3
  2748. #( 7.2781 -8.2254 6.5350) ; H5
  2749. #( 7.1657 -7.4312 4.3503) ; H6
  2750. ))
  2751. (define rU07
  2752. (make-constant-rU
  2753. #( -0.9434 0.3172 0.0971 ; dgf-base-tfo
  2754. 0.2294 0.4125 0.8816
  2755. 0.2396 0.8539 -0.4619
  2756. 8.3625 -52.7147 1.3745)
  2757. #( 0.2765 -0.1121 -0.9545 ; P-O3*-275-tfo
  2758. -0.8297 0.4733 -0.2959
  2759. 0.4850 0.8737 0.0379
  2760. -14.7774 -45.2464 21.9088)
  2761. #( 0.1063 -0.6334 -0.7665 ; P-O3*-180-tfo
  2762. -0.5932 -0.6591 0.4624
  2763. -0.7980 0.4055 -0.4458
  2764. 43.7634 4.3296 28.4890)
  2765. #( 0.7136 -0.5032 -0.4873 ; P-O3*-60-tfo
  2766. 0.6803 0.3317 0.6536
  2767. -0.1673 -0.7979 0.5791
  2768. -17.1858 41.4390 -27.0751)
  2769. #( 21.3880 15.0780 45.5770) ; P
  2770. #( 21.9980 14.5500 46.8210) ; O1P
  2771. #( 21.1450 14.0270 44.5420) ; O2P
  2772. #( 22.1250 16.3600 44.9460) ; O5*
  2773. #( 21.5037 16.8594 43.7323) ; C5*
  2774. #( 20.8147 17.6663 43.9823) ; H5*
  2775. #( 21.1086 16.0230 43.1557) ; H5**
  2776. #( 22.5654 17.4874 42.8616) ; C4*
  2777. #( 22.1584 17.7243 41.8785) ; H4*
  2778. #( 23.0557 18.6826 43.4751) ; O4*
  2779. #( 24.4788 18.6151 43.6455) ; C1*
  2780. #( 24.9355 19.0840 42.7739) ; H1*
  2781. #( 24.7958 17.1427 43.6474) ; C2*
  2782. #( 24.5652 16.7400 44.6336) ; H2**
  2783. #( 26.1041 16.8773 43.2455) ; O2*
  2784. #( 26.7516 17.5328 43.5149) ; H2*
  2785. #( 23.8109 16.5979 42.6377) ; C3*
  2786. #( 23.5756 15.5686 42.9084) ; H3*
  2787. #( 24.2890 16.7447 41.2729) ; O3*
  2788. #( 24.9420 19.2174 44.8923) ; N1
  2789. #( 25.2655 20.5636 44.8883) ; N3
  2790. #( 25.1663 21.2219 43.8561) ; C2
  2791. #( 25.6911 21.1219 46.0494) ; C4
  2792. #( 25.8051 20.4068 47.2048) ; C5
  2793. #( 26.2093 20.9962 48.2534) ; C6
  2794. #( 25.4692 19.0221 47.2053) ; O2
  2795. #( 25.0502 18.4827 46.0370) ; O4
  2796. #( 25.9599 22.1772 46.0966) ; H3
  2797. #( 25.5545 18.4409 48.1234) ; H5
  2798. #( 24.7854 17.4265 45.9883) ; H6
  2799. ))
  2800. (define rU08
  2801. (make-constant-rU
  2802. #( -0.0080 -0.7928 0.6094 ; dgf-base-tfo
  2803. -0.7512 0.4071 0.5197
  2804. -0.6601 -0.4536 -0.5988
  2805. 44.1482 30.7036 2.1088)
  2806. #( 0.2765 -0.1121 -0.9545 ; P-O3*-275-tfo
  2807. -0.8297 0.4733 -0.2959
  2808. 0.4850 0.8737 0.0379
  2809. -14.7774 -45.2464 21.9088)
  2810. #( 0.1063 -0.6334 -0.7665 ; P-O3*-180-tfo
  2811. -0.5932 -0.6591 0.4624
  2812. -0.7980 0.4055 -0.4458
  2813. 43.7634 4.3296 28.4890)
  2814. #( 0.7136 -0.5032 -0.4873 ; P-O3*-60-tfo
  2815. 0.6803 0.3317 0.6536
  2816. -0.1673 -0.7979 0.5791
  2817. -17.1858 41.4390 -27.0751)
  2818. #( 21.3880 15.0780 45.5770) ; P
  2819. #( 21.9980 14.5500 46.8210) ; O1P
  2820. #( 21.1450 14.0270 44.5420) ; O2P
  2821. #( 22.1250 16.3600 44.9460) ; O5*
  2822. #( 23.5096 16.1227 44.5783) ; C5*
  2823. #( 23.5649 15.8588 43.5222) ; H5*
  2824. #( 23.9621 15.4341 45.2919) ; H5**
  2825. #( 24.2805 17.4138 44.7151) ; C4*
  2826. #( 25.3492 17.2309 44.6030) ; H4*
  2827. #( 23.8497 18.3471 43.7208) ; O4*
  2828. #( 23.4090 19.5681 44.3321) ; C1*
  2829. #( 24.2595 20.2496 44.3524) ; H1*
  2830. #( 23.0418 19.1813 45.7407) ; C2*
  2831. #( 22.0532 18.7224 45.7273) ; H2**
  2832. #( 23.1307 20.2521 46.6291) ; O2*
  2833. #( 22.8888 21.1051 46.2611) ; H2*
  2834. #( 24.0799 18.1326 46.0700) ; C3*
  2835. #( 23.6490 17.4370 46.7900) ; H3*
  2836. #( 25.3329 18.7227 46.5109) ; O3*
  2837. #( 22.2515 20.1624 43.6698) ; N1
  2838. #( 22.4760 21.0609 42.6406) ; N3
  2839. #( 23.6229 21.3462 42.3061) ; C2
  2840. #( 21.3986 21.6081 42.0236) ; C4
  2841. #( 20.1189 21.3012 42.3804) ; C5
  2842. #( 19.1599 21.8516 41.7578) ; C6
  2843. #( 19.8919 20.3745 43.4387) ; O2
  2844. #( 20.9790 19.8423 44.0440) ; O4
  2845. #( 21.5235 22.3222 41.2097) ; H3
  2846. #( 18.8732 20.1200 43.7312) ; H5
  2847. #( 20.8545 19.1313 44.8608) ; H6
  2848. ))
  2849. (define rU09
  2850. (make-constant-rU
  2851. #( -0.0317 0.1374 0.9900 ; dgf-base-tfo
  2852. -0.3422 -0.9321 0.1184
  2853. 0.9391 -0.3351 0.0765
  2854. -32.1929 25.8198 -28.5088)
  2855. #( 0.2765 -0.1121 -0.9545 ; P-O3*-275-tfo
  2856. -0.8297 0.4733 -0.2959
  2857. 0.4850 0.8737 0.0379
  2858. -14.7774 -45.2464 21.9088)
  2859. #( 0.1063 -0.6334 -0.7665 ; P-O3*-180-tfo
  2860. -0.5932 -0.6591 0.4624
  2861. -0.7980 0.4055 -0.4458
  2862. 43.7634 4.3296 28.4890)
  2863. #( 0.7136 -0.5032 -0.4873 ; P-O3*-60-tfo
  2864. 0.6803 0.3317 0.6536
  2865. -0.1673 -0.7979 0.5791
  2866. -17.1858 41.4390 -27.0751)
  2867. #( 21.3880 15.0780 45.5770) ; P
  2868. #( 21.9980 14.5500 46.8210) ; O1P
  2869. #( 21.1450 14.0270 44.5420) ; O2P
  2870. #( 22.1250 16.3600 44.9460) ; O5*
  2871. #( 21.5037 16.8594 43.7323) ; C5*
  2872. #( 20.8147 17.6663 43.9823) ; H5*
  2873. #( 21.1086 16.0230 43.1557) ; H5**
  2874. #( 22.5654 17.4874 42.8616) ; C4*
  2875. #( 23.0565 18.3036 43.3915) ; H4*
  2876. #( 23.5375 16.5054 42.4925) ; O4*
  2877. #( 23.6574 16.4257 41.0649) ; C1*
  2878. #( 24.4701 17.0882 40.7671) ; H1*
  2879. #( 22.3525 16.9643 40.5396) ; C2*
  2880. #( 21.5993 16.1799 40.6133) ; H2**
  2881. #( 22.4693 17.4849 39.2515) ; O2*
  2882. #( 23.0899 17.0235 38.6827) ; H2*
  2883. #( 22.0341 18.0633 41.5279) ; C3*
  2884. #( 20.9509 18.1709 41.5846) ; H3*
  2885. #( 22.7249 19.3020 41.2100) ; O3*
  2886. #( 23.8580 15.0648 40.5757) ; N1
  2887. #( 25.1556 14.5982 40.4523) ; N3
  2888. #( 26.1047 15.3210 40.7448) ; C2
  2889. #( 25.3391 13.3315 40.0020) ; C4
  2890. #( 24.2974 12.5148 39.6749) ; C5
  2891. #( 24.5450 11.3410 39.2610) ; C6
  2892. #( 22.9633 12.9979 39.8053) ; O2
  2893. #( 22.8009 14.2648 40.2524) ; O4
  2894. #( 26.3414 12.9194 39.8855) ; H3
  2895. #( 22.1227 12.3533 39.5486) ; H5
  2896. #( 21.7989 14.6788 40.3650) ; H6
  2897. ))
  2898. (define rU10
  2899. (make-constant-rU
  2900. #( -0.9674 0.1021 -0.2318 ; dgf-base-tfo
  2901. -0.2514 -0.2766 0.9275
  2902. 0.0306 0.9555 0.2933
  2903. 27.8571 -42.1305 -24.4563)
  2904. #( 0.2765 -0.1121 -0.9545 ; P-O3*-275-tfo
  2905. -0.8297 0.4733 -0.2959
  2906. 0.4850 0.8737 0.0379
  2907. -14.7774 -45.2464 21.9088)
  2908. #( 0.1063 -0.6334 -0.7665 ; P-O3*-180-tfo
  2909. -0.5932 -0.6591 0.4624
  2910. -0.7980 0.4055 -0.4458
  2911. 43.7634 4.3296 28.4890)
  2912. #( 0.7136 -0.5032 -0.4873 ; P-O3*-60-tfo
  2913. 0.6803 0.3317 0.6536
  2914. -0.1673 -0.7979 0.5791
  2915. -17.1858 41.4390 -27.0751)
  2916. #( 21.3880 15.0780 45.5770) ; P
  2917. #( 21.9980 14.5500 46.8210) ; O1P
  2918. #( 21.1450 14.0270 44.5420) ; O2P
  2919. #( 22.1250 16.3600 44.9460) ; O5*
  2920. #( 23.5096 16.1227 44.5783) ; C5*
  2921. #( 23.5649 15.8588 43.5222) ; H5*
  2922. #( 23.9621 15.4341 45.2919) ; H5**
  2923. #( 24.2805 17.4138 44.7151) ; C4*
  2924. #( 23.8509 18.1819 44.0720) ; H4*
  2925. #( 24.2506 17.8583 46.0741) ; O4*
  2926. #( 25.5830 18.0320 46.5775) ; C1*
  2927. #( 25.8569 19.0761 46.4256) ; H1*
  2928. #( 26.4410 17.1555 45.7033) ; C2*
  2929. #( 26.3459 16.1253 46.0462) ; H2**
  2930. #( 27.7649 17.5888 45.6478) ; O2*
  2931. #( 28.1004 17.9719 46.4616) ; H2*
  2932. #( 25.7796 17.2997 44.3513) ; C3*
  2933. #( 25.9478 16.3824 43.7871) ; H3*
  2934. #( 26.2154 18.4984 43.6541) ; O3*
  2935. #( 25.7321 17.6281 47.9726) ; N1
  2936. #( 25.5136 18.5779 48.9560) ; N3
  2937. #( 25.2079 19.7276 48.6503) ; C2
  2938. #( 25.6482 18.1987 50.2518) ; C4
  2939. #( 25.9847 16.9266 50.6092) ; C5
  2940. #( 26.0918 16.6439 51.8416) ; C6
  2941. #( 26.2067 15.9515 49.5943) ; O2
  2942. #( 26.0713 16.3497 48.3080) ; O4
  2943. #( 25.4890 18.9105 51.0618) ; H3
  2944. #( 26.4742 14.9310 49.8682) ; H5
  2945. #( 26.2346 15.6394 47.4975) ; H6
  2946. ))
  2947. (define rUs
  2948. (list rU01 rU02 rU03 rU04 rU05 rU06 rU07 rU08 rU09 rU10))
  2949. (define rG*
  2950. (make-constant-rG
  2951. #( -0.2067 -0.0264 0.9780 ; dgf-base-tfo
  2952. 0.9770 -0.0586 0.2049
  2953. 0.0519 0.9979 0.0379
  2954. 1.0331 -46.8078 -36.4742)
  2955. #( -0.8644 -0.4956 -0.0851 ; P-O3*-275-tfo
  2956. -0.0427 0.2409 -0.9696
  2957. 0.5010 -0.8345 -0.2294
  2958. 4.0167 54.5377 12.4779)
  2959. #( 0.3706 -0.6167 0.6945 ; P-O3*-180-tfo
  2960. -0.2867 -0.7872 -0.5460
  2961. 0.8834 0.0032 -0.4686
  2962. -52.9020 18.6313 -0.6709)
  2963. #( 0.4155 0.9025 -0.1137 ; P-O3*-60-tfo
  2964. 0.9040 -0.4236 -0.0582
  2965. -0.1007 -0.0786 -0.9918
  2966. -7.6624 -25.2080 49.5181)
  2967. #( 31.3810 0.1400 47.5810) ; P
  2968. #( 29.9860 0.6630 47.6290) ; O1P
  2969. #( 31.7210 -0.6460 48.8090) ; O2P
  2970. #( 32.4940 1.2540 47.2740) ; O5*
  2971. #( 32.1610 2.2370 46.2560) ; C5*
  2972. #( 31.2986 2.8190 46.5812) ; H5*
  2973. #( 32.0980 1.7468 45.2845) ; H5**
  2974. #( 33.3476 3.1959 46.1947) ; C4*
  2975. #( 33.2668 3.8958 45.3630) ; H4*
  2976. #( 33.3799 3.9183 47.4216) ; O4*
  2977. #( 34.6515 3.7222 48.0398) ; C1*
  2978. #( 35.2947 4.5412 47.7180) ; H1*
  2979. #( 35.1756 2.4228 47.4827) ; C2*
  2980. #( 34.6778 1.5937 47.9856) ; H2**
  2981. #( 36.5631 2.2672 47.4798) ; O2*
  2982. #( 37.0163 2.6579 48.2305) ; H2*
  2983. #( 34.6953 2.5043 46.0448) ; C3*
  2984. #( 34.5444 1.4917 45.6706) ; H3*
  2985. #( 35.6679 3.3009 45.3487) ; O3*
  2986. #( 37.4804 4.0914 52.2559) ; N1
  2987. #( 36.9670 4.1312 49.9281) ; N3
  2988. #( 37.8045 4.2519 50.9550) ; C2
  2989. #( 35.7171 3.8264 50.3222) ; C4
  2990. #( 35.2668 3.6420 51.6115) ; C5
  2991. #( 36.2037 3.7829 52.6706) ; C6
  2992. #( 39.0869 4.5552 50.7092) ; N2
  2993. #( 33.9075 3.3338 51.6102) ; N7
  2994. #( 34.6126 3.6358 49.5108) ; N9
  2995. #( 33.5805 3.3442 50.3425) ; C8
  2996. #( 35.9958 3.6512 53.8724) ; O6
  2997. #( 38.2106 4.2053 52.9295) ; H1
  2998. #( 39.8218 4.6863 51.3896) ; H21
  2999. #( 39.3420 4.6857 49.7407) ; H22
  3000. #( 32.5194 3.1070 50.2664) ; H8
  3001. ))
  3002. (define rU*
  3003. (make-constant-rU
  3004. #( -0.0109 0.5907 0.8068 ; dgf-base-tfo
  3005. 0.2217 -0.7853 0.5780
  3006. 0.9751 0.1852 -0.1224
  3007. -1.4225 -11.0956 -2.5217)
  3008. #( -0.8313 -0.4738 -0.2906 ; P-O3*-275-tfo
  3009. 0.0649 0.4366 -0.8973
  3010. 0.5521 -0.7648 -0.3322
  3011. 1.6833 6.8060 -7.0011)
  3012. #( 0.3445 -0.7630 0.5470 ; P-O3*-180-tfo
  3013. -0.4628 -0.6450 -0.6082
  3014. 0.8168 -0.0436 -0.5753
  3015. -6.8179 -3.9778 -5.9887)
  3016. #( 0.5855 0.7931 -0.1682 ; P-O3*-60-tfo
  3017. 0.8103 -0.5790 0.0906
  3018. -0.0255 -0.1894 -0.9816
  3019. 6.1203 -7.1051 3.1984)
  3020. #( 2.6760 -8.4960 3.2880) ; P
  3021. #( 1.4950 -7.6230 3.4770) ; O1P
  3022. #( 2.9490 -9.4640 4.3740) ; O2P
  3023. #( 3.9730 -7.5950 3.0340) ; O5*
  3024. #( 5.2430 -8.2420 2.8260) ; C5*
  3025. #( 5.1974 -8.8497 1.9223) ; H5*
  3026. #( 5.5548 -8.7348 3.7469) ; H5**
  3027. #( 6.3140 -7.2060 2.5510) ; C4*
  3028. #( 5.8744 -6.2116 2.4731) ; H4*
  3029. #( 7.2798 -7.2260 3.6420) ; O4*
  3030. #( 8.5733 -6.9410 3.1329) ; C1*
  3031. #( 8.9047 -6.0374 3.6446) ; H1*
  3032. #( 8.4429 -6.6596 1.6327) ; C2*
  3033. #( 9.2880 -7.1071 1.1096) ; H2**
  3034. #( 8.2502 -5.2799 1.4754) ; O2*
  3035. #( 8.7676 -4.7284 2.0667) ; H2*
  3036. #( 7.1642 -7.4416 1.3021) ; C3*
  3037. #( 7.4125 -8.5002 1.2260) ; H3*
  3038. #( 6.5160 -6.9772 0.1267) ; O3*
  3039. #( 9.4531 -8.1107 3.4087) ; N1
  3040. #( 11.5931 -9.0015 3.6357) ; N3
  3041. #( 10.8101 -7.8950 3.3748) ; C2
  3042. #( 11.1439 -10.2744 3.9206) ; C4
  3043. #( 9.7056 -10.4026 3.9332) ; C5
  3044. #( 8.9192 -9.3419 3.6833) ; C6
  3045. #( 11.3013 -6.8063 3.1326) ; O2
  3046. #( 11.9431 -11.1876 4.1375) ; O4
  3047. #( 12.5840 -8.8673 3.6158) ; H3
  3048. #( 9.2891 -11.2898 4.1313) ; H5
  3049. #( 7.9263 -9.4537 3.6977) ; H6
  3050. ))
  3051. ; -- PARTIAL INSTANTIATIONS ---------------------------------------------------
  3052. (def-struct #f var id tfo nuc)
  3053. ; Add a single-quote at the start of this line if you want lazy computation
  3054. (begin
  3055. (def-macro (mk-var i tfo nuc)
  3056. `(make-var ,i ,tfo ,nuc))
  3057. (def-macro (absolute-pos var p)
  3058. `(tfo-apply (var-tfo ,var) ,p))
  3059. (def-macro (lazy-computation-of expr)
  3060. expr)
  3061. )
  3062. '; Remove the single-quote from this line if you want lazy computation
  3063. (begin
  3064. (def-macro (mk-var i tfo nuc)
  3065. `(make-var ,i ,tfo (make-relative-nuc ,tfo ,nuc)))
  3066. (def-macro (absolute-pos var p)
  3067. `(force ,p))
  3068. (def-macro (lazy-computation-of expr)
  3069. `(delay ,expr))
  3070. )
  3071. (def-macro (atom-pos atom var)
  3072. `(let ((v ,var))
  3073. (absolute-pos v (,atom (var-nuc v)))))
  3074. (define (get-var id lst)
  3075. (let ((v (car lst)))
  3076. (if (= id (var-id v))
  3077. v
  3078. (get-var id (cdr lst)))))
  3079. (define (make-relative-nuc tfo n)
  3080. (cond ((rA? n)
  3081. (make-rA
  3082. (nuc-dgf-base-tfo n)
  3083. (nuc-P-O3*-275-tfo n)
  3084. (nuc-P-O3*-180-tfo n)
  3085. (nuc-P-O3*-60-tfo n)
  3086. (lazy-computation-of (tfo-apply tfo (nuc-P n)))
  3087. (lazy-computation-of (tfo-apply tfo (nuc-O1P n)))
  3088. (lazy-computation-of (tfo-apply tfo (nuc-O2P n)))
  3089. (lazy-computation-of (tfo-apply tfo (nuc-O5* n)))
  3090. (lazy-computation-of (tfo-apply tfo (nuc-C5* n)))
  3091. (lazy-computation-of (tfo-apply tfo (nuc-H5* n)))
  3092. (lazy-computation-of (tfo-apply tfo (nuc-H5** n)))
  3093. (lazy-computation-of (tfo-apply tfo (nuc-C4* n)))
  3094. (lazy-computation-of (tfo-apply tfo (nuc-H4* n)))
  3095. (lazy-computation-of (tfo-apply tfo (nuc-O4* n)))
  3096. (lazy-computation-of (tfo-apply tfo (nuc-C1* n)))
  3097. (lazy-computation-of (tfo-apply tfo (nuc-H1* n)))
  3098. (lazy-computation-of (tfo-apply tfo (nuc-C2* n)))
  3099. (lazy-computation-of (tfo-apply tfo (nuc-H2** n)))
  3100. (lazy-computation-of (tfo-apply tfo (nuc-O2* n)))
  3101. (lazy-computation-of (tfo-apply tfo (nuc-H2* n)))
  3102. (lazy-computation-of (tfo-apply tfo (nuc-C3* n)))
  3103. (lazy-computation-of (tfo-apply tfo (nuc-H3* n)))
  3104. (lazy-computation-of (tfo-apply tfo (nuc-O3* n)))
  3105. (lazy-computation-of (tfo-apply tfo (nuc-N1 n)))
  3106. (lazy-computation-of (tfo-apply tfo (nuc-N3 n)))
  3107. (lazy-computation-of (tfo-apply tfo (nuc-C2 n)))
  3108. (lazy-computation-of (tfo-apply tfo (nuc-C4 n)))
  3109. (lazy-computation-of (tfo-apply tfo (nuc-C5 n)))
  3110. (lazy-computation-of (tfo-apply tfo (nuc-C6 n)))
  3111. (lazy-computation-of (tfo-apply tfo (rA-N6 n)))
  3112. (lazy-computation-of (tfo-apply tfo (rA-N7 n)))
  3113. (lazy-computation-of (tfo-apply tfo (rA-N9 n)))
  3114. (lazy-computation-of (tfo-apply tfo (rA-C8 n)))
  3115. (lazy-computation-of (tfo-apply tfo (rA-H2 n)))
  3116. (lazy-computation-of (tfo-apply tfo (rA-H61 n)))
  3117. (lazy-computation-of (tfo-apply tfo (rA-H62 n)))
  3118. (lazy-computation-of (tfo-apply tfo (rA-H8 n)))))
  3119. ((rC? n)
  3120. (make-rC
  3121. (nuc-dgf-base-tfo n)
  3122. (nuc-P-O3*-275-tfo n)
  3123. (nuc-P-O3*-180-tfo n)
  3124. (nuc-P-O3*-60-tfo n)
  3125. (lazy-computation-of (tfo-apply tfo (nuc-P n)))
  3126. (lazy-computation-of (tfo-apply tfo (nuc-O1P n)))
  3127. (lazy-computation-of (tfo-apply tfo (nuc-O2P n)))
  3128. (lazy-computation-of (tfo-apply tfo (nuc-O5* n)))
  3129. (lazy-computation-of (tfo-apply tfo (nuc-C5* n)))
  3130. (lazy-computation-of (tfo-apply tfo (nuc-H5* n)))
  3131. (lazy-computation-of (tfo-apply tfo (nuc-H5** n)))
  3132. (lazy-computation-of (tfo-apply tfo (nuc-C4* n)))
  3133. (lazy-computation-of (tfo-apply tfo (nuc-H4* n)))
  3134. (lazy-computation-of (tfo-apply tfo (nuc-O4* n)))
  3135. (lazy-computation-of (tfo-apply tfo (nuc-C1* n)))
  3136. (lazy-computation-of (tfo-apply tfo (nuc-H1* n)))
  3137. (lazy-computation-of (tfo-apply tfo (nuc-C2* n)))
  3138. (lazy-computation-of (tfo-apply tfo (nuc-H2** n)))
  3139. (lazy-computation-of (tfo-apply tfo (nuc-O2* n)))
  3140. (lazy-computation-of (tfo-apply tfo (nuc-H2* n)))
  3141. (lazy-computation-of (tfo-apply tfo (nuc-C3* n)))
  3142. (lazy-computation-of (tfo-apply tfo (nuc-H3* n)))
  3143. (lazy-computation-of (tfo-apply tfo (nuc-O3* n)))
  3144. (lazy-computation-of (tfo-apply tfo (nuc-N1 n)))
  3145. (lazy-computation-of (tfo-apply tfo (nuc-N3 n)))
  3146. (lazy-computation-of (tfo-apply tfo (nuc-C2 n)))
  3147. (lazy-computation-of (tfo-apply tfo (nuc-C4 n)))
  3148. (lazy-computation-of (tfo-apply tfo (nuc-C5 n)))
  3149. (lazy-computation-of (tfo-apply tfo (nuc-C6 n)))
  3150. (lazy-computation-of (tfo-apply tfo (rC-N4 n)))
  3151. (lazy-computation-of (tfo-apply tfo (rC-O2 n)))
  3152. (lazy-computation-of (tfo-apply tfo (rC-H41 n)))
  3153. (lazy-computation-of (tfo-apply tfo (rC-H42 n)))
  3154. (lazy-computation-of (tfo-apply tfo (rC-H5 n)))
  3155. (lazy-computation-of (tfo-apply tfo (rC-H6 n)))))
  3156. ((rG? n)
  3157. (make-rG
  3158. (nuc-dgf-base-tfo n)
  3159. (nuc-P-O3*-275-tfo n)
  3160. (nuc-P-O3*-180-tfo n)
  3161. (nuc-P-O3*-60-tfo n)
  3162. (lazy-computation-of (tfo-apply tfo (nuc-P n)))
  3163. (lazy-computation-of (tfo-apply tfo (nuc-O1P n)))
  3164. (lazy-computation-of (tfo-apply tfo (nuc-O2P n)))
  3165. (lazy-computation-of (tfo-apply tfo (nuc-O5* n)))
  3166. (lazy-computation-of (tfo-apply tfo (nuc-C5* n)))
  3167. (lazy-computation-of (tfo-apply tfo (nuc-H5* n)))
  3168. (lazy-computation-of (tfo-apply tfo (nuc-H5** n)))
  3169. (lazy-computation-of (tfo-apply tfo (nuc-C4* n)))
  3170. (lazy-computation-of (tfo-apply tfo (nuc-H4* n)))
  3171. (lazy-computation-of (tfo-apply tfo (nuc-O4* n)))
  3172. (lazy-computation-of (tfo-apply tfo (nuc-C1* n)))
  3173. (lazy-computation-of (tfo-apply tfo (nuc-H1* n)))
  3174. (lazy-computation-of (tfo-apply tfo (nuc-C2* n)))
  3175. (lazy-computation-of (tfo-apply tfo (nuc-H2** n)))
  3176. (lazy-computation-of (tfo-apply tfo (nuc-O2* n)))
  3177. (lazy-computation-of (tfo-apply tfo (nuc-H2* n)))
  3178. (lazy-computation-of (tfo-apply tfo (nuc-C3* n)))
  3179. (lazy-computation-of (tfo-apply tfo (nuc-H3* n)))
  3180. (lazy-computation-of (tfo-apply tfo (nuc-O3* n)))
  3181. (lazy-computation-of (tfo-apply tfo (nuc-N1 n)))
  3182. (lazy-computation-of (tfo-apply tfo (nuc-N3 n)))
  3183. (lazy-computation-of (tfo-apply tfo (nuc-C2 n)))
  3184. (lazy-computation-of (tfo-apply tfo (nuc-C4 n)))
  3185. (lazy-computation-of (tfo-apply tfo (nuc-C5 n)))
  3186. (lazy-computation-of (tfo-apply tfo (nuc-C6 n)))
  3187. (lazy-computation-of (tfo-apply tfo (rG-N2 n)))
  3188. (lazy-computation-of (tfo-apply tfo (rG-N7 n)))
  3189. (lazy-computation-of (tfo-apply tfo (rG-N9 n)))
  3190. (lazy-computation-of (tfo-apply tfo (rG-C8 n)))
  3191. (lazy-computation-of (tfo-apply tfo (rG-O6 n)))
  3192. (lazy-computation-of (tfo-apply tfo (rG-H1 n)))
  3193. (lazy-computation-of (tfo-apply tfo (rG-H21 n)))
  3194. (lazy-computation-of (tfo-apply tfo (rG-H22 n)))
  3195. (lazy-computation-of (tfo-apply tfo (rG-H8 n)))))
  3196. (else
  3197. (make-rU
  3198. (nuc-dgf-base-tfo n)
  3199. (nuc-P-O3*-275-tfo n)
  3200. (nuc-P-O3*-180-tfo n)
  3201. (nuc-P-O3*-60-tfo n)
  3202. (lazy-computation-of (tfo-apply tfo (nuc-P n)))
  3203. (lazy-computation-of (tfo-apply tfo (nuc-O1P n)))
  3204. (lazy-computation-of (tfo-apply tfo (nuc-O2P n)))
  3205. (lazy-computation-of (tfo-apply tfo (nuc-O5* n)))
  3206. (lazy-computation-of (tfo-apply tfo (nuc-C5* n)))
  3207. (lazy-computation-of (tfo-apply tfo (nuc-H5* n)))
  3208. (lazy-computation-of (tfo-apply tfo (nuc-H5** n)))
  3209. (lazy-computation-of (tfo-apply tfo (nuc-C4* n)))
  3210. (lazy-computation-of (tfo-apply tfo (nuc-H4* n)))
  3211. (lazy-computation-of (tfo-apply tfo (nuc-O4* n)))
  3212. (lazy-computation-of (tfo-apply tfo (nuc-C1* n)))
  3213. (lazy-computation-of (tfo-apply tfo (nuc-H1* n)))
  3214. (lazy-computation-of (tfo-apply tfo (nuc-C2* n)))
  3215. (lazy-computation-of (tfo-apply tfo (nuc-H2** n)))
  3216. (lazy-computation-of (tfo-apply tfo (nuc-O2* n)))
  3217. (lazy-computation-of (tfo-apply tfo (nuc-H2* n)))
  3218. (lazy-computation-of (tfo-apply tfo (nuc-C3* n)))
  3219. (lazy-computation-of (tfo-apply tfo (nuc-H3* n)))
  3220. (lazy-computation-of (tfo-apply tfo (nuc-O3* n)))
  3221. (lazy-computation-of (tfo-apply tfo (nuc-N1 n)))
  3222. (lazy-computation-of (tfo-apply tfo (nuc-N3 n)))
  3223. (lazy-computation-of (tfo-apply tfo (nuc-C2 n)))
  3224. (lazy-computation-of (tfo-apply tfo (nuc-C4 n)))
  3225. (lazy-computation-of (tfo-apply tfo (nuc-C5 n)))
  3226. (lazy-computation-of (tfo-apply tfo (nuc-C6 n)))
  3227. (lazy-computation-of (tfo-apply tfo (rU-O2 n)))
  3228. (lazy-computation-of (tfo-apply tfo (rU-O4 n)))
  3229. (lazy-computation-of (tfo-apply tfo (rU-H3 n)))
  3230. (lazy-computation-of (tfo-apply tfo (rU-H5 n)))
  3231. (lazy-computation-of (tfo-apply tfo (rU-H6 n)))))))
  3232. ; -- SEARCH -------------------------------------------------------------------
  3233. ; Sequential backtracking algorithm
  3234. (define (search partial-inst domains constraint?)
  3235. (if (null? domains)
  3236. (list partial-inst)
  3237. (let ((remaining-domains (cdr domains)))
  3238. (define (try-assignments lst)
  3239. (if (null? lst)
  3240. '()
  3241. (let ((var (car lst)))
  3242. (if (constraint? var partial-inst)
  3243. (let* ((subsols1
  3244. (search
  3245. (cons var partial-inst)
  3246. remaining-domains
  3247. constraint?))
  3248. (subsols2
  3249. (try-assignments (cdr lst))))
  3250. (append subsols1 subsols2))
  3251. (try-assignments (cdr lst))))))
  3252. (try-assignments ((car domains) partial-inst)))))
  3253. ; -- DOMAINS ------------------------------------------------------------------
  3254. ; Primary structure: strand A CUGCCACGUCUG, strand B CAGACGUGGCAG
  3255. ;
  3256. ; Secondary structure: strand A CUGCCACGUCUG
  3257. ; ||||||||||||
  3258. ; GACGGUGCAGAC strand B
  3259. ;
  3260. ; Tertiary structure:
  3261. ;
  3262. ; 5' end of strand A C1----G12 3' end of strand B
  3263. ; U2-------A11
  3264. ; G3-------C10
  3265. ; C4-----G9
  3266. ; C5---G8
  3267. ; A6
  3268. ; G6-C7
  3269. ; C5----G8
  3270. ; A4-------U9
  3271. ; G3--------C10
  3272. ; A2-------U11
  3273. ; 5' end of strand B C1----G12 3' end of strand A
  3274. ;
  3275. ; "helix", "stacked" and "connected" describe the spatial relationship
  3276. ; between two consecutive nucleotides. E.g. the nucleotides C1 and U2
  3277. ; from the strand A.
  3278. ;
  3279. ; "wc" (stands for Watson-Crick and is a type of base-pairing),
  3280. ; and "wc-dumas" describe the spatial relationship between
  3281. ; nucleotides from two chains that are growing in opposite directions.
  3282. ; E.g. the nucleotides C1 from strand A and G12 from strand B.
  3283. ; Dynamic Domains
  3284. ; Given,
  3285. ; "ref" a nucleotide which is already positioned,
  3286. ; "nuc" the nucleotide to be placed,
  3287. ; and "tfo" a transformation matrix which expresses the desired
  3288. ; relationship between "ref" and "nuc",
  3289. ; the function "dgf-base" computes the transformation matrix that
  3290. ; places the nucleotide "nuc" in the given relationship to "ref".
  3291. (define (dgf-base tfo ref nuc)
  3292. (let* ((ref-nuc (var-nuc ref))
  3293. (align
  3294. (tfo-inv-ortho
  3295. (cond ((rA? ref-nuc)
  3296. (tfo-align (atom-pos nuc-C1* ref)
  3297. (atom-pos rA-N9 ref)
  3298. (atom-pos nuc-C4 ref)))
  3299. ((rC? ref-nuc)
  3300. (tfo-align (atom-pos nuc-C1* ref)
  3301. (atom-pos nuc-N1 ref)
  3302. (atom-pos nuc-C2 ref)))
  3303. ((rG? ref-nuc)
  3304. (tfo-align (atom-pos nuc-C1* ref)
  3305. (atom-pos rG-N9 ref)
  3306. (atom-pos nuc-C4 ref)))
  3307. (else
  3308. (tfo-align (atom-pos nuc-C1* ref)
  3309. (atom-pos nuc-N1 ref)
  3310. (atom-pos nuc-C2 ref)))))))
  3311. (tfo-combine (nuc-dgf-base-tfo nuc)
  3312. (tfo-combine tfo align))))
  3313. ; Placement of first nucleotide.
  3314. (define (reference nuc i)
  3315. (lambda (partial-inst)
  3316. (list (mk-var i tfo-id nuc))))
  3317. ; The transformation matrix for wc is from:
  3318. ;
  3319. ; Chandrasekaran R. et al (1989) A Re-Examination of the Crystal
  3320. ; Structure of A-DNA Using Fiber Diffraction Data. J. Biomol.
  3321. ; Struct. & Dynamics 6(6):1189-1202.
  3322. (define wc-tfo
  3323. '#(-1.0000 0.0028 -0.0019
  3324. 0.0028 0.3468 -0.9379
  3325. -0.0019 -0.9379 -0.3468
  3326. -0.0080 6.0730 8.7208))
  3327. (define (wc nuc i j)
  3328. (lambda (partial-inst)
  3329. (let* ((ref (get-var j partial-inst))
  3330. (tfo (dgf-base wc-tfo ref nuc)))
  3331. (list (mk-var i tfo nuc)))))
  3332. (define wc-Dumas-tfo
  3333. '#(-0.9737 -0.1834 0.1352
  3334. -0.1779 0.2417 -0.9539
  3335. 0.1422 -0.9529 -0.2679
  3336. 0.4837 6.2649 8.0285))
  3337. (define (wc-Dumas nuc i j)
  3338. (lambda (partial-inst)
  3339. (let* ((ref (get-var j partial-inst))
  3340. (tfo (dgf-base wc-Dumas-tfo ref nuc)))
  3341. (list (mk-var i tfo nuc)))))
  3342. (define helix5*-tfo
  3343. '#( 0.9886 -0.0961 0.1156
  3344. 0.1424 0.8452 -0.5152
  3345. -0.0482 0.5258 0.8492
  3346. -3.8737 0.5480 3.8024))
  3347. (define (helix5* nuc i j)
  3348. (lambda (partial-inst)
  3349. (let* ((ref (get-var j partial-inst))
  3350. (tfo (dgf-base helix5*-tfo ref nuc)))
  3351. (list (mk-var i tfo nuc)))))
  3352. (define helix3*-tfo
  3353. '#( 0.9886 0.1424 -0.0482
  3354. -0.0961 0.8452 0.5258
  3355. 0.1156 -0.5152 0.8492
  3356. 3.4426 2.0474 -3.7042))
  3357. (define (helix3* nuc i j)
  3358. (lambda (partial-inst)
  3359. (let* ((ref (get-var j partial-inst))
  3360. (tfo (dgf-base helix3*-tfo ref nuc)))
  3361. (list (mk-var i tfo nuc)))))
  3362. (define G37-A38-tfo
  3363. '#( 0.9991 0.0164 -0.0387
  3364. -0.0375 0.7616 -0.6470
  3365. 0.0189 0.6478 0.7615
  3366. -3.3018 0.9975 2.5585))
  3367. (define (G37-A38 nuc i j)
  3368. (lambda (partial-inst)
  3369. (let* ((ref (get-var j partial-inst))
  3370. (tfo (dgf-base G37-A38-tfo ref nuc)))
  3371. (mk-var i tfo nuc))))
  3372. (define (stacked5* nuc i j)
  3373. (lambda (partial-inst)
  3374. (cons ((G37-A38 nuc i j) partial-inst)
  3375. ((helix5* nuc i j) partial-inst))))
  3376. (define A38-G37-tfo
  3377. '#( 0.9991 -0.0375 0.0189
  3378. 0.0164 0.7616 0.6478
  3379. -0.0387 -0.6470 0.7615
  3380. 3.3819 0.7718 -2.5321))
  3381. (define (A38-G37 nuc i j)
  3382. (lambda (partial-inst)
  3383. (let* ((ref (get-var j partial-inst))
  3384. (tfo (dgf-base A38-G37-tfo ref nuc)))
  3385. (mk-var i tfo nuc))))
  3386. (define (stacked3* nuc i j)
  3387. (lambda (partial-inst)
  3388. (cons ((A38-G37 nuc i j) partial-inst)
  3389. ((helix3* nuc i j) partial-inst))))
  3390. (define (P-O3* nucs i j)
  3391. (lambda (partial-inst)
  3392. (let* ((ref (get-var j partial-inst))
  3393. (align
  3394. (tfo-inv-ortho
  3395. (tfo-align (atom-pos nuc-O3* ref)
  3396. (atom-pos nuc-C3* ref)
  3397. (atom-pos nuc-C4* ref)))))
  3398. (let loop ((lst nucs) (domains '()))
  3399. (if (null? lst)
  3400. domains
  3401. (let ((nuc (car lst)))
  3402. (let ((tfo-60 (tfo-combine (nuc-P-O3*-60-tfo nuc) align))
  3403. (tfo-180 (tfo-combine (nuc-P-O3*-180-tfo nuc) align))
  3404. (tfo-275 (tfo-combine (nuc-P-O3*-275-tfo nuc) align)))
  3405. (loop (cdr lst)
  3406. (cons (mk-var i tfo-60 nuc)
  3407. (cons (mk-var i tfo-180 nuc)
  3408. (cons (mk-var i tfo-275 nuc) domains)))))))))))
  3409. ; -- PROBLEM STATEMENT --------------------------------------------------------
  3410. ; Define anticodon problem -- Science 253:1255 Figure 3a, 3b and 3c
  3411. (define anticodon-domains
  3412. (list
  3413. (reference rC 27 )
  3414. (helix5* rC 28 27)
  3415. (helix5* rA 29 28)
  3416. (helix5* rG 30 29)
  3417. (helix5* rA 31 30)
  3418. (wc rU 39 31)
  3419. (helix5* rC 40 39)
  3420. (helix5* rU 41 40)
  3421. (helix5* rG 42 41)
  3422. (helix5* rG 43 42)
  3423. (stacked3* rA 38 39)
  3424. (stacked3* rG 37 38)
  3425. (stacked3* rA 36 37)
  3426. (stacked3* rA 35 36)
  3427. (stacked3* rG 34 35);<-. Distance
  3428. (P-O3* rCs 32 31); | Constraint
  3429. (P-O3* rUs 33 32);<-' 3.0 Angstroms
  3430. ))
  3431. ; Anticodon constraint
  3432. (define (anticodon-constraint? v partial-inst)
  3433. (if (= (var-id v) 33)
  3434. (let ((p (atom-pos nuc-P (get-var 34 partial-inst))) ; P in nucleotide 34
  3435. (o3* (atom-pos nuc-O3* v))) ; O3' in nucl. 33
  3436. (FLOAT<= (pt-dist p o3*) 3.0)) ; check distance
  3437. #t))
  3438. (define (anticodon)
  3439. (search '() anticodon-domains anticodon-constraint?))
  3440. ; Define pseudoknot problem -- Science 253:1255 Figure 4a and 4b
  3441. (define pseudoknot-domains
  3442. (list
  3443. (reference rA 23 )
  3444. (wc-Dumas rU 8 23)
  3445. (helix3* rG 22 23)
  3446. (wc-Dumas rC 9 22)
  3447. (helix3* rG 21 22)
  3448. (wc-Dumas rC 10 21)
  3449. (helix3* rC 20 21)
  3450. (wc-Dumas rG 11 20)
  3451. (helix3* rU* 19 20);<-.
  3452. (wc-Dumas rA 12 19); | Distance
  3453. ; ; | Constraint
  3454. ; Helix 1 ; | 4.0 Angstroms
  3455. (helix3* rC 3 19); |
  3456. (wc-Dumas rG 13 3); |
  3457. (helix3* rC 2 3); |
  3458. (wc-Dumas rG 14 2); |
  3459. (helix3* rC 1 2); |
  3460. (wc-Dumas rG* 15 1); |
  3461. ; ; |
  3462. ; L2 LOOP ; |
  3463. (P-O3* rUs 16 15); |
  3464. (P-O3* rCs 17 16); |
  3465. (P-O3* rAs 18 17);<-'
  3466. ;
  3467. ; L1 LOOP
  3468. (helix3* rU 7 8);<-.
  3469. (P-O3* rCs 4 3); | Constraint
  3470. (stacked5* rU 5 4); | 4.5 Angstroms
  3471. (stacked5* rC 6 5);<-'
  3472. ))
  3473. ; Pseudoknot constraint
  3474. (define (pseudoknot-constraint? v partial-inst)
  3475. (case (var-id v)
  3476. ((18)
  3477. (let ((p (atom-pos nuc-P (get-var 19 partial-inst)))
  3478. (o3* (atom-pos nuc-O3* v)))
  3479. (FLOAT<= (pt-dist p o3*) 4.0)))
  3480. ((6)
  3481. (let ((p (atom-pos nuc-P (get-var 7 partial-inst)))
  3482. (o3* (atom-pos nuc-O3* v)))
  3483. (FLOAT<= (pt-dist p o3*) 4.5)))
  3484. (else
  3485. #t)))
  3486. (define (pseudoknot)
  3487. (search '() pseudoknot-domains pseudoknot-constraint?))
  3488. ; -- TESTING -----------------------------------------------------------------
  3489. (define (list-of-atoms n)
  3490. (append (list-of-common-atoms n)
  3491. (list-of-specific-atoms n)))
  3492. (define (list-of-common-atoms n)
  3493. (list
  3494. (nuc-P n)
  3495. (nuc-O1P n)
  3496. (nuc-O2P n)
  3497. (nuc-O5* n)
  3498. (nuc-C5* n)
  3499. (nuc-H5* n)
  3500. (nuc-H5** n)
  3501. (nuc-C4* n)
  3502. (nuc-H4* n)
  3503. (nuc-O4* n)
  3504. (nuc-C1* n)
  3505. (nuc-H1* n)
  3506. (nuc-C2* n)
  3507. (nuc-H2** n)
  3508. (nuc-O2* n)
  3509. (nuc-H2* n)
  3510. (nuc-C3* n)
  3511. (nuc-H3* n)
  3512. (nuc-O3* n)
  3513. (nuc-N1 n)
  3514. (nuc-N3 n)
  3515. (nuc-C2 n)
  3516. (nuc-C4 n)
  3517. (nuc-C5 n)
  3518. (nuc-C6 n)))
  3519. (define (list-of-specific-atoms n)
  3520. (cond ((rA? n)
  3521. (list
  3522. (rA-N6 n)
  3523. (rA-N7 n)
  3524. (rA-N9 n)
  3525. (rA-C8 n)
  3526. (rA-H2 n)
  3527. (rA-H61 n)
  3528. (rA-H62 n)
  3529. (rA-H8 n)))
  3530. ((rC? n)
  3531. (list
  3532. (rC-N4 n)
  3533. (rC-O2 n)
  3534. (rC-H41 n)
  3535. (rC-H42 n)
  3536. (rC-H5 n)
  3537. (rC-H6 n)))
  3538. ((rG? n)
  3539. (list
  3540. (rG-N2 n)
  3541. (rG-N7 n)
  3542. (rG-N9 n)
  3543. (rG-C8 n)
  3544. (rG-O6 n)
  3545. (rG-H1 n)
  3546. (rG-H21 n)
  3547. (rG-H22 n)
  3548. (rG-H8 n)))
  3549. (else
  3550. (list
  3551. (rU-O2 n)
  3552. (rU-O4 n)
  3553. (rU-H3 n)
  3554. (rU-H5 n)
  3555. (rU-H6 n)))))
  3556. (define (var-most-distant-atom v)
  3557. (define (distance pos)
  3558. (let ((abs-pos (absolute-pos v pos)))
  3559. (let ((x (pt-x abs-pos)) (y (pt-y abs-pos)) (z (pt-z abs-pos)))
  3560. (FLOATsqrt (FLOAT+ (FLOAT* x x) (FLOAT* y y) (FLOAT* z z))))))
  3561. (maximum (map distance (list-of-atoms (var-nuc v)))))
  3562. (define (sol-most-distant-atom s)
  3563. (maximum (map var-most-distant-atom s)))
  3564. (define (most-distant-atom sols)
  3565. (maximum (map sol-most-distant-atom sols)))
  3566. (define (maximum lst)
  3567. (let loop ((m (car lst)) (l (cdr lst)))
  3568. (if (null? l)
  3569. m
  3570. (let ((x (car l)))
  3571. (loop (if (FLOAT> x m) x m) (cdr l))))))
  3572. (define (check)
  3573. (length (pseudoknot)))
  3574. (define (run)
  3575. (most-distant-atom (pseudoknot)))
  3576. ; To run program, evaluate: (run)