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