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