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