Line data Source code
1 : /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 : Copyright (c) 2017-2023 The plumed team
3 : (see the PEOPLE file at the root of the distribution for a list of names)
4 :
5 : See http://www.plumed.org for more information.
6 :
7 : This file is part of plumed, version 2.
8 :
9 : plumed is free software: you can redistribute it and/or modify
10 : it under the terms of the GNU Lesser General Public License as published by
11 : the Free Software Foundation, either version 3 of the License, or
12 : (at your option) any later version.
13 :
14 : plumed is distributed in the hope that it will be useful,
15 : but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : GNU Lesser General Public License for more details.
18 :
19 : You should have received a copy of the GNU Lesser General Public License
20 : along with plumed. If not, see <http://www.gnu.org/licenses/>.
21 : +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
22 : /*
23 : This class was originally written by Alexander Jussupow
24 : Arrayfire implementation by Alexander Jussupow and CC
25 : Extension for the middleman algorithm (now removed) by Max Muehlbauer
26 : Refactoring for hySAXS Martini form factors for Nucleic Acids by Cristina Paissoni
27 : Refactoring for hySAS OneBead form factors with solvent correction by Federico Ballabio and Riccardo Capelli
28 : Resolution function by Henrique Musseli Cezar
29 : */
30 :
31 : #include "MetainferenceBase.h"
32 : #include "core/ActionRegister.h"
33 : #include "core/ActionSet.h"
34 : #include "core/GenericMolInfo.h"
35 : #include "tools/MolDataClass.h"
36 : #include "tools/Communicator.h"
37 : #include "tools/Pbc.h"
38 : #include "tools/PDB.h"
39 : #include "tools/Tools.h"
40 : #include "tools/IFile.h"
41 :
42 : #include <map>
43 : #include <iterator>
44 : #include <iostream>
45 : #include <algorithm>
46 : #include <cctype>
47 :
48 : #ifdef __PLUMED_HAS_ARRAYFIRE
49 : #include <arrayfire.h>
50 : #include <af/util.h>
51 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
52 : #include <cuda_runtime.h>
53 : #include <cublas_v2.h>
54 : #include <af/cuda.h>
55 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
56 : #include <af/opencl.h>
57 : #endif
58 : #endif
59 :
60 : #ifndef M_PI
61 : #define M_PI 3.14159265358979323846
62 : #endif
63 :
64 : namespace PLMD {
65 : namespace isdb {
66 :
67 : //+PLUMEDOC ISDB_COLVAR SAXS
68 : /*
69 : Calculates SAXS intensity.
70 :
71 : SAXS intensities are calculated for a set of scattering vectors using QVALUE keywords numbered from 1.
72 : Form factors can be assigned either by polynomial expansion of any order by using the PARAMETERS keywords, or
73 : automatically matched to atoms using the ATOMISTIC flag by reading a PDB file. Alternatively to the atomistic
74 : representation, two types of coarse-grained mapping are available:
75 : - MARTINI.
76 : - ONEBEAD.
77 :
78 : Whether for PARAMETERS, ATOMISTIC, and ONEBEAD the user must provide an all-atom PDB file via MOLINFO before the
79 : SAXS instruction. MARTINI requires a mapping scheme consisting of a PDB file that contains both the all-atom
80 : and MARTINI representations, and a bead position file (e.g., bead1: CENTER ATOMS=1,5,7,11,12 WEIGHTS=14,12,12,
81 : 12,16).
82 :
83 : ONEBEAD scheme consists in a single-bead per amino acid residue or three-bead for nucleic acid residue (one for
84 : the phosphate group, one for the pentose sugar, one for the nucleobase). PLUMED creates a virtual bead on which
85 : the SAXS calculations are performed, centred on the COM of all atoms belonging to the bead. It is possible to
86 : account for the contribution of the solvation layer to the SAXS intensity by adding a correction term for the
87 : solvent accessible beads only: the form factors of the amino acids / phosphate groups / pentose sugars /
88 : nucleobases with a SASA (computed via LCPO algorithm) greater than a threshold are corrected according to an
89 : electron density term. Both the surface cut-off threshold and the electron density term can be set by the user
90 : with the SASA_CUTOFF and SOLVATION_CORRECTION keywords. Moreover, SASA stride calculation can be modified using
91 : SOLVATION_STRIDE, which is set to 10 steps by default.
92 : ONEBEAD requires an additional PDB file to perform mapping conversion, which must be provided via TEMPLATE
93 : keyword. This PDB file should only include the atoms for which the SAXS intensity will be computed.
94 : The AMBER OL3 (RNA) and OL15 (DNA) naming is required for nucleic acids.
95 : Three additional bead types are available for DNA and RNA besides phosphate group, pentose sugar, and nucleobase:
96 : - 5'-end pentose sugar capped with an hydroxyl moiety at C5' (the residue name in the PDB must be followed by
97 : "5", e.g., DC5 or C5 for cytosine in DNA and RNA, respectively);
98 : - 5'-phosphorylated end with an additional hydroxyl moiety at P (the residue name in the PDB must be followed by
99 : "T", e.g., DCT or CT for cytosine in DNA and RNA, respectively);
100 : - 3'-end pentose sugar capped with an hydroxyl moiety at C3' (the residue name in the PDB must be followed by
101 : "3", e.g., DC3 or C3 for cytosine in DNA and RNA, respectively).
102 : An additional bead type is available for proteins:
103 : - Cysteine residue involved in disulfide bridge (the residue in the PDB must be named CYX).
104 :
105 : Experimental reference intensities can be added using the EXPINT keywords. All these values must be normalised
106 : to the SAXS intensity at q = 0. To facilitate this operation, the SCALE_EXPINT keyword can be used to provide
107 : the intensity at q = 0. Each EXPINT is divided by SCALE_EXPINT.
108 : The maximum QVALUE for ONEBEAD is set to 0.3 inverse angstroms.
109 : The solvent density, that by default is set to 0.334 electrons per cubic angstrom (bulk water), can be modified
110 : using the SOLVDENS keyword.
111 :
112 : The ABSOLUTE flag can be used in order to calculate intensities in the absolute scale. It is only available for
113 : the ATOMISTIC scheme and cannot be used with SCALE_EXPINT.
114 :
115 : By default SAXS is calculated using Debye on CPU, by adding the GPU flag it is possible to solve the equation on
116 : a GPU if the ARRAYFIRE libraries are installed and correctly linked.
117 : \ref METAINFERENCE can be activated using DOSCORE and the other relevant keywords.
118 :
119 : \par Examples
120 : in the following example the SAXS intensities are calculated using single-bead per residue approximation, with a
121 : SASA threshold of 1 square nanometer and a solvation term of 0.04. Each experimental intensity is divided by
122 : 1.4002, which is the corresponding theoretical intensity value at q = 0. The form factors are selected according
123 : to the PDB file specified by TEMPLATE keyword.
124 :
125 : \plumedfile
126 : MOLINFO STRUCTURE=template_AA.pdb
127 :
128 : SAXS ...
129 : LABEL=SAXS
130 : ATOMS=1-355
131 : ONEBEAD
132 : TEMPLATE=template_AA.pdb
133 : SOLVDENS=0.334
134 : SOLVATION_CORRECTION=0.04
135 : SOLVATION_STRIDE=1
136 : SASA_CUTOFF=1.0
137 : SCALE_EXPINT=1.4002
138 : QVALUE1=0.03 EXPINT1=1.0902
139 : QVALUE2=0.06 EXPINT2=0.790632
140 : QVALUE3=0.09 EXPINT3=0.453808
141 : QVALUE4=0.12 EXPINT4=0.254737
142 : QVALUE5=0.15 EXPINT5=0.154928
143 : QVALUE6=0.18 EXPINT6=0.0921503
144 : QVALUE7=0.21 EXPINT7=0.052633
145 : QVALUE8=0.24 EXPINT8=0.0276557
146 : QVALUE9=0.27 EXPINT9=0.0122775
147 : QVALUE10=0.30 EXPINT10=0.00880634
148 : ... SAXS
149 :
150 : PRINT ARG=(SAXS\.q-.*),(SAXS\.exp-.*) FILE=saxsdata STRIDE=1
151 :
152 : \endplumedfile
153 :
154 : */
155 : //+ENDPLUMEDOC
156 :
157 : //+PLUMEDOC ISDB_COLVAR SANS
158 : /*
159 : Calculates SANS intensity.
160 :
161 : SANS intensities are calculated for a set of scattering vectors using QVALUE keywords numbered from 1.
162 : Form factors are automatically assigned to atoms using the ATOMISTIC flag by reading a PDB file, by reading
163 : the scattering lengths with the PARAMETERS keyword from input or with the PARAMETERSFILE keyword or, alternatively,
164 : a ONEBEAD coarse-grained implementation is available.
165 :
166 : Both for ATOMISTIC and ONEBEAD the user must provide an all-atom PDB file via MOLINFO before the SANS instruction.
167 :
168 : ONEBEAD scheme consists in a single-bead per amino acid residue or three-bead for nucleic acid residue (one for
169 : the phosphate group, one for the pentose sugar, one for the nucleobase). PLUMED creates a virtual bead on which
170 : the SANS calculations are performed, centred on the COM of all atoms belonging to the bead. It is possible to
171 : account for the contribution of the solvation layer to the SANS intensity by adding a correction term for the
172 : solvent accessible beads only: the form factors of the amino acids / phosphate groups / pentose sugars /
173 : nucleobases with a SASA (computed via LCPO algorithm) greater than a threshold are corrected according to an
174 : electron density term. Both the surface cut-off threshold and the electron density term can be set by the user
175 : with the SASA_CUTOFF and SOLVATION_CORRECTION keywords. Moreover, SASA stride calculation can be modified using
176 : SOLVATION_STRIDE, which is set to 10 steps by default. The deuteration of the solvent-exposed residues is chosen
177 : with a probability equal to the deuterium concentration in the buffer. The deuterated residues are updated with a
178 : stride equal to SOLVATION_STRIDE. The fraction of deuterated water can be set with DEUTER_CONC, the default value
179 : is 0.
180 : ONEBEAD requires an additional PDB file to perform mapping conversion, which must be provided via TEMPLATE
181 : keyword. This PDB file should only include the atoms for which the SANS intensity will be computed.
182 : The AMBER OL3 (RNA) and OL15 (DNA) naming is required for nucleic acids.
183 : Two additional bead types are available for DNA and RNA besides phosphate group, pentose sugar, and nucleobase:
184 : - 5'-end pentose sugar capped with an hydroxyl moiety at C5' (the residue name in the PDB must be followed by "5",
185 : e.g., DC5 or C5 for cytosine in DNA and RNA, respectively);
186 : - 5'-phosphorylated end with an additional hydroxyl moiety at P (the residue name in the PDB must be followed by
187 : "T", e.g., DCT or CT for cytosine in DNA and RNA, respectively);
188 : - 3'-end pentose sugar capped with an hydroxyl moiety at C3' (the residue name in the PDB must be followed by "3",
189 : e.g., DC3 or C3 for cytosine in DNA and RNA, respectively).
190 : An additional bead type is available for proteins:
191 : - Cysteine residue involved in disulfide bridge (the residue in the PDB must be named CYX).
192 :
193 : PLEASE NOTE: at the moment, we DO NOT explicitly take into account deuterated residues in the ATOMISTIC
194 : representation, but we correct the solvent contribution via the DEUTER_CONC keyword.
195 :
196 : Experimental reference intensities can be added using the EXPINT keywords. All these values must be normalised
197 : to the SANS intensity at q = 0. To facilitate this operation, the SCALE_EXPINT keyword can be used to provide
198 : the intensity at q = 0. Each EXPINT is divided by SCALE_EXPINT.
199 : The maximum QVALUE for ONEBEAD is set to 0.3 inverse angstroms.
200 : The solvent density, that by default is set to 0.334 electrons per cubic angstrom (bulk water), can be modified
201 : using the SOLVDENS keyword.
202 :
203 : The ABSOLUTE flag can be used in order to calculate intensities in the absolute scale. It is only available for
204 : the ATOMISTIC scheme and cannot be used with SCALE_EXPINT.
205 :
206 : By default SANS is calculated using Debye on CPU, by adding the GPU flag it is possible to solve the equation on a
207 : GPU if the ARRAYFIRE libraries are installed and correctly linked.
208 : \ref METAINFERENCE can be activated using DOSCORE and the other relevant keywords.
209 :
210 : \par Examples
211 : in the following example the SANS intensities are calculated at atomistic resolution. The form factors are assigned
212 : according to the PDB file specified in the MOLINFO. Each experimental intensity is divided by 1.4002, which is the
213 : corresponding theoretical intensity value at q = 0. The deuterated water fraction is set to 48%.
214 :
215 : \plumedfile
216 : MOLINFO STRUCTURE=template_AA.pdb
217 :
218 : SANS ...
219 : LABEL=SANS
220 : ATOMS=1-355
221 : ATOMISTIC
222 : SCALE_EXPINT=1.4002
223 : DEUTER_CONC=0.48
224 : QVALUE1=0.03 EXPINT1=1.0902
225 : QVALUE2=0.06 EXPINT2=0.790632
226 : QVALUE3=0.09 EXPINT3=0.453808
227 : QVALUE4=0.12 EXPINT4=0.254737
228 : QVALUE5=0.15 EXPINT5=0.154928
229 : QVALUE6=0.18 EXPINT6=0.0921503
230 : QVALUE7=0.21 EXPINT7=0.052633
231 : QVALUE8=0.24 EXPINT8=0.0276557
232 : QVALUE9=0.27 EXPINT9=0.0122775
233 : QVALUE10=0.30 EXPINT10=0.00880634
234 : ... SANS
235 :
236 : PRINT ARG=(SANS\.q-.*),(SANS\.exp-.*) FILE=sansdata STRIDE=1
237 :
238 : \endplumedfile
239 :
240 : */
241 : //+ENDPLUMEDOC
242 :
243 : class SAXS :
244 : public MetainferenceBase {
245 : private:
246 : enum { H, C, N, O, P, S, NTT };
247 : enum { ALA_BB, ARG_BB, ARG_SC1, ARG_SC2, ASN_BB, ASN_SC1, ASP_BB, ASP_SC1, CYS_BB, CYS_SC1,
248 : GLN_BB, GLN_SC1, GLU_BB, GLU_SC1, GLY_BB, HIS_BB, HIS_SC1, HIS_SC2, HIS_SC3, ILE_BB,
249 : ILE_SC1, LEU_BB, LEU_SC1, LYS_BB, LYS_SC1, LYS_SC2, MET_BB, MET_SC1, PHE_BB, PHE_SC1,
250 : PHE_SC2, PHE_SC3, PRO_BB, PRO_SC1, SER_BB, SER_SC1, THR_BB, THR_SC1, TRP_BB, TRP_SC1,
251 : TRP_SC2, TRP_SC3, TRP_SC4, TYR_BB, TYR_SC1, TYR_SC2, TYR_SC3, VAL_BB, VAL_SC1, A_BB1,
252 : A_BB2, A_BB3, A_SC1, A_SC2, A_SC3, A_SC4, A_3TE, A_5TE, A_TE3, A_TE5, C_BB1, C_BB2,
253 : C_BB3, C_SC1, C_SC2, C_SC3, C_3TE, C_5TE, C_TE3, C_TE5, G_BB1, G_BB2, G_BB3, G_SC1,
254 : G_SC2, G_SC3, G_SC4, G_3TE, G_5TE, G_TE3, G_TE5, U_BB1, U_BB2, U_BB3, U_SC1, U_SC2,
255 : U_SC3, U_3TE, U_5TE, U_TE3, U_TE5, DA_BB1, DA_BB2, DA_BB3, DA_SC1, DA_SC2, DA_SC3,
256 : DA_SC4, DA_3TE, DA_5TE, DA_TE3, DA_TE5, DC_BB1, DC_BB2, DC_BB3, DC_SC1, DC_SC2, DC_SC3,
257 : DC_3TE, DC_5TE, DC_TE3, DC_TE5, DG_BB1, DG_BB2, DG_BB3, DG_SC1, DG_SC2, DG_SC3, DG_SC4,
258 : DG_3TE, DG_5TE, DG_TE3, DG_TE5, DT_BB1, DT_BB2, DT_BB3, DT_SC1, DT_SC2, DT_SC3, DT_3TE,
259 : DT_5TE, DT_TE3, DT_TE5, NMARTINI
260 : };
261 : enum { TRP,
262 : TYR,
263 : PHE,
264 : HIS,
265 : HIP,
266 : ARG,
267 : LYS,
268 : CYS,
269 : CYX,
270 : ASP,
271 : GLU,
272 : ILE,
273 : LEU,
274 : MET,
275 : ASN,
276 : PRO,
277 : GLN,
278 : SER,
279 : THR,
280 : VAL,
281 : ALA,
282 : GLY,
283 : BB_PO2,
284 : BB_PO3,
285 : BB_DNA,
286 : BB_DNA_5,
287 : BB_DNA_3,
288 : BB_RNA,
289 : BB_RNA_5,
290 : BB_RNA_3,
291 : BASE_A,
292 : BASE_C,
293 : BASE_T,
294 : BASE_G,
295 : BASE_U,
296 : NONEBEAD
297 : };
298 : struct SplineCoeffs {
299 : double a;
300 : double b;
301 : double c;
302 : double d;
303 : double x;
304 : };
305 : bool saxs;
306 : bool absolute;
307 : bool pbc;
308 : bool serial;
309 : bool gpu;
310 : bool onebead;
311 : bool resolution;
312 : bool isFirstStep;
313 : int deviceid;
314 : unsigned nres;
315 : std::vector<unsigned> atoi;
316 : std::vector<unsigned> atoms_per_bead;
317 : std::vector<double> atoms_masses;
318 : std::vector<double> q_list;
319 : std::vector<double> FF_rank;
320 : std::vector<std::vector<double> > FF_value_vacuum;
321 : std::vector<std::vector<double> > FF_value_solv;
322 : std::vector<std::vector<double> > FF_value_mixed;
323 : std::vector<std::vector<double> > FF_value;
324 : std::vector<std::vector<float> > FFf_value;
325 : // SANS:
326 : std::vector<std::vector<double> > FF_value_vacuum_H;
327 : std::vector<std::vector<double> > FF_value_solv_H;
328 : std::vector<std::vector<double> > FF_value_mixed_H;
329 : std::vector<std::vector<double> > FF_value_vacuum_D;
330 : std::vector<std::vector<double> > FF_value_mixed_D;
331 :
332 : std::vector<std::vector<double> > LCPOparam;
333 : std::vector<unsigned> residue_atom;
334 :
335 : double rho, rho_corr, sasa_cutoff;
336 : double deuter_conc;
337 : unsigned solv_stride;
338 : std::vector<double> Iq0_vac;
339 : std::vector<double> Iq0_solv;
340 : std::vector<double> Iq0_mix;
341 : double Iq0;
342 :
343 : // SANS:
344 : std::vector<double> Iq0_vac_H;
345 : std::vector<double> Iq0_solv_H;
346 : std::vector<double> Iq0_mix_H;
347 : std::vector<double> Iq0_vac_D;
348 : std::vector<double> Iq0_mix_D;
349 : unsigned int Nj;
350 : std::vector<std::vector<double> > qj_list;
351 : std::vector<std::vector<double> > Rij;
352 : std::vector<double> sigma_res;
353 :
354 : // Chebyshev polynomial coefficients for i0e(x) used for resolution function
355 : // values taken from cephes library
356 : const std::vector<double> A = {
357 : -4.41534164647933937950E-18,
358 : 3.33079451882223809783E-17,
359 : -2.43127984654795469359E-16,
360 : 1.71539128555513303061E-15,
361 : -1.16853328779934516808E-14,
362 : 7.67618549860493561688E-14,
363 : -4.85644678311192946090E-13,
364 : 2.95505266312963983461E-12,
365 : -1.72682629144155570723E-11,
366 : 9.67580903537323691224E-11,
367 : -5.18979560163526290666E-10,
368 : 2.65982372468238665035E-9,
369 : -1.30002500998624804212E-8,
370 : 6.04699502254191894932E-8,
371 : -2.67079385394061173391E-7,
372 : 1.11738753912010371815E-6,
373 : -4.41673835845875056359E-6,
374 : 1.64484480707288970893E-5,
375 : -5.75419501008210370398E-5,
376 : 1.88502885095841655729E-4,
377 : -5.76375574538582365885E-4,
378 : 1.63947561694133579842E-3,
379 : -4.32430999505057594430E-3,
380 : 1.05464603945949983183E-2,
381 : -2.37374148058994688156E-2,
382 : 4.93052842396707084878E-2,
383 : -9.49010970480476444210E-2,
384 : 1.71620901522208775349E-1,
385 : -3.04682672343198398683E-1,
386 : 6.76795274409476084995E-1
387 : };
388 : const std::vector<double> B = {
389 : -7.23318048787475395456E-18,
390 : -4.83050448594418207126E-18,
391 : 4.46562142029675999901E-17,
392 : 3.46122286769746109310E-17,
393 : -2.82762398051658348494E-16,
394 : -3.42548561967721913462E-16,
395 : 1.77256013305652638360E-15,
396 : 3.81168066935262242075E-15,
397 : -9.55484669882830764870E-15,
398 : -4.15056934728722208663E-14,
399 : 1.54008621752140982691E-14,
400 : 3.85277838274214270114E-13,
401 : 7.18012445138366623367E-13,
402 : -1.79417853150680611778E-12,
403 : -1.32158118404477131188E-11,
404 : -3.14991652796324136454E-11,
405 : 1.18891471078464383424E-11,
406 : 4.94060238822496958910E-10,
407 : 3.39623202570838634515E-9,
408 : 2.26666899049817806459E-8,
409 : 2.04891858946906374183E-7,
410 : 2.89137052083475648297E-6,
411 : 6.88975834691682398426E-5,
412 : 3.36911647825569408990E-3,
413 : 8.04490411014108831608E-1
414 : };
415 :
416 : void calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
417 : void calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
418 : void getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter);
419 : void getOnebeadparam(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac, std::vector<std::vector<long double> > ¶meter_mix, std::vector<std::vector<long double> > ¶meter_solv, const std::vector<unsigned> & residue_atom);
420 : unsigned getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms);
421 : double calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho);
422 : std::map<std::string, std::vector<double> > setupLCPOparam();
423 : void readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms);
424 : void calcNlist(std::vector<std::vector<int> > &Nlist);
425 : void sasa_calculate(std::vector<bool> &solv_res);
426 : // SANS:
427 : void getOnebeadparam_sansH(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac_H, std::vector<std::vector<long double> > ¶meter_mix_H, std::vector<std::vector<long double> > ¶meter_solv_H);
428 : void getOnebeadparam_sansD(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac_D, std::vector<std::vector<long double> > ¶meter_mix_D);
429 : double calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc);
430 : void resolution_function();
431 : std::vector<SplineCoeffs> spline_coeffs(std::vector<double> &x, std::vector<double> &y);
432 : inline double interpolation(std::vector<SplineCoeffs> &coeffs, double x);
433 : inline double i0e(double x);
434 : double chbevl(double x, const std::vector<double> &coeffs);
435 :
436 : public:
437 : static void registerKeywords( Keywords& keys );
438 : explicit SAXS(const ActionOptions&);
439 : void calculate() override;
440 : void update() override;
441 : };
442 :
443 : PLUMED_REGISTER_ACTION(SAXS,"SAXS")
444 : PLUMED_REGISTER_ACTION(SAXS,"SANS")
445 :
446 48 : void SAXS::registerKeywords(Keywords& keys) {
447 48 : MetainferenceBase::registerKeywords(keys);
448 48 : keys.addFlag("NOPBC",false,"Ignore the periodic boundary conditions when calculating distances");
449 48 : keys.addFlag("SERIAL",false,"Perform the calculation in serial - for debug purpose");
450 48 : keys.add("compulsory","DEVICEID","-1","Identifier of the GPU to be used");
451 48 : keys.addFlag("GPU",false,"Calculate SAXS using ARRAYFIRE on an accelerator device");
452 48 : keys.addFlag("ABSOLUTE",false,"Absolute intensity: the intensities for each q-value are not normalised for the intensity at q=0.");
453 48 : keys.addFlag("ATOMISTIC",false,"Calculate SAXS for an atomistic model");
454 48 : keys.addFlag("MARTINI",false,"Calculate SAXS for a Martini model");
455 48 : keys.addFlag("ONEBEAD",false,"calculate SAXS for a single bead model");
456 48 : keys.add("compulsory","TEMPLATE","template.pdb","A PDB file is required for ONEBEAD mapping");
457 48 : keys.add("atoms","ATOMS","The atoms to be included in the calculation, e.g. the whole protein");
458 48 : keys.add("numbered","QVALUE","Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ...");
459 48 : keys.add("numbered","PARAMETERS","Used parameter Keywords like PARAMETERS1, PARAMETERS2. These are used to calculate the form factor for the \\f$i\\f$th atom/bead");
460 48 : keys.add("optional","PARAMETERSFILE","Read the PARAMETERS from a file");
461 48 : keys.add("compulsory","DEUTER_CONC","0.","Fraction of deuterated solvent");
462 48 : keys.add("compulsory","SOLVDENS","0.334","Density of the solvent to be used for the correction of atomistic form factors");
463 48 : keys.add("compulsory","SOLVATION_CORRECTION","0.0","Solvation layer electron density correction (ONEBEAD only)");
464 48 : keys.add("compulsory","SASA_CUTOFF","1.0","SASA value to consider a residue as exposed to the solvent (ONEBEAD only)");
465 48 : keys.add("numbered","EXPINT","Add an experimental value for each q value");
466 48 : keys.add("numbered","SIGMARES","Variance of Gaussian distribution describing the deviation in the scattering angle for each q value");
467 48 : keys.add("compulsory","N","10","Number of points in the resolution function integral");
468 48 : keys.add("compulsory","SOLVATION_STRIDE","10","Number of steps between every new residues solvation estimation via LCPO (ONEBEAD only)");
469 48 : keys.add("compulsory","SCALE_EXPINT","1.0","Scaling value for experimental data normalization");
470 96 : keys.addOutputComponent("q","default","scalar","The # SAXS of q");
471 96 : keys.addOutputComponent("exp","EXPINT","scalar","The # experimental intensity");
472 48 : }
473 :
474 44 : SAXS::SAXS(const ActionOptions&ao):
475 : PLUMED_METAINF_INIT(ao),
476 44 : saxs(true),
477 44 : absolute(false),
478 44 : pbc(true),
479 44 : serial(false),
480 44 : gpu(false),
481 44 : onebead(false),
482 44 : isFirstStep(true),
483 44 : deviceid(-1) {
484 44 : if( getName().find("SAXS")!=std::string::npos) {
485 30 : saxs=true;
486 14 : } else if( getName().find("SANS")!=std::string::npos) {
487 14 : saxs=false;
488 : }
489 :
490 : std::vector<AtomNumber> atoms;
491 88 : parseAtomList("ATOMS",atoms);
492 44 : unsigned size = atoms.size();
493 :
494 44 : parseFlag("SERIAL",serial);
495 :
496 44 : bool nopbc=!pbc;
497 44 : parseFlag("NOPBC",nopbc);
498 44 : pbc=!nopbc;
499 44 : if(pbc) {
500 16 : log.printf(" using periodic boundary conditions\n");
501 : } else {
502 28 : log.printf(" without periodic boundary conditions\n");
503 : }
504 :
505 44 : parseFlag("GPU",gpu);
506 : #ifndef __PLUMED_HAS_ARRAYFIRE
507 44 : if(gpu) {
508 0 : error("To use the GPU mode PLUMED must be compiled with ARRAYFIRE");
509 : }
510 : #endif
511 :
512 44 : parse("DEVICEID",deviceid);
513 : #ifdef __PLUMED_HAS_ARRAYFIRE
514 : if(gpu&&comm.Get_rank()==0) {
515 : // if not set try to check the one set by the API
516 : if(deviceid==-1) {
517 : deviceid=plumed.getGpuDeviceId();
518 : }
519 : // if still not set use 0
520 : if(deviceid==-1) {
521 : deviceid=0;
522 : }
523 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
524 : af::setDevice(afcu::getNativeId(deviceid));
525 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
526 : af::setDevice(afcl::getNativeId(deviceid));
527 : #else
528 : af::setDevice(deviceid);
529 : #endif
530 : af::info();
531 : }
532 : #endif
533 :
534 44 : bool atomistic=false;
535 44 : parseFlag("ATOMISTIC",atomistic);
536 44 : if(atomistic) {
537 12 : log.printf(" using ATOMISTIC form factors\n");
538 : }
539 44 : bool martini=false;
540 44 : parseFlag("MARTINI",martini);
541 44 : if(martini) {
542 8 : log.printf(" using MARTINI form factors\n");
543 : }
544 44 : onebead=false;
545 44 : parseFlag("ONEBEAD",onebead);
546 44 : if(onebead) {
547 16 : log.printf(" using ONEBEAD form factors\n");
548 : }
549 : bool fromfile=false;
550 : std::string parametersfile;
551 88 : parse("PARAMETERSFILE",parametersfile);
552 44 : if (parametersfile.length() != 0) {
553 : fromfile=true;
554 : }
555 : if(fromfile) {
556 4 : log.printf(" will read form factors from file\n");
557 : }
558 44 : parseFlag("ABSOLUTE",absolute);
559 :
560 44 : if(martini&&atomistic) {
561 0 : error("You cannot use MARTINI and ATOMISTIC at the same time");
562 : }
563 44 : if(martini&&onebead) {
564 0 : error("You cannot use MARTINI and ONEBEAD at the same time");
565 : }
566 44 : if(onebead&&atomistic) {
567 0 : error("You cannot use ONEBEAD and ATOMISTIC at the same time");
568 : }
569 44 : if((martini)&&(!saxs)) {
570 0 : error("MARTINI cannot be used with SANS");
571 : }
572 44 : if((fromfile)&&((atomistic)||(martini)||(onebead))) {
573 0 : error("You cannot read parameters from file and use ATOMISTIC/MARTINI/ONEBEAD");
574 : }
575 :
576 : unsigned ntarget=0;
577 : for(unsigned i=0;; ++i) {
578 : double t_list;
579 976 : if( !parseNumbered( "QVALUE", i+1, t_list) ) {
580 : break;
581 : }
582 444 : if(t_list<=0.) {
583 0 : error("QVALUE cannot be less or equal to zero!\n");
584 : }
585 444 : if(onebead&&t_list>0.3) {
586 0 : error("ONEBEAD mapping QVALUE must be smaller or equal to 0.3");
587 : }
588 444 : q_list.push_back(t_list);
589 444 : ntarget++;
590 444 : }
591 : const unsigned numq = ntarget;
592 :
593 488 : for(unsigned i=0; i<numq; ++i) {
594 444 : if(q_list[i]==0.) {
595 0 : error("it is not possible to set q=0\n");
596 : }
597 444 : if(i>0&&q_list[i]<q_list[i-1]) {
598 0 : error("QVALUE must be in ascending order");
599 : }
600 444 : log.printf(" my q: %lf \n",q_list[i]);
601 : }
602 :
603 44 : rho = 0.334;
604 44 : parse("SOLVDENS", rho);
605 44 : log.printf(" Solvent density: %lf\n", rho);
606 :
607 44 : double scale_expint=1.;
608 44 : parse("SCALE_EXPINT",scale_expint);
609 :
610 44 : if((!atomistic&&absolute)||(absolute&&scale_expint!=1)) {
611 0 : error("ABSOLUTE can be used only combined with ATOMISTIC without SCALE_EXPINT");
612 : }
613 44 : if(atomistic) {
614 24 : log.printf(" Scale for intensities: %s\n", absolute ? "absolute" : "normalised");
615 : }
616 :
617 44 : double correction = 0.00;
618 44 : parse("SOLVATION_CORRECTION", correction);
619 44 : rho_corr=rho-correction;
620 44 : if(onebead) {
621 16 : log.printf(" Solvation density contribution: %lf\n", correction);
622 : }
623 44 : if((atomistic||martini||fromfile)&&(rho_corr!=rho)) {
624 0 : log.printf(" Solvation density contribution is taken into account in ONEBEAD only\n");
625 : }
626 :
627 44 : solv_stride = 10;
628 44 : parse("SOLVATION_STRIDE", solv_stride);
629 44 : if(solv_stride < 1.) {
630 0 : error("SOLVATION_STRIDE must be greater than 0");
631 : }
632 44 : if(onebead&&(rho_corr!=rho)) {
633 12 : log.printf(" SASA calculation stride: %u\n", solv_stride);
634 : }
635 :
636 44 : sasa_cutoff = 1.0;
637 44 : parse("SASA_CUTOFF", sasa_cutoff);
638 44 : if(sasa_cutoff <= 0.) {
639 0 : error("SASA_CUTOFF must be greater than 0");
640 : }
641 :
642 44 : deuter_conc = 0.;
643 44 : parse("DEUTER_CONC", deuter_conc);
644 44 : if ((deuter_conc)&&(fromfile)) {
645 0 : error("DEUTER_CONC cannot be used with PARAMETERSFILE");
646 : }
647 44 : if(deuter_conc < 0. || deuter_conc > 1.) {
648 0 : error("DEUTER_CONC must be in 0-1 range");
649 : }
650 44 : if ((atomistic||onebead)&&(!saxs)) {
651 10 : log.printf(" Solvent deuterium fraction: %lf/1.000000\n", deuter_conc);
652 : }
653 :
654 44 : PDB pdb;
655 44 : if(onebead) {
656 : std::string template_name;
657 16 : parse("TEMPLATE",template_name);
658 16 : log.printf(" Template for ONEBEAD mapping conversion: %s\n", template_name.c_str());
659 16 : if( !pdb.read(template_name,usingNaturalUnits(),1.) ) {
660 0 : plumed_merror("missing input file " + template_name);
661 : }
662 : }
663 :
664 : // preliminary mapping for onebead representation
665 44 : if(onebead) {
666 16 : LCPOparam.resize(size);
667 16 : nres = getOnebeadMapping(pdb, atoms);
668 16 : if(saxs) {
669 10 : Iq0_vac.resize(nres);
670 10 : Iq0_solv.resize(nres);
671 10 : Iq0_mix.resize(nres);
672 : } else { // SANS
673 6 : Iq0_vac_H.resize(nres);
674 6 : Iq0_solv_H.resize(nres);
675 6 : Iq0_mix_H.resize(nres);
676 6 : Iq0_vac_D.resize(nres);
677 6 : Iq0_mix_D.resize(nres);
678 : }
679 16 : atoi.resize(nres);
680 : } else {
681 28 : atoi.resize(size);
682 : }
683 :
684 44 : Iq0=0;
685 : std::vector<std::vector<long double> > FF_tmp;
686 : std::vector<std::vector<long double> > FF_tmp_vac;
687 : std::vector<std::vector<long double> > FF_tmp_mix;
688 : std::vector<std::vector<long double> > FF_tmp_solv;
689 : // SANS
690 : std::vector<std::vector<long double> > FF_tmp_vac_H;
691 : std::vector<std::vector<long double> > FF_tmp_mix_H;
692 : std::vector<std::vector<long double> > FF_tmp_solv_H;
693 : std::vector<std::vector<long double> > FF_tmp_vac_D;
694 : std::vector<std::vector<long double> > FF_tmp_mix_D;
695 : std::vector<std::vector<long double> > parameter_H;
696 : std::vector<std::vector<long double> > parameter_D;
697 :
698 44 : if(!atomistic&&!martini&&!onebead&&!fromfile) { // read PARAMETERS from PLUMED file
699 4 : if (saxs) {
700 : // read in parameter std::vector
701 : std::vector<std::vector<long double> > parameter;
702 4 : parameter.resize(size);
703 : ntarget=0;
704 36 : for(unsigned i=0; i<size; ++i) {
705 64 : if( !parseNumberedVector( "PARAMETERS", i+1, parameter[i]) ) {
706 : break;
707 : }
708 32 : ntarget++;
709 : }
710 4 : if( ntarget!=size ) {
711 0 : error("found wrong number of parameter std::vectors");
712 : }
713 4 : FF_tmp.resize(numq,std::vector<long double>(size));
714 36 : for(unsigned i=0; i<size; ++i) {
715 32 : atoi[i]=i;
716 128 : for(unsigned k=0; k<numq; ++k) {
717 480 : for(unsigned j=0; j<parameter[i].size(); ++j) {
718 384 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
719 : }
720 : }
721 : }
722 36 : for(unsigned i=0; i<size; ++i) {
723 32 : Iq0+=parameter[i][0];
724 : }
725 4 : Iq0 *= Iq0;
726 4 : } else { // SANS
727 : std::vector<long double> parameter;
728 0 : parameter.resize(size);
729 : ntarget=0;
730 0 : for(unsigned i=0; i<size; ++i) {
731 0 : if( !parseNumbered( "PARAMETERS", i+1, parameter[i]) ) {
732 : break;
733 : }
734 0 : ntarget++;
735 : }
736 0 : if( ntarget!=size ) {
737 0 : error("found wrong number of parameter std::vectors");
738 : }
739 0 : FF_tmp.resize(numq,std::vector<long double>(size));
740 0 : for(unsigned i=0; i<size; ++i) {
741 0 : atoi[i]=i;
742 0 : for(unsigned k=0; k<numq; ++k) {
743 0 : FF_tmp[k][i]+= parameter[i];
744 : }
745 : }
746 0 : for(unsigned i=0; i<size; ++i) {
747 0 : Iq0+=parameter[i];
748 : }
749 0 : Iq0 *= Iq0;
750 : }
751 40 : } else if (fromfile) { // read PARAMETERS from user-provided file
752 4 : log.printf(" Reading PARAMETERS from file: %s\n", parametersfile.c_str());
753 4 : if (saxs) {
754 0 : FF_tmp.resize(numq,std::vector<long double>(size));
755 : std::vector<std::vector<long double> > parameter;
756 0 : parameter.resize(size);
757 :
758 0 : IFile ifile;
759 0 : ifile.open(parametersfile);
760 : std::string line;
761 :
762 : ntarget=0;
763 0 : while(ifile.getline(line)) {
764 0 : Tools::ltrim(line);
765 0 : Tools::trimComments(line);
766 0 : if (line.empty()) {
767 0 : continue;
768 : }
769 0 : if (ntarget > size) {
770 0 : error("PARAMETERSFILE has more PARAMETERS than there are scattering centers");
771 : }
772 : std::string num;
773 0 : Tools::convert(ntarget+1,num);
774 0 : std::vector<std::string> lineread{line};
775 0 : if (!Tools::parseVector(lineread, "PARAMETERS"+num, parameter[ntarget], -1)) {
776 0 : error("Missing PARAMETERS or PARAMETERS not sorted");
777 : }
778 : ntarget++;
779 0 : }
780 0 : if( ntarget!=size ) {
781 0 : error("found wrong number of PARAMETERS in file");
782 : }
783 :
784 0 : for(unsigned i=0; i<size; ++i) {
785 0 : atoi[i]=i;
786 0 : for(unsigned k=0; k<numq; ++k) {
787 0 : for(unsigned j=0; j<parameter[i].size(); ++j) {
788 0 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
789 : }
790 : }
791 : }
792 0 : for(unsigned i=0; i<size; ++i) {
793 0 : Iq0+=parameter[i][0];
794 : }
795 0 : Iq0 *= Iq0;
796 0 : } else { // SANS
797 4 : FF_tmp.resize(numq,std::vector<long double>(size));
798 :
799 4 : IFile ifile;
800 4 : ifile.open(parametersfile);
801 : std::string line;
802 :
803 : ntarget=0;
804 1084 : while(ifile.getline(line)) {
805 1080 : Tools::ltrim(line);
806 1080 : Tools::trimComments(line);
807 1080 : if (line.empty()) {
808 0 : continue;
809 : }
810 1080 : if (ntarget > size) {
811 0 : error("PARAMETERSFILE has more PARAMETERS than there are scattering centers");
812 : }
813 : std::string num;
814 1080 : Tools::convert(ntarget+1,num);
815 2160 : std::vector<std::string> lineread{line};
816 : long double scatlen;
817 1080 : atoi[ntarget]=ntarget;
818 2160 : if (!Tools::parse(lineread, "PARAMETERS"+num, scatlen, -1)) {
819 0 : error("Missing PARAMETERS or PARAMETERS not sorted");
820 : }
821 17280 : for(unsigned k=0; k<numq; ++k) {
822 16200 : FF_tmp[k][ntarget] = scatlen;
823 : }
824 : ntarget++;
825 1080 : }
826 4 : if( ntarget!=size ) {
827 0 : error("found wrong number of PARAMETERS in file");
828 : }
829 1084 : for(unsigned i=0; i<size; ++i) {
830 1080 : Iq0+=FF_tmp[0][i];
831 : }
832 4 : Iq0 *= Iq0;
833 4 : }
834 36 : } else if(onebead) {
835 16 : if(saxs) {
836 : // read built-in ONEBEAD parameters
837 10 : FF_tmp_vac.resize(numq,std::vector<long double>(NONEBEAD));
838 10 : FF_tmp_mix.resize(numq,std::vector<long double>(NONEBEAD));
839 10 : FF_tmp_solv.resize(numq,std::vector<long double>(NONEBEAD));
840 10 : std::vector<std::vector<long double> > parameter_vac(NONEBEAD);
841 10 : std::vector<std::vector<long double> > parameter_mix(NONEBEAD);
842 10 : std::vector<std::vector<long double> > parameter_solv(NONEBEAD);
843 10 : getOnebeadparam(pdb, atoms, parameter_vac, parameter_mix, parameter_solv, residue_atom);
844 360 : for(unsigned i=0; i<NONEBEAD; ++i) {
845 3500 : for(unsigned k=0; k<numq; ++k) {
846 25200 : for(unsigned j=0; j<parameter_vac[i].size(); ++j) {
847 22050 : FF_tmp_vac[k][i]+= parameter_vac[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
848 : }
849 25200 : for(unsigned j=0; j<parameter_mix[i].size(); ++j) {
850 22050 : FF_tmp_mix[k][i]+= parameter_mix[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
851 : }
852 25200 : for(unsigned j=0; j<parameter_solv[i].size(); ++j) {
853 22050 : FF_tmp_solv[k][i]+= parameter_solv[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
854 : }
855 : }
856 : }
857 2166 : for(unsigned i=0; i<nres; ++i) {
858 2156 : Iq0_vac[i]=parameter_vac[atoi[i]][0];
859 2156 : Iq0_mix[i]=parameter_mix[atoi[i]][0];
860 2156 : Iq0_solv[i]=parameter_solv[atoi[i]][0];
861 : }
862 10 : } else { // SANS
863 : // read built-in ONEBEAD parameters
864 6 : FF_tmp_vac_H.resize(numq,std::vector<long double>(NONEBEAD));
865 6 : FF_tmp_mix_H.resize(numq,std::vector<long double>(NONEBEAD));
866 6 : FF_tmp_solv_H.resize(numq,std::vector<long double>(NONEBEAD));
867 6 : FF_tmp_vac_D.resize(numq,std::vector<long double>(NONEBEAD));
868 6 : FF_tmp_mix_D.resize(numq,std::vector<long double>(NONEBEAD));
869 6 : std::vector<std::vector<long double> > parameter_vac_H(NONEBEAD);
870 6 : std::vector<std::vector<long double> > parameter_mix_H(NONEBEAD);
871 6 : std::vector<std::vector<long double> > parameter_solv_H(NONEBEAD);
872 6 : std::vector<std::vector<long double> > parameter_vac_D(NONEBEAD);
873 6 : std::vector<std::vector<long double> > parameter_mix_D(NONEBEAD);
874 6 : getOnebeadparam_sansH(pdb, atoms, parameter_vac_H, parameter_mix_H, parameter_solv_H);
875 6 : getOnebeadparam_sansD(pdb, atoms, parameter_vac_D, parameter_mix_D);
876 216 : for(unsigned i=0; i<NONEBEAD; ++i) {
877 2100 : for(unsigned k=0; k<numq; ++k) {
878 15120 : for(unsigned j=0; j<parameter_vac_H[i].size(); ++j) { // same number of parameters
879 13230 : FF_tmp_vac_H[k][i]+= parameter_vac_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
880 13230 : FF_tmp_vac_D[k][i]+= parameter_vac_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
881 : }
882 15120 : for(unsigned j=0; j<parameter_mix_H[i].size(); ++j) {
883 13230 : FF_tmp_mix_H[k][i]+= parameter_mix_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
884 13230 : FF_tmp_mix_D[k][i]+= parameter_mix_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
885 : }
886 15120 : for(unsigned j=0; j<parameter_solv_H[i].size(); ++j) {
887 13230 : FF_tmp_solv_H[k][i]+= parameter_solv_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
888 : }
889 : }
890 : }
891 1316 : for(unsigned i=0; i<nres; ++i) {
892 1310 : Iq0_vac_H[i]=parameter_vac_H[atoi[i]][0];
893 1310 : Iq0_mix_H[i]=parameter_mix_H[atoi[i]][0];
894 1310 : Iq0_solv_H[i]=parameter_solv_H[atoi[i]][0];
895 1310 : Iq0_vac_D[i]=parameter_vac_D[atoi[i]][0];
896 1310 : Iq0_mix_D[i]=parameter_mix_D[atoi[i]][0];
897 : }
898 6 : }
899 20 : } else if(martini) {
900 : // read built-in MARTINI parameters
901 16 : FF_tmp.resize(numq,std::vector<long double>(NMARTINI));
902 : std::vector<std::vector<long double> > parameter;
903 8 : parameter.resize(NMARTINI);
904 8 : getMartiniFFparam(atoms, parameter);
905 1072 : for(unsigned i=0; i<NMARTINI; ++i) {
906 17024 : for(unsigned k=0; k<numq; ++k) {
907 127680 : for(unsigned j=0; j<parameter[i].size(); ++j) {
908 111720 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
909 : }
910 : }
911 : }
912 8400 : for(unsigned i=0; i<size; ++i) {
913 8392 : Iq0+=parameter[atoi[i]][0];
914 : }
915 8 : Iq0 *= Iq0;
916 20 : } else if(atomistic) {
917 12 : FF_tmp.resize(numq,std::vector<long double>(NTT));
918 12 : if(saxs) {
919 8 : Iq0=calculateAFF(atoms, FF_tmp, rho);
920 : } else {
921 4 : Iq0=calculateAFFsans(atoms, FF_tmp, deuter_conc);
922 : }
923 12 : Iq0 *= Iq0;
924 : }
925 :
926 :
927 : std::vector<double> expint;
928 44 : expint.resize( numq );
929 : ntarget=0;
930 236 : for(unsigned i=0; i<numq; ++i) {
931 440 : if( !parseNumbered( "EXPINT", i+1, expint[i] ) ) {
932 : break;
933 : }
934 192 : ntarget++;
935 : }
936 236 : std::transform(expint.begin(), expint.begin() + ntarget, expint.begin(), [scale_expint](double x) {
937 192 : return x / scale_expint;
938 : });
939 : bool exp=false;
940 44 : if(ntarget!=numq && ntarget!=0) {
941 0 : error("found wrong number of EXPINT values");
942 : }
943 44 : if(ntarget==numq) {
944 : exp=true;
945 : }
946 44 : if(getDoScore()&&!exp) {
947 0 : error("with DOSCORE you need to set the EXPINT values");
948 : }
949 :
950 44 : sigma_res.resize( numq );
951 44 : resolution=false;
952 : ntarget=0;
953 104 : for(unsigned i=0; i<numq; ++i) {
954 200 : if( !parseNumbered( "SIGMARES", i+1, sigma_res[i] ) ) {
955 : break;
956 : }
957 60 : ntarget++;
958 : }
959 44 : if(ntarget!=numq && ntarget!=0) {
960 0 : error("found wrong number of SIGMARES values");
961 : }
962 44 : if(ntarget==numq) {
963 4 : resolution=true;
964 : }
965 :
966 44 : if(gpu && resolution) {
967 0 : error("Resolution function is not supported in GPUs");
968 : }
969 :
970 44 : Nj = 10;
971 44 : parse("N", Nj);
972 44 : if (Nj < 2) {
973 0 : error("N should be larger than 1");
974 : }
975 44 : if (resolution) {
976 4 : log.printf(" Resolution function with N: %d\n", Nj);
977 : }
978 :
979 44 : if(!gpu) {
980 44 : FF_rank.resize(numq);
981 : unsigned n_atom_types;
982 44 : if(onebead) {
983 16 : FF_value.resize(nres,std::vector<double>(numq));
984 : n_atom_types=NONEBEAD;
985 16 : if(saxs) {
986 10 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
987 10 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
988 20 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
989 : } else {
990 6 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
991 6 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
992 6 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
993 6 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
994 12 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
995 : }
996 : } else {
997 56 : FF_value.resize(size,std::vector<double>(numq));
998 : }
999 488 : for(unsigned k=0; k<numq; ++k) {
1000 444 : if(!onebead) {
1001 523104 : for(unsigned i=0; i<size; ++i) {
1002 522804 : FF_value[i][k] = static_cast<double>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
1003 : }
1004 523104 : for(unsigned i=0; i<size; ++i) {
1005 522804 : FF_rank[k] += FF_value[i][k]*FF_value[i][k];
1006 : }
1007 : } else {
1008 144 : if(saxs) {
1009 3240 : for(unsigned i=0; i<n_atom_types; ++i) {
1010 3150 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
1011 3150 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
1012 3150 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
1013 : }
1014 : } else { // SANS
1015 1944 : for(unsigned i=0; i<n_atom_types; ++i) {
1016 1890 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
1017 1890 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
1018 1890 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
1019 1890 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
1020 1890 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
1021 : }
1022 : }
1023 : }
1024 : }
1025 : } else {
1026 : unsigned n_atom_types;
1027 0 : if(onebead) {
1028 0 : FFf_value.resize(numq,std::vector<float>(nres));
1029 : n_atom_types=NONEBEAD;
1030 0 : if(saxs) {
1031 0 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
1032 0 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
1033 0 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
1034 : } else { // SANS
1035 0 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
1036 0 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
1037 0 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
1038 0 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
1039 0 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
1040 : }
1041 : } else {
1042 0 : FFf_value.resize(numq,std::vector<float>(size));
1043 : }
1044 0 : for(unsigned k=0; k<numq; ++k) {
1045 0 : if(!onebead) {
1046 0 : for(unsigned i=0; i<size; ++i) {
1047 0 : FFf_value[k][i] = static_cast<float>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
1048 : }
1049 : } else {
1050 0 : if(saxs) {
1051 0 : for(unsigned i=0; i<n_atom_types; ++i) {
1052 0 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
1053 0 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
1054 0 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
1055 : }
1056 : } else { // SANS
1057 0 : for(unsigned i=0; i<n_atom_types; ++i) {
1058 0 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
1059 0 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
1060 0 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
1061 0 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
1062 0 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
1063 : }
1064 : }
1065 : }
1066 : }
1067 : }
1068 :
1069 44 : if(!getDoScore()) {
1070 408 : for(unsigned i=0; i<numq; ++i) {
1071 : std::string num;
1072 372 : Tools::convert(i,num);
1073 744 : addComponentWithDerivatives("q-"+num);
1074 744 : componentIsNotPeriodic("q-"+num);
1075 : }
1076 36 : if(exp) {
1077 128 : for(unsigned i=0; i<numq; ++i) {
1078 : std::string num;
1079 120 : Tools::convert(i,num);
1080 240 : addComponent("exp-"+num);
1081 120 : componentIsNotPeriodic("exp-"+num);
1082 120 : Value* comp=getPntrToComponent("exp-"+num);
1083 120 : comp->set(expint[i]);
1084 : }
1085 : }
1086 : } else {
1087 80 : for(unsigned i=0; i<numq; ++i) {
1088 : std::string num;
1089 72 : Tools::convert(i,num);
1090 144 : addComponent("q-"+num);
1091 144 : componentIsNotPeriodic("q-"+num);
1092 : }
1093 80 : for(unsigned i=0; i<numq; ++i) {
1094 : std::string num;
1095 72 : Tools::convert(i,num);
1096 144 : addComponent("exp-"+num);
1097 72 : componentIsNotPeriodic("exp-"+num);
1098 72 : Value* comp=getPntrToComponent("exp-"+num);
1099 72 : comp->set(expint[i]);
1100 : }
1101 : }
1102 :
1103 : // convert units to nm^-1
1104 488 : for(unsigned i=0; i<numq; ++i) {
1105 444 : q_list[i]=q_list[i]*10.0; // factor 10 to convert from A^-1 to nm^-1
1106 444 : if (resolution) {
1107 60 : sigma_res[i]=sigma_res[i]*10.0;
1108 : }
1109 : }
1110 :
1111 : // compute resolution function after converting units
1112 44 : if (resolution) {
1113 4 : qj_list.resize(numq, std::vector<double>(Nj));
1114 4 : Rij.resize(numq, std::vector<double>(Nj));
1115 : // compute Rij and qj_list
1116 4 : resolution_function();
1117 : }
1118 :
1119 44 : log<<" Bibliography ";
1120 44 : if(onebead) {
1121 32 : log<<plumed.cite("Ballabio, Paissoni, Bollati, de Rosa, Capelli, Camilloni, J. Chem. Theory Comput., 19, 22, 8401-8413 (2023)");
1122 : }
1123 44 : if(martini) {
1124 16 : log<<plumed.cite("Niebling, Björling, Westenhoff, J. Appl. Crystallogr., 47, 1190–1198 (2014)");
1125 16 : log<<plumed.cite("Paissoni, Jussupow, Camilloni, J. Appl. Crystallogr., 52, 394-402 (2019)");
1126 : }
1127 44 : if(atomistic) {
1128 24 : log<<plumed.cite("Fraser, MacRae, Suzuki, J. Appl. Crystallogr., 11, 693–694 (1978)");
1129 24 : log<<plumed.cite("Brown, Fox, Maslen, O'Keefe, Willis, International Tables for Crystallography, C, 554–595 (International Union of Crystallography, 2006)");
1130 : }
1131 44 : if(resolution) {
1132 8 : log<<plumed.cite("Pedersen, Posselt, Mortensen, J. Appl. Crystallogr., 23, 321–333 (1990)");
1133 : }
1134 :
1135 88 : log<< plumed.cite("Bonomi, Camilloni, Bioinformatics, 33, 3999 (2017)");
1136 44 : log<<"\n";
1137 :
1138 44 : requestAtoms(atoms, false);
1139 :
1140 44 : if(getDoScore()) {
1141 8 : setParameters(expint);
1142 8 : Initialise(numq);
1143 : }
1144 44 : setDerivatives();
1145 44 : checkRead();
1146 88 : }
1147 :
1148 : // calculates SASA neighbor list
1149 12 : void SAXS::calcNlist(std::vector<std::vector<int> > &Nlist) {
1150 : unsigned natoms = getNumberOfAtoms();
1151 42680 : for(unsigned i = 0; i < natoms; ++i) {
1152 42668 : if (LCPOparam[i].size()>0) {
1153 36236236 : for (unsigned j = 0; j < i; ++j) {
1154 36216204 : if (LCPOparam[j].size()>0) {
1155 16741476 : double Delta_ij_mod = modulo(delta(getPosition(i), getPosition(j)))*10.;
1156 16741476 : double overlapD = LCPOparam[i][0]+LCPOparam[j][0];
1157 16741476 : if(Delta_ij_mod < overlapD) {
1158 391272 : Nlist.at(i).push_back(j);
1159 391272 : Nlist.at(j).push_back(i);
1160 : }
1161 : }
1162 : }
1163 : }
1164 : }
1165 :
1166 12 : }
1167 :
1168 : // calculates SASA according to LCPO algorithm
1169 12 : void SAXS::sasa_calculate(std::vector<bool> &solv_res) {
1170 : unsigned natoms = getNumberOfAtoms();
1171 12 : std::vector<std::vector<int> > Nlist(natoms);
1172 12 : calcNlist(Nlist);
1173 12 : std::vector<double> sasares(nres, 0.);
1174 :
1175 12 : #pragma omp parallel num_threads(OpenMP::getNumThreads())
1176 : {
1177 : std::vector<double> private_sasares(nres, 0.);
1178 : #pragma omp for
1179 : for (unsigned i = 0; i < natoms; ++i) {
1180 : if (LCPOparam[i].size() > 1 && LCPOparam[i][1] > 0.0) {
1181 : double Aij = 0.0;
1182 : double Aijk = 0.0;
1183 : double Ajk = 0.0;
1184 : double ri = LCPOparam[i][0];
1185 : double S1 = 4.*M_PI*ri*ri;
1186 : for (unsigned j = 0; j < Nlist[i].size(); ++j) {
1187 : double d_ij = modulo(delta( getPosition(i), getPosition(Nlist[i][j]) ))*10.;
1188 : double rj = LCPOparam[Nlist[i][j]][0];
1189 : double Aijt = (2.*M_PI*ri*(ri-d_ij/2.-((ri*ri-rj*rj)/(2.*d_ij))));
1190 : double Ajkt = 0.0;
1191 : for (unsigned k = 0; k < Nlist[Nlist[i][j]].size(); ++k) {
1192 : if (std::find (Nlist[i].begin(), Nlist[i].end(), Nlist[Nlist[i][j]][k]) != Nlist[i].end()) {
1193 : double d_jk = modulo(delta( getPosition(Nlist[i][j]), getPosition(Nlist[Nlist[i][j]][k]) ))*10.;
1194 : double rk = LCPOparam[Nlist[Nlist[i][j]][k]][0];
1195 : double sjk = (2.*M_PI*rj*(rj-d_jk/2.-((rj*rj-rk*rk)/(2.*d_jk))));
1196 : Ajkt += sjk;
1197 : }
1198 : }
1199 : Aijk += (Aijt * Ajkt);
1200 : Aij += Aijt;
1201 : Ajk += Ajkt;
1202 : }
1203 : double sasai = (LCPOparam[i][1]*S1+LCPOparam[i][2]*Aij+LCPOparam[i][3]*Ajk+LCPOparam[i][4]*Aijk);
1204 : if (sasai > 0) {
1205 : private_sasares[residue_atom[i]] += sasai / 100.0;
1206 : }
1207 : }
1208 : }
1209 : #pragma omp critical
1210 : {
1211 : // combining private_sasares into sasares
1212 : for (unsigned i = 0; i < nres; ++i) {
1213 : sasares[i] += private_sasares[i];
1214 : }
1215 : }
1216 : }
1217 2632 : for(unsigned i=0; i<nres; ++i) { // updating solv_res based on sasares
1218 2620 : if(sasares[i]>sasa_cutoff) {
1219 : solv_res[i] = 1;
1220 : } else {
1221 : solv_res[i] = 0;
1222 : }
1223 : }
1224 12 : }
1225 :
1226 0 : void SAXS::calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv) {
1227 : #ifdef __PLUMED_HAS_ARRAYFIRE
1228 : unsigned size;
1229 : if(onebead) {
1230 : size = nres;
1231 : } else {
1232 : size = getNumberOfAtoms();
1233 : }
1234 : const unsigned numq = q_list.size();
1235 :
1236 : std::vector<float> sum;
1237 : sum.resize(numq);
1238 :
1239 : std::vector<float> dd;
1240 : dd.resize(size*3*numq);
1241 :
1242 : // on gpu only the master rank run the calculation
1243 : if(comm.Get_rank()==0) {
1244 : std::vector<float> posi;
1245 : posi.resize(3*size);
1246 : #pragma omp parallel for num_threads(OpenMP::getNumThreads())
1247 : for (unsigned i=0; i<size; ++i) {
1248 : const Vector tmp = pos[i];
1249 : posi[3*i] = static_cast<float>(tmp[0]);
1250 : posi[3*i+1] = static_cast<float>(tmp[1]);
1251 : posi[3*i+2] = static_cast<float>(tmp[2]);
1252 : }
1253 :
1254 : // create array a and b containing atomic coordinates
1255 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
1256 : af::setDevice(afcu::getNativeId(deviceid));
1257 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
1258 : af::setDevice(afcl::getNativeId(deviceid));
1259 : #else
1260 : af::setDevice(deviceid);
1261 : #endif
1262 : // 3,size,1,1
1263 : af::array pos_a = af::array(3, size, &posi.front());
1264 : // size,3,1,1
1265 : pos_a = af::moddims(pos_a.T(), size, 3, 1);
1266 : // size,3,1,1
1267 : af::array pos_b = pos_a(af::span, af::span);
1268 : // size,1,3,1
1269 : pos_a = af::moddims(pos_a, size, 1, 3);
1270 : // 1,size,3,1
1271 : pos_b = af::moddims(pos_b, 1, size, 3);
1272 :
1273 : // size,size,3,1
1274 : af::array pos_a_t = af::tile(pos_a, 1, size, 1);
1275 : // size,size,3,1: for some reason we need this
1276 : pos_a_t = af::moddims(pos_a_t, size, size, 3);
1277 : // size,size,3,1
1278 : af::array pos_b_t = af::tile(pos_b, size, 1, 1);
1279 : // size,size,3,1: for some reason we need this
1280 : pos_b_t = af::moddims(pos_b_t, size, size, 3);
1281 : // size,size,3,1
1282 : af::array xyz_dist = pos_a_t - pos_b_t;
1283 : // size,size,1,1
1284 : af::array square = af::sum(xyz_dist*xyz_dist,2);
1285 : // size,size,1,1
1286 : af::array dist_sqrt = af::sqrt(square);
1287 : // replace the zero of square with one to avoid nan in the derivatives (the number does not matter because this are multiplied by zero)
1288 : af::replace(square,!(af::iszero(square)),1.);
1289 : // size,size,3,1
1290 : xyz_dist = xyz_dist / af::tile(square, 1, 1, 3);
1291 : // numq,1,1,1
1292 : af::array sum_device = af::constant(0, numq, f32);
1293 : // numq,size,3,1
1294 : af::array deriv_device = af::constant(0, numq, size, 3, f32);
1295 :
1296 : for (unsigned k=0; k<numq; ++k) {
1297 : // calculate FF matrix
1298 : // size,1,1,1
1299 : af::array AFF_value(size, &FFf_value[k].front());
1300 : // size,size,1,1
1301 : af::array FFdist_mod = af::tile(AFF_value(af::span), 1, size)*af::transpose(af::tile(AFF_value(af::span), 1, size));
1302 :
1303 : // get q
1304 : const float qvalue = static_cast<float>(q_list[k]);
1305 : // size,size,1,1
1306 : af::array dist_q = qvalue*dist_sqrt;
1307 : // size,size,1
1308 : af::array dist_sin = af::sin(dist_q)/dist_q;
1309 : af::replace(dist_sin,!(af::isNaN(dist_sin)),1.);
1310 : // 1,1,1,1
1311 : sum_device(k) = af::sum(af::flat(dist_sin)*af::flat(FFdist_mod));
1312 :
1313 : // size,size,1,1
1314 : af::array tmp = FFdist_mod*(dist_sin - af::cos(dist_q));
1315 : // size,size,3,1
1316 : af::array dd_all = af::tile(tmp, 1, 1, 3)*xyz_dist;
1317 : // it should become 1,size,3
1318 : deriv_device(k, af::span, af::span) = af::sum(dd_all,0);
1319 : }
1320 :
1321 : // read out results
1322 : sum_device.host(&sum.front());
1323 :
1324 : deriv_device = af::reorder(deriv_device, 2, 1, 0);
1325 : deriv_device = af::flat(deriv_device);
1326 : deriv_device.host(&dd.front());
1327 : }
1328 :
1329 : comm.Bcast(dd, 0);
1330 : comm.Bcast(sum, 0);
1331 :
1332 : for(unsigned k=0; k<numq; ++k) {
1333 : std::string num;
1334 : Tools::convert(k,num);
1335 : Value* val=getPntrToComponent("q-"+num);
1336 : val->set(sum[k]);
1337 : if(getDoScore()) {
1338 : setCalcData(k, sum[k]);
1339 : }
1340 : for(unsigned i=0; i<size; ++i) {
1341 : const unsigned di = k*size*3+i*3;
1342 : deriv[k*size+i] = Vector(2.*dd[di+0],2.*dd[di+1],2.*dd[di+2]);
1343 : }
1344 : }
1345 : #endif
1346 0 : }
1347 :
1348 204 : void SAXS::calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv) {
1349 : unsigned size;
1350 204 : if(onebead) {
1351 16 : size = nres;
1352 : } else {
1353 : size = getNumberOfAtoms();
1354 : }
1355 204 : const unsigned numq = q_list.size();
1356 :
1357 204 : unsigned stride = comm.Get_size();
1358 204 : unsigned rank = comm.Get_rank();
1359 204 : if(serial) {
1360 : stride = 1;
1361 : rank = 0;
1362 : }
1363 204 : std::vector<double> sum(numq,0);
1364 204 : unsigned nt=OpenMP::getNumThreads();
1365 204 : #pragma omp parallel num_threads(nt)
1366 : {
1367 : std::vector<Vector> omp_deriv(deriv.size());
1368 : std::vector<double> omp_sum(numq,0);
1369 : #pragma omp for nowait
1370 : for (unsigned i=rank; i<size-1; i+=stride) {
1371 : Vector posi = pos[i];
1372 : for (unsigned j=i+1; j<size ; ++j) {
1373 : Vector c_distances = delta(posi,pos[j]);
1374 : double m_distances = c_distances.modulo();
1375 : c_distances = c_distances/m_distances/m_distances;
1376 : for (unsigned k=0; k<numq; ++k) {
1377 : unsigned kdx=k*size;
1378 : double qdist = q_list[k]*m_distances;
1379 : double FFF = 2.*FF_value[i][k]*FF_value[j][k];
1380 : double tsq = std::sin(qdist)/qdist;
1381 : double tcq = std::cos(qdist);
1382 : double tmp = FFF*(tcq-tsq);
1383 : Vector dd = c_distances*tmp;
1384 : if(nt>1) {
1385 : omp_deriv[kdx+i] -=dd;
1386 : omp_deriv[kdx+j] +=dd;
1387 : omp_sum[k] += FFF*tsq;
1388 : } else {
1389 : deriv[kdx+i] -= dd;
1390 : deriv[kdx+j] += dd;
1391 : sum[k] += FFF*tsq;
1392 : }
1393 : }
1394 : }
1395 : }
1396 : #pragma omp critical
1397 : if(nt>1) {
1398 : for(unsigned i=0; i<deriv.size(); ++i) {
1399 : deriv[i]+=omp_deriv[i];
1400 : }
1401 : for(unsigned k=0; k<numq; ++k) {
1402 : sum[k]+=omp_sum[k];
1403 : }
1404 : }
1405 : }
1406 :
1407 204 : if(!serial) {
1408 200 : comm.Sum(&deriv[0][0], 3*deriv.size());
1409 200 : comm.Sum(&sum[0], numq);
1410 : }
1411 :
1412 204 : if (resolution) {
1413 : // get spline for scatering curve
1414 4 : std::vector<SplineCoeffs> scatt_coeffs = spline_coeffs(q_list, sum);
1415 :
1416 : // get spline for the derivatives
1417 : // copy the deriv to a new vector and zero deriv
1418 4 : std::vector<Vector> old_deriv(deriv);
1419 4 : memset(&deriv[0][0], 0.0, deriv.size() * sizeof deriv[0]);
1420 :
1421 4 : unsigned nt=OpenMP::getNumThreads();
1422 274 : for (unsigned i=rank; i<size; i+=stride) {
1423 270 : std::vector<double> deriv_i_x(numq);
1424 270 : std::vector<double> deriv_i_y(numq);
1425 270 : std::vector<double> deriv_i_z(numq);
1426 :
1427 : std::vector<SplineCoeffs> deriv_coeffs_x;
1428 : std::vector<SplineCoeffs> deriv_coeffs_y;
1429 : std::vector<SplineCoeffs> deriv_coeffs_z;
1430 4320 : for (unsigned k=0; k<numq; k++) {
1431 4050 : unsigned kdx = k*size;
1432 4050 : deriv_i_x[k] = old_deriv[kdx+i][0];
1433 4050 : deriv_i_y[k] = old_deriv[kdx+i][1];
1434 4050 : deriv_i_z[k] = old_deriv[kdx+i][2];
1435 : }
1436 270 : deriv_coeffs_x = spline_coeffs(q_list, deriv_i_x);
1437 270 : deriv_coeffs_y = spline_coeffs(q_list, deriv_i_y);
1438 270 : deriv_coeffs_z = spline_coeffs(q_list, deriv_i_z);
1439 :
1440 : // compute derivative with the smearing using the resolution function
1441 270 : #pragma omp parallel for num_threads(nt)
1442 : for (unsigned k=0; k<numq; k++) {
1443 : unsigned kdx = k*size;
1444 : double dq = qj_list[k][1] - qj_list[k][0];
1445 : for (unsigned j=0; j<Nj; j++) {
1446 : deriv[kdx+i][0] += Rij[k][j] * interpolation(deriv_coeffs_x, qj_list[k][j]) * dq;
1447 : deriv[kdx+i][1] += Rij[k][j] * interpolation(deriv_coeffs_y, qj_list[k][j]) * dq;
1448 : deriv[kdx+i][2] += Rij[k][j] * interpolation(deriv_coeffs_z, qj_list[k][j]) * dq;
1449 : }
1450 : }
1451 : }
1452 :
1453 4 : if(!serial) {
1454 4 : comm.Sum(&deriv[0][0], 3*deriv.size());
1455 : }
1456 :
1457 : // compute the smeared spectra using the resolution function
1458 4 : #pragma omp parallel for num_threads(nt)
1459 : for (unsigned i=0; i<numq; i++) {
1460 : sum[i] = 0.;
1461 : double dq = qj_list[i][1] - qj_list[i][0];
1462 : for (unsigned j=0; j<Nj; j++) {
1463 : sum[i] += Rij[i][j] * interpolation(scatt_coeffs, qj_list[i][j]) * dq;
1464 : }
1465 : }
1466 : }
1467 :
1468 2088 : for (unsigned k=0; k<numq; ++k) {
1469 1884 : sum[k]+=FF_rank[k];
1470 : std::string num;
1471 1884 : Tools::convert(k,num);
1472 1884 : Value* val=getPntrToComponent("q-"+num);
1473 1884 : val->set(sum[k]);
1474 1884 : if(getDoScore()) {
1475 1512 : setCalcData(k, sum[k]);
1476 : }
1477 : }
1478 204 : }
1479 :
1480 204 : void SAXS::calculate() {
1481 204 : if(pbc) {
1482 176 : makeWhole();
1483 : }
1484 :
1485 204 : const size_t size = getNumberOfAtoms();
1486 : const size_t numq = q_list.size();
1487 :
1488 : // these are the derivatives associated to the coarse graining
1489 204 : std::vector<Vector> aa_deriv(size);
1490 :
1491 : size_t beads_size = size;
1492 204 : if(onebead) {
1493 16 : beads_size = nres;
1494 : }
1495 : // these are the derivatives particle,q
1496 204 : std::vector<Vector> bd_deriv(numq*beads_size);
1497 :
1498 204 : std::vector<Vector> beads_pos(beads_size);
1499 204 : if(onebead) {
1500 3482 : for(unsigned resid=0; resid<nres; resid++) {
1501 : double sum_mass = 0.;
1502 3466 : Vector sum_pos = Vector(0,0,0);
1503 12278134 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1504 12274668 : if(residue_atom[atom_id] == resid) {
1505 56586 : aa_deriv[atom_id] = Vector(atoms_masses[atom_id],atoms_masses[atom_id],atoms_masses[atom_id]);
1506 56586 : sum_pos += atoms_masses[atom_id] * getPosition(atom_id); // getPosition(first_atom+atom_id)
1507 56586 : sum_mass += atoms_masses[atom_id];
1508 : }
1509 : }
1510 3466 : beads_pos[resid] = sum_pos/sum_mass;
1511 12278134 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1512 12274668 : if(residue_atom[atom_id] == resid) {
1513 56586 : aa_deriv[atom_id] /= sum_mass;
1514 : }
1515 : }
1516 : }
1517 : // SASA
1518 16 : std::vector<bool> solv_res(nres, 0);
1519 16 : if(saxs) {
1520 10 : if(getStep()%solv_stride == 0 || isFirstStep) {
1521 10 : isFirstStep = 0;
1522 10 : if(rho_corr!=rho) {
1523 6 : sasa_calculate(solv_res);
1524 : }
1525 10 : Iq0=0.;
1526 2166 : for(unsigned i=0; i<nres; ++i) {
1527 2156 : if(solv_res[i] == 1 ) {
1528 260 : Iq0 += std::sqrt((Iq0_vac[i]+(rho_corr*rho_corr)*Iq0_solv[i]-rho_corr*Iq0_mix[i]));
1529 : } else {
1530 1896 : Iq0 += std::sqrt((Iq0_vac[i]+(rho*rho)*Iq0_solv[i]-rho*Iq0_mix[i]));
1531 : }
1532 : }
1533 : // Form Factors
1534 100 : for(unsigned k=0; k<numq; ++k) {
1535 19494 : for(unsigned i=0; i<nres; ++i) {
1536 19404 : if(!gpu) {
1537 19404 : if(solv_res[i] == 0) { // buried
1538 17064 : FF_value[i][k] = std::sqrt(std::fabs(FF_value_vacuum[atoi[i]][k] + rho*rho*FF_value_solv[atoi[i]][k] - rho*FF_value_mixed[atoi[i]][k]))/Iq0;
1539 : } else { // surface
1540 2340 : FF_value[i][k] = std::sqrt(std::fabs(FF_value_vacuum[atoi[i]][k] + rho_corr*rho_corr*FF_value_solv[atoi[i]][k] - rho_corr*FF_value_mixed[atoi[i]][k]))/Iq0;
1541 : }
1542 : } else {
1543 0 : if(solv_res[i] == 0) { // buried
1544 0 : FFf_value[k][i] = static_cast<float>(std::sqrt(std::fabs(FF_value_vacuum[atoi[i]][k] + rho*rho*FF_value_solv[atoi[i]][k] - rho*FF_value_mixed[atoi[i]][k]))/Iq0);
1545 : } else { // surface
1546 0 : FFf_value[k][i] = static_cast<float>(std::sqrt(std::fabs(FF_value_vacuum[atoi[i]][k] + rho_corr*rho_corr*FF_value_solv[atoi[i]][k] - rho_corr*FF_value_mixed[atoi[i]][k]))/Iq0);
1547 : }
1548 : }
1549 : }
1550 : }
1551 10 : if(!gpu) {
1552 100 : for(unsigned k=0; k<numq; ++k) {
1553 90 : FF_rank[k]=0.;
1554 19494 : for(unsigned i=0; i<nres; ++i) {
1555 19404 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1556 : }
1557 : }
1558 : }
1559 : }
1560 : } else { // SANS
1561 6 : std::vector<bool> deut_res(nres, 0);
1562 6 : double solv_sc_length = 0.1*(0.580 + 2.*((1. - deuter_conc) * (-0.374) + deuter_conc * 0.667)); // per water electron (10 electrons)
1563 6 : double rho_sans = rho * solv_sc_length;
1564 6 : double rho_sans_corr = rho_corr * solv_sc_length;
1565 6 : if(getStep()%solv_stride == 0 || isFirstStep) {
1566 6 : isFirstStep = 0;
1567 6 : if(deuter_conc!=0.||rho != rho_corr) {
1568 6 : sasa_calculate(solv_res);
1569 : }
1570 6 : Iq0=0.;
1571 1316 : for(unsigned i=0; i<nres; ++i) {
1572 1310 : if(solv_res[i] == 1 ) {
1573 260 : if(rand()/RAND_MAX<deuter_conc) {
1574 0 : Iq0 += std::sqrt(std::fabs(Iq0_vac_D[i] + rho_sans_corr*rho_sans_corr*Iq0_solv_H[i] - rho_sans_corr*Iq0_mix_D[i]));
1575 : deut_res[i] = 1;
1576 : } else {
1577 260 : Iq0 += std::sqrt(std::fabs(Iq0_vac_H[i] + rho_sans_corr*rho_sans_corr*Iq0_solv_H[i] - rho_sans_corr*Iq0_mix_H[i]));
1578 : }
1579 : } else {
1580 1050 : Iq0 += std::sqrt(std::fabs(Iq0_vac_H[i] + rho_sans*rho_sans*Iq0_solv_H[i] - rho_sans*Iq0_mix_H[i]));
1581 : }
1582 : }
1583 : // Form Factors
1584 60 : for(unsigned k=0; k<numq; ++k) {
1585 11844 : for(unsigned i=0; i<nres; ++i) {
1586 11790 : if(!gpu) {
1587 11790 : if(solv_res[i] == 0) { // hydrogen
1588 9450 : FF_value[i][k] = std::sqrt(std::fabs(FF_value_vacuum_H[atoi[i]][k] + rho_sans*rho_sans*FF_value_solv_H[atoi[i]][k] - rho_sans*FF_value_mixed_H[atoi[i]][k]))/Iq0;
1589 : } else {
1590 2340 : if(deut_res[i] == 0) {
1591 2340 : FF_value[i][k] = std::sqrt(std::fabs(FF_value_vacuum_H[atoi[i]][k] + rho_sans_corr*rho_sans_corr*FF_value_solv_H[atoi[i]][k] - rho_sans_corr*FF_value_mixed_H[atoi[i]][k]))/Iq0;
1592 : } else {
1593 0 : FF_value[i][k] = std::sqrt(std::fabs(FF_value_vacuum_D[atoi[i]][k] + rho_sans_corr*rho_sans_corr*FF_value_solv_H[atoi[i]][k] - rho_sans_corr*FF_value_mixed_D[atoi[i]][k]))/Iq0;
1594 : }
1595 : }
1596 : } else {
1597 0 : if(solv_res[i] == 0) { // hydrogen
1598 0 : FFf_value[k][i] = static_cast<float>(std::sqrt(std::fabs(FF_value_vacuum_H[atoi[i]][k] + rho_sans*rho_sans*FF_value_solv_H[atoi[i]][k] - rho_sans*FF_value_mixed_H[atoi[i]][k]))/Iq0);
1599 : } else {
1600 0 : if(deut_res[i] == 0) {
1601 0 : FFf_value[k][i] = static_cast<float>(std::sqrt(std::fabs(FF_value_vacuum_H[atoi[i]][k] + rho_sans_corr*rho_sans_corr*FF_value_solv_H[atoi[i]][k] - rho_sans_corr*FF_value_mixed_H[atoi[i]][k]))/Iq0);
1602 : } else {
1603 0 : FFf_value[k][i] = static_cast<float>(std::sqrt(std::fabs(FF_value_vacuum_D[atoi[i]][k] + rho_sans_corr*rho_sans_corr*FF_value_solv_H[atoi[i]][k] - rho_sans_corr*FF_value_mixed_D[atoi[i]][k]))/Iq0);
1604 : }
1605 : }
1606 : }
1607 : }
1608 : }
1609 6 : if(!gpu) {
1610 60 : for(unsigned k=0; k<numq; ++k) {
1611 54 : FF_rank[k]=0.;
1612 11844 : for(unsigned i=0; i<nres; ++i) {
1613 11790 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1614 : }
1615 : }
1616 : }
1617 : }
1618 : }
1619 : // not ONEBEAD
1620 : } else {
1621 81024 : for(unsigned i=0; i<size; ++i) {
1622 80836 : beads_pos[i] = getPosition(i);
1623 : }
1624 376 : aa_deriv = std::vector<Vector>(size,(Vector(1,1,1)));
1625 : }
1626 :
1627 204 : if(gpu) {
1628 0 : calculate_gpu(beads_pos, bd_deriv);
1629 : } else {
1630 204 : calculate_cpu(beads_pos, bd_deriv);
1631 : }
1632 :
1633 204 : if(getDoScore()) {
1634 : /* Metainference */
1635 168 : double score = getScore();
1636 168 : setScore(score);
1637 : }
1638 :
1639 2088 : for (unsigned k=0; k<numq; ++k) {
1640 1884 : const unsigned kdx=k*beads_size;
1641 1884 : Tensor deriv_box;
1642 : Value* val;
1643 1884 : if(!getDoScore()) {
1644 : std::string num;
1645 372 : Tools::convert(k,num);
1646 372 : val=getPntrToComponent("q-"+num);
1647 :
1648 372 : if(onebead) {
1649 : unsigned atom_id=0;
1650 31338 : for(unsigned i=0; i<beads_size; ++i) {
1651 540468 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1652 509274 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1653 509274 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1654 509274 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1655 509274 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1656 509274 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1657 1018548 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1658 509274 : atom_id++;
1659 : }
1660 : }
1661 : } else {
1662 501636 : for(unsigned i=0; i<beads_size; ++i) {
1663 501408 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0], \
1664 501408 : bd_deriv[kdx+i][1], \
1665 501408 : bd_deriv[kdx+i][2]) );
1666 1002816 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0], \
1667 501408 : bd_deriv[kdx+i][1], \
1668 1002816 : bd_deriv[kdx+i][2]) );
1669 : }
1670 : }
1671 : } else {
1672 1512 : val=getPntrToComponent("score");
1673 1512 : if(onebead) {
1674 : unsigned atom_id=0;
1675 0 : for(unsigned i=0; i<beads_size; ++i) {
1676 0 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1677 0 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1678 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1679 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1680 0 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1681 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1682 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1683 0 : atom_id++;
1684 : }
1685 : }
1686 : } else {
1687 450828 : for(unsigned i=0; i<beads_size; ++i) {
1688 449316 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1689 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1690 449316 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1691 898632 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1692 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1693 898632 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1694 : }
1695 : }
1696 : }
1697 1884 : setBoxDerivatives(val, -deriv_box);
1698 : }
1699 204 : }
1700 :
1701 204 : void SAXS::update() {
1702 : // write status file
1703 204 : if(getWstride()>0&& (getStep()%getWstride()==0 || getCPT()) ) {
1704 44 : writeStatus();
1705 : }
1706 204 : }
1707 :
1708 16 : unsigned SAXS::getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms) {
1709 : std::vector<std::string> chains;
1710 16 : pdb.getChainNames( chains );
1711 : std::vector<std::vector<std::string> > AtomResidueName;
1712 :
1713 : // cycle over chains
1714 42 : for(unsigned i=0; i<chains.size(); ++i) {
1715 : unsigned start, end;
1716 : std::string errmsg;
1717 26 : pdb.getResidueRange(chains[i], start, end, errmsg);
1718 26 : AtomResidueName.resize(2);
1719 : // cycle over residues
1720 3346 : for(unsigned res=start; res<=end; res++) {
1721 3320 : std::string Rname = pdb.getResidueName(res, chains[i]);
1722 3320 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
1723 3320 : std::vector<AtomNumber> res_atoms = pdb.getAtomsInResidue(res, chains[i]);
1724 : std::vector<unsigned> tmp_residue_atom;
1725 3320 : tmp_residue_atom.resize(3,0);
1726 : // cycle over atoms
1727 59906 : for(unsigned a=0; a<res_atoms.size(); a++) {
1728 : // operations shared among all beads
1729 56586 : std::string Aname=pdb.getAtomName(res_atoms[a]);
1730 56586 : AtomResidueName[0].push_back(Aname);
1731 56586 : AtomResidueName[1].push_back(Rname);
1732 : char type;
1733 56586 : char first = Aname.at(0);
1734 : // We assume that element symbol is first letter, if not a number
1735 56586 : if (!isdigit(first)) {
1736 : type = first;
1737 : // otherwise is the second
1738 : } else {
1739 0 : type = Aname.at(1);
1740 : }
1741 56586 : if (type == 'H') {
1742 30060 : atoms_masses.push_back(1.008);
1743 : } else if(type == 'C') {
1744 16594 : atoms_masses.push_back(12.011);
1745 : } else if(type == 'N') {
1746 4416 : atoms_masses.push_back(14.007);
1747 : } else if(type == 'O') {
1748 5316 : atoms_masses.push_back(15.999);
1749 : } else if(type == 'S') {
1750 132 : atoms_masses.push_back(32.065);
1751 : } else if(type == 'P') {
1752 68 : atoms_masses.push_back(30.974);
1753 : } else {
1754 0 : error("Unknown element in mass extraction\n");
1755 : }
1756 113172 : if(pdb.allowedResidue("protein",Rname)) {
1757 54262 : residue_atom.push_back(atoms_per_bead.size());
1758 : } else {
1759 : // check for nucleic acids
1760 : // Pentose bead
1761 10450 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" || Aname=="O3'" ||
1762 8500 : Aname=="C3'" || Aname=="O2'" || Aname=="C2'" || Aname=="C1'" || Aname=="H5'" ||
1763 6628 : Aname=="H5''" || Aname=="H4'" || Aname=="H3'" || Aname=="H2'" || Aname=="H2''" ||
1764 5732 : Aname=="H2'2" || Aname=="H1'" || Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" ||
1765 7634 : Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ||
1766 : Aname=="H3T" ) {
1767 1262 : residue_atom.push_back(atoms_per_bead.size()+0);
1768 1262 : tmp_residue_atom[0]++;
1769 : }
1770 : // Nucleobase bead
1771 4686 : else if(Aname=="N1" || Aname=="N2" || Aname=="N3" || Aname=="N4" || Aname=="N6" ||
1772 4062 : Aname=="N7" || Aname=="N9" || Aname=="C2" || Aname=="C4" || Aname=="C5" ||
1773 2736 : Aname=="C6" || Aname=="C7" || Aname=="C8" || Aname=="O2" || Aname=="O4" ||
1774 1956 : Aname=="O6" || Aname=="H1" || Aname=="H2" || Aname=="H3" || Aname=="H5" ||
1775 1020 : Aname=="H6" || Aname=="H8" || Aname=="H21" || Aname=="H22" || Aname=="H41" ||
1776 2082 : Aname=="H42" || Aname=="H61" || Aname=="H62" || Aname=="H71" || Aname=="H72" ||
1777 : Aname=="H73" ) {
1778 858 : residue_atom.push_back(atoms_per_bead.size()+1);
1779 858 : tmp_residue_atom[1]++;
1780 : }
1781 : // PO bead
1782 204 : else if(Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" || Aname=="O1P" ||
1783 204 : Aname=="O2P" || Aname=="O3P" || Aname=="HP" || Aname=="HOP3" ) {
1784 204 : residue_atom.push_back(atoms_per_bead.size()+2);
1785 204 : tmp_residue_atom[2]++;
1786 : }
1787 : // error
1788 : else {
1789 0 : error("Atom name "+Aname+" cannot be indexed to any bead. Check the PDB.");
1790 : }
1791 : }
1792 : }
1793 6640 : if(pdb.allowedResidue("protein",Rname)) {
1794 3242 : atoms_per_bead.push_back(res_atoms.size());
1795 : } else {
1796 78 : atoms_per_bead.push_back(tmp_residue_atom[0]);
1797 78 : atoms_per_bead.push_back(tmp_residue_atom[1]);
1798 78 : if(tmp_residue_atom[2]>0) {
1799 68 : atoms_per_bead.push_back(tmp_residue_atom[2]);
1800 : }
1801 : }
1802 : }
1803 : }
1804 16 : readLCPOparam(AtomResidueName, atoms.size());
1805 16 : return atoms_per_bead.size();
1806 16 : }
1807 :
1808 8 : void SAXS::getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter) {
1809 8 : parameter[ALA_BB].push_back(9.045);
1810 8 : parameter[ALA_BB].push_back(-0.098114);
1811 8 : parameter[ALA_BB].push_back(7.54281);
1812 8 : parameter[ALA_BB].push_back(-1.97438);
1813 8 : parameter[ALA_BB].push_back(-8.32689);
1814 8 : parameter[ALA_BB].push_back(6.09318);
1815 8 : parameter[ALA_BB].push_back(-1.18913);
1816 :
1817 8 : parameter[ARG_BB].push_back(10.729);
1818 8 : parameter[ARG_BB].push_back(-0.0392574);
1819 8 : parameter[ARG_BB].push_back(1.15382);
1820 8 : parameter[ARG_BB].push_back(-0.155999);
1821 8 : parameter[ARG_BB].push_back(-2.43619);
1822 8 : parameter[ARG_BB].push_back(1.72922);
1823 8 : parameter[ARG_BB].push_back(-0.33799);
1824 :
1825 8 : parameter[ARG_SC1].push_back(-2.796);
1826 8 : parameter[ARG_SC1].push_back(0.472403);
1827 8 : parameter[ARG_SC1].push_back(8.07424);
1828 8 : parameter[ARG_SC1].push_back(4.37299);
1829 8 : parameter[ARG_SC1].push_back(-10.7398);
1830 8 : parameter[ARG_SC1].push_back(4.95677);
1831 8 : parameter[ARG_SC1].push_back(-0.725797);
1832 :
1833 8 : parameter[ARG_SC2].push_back(15.396);
1834 8 : parameter[ARG_SC2].push_back(0.0636736);
1835 8 : parameter[ARG_SC2].push_back(-1.258);
1836 8 : parameter[ARG_SC2].push_back(1.93135);
1837 8 : parameter[ARG_SC2].push_back(-4.45031);
1838 8 : parameter[ARG_SC2].push_back(2.49356);
1839 8 : parameter[ARG_SC2].push_back(-0.410721);
1840 :
1841 8 : parameter[ASN_BB].push_back(10.738);
1842 8 : parameter[ASN_BB].push_back(-0.0402162);
1843 8 : parameter[ASN_BB].push_back(1.03007);
1844 8 : parameter[ASN_BB].push_back(-0.254174);
1845 8 : parameter[ASN_BB].push_back(-2.12015);
1846 8 : parameter[ASN_BB].push_back(1.55535);
1847 8 : parameter[ASN_BB].push_back(-0.30963);
1848 :
1849 8 : parameter[ASN_SC1].push_back(9.249);
1850 8 : parameter[ASN_SC1].push_back(-0.0148678);
1851 8 : parameter[ASN_SC1].push_back(5.52169);
1852 8 : parameter[ASN_SC1].push_back(0.00853212);
1853 8 : parameter[ASN_SC1].push_back(-6.71992);
1854 8 : parameter[ASN_SC1].push_back(3.93622);
1855 8 : parameter[ASN_SC1].push_back(-0.64973);
1856 :
1857 8 : parameter[ASP_BB].push_back(10.695);
1858 8 : parameter[ASP_BB].push_back(-0.0410247);
1859 8 : parameter[ASP_BB].push_back(1.03656);
1860 8 : parameter[ASP_BB].push_back(-0.298558);
1861 8 : parameter[ASP_BB].push_back(-2.06064);
1862 8 : parameter[ASP_BB].push_back(1.53495);
1863 8 : parameter[ASP_BB].push_back(-0.308365);
1864 :
1865 8 : parameter[ASP_SC1].push_back(9.476);
1866 8 : parameter[ASP_SC1].push_back(-0.0254664);
1867 8 : parameter[ASP_SC1].push_back(5.57899);
1868 8 : parameter[ASP_SC1].push_back(-0.395027);
1869 8 : parameter[ASP_SC1].push_back(-5.9407);
1870 8 : parameter[ASP_SC1].push_back(3.48836);
1871 8 : parameter[ASP_SC1].push_back(-0.569402);
1872 :
1873 8 : parameter[CYS_BB].push_back(10.698);
1874 8 : parameter[CYS_BB].push_back(-0.0233493);
1875 8 : parameter[CYS_BB].push_back(1.18257);
1876 8 : parameter[CYS_BB].push_back(0.0684464);
1877 8 : parameter[CYS_BB].push_back(-2.792);
1878 8 : parameter[CYS_BB].push_back(1.88995);
1879 8 : parameter[CYS_BB].push_back(-0.360229);
1880 :
1881 8 : parameter[CYS_SC1].push_back(8.199);
1882 8 : parameter[CYS_SC1].push_back(-0.0261569);
1883 8 : parameter[CYS_SC1].push_back(6.79677);
1884 8 : parameter[CYS_SC1].push_back(-0.343845);
1885 8 : parameter[CYS_SC1].push_back(-5.03578);
1886 8 : parameter[CYS_SC1].push_back(2.7076);
1887 8 : parameter[CYS_SC1].push_back(-0.420714);
1888 :
1889 8 : parameter[GLN_BB].push_back(10.728);
1890 8 : parameter[GLN_BB].push_back(-0.0391984);
1891 8 : parameter[GLN_BB].push_back(1.09264);
1892 8 : parameter[GLN_BB].push_back(-0.261555);
1893 8 : parameter[GLN_BB].push_back(-2.21245);
1894 8 : parameter[GLN_BB].push_back(1.62071);
1895 8 : parameter[GLN_BB].push_back(-0.322325);
1896 :
1897 8 : parameter[GLN_SC1].push_back(8.317);
1898 8 : parameter[GLN_SC1].push_back(-0.229045);
1899 8 : parameter[GLN_SC1].push_back(12.6338);
1900 8 : parameter[GLN_SC1].push_back(-7.6719);
1901 8 : parameter[GLN_SC1].push_back(-5.8376);
1902 8 : parameter[GLN_SC1].push_back(5.53784);
1903 8 : parameter[GLN_SC1].push_back(-1.12604);
1904 :
1905 8 : parameter[GLU_BB].push_back(10.694);
1906 8 : parameter[GLU_BB].push_back(-0.0521961);
1907 8 : parameter[GLU_BB].push_back(1.11153);
1908 8 : parameter[GLU_BB].push_back(-0.491995);
1909 8 : parameter[GLU_BB].push_back(-1.86236);
1910 8 : parameter[GLU_BB].push_back(1.45332);
1911 8 : parameter[GLU_BB].push_back(-0.29708);
1912 :
1913 8 : parameter[GLU_SC1].push_back(8.544);
1914 8 : parameter[GLU_SC1].push_back(-0.249555);
1915 8 : parameter[GLU_SC1].push_back(12.8031);
1916 8 : parameter[GLU_SC1].push_back(-8.42696);
1917 8 : parameter[GLU_SC1].push_back(-4.66486);
1918 8 : parameter[GLU_SC1].push_back(4.90004);
1919 8 : parameter[GLU_SC1].push_back(-1.01204);
1920 :
1921 8 : parameter[GLY_BB].push_back(9.977);
1922 8 : parameter[GLY_BB].push_back(-0.0285799);
1923 8 : parameter[GLY_BB].push_back(1.84236);
1924 8 : parameter[GLY_BB].push_back(-0.0315192);
1925 8 : parameter[GLY_BB].push_back(-2.88326);
1926 8 : parameter[GLY_BB].push_back(1.87323);
1927 8 : parameter[GLY_BB].push_back(-0.345773);
1928 :
1929 8 : parameter[HIS_BB].push_back(10.721);
1930 8 : parameter[HIS_BB].push_back(-0.0379337);
1931 8 : parameter[HIS_BB].push_back(1.06028);
1932 8 : parameter[HIS_BB].push_back(-0.236143);
1933 8 : parameter[HIS_BB].push_back(-2.17819);
1934 8 : parameter[HIS_BB].push_back(1.58357);
1935 8 : parameter[HIS_BB].push_back(-0.31345);
1936 :
1937 8 : parameter[HIS_SC1].push_back(-0.424);
1938 8 : parameter[HIS_SC1].push_back(0.665176);
1939 8 : parameter[HIS_SC1].push_back(3.4369);
1940 8 : parameter[HIS_SC1].push_back(2.93795);
1941 8 : parameter[HIS_SC1].push_back(-5.18288);
1942 8 : parameter[HIS_SC1].push_back(2.12381);
1943 8 : parameter[HIS_SC1].push_back(-0.284224);
1944 :
1945 8 : parameter[HIS_SC2].push_back(5.363);
1946 8 : parameter[HIS_SC2].push_back(-0.0176945);
1947 8 : parameter[HIS_SC2].push_back(2.9506);
1948 8 : parameter[HIS_SC2].push_back(-0.387018);
1949 8 : parameter[HIS_SC2].push_back(-1.83951);
1950 8 : parameter[HIS_SC2].push_back(0.9703);
1951 8 : parameter[HIS_SC2].push_back(-0.1458);
1952 :
1953 8 : parameter[HIS_SC3].push_back(5.784);
1954 8 : parameter[HIS_SC3].push_back(-0.0293129);
1955 8 : parameter[HIS_SC3].push_back(2.74167);
1956 8 : parameter[HIS_SC3].push_back(-0.520875);
1957 8 : parameter[HIS_SC3].push_back(-1.62949);
1958 8 : parameter[HIS_SC3].push_back(0.902379);
1959 8 : parameter[HIS_SC3].push_back(-0.139957);
1960 :
1961 8 : parameter[ILE_BB].push_back(10.699);
1962 8 : parameter[ILE_BB].push_back(-0.0188962);
1963 8 : parameter[ILE_BB].push_back(1.217);
1964 8 : parameter[ILE_BB].push_back(0.242481);
1965 8 : parameter[ILE_BB].push_back(-3.13898);
1966 8 : parameter[ILE_BB].push_back(2.07916);
1967 8 : parameter[ILE_BB].push_back(-0.392574);
1968 :
1969 8 : parameter[ILE_SC1].push_back(-4.448);
1970 8 : parameter[ILE_SC1].push_back(1.20996);
1971 8 : parameter[ILE_SC1].push_back(11.5141);
1972 8 : parameter[ILE_SC1].push_back(6.98895);
1973 8 : parameter[ILE_SC1].push_back(-19.1948);
1974 8 : parameter[ILE_SC1].push_back(9.89207);
1975 8 : parameter[ILE_SC1].push_back(-1.60877);
1976 :
1977 8 : parameter[LEU_BB].push_back(10.692);
1978 8 : parameter[LEU_BB].push_back(-0.0414917);
1979 8 : parameter[LEU_BB].push_back(1.1077);
1980 8 : parameter[LEU_BB].push_back(-0.288062);
1981 8 : parameter[LEU_BB].push_back(-2.17187);
1982 8 : parameter[LEU_BB].push_back(1.59879);
1983 8 : parameter[LEU_BB].push_back(-0.318545);
1984 :
1985 8 : parameter[LEU_SC1].push_back(-4.448);
1986 8 : parameter[LEU_SC1].push_back(2.1063);
1987 8 : parameter[LEU_SC1].push_back(6.72381);
1988 8 : parameter[LEU_SC1].push_back(14.6954);
1989 8 : parameter[LEU_SC1].push_back(-23.7197);
1990 8 : parameter[LEU_SC1].push_back(10.7247);
1991 8 : parameter[LEU_SC1].push_back(-1.59146);
1992 :
1993 8 : parameter[LYS_BB].push_back(10.706);
1994 8 : parameter[LYS_BB].push_back(-0.0468629);
1995 8 : parameter[LYS_BB].push_back(1.09477);
1996 8 : parameter[LYS_BB].push_back(-0.432751);
1997 8 : parameter[LYS_BB].push_back(-1.94335);
1998 8 : parameter[LYS_BB].push_back(1.49109);
1999 8 : parameter[LYS_BB].push_back(-0.302589);
2000 :
2001 8 : parameter[LYS_SC1].push_back(-2.796);
2002 8 : parameter[LYS_SC1].push_back(0.508044);
2003 8 : parameter[LYS_SC1].push_back(7.91436);
2004 8 : parameter[LYS_SC1].push_back(4.54097);
2005 8 : parameter[LYS_SC1].push_back(-10.8051);
2006 8 : parameter[LYS_SC1].push_back(4.96204);
2007 8 : parameter[LYS_SC1].push_back(-0.724414);
2008 :
2009 8 : parameter[LYS_SC2].push_back(3.070);
2010 8 : parameter[LYS_SC2].push_back(-0.0101448);
2011 8 : parameter[LYS_SC2].push_back(4.67994);
2012 8 : parameter[LYS_SC2].push_back(-0.792529);
2013 8 : parameter[LYS_SC2].push_back(-2.09142);
2014 8 : parameter[LYS_SC2].push_back(1.02933);
2015 8 : parameter[LYS_SC2].push_back(-0.137787);
2016 :
2017 8 : parameter[MET_BB].push_back(10.671);
2018 8 : parameter[MET_BB].push_back(-0.0433724);
2019 8 : parameter[MET_BB].push_back(1.13784);
2020 8 : parameter[MET_BB].push_back(-0.40768);
2021 8 : parameter[MET_BB].push_back(-2.00555);
2022 8 : parameter[MET_BB].push_back(1.51673);
2023 8 : parameter[MET_BB].push_back(-0.305547);
2024 :
2025 8 : parameter[MET_SC1].push_back(5.85);
2026 8 : parameter[MET_SC1].push_back(-0.0485798);
2027 8 : parameter[MET_SC1].push_back(17.0391);
2028 8 : parameter[MET_SC1].push_back(-3.65327);
2029 8 : parameter[MET_SC1].push_back(-13.174);
2030 8 : parameter[MET_SC1].push_back(8.68286);
2031 8 : parameter[MET_SC1].push_back(-1.56095);
2032 :
2033 8 : parameter[PHE_BB].push_back(10.741);
2034 8 : parameter[PHE_BB].push_back(-0.0317275);
2035 8 : parameter[PHE_BB].push_back(1.15599);
2036 8 : parameter[PHE_BB].push_back(0.0276187);
2037 8 : parameter[PHE_BB].push_back(-2.74757);
2038 8 : parameter[PHE_BB].push_back(1.88783);
2039 8 : parameter[PHE_BB].push_back(-0.363525);
2040 :
2041 8 : parameter[PHE_SC1].push_back(-0.636);
2042 8 : parameter[PHE_SC1].push_back(0.527882);
2043 8 : parameter[PHE_SC1].push_back(6.77612);
2044 8 : parameter[PHE_SC1].push_back(3.18508);
2045 8 : parameter[PHE_SC1].push_back(-8.92826);
2046 8 : parameter[PHE_SC1].push_back(4.29752);
2047 8 : parameter[PHE_SC1].push_back(-0.65187);
2048 :
2049 8 : parameter[PHE_SC2].push_back(-0.424);
2050 8 : parameter[PHE_SC2].push_back(0.389174);
2051 8 : parameter[PHE_SC2].push_back(4.11761);
2052 8 : parameter[PHE_SC2].push_back(2.29527);
2053 8 : parameter[PHE_SC2].push_back(-4.7652);
2054 8 : parameter[PHE_SC2].push_back(1.97023);
2055 8 : parameter[PHE_SC2].push_back(-0.262318);
2056 :
2057 8 : parameter[PHE_SC3].push_back(-0.424);
2058 8 : parameter[PHE_SC3].push_back(0.38927);
2059 8 : parameter[PHE_SC3].push_back(4.11708);
2060 8 : parameter[PHE_SC3].push_back(2.29623);
2061 8 : parameter[PHE_SC3].push_back(-4.76592);
2062 8 : parameter[PHE_SC3].push_back(1.97055);
2063 8 : parameter[PHE_SC3].push_back(-0.262381);
2064 :
2065 8 : parameter[PRO_BB].push_back(11.434);
2066 8 : parameter[PRO_BB].push_back(-0.033323);
2067 8 : parameter[PRO_BB].push_back(0.472014);
2068 8 : parameter[PRO_BB].push_back(-0.290854);
2069 8 : parameter[PRO_BB].push_back(-1.81409);
2070 8 : parameter[PRO_BB].push_back(1.39751);
2071 8 : parameter[PRO_BB].push_back(-0.280407);
2072 :
2073 8 : parameter[PRO_SC1].push_back(-2.796);
2074 8 : parameter[PRO_SC1].push_back(0.95668);
2075 8 : parameter[PRO_SC1].push_back(6.84197);
2076 8 : parameter[PRO_SC1].push_back(6.43774);
2077 8 : parameter[PRO_SC1].push_back(-12.5068);
2078 8 : parameter[PRO_SC1].push_back(5.64597);
2079 8 : parameter[PRO_SC1].push_back(-0.825206);
2080 :
2081 8 : parameter[SER_BB].push_back(10.699);
2082 8 : parameter[SER_BB].push_back(-0.0325828);
2083 8 : parameter[SER_BB].push_back(1.20329);
2084 8 : parameter[SER_BB].push_back(-0.0674351);
2085 8 : parameter[SER_BB].push_back(-2.60749);
2086 8 : parameter[SER_BB].push_back(1.80318);
2087 8 : parameter[SER_BB].push_back(-0.346803);
2088 :
2089 8 : parameter[SER_SC1].push_back(3.298);
2090 8 : parameter[SER_SC1].push_back(-0.0366801);
2091 8 : parameter[SER_SC1].push_back(5.11077);
2092 8 : parameter[SER_SC1].push_back(-1.46774);
2093 8 : parameter[SER_SC1].push_back(-1.48421);
2094 8 : parameter[SER_SC1].push_back(0.800326);
2095 8 : parameter[SER_SC1].push_back(-0.108314);
2096 :
2097 8 : parameter[THR_BB].push_back(10.697);
2098 8 : parameter[THR_BB].push_back(-0.0242955);
2099 8 : parameter[THR_BB].push_back(1.24671);
2100 8 : parameter[THR_BB].push_back(0.146423);
2101 8 : parameter[THR_BB].push_back(-2.97429);
2102 8 : parameter[THR_BB].push_back(1.97513);
2103 8 : parameter[THR_BB].push_back(-0.371479);
2104 :
2105 8 : parameter[THR_SC1].push_back(2.366);
2106 8 : parameter[THR_SC1].push_back(0.0297604);
2107 8 : parameter[THR_SC1].push_back(11.9216);
2108 8 : parameter[THR_SC1].push_back(-9.32503);
2109 8 : parameter[THR_SC1].push_back(1.9396);
2110 8 : parameter[THR_SC1].push_back(0.0804861);
2111 8 : parameter[THR_SC1].push_back(-0.0302721);
2112 :
2113 8 : parameter[TRP_BB].push_back(10.689);
2114 8 : parameter[TRP_BB].push_back(-0.0265879);
2115 8 : parameter[TRP_BB].push_back(1.17819);
2116 8 : parameter[TRP_BB].push_back(0.0386457);
2117 8 : parameter[TRP_BB].push_back(-2.75634);
2118 8 : parameter[TRP_BB].push_back(1.88065);
2119 8 : parameter[TRP_BB].push_back(-0.360217);
2120 :
2121 8 : parameter[TRP_SC1].push_back(0.084);
2122 8 : parameter[TRP_SC1].push_back(0.752407);
2123 8 : parameter[TRP_SC1].push_back(5.3802);
2124 8 : parameter[TRP_SC1].push_back(4.09281);
2125 8 : parameter[TRP_SC1].push_back(-9.28029);
2126 8 : parameter[TRP_SC1].push_back(4.45923);
2127 8 : parameter[TRP_SC1].push_back(-0.689008);
2128 :
2129 8 : parameter[TRP_SC2].push_back(5.739);
2130 8 : parameter[TRP_SC2].push_back(0.0298492);
2131 8 : parameter[TRP_SC2].push_back(4.60446);
2132 8 : parameter[TRP_SC2].push_back(1.34463);
2133 8 : parameter[TRP_SC2].push_back(-5.69968);
2134 8 : parameter[TRP_SC2].push_back(2.84924);
2135 8 : parameter[TRP_SC2].push_back(-0.433781);
2136 :
2137 8 : parameter[TRP_SC3].push_back(-0.424);
2138 8 : parameter[TRP_SC3].push_back(0.388576);
2139 8 : parameter[TRP_SC3].push_back(4.11859);
2140 8 : parameter[TRP_SC3].push_back(2.29485);
2141 8 : parameter[TRP_SC3].push_back(-4.76255);
2142 8 : parameter[TRP_SC3].push_back(1.96849);
2143 8 : parameter[TRP_SC3].push_back(-0.262015);
2144 :
2145 8 : parameter[TRP_SC4].push_back(-0.424);
2146 8 : parameter[TRP_SC4].push_back(0.387685);
2147 8 : parameter[TRP_SC4].push_back(4.12153);
2148 8 : parameter[TRP_SC4].push_back(2.29144);
2149 8 : parameter[TRP_SC4].push_back(-4.7589);
2150 8 : parameter[TRP_SC4].push_back(1.96686);
2151 8 : parameter[TRP_SC4].push_back(-0.261786);
2152 :
2153 8 : parameter[TYR_BB].push_back(10.689);
2154 8 : parameter[TYR_BB].push_back(-0.0193526);
2155 8 : parameter[TYR_BB].push_back(1.18241);
2156 8 : parameter[TYR_BB].push_back(0.207318);
2157 8 : parameter[TYR_BB].push_back(-3.0041);
2158 8 : parameter[TYR_BB].push_back(1.99335);
2159 8 : parameter[TYR_BB].push_back(-0.376482);
2160 :
2161 8 : parameter[TYR_SC1].push_back(-0.636);
2162 8 : parameter[TYR_SC1].push_back(0.528902);
2163 8 : parameter[TYR_SC1].push_back(6.78168);
2164 8 : parameter[TYR_SC1].push_back(3.17769);
2165 8 : parameter[TYR_SC1].push_back(-8.93667);
2166 8 : parameter[TYR_SC1].push_back(4.30692);
2167 8 : parameter[TYR_SC1].push_back(-0.653993);
2168 :
2169 8 : parameter[TYR_SC2].push_back(-0.424);
2170 8 : parameter[TYR_SC2].push_back(0.388811);
2171 8 : parameter[TYR_SC2].push_back(4.11851);
2172 8 : parameter[TYR_SC2].push_back(2.29545);
2173 8 : parameter[TYR_SC2].push_back(-4.7668);
2174 8 : parameter[TYR_SC2].push_back(1.97131);
2175 8 : parameter[TYR_SC2].push_back(-0.262534);
2176 :
2177 8 : parameter[TYR_SC3].push_back(4.526);
2178 8 : parameter[TYR_SC3].push_back(-0.00381305);
2179 8 : parameter[TYR_SC3].push_back(5.8567);
2180 8 : parameter[TYR_SC3].push_back(-0.214086);
2181 8 : parameter[TYR_SC3].push_back(-4.63649);
2182 8 : parameter[TYR_SC3].push_back(2.52869);
2183 8 : parameter[TYR_SC3].push_back(-0.39894);
2184 :
2185 8 : parameter[VAL_BB].push_back(10.691);
2186 8 : parameter[VAL_BB].push_back(-0.0162929);
2187 8 : parameter[VAL_BB].push_back(1.24446);
2188 8 : parameter[VAL_BB].push_back(0.307914);
2189 8 : parameter[VAL_BB].push_back(-3.27446);
2190 8 : parameter[VAL_BB].push_back(2.14788);
2191 8 : parameter[VAL_BB].push_back(-0.403259);
2192 :
2193 8 : parameter[VAL_SC1].push_back(-3.516);
2194 8 : parameter[VAL_SC1].push_back(1.62307);
2195 8 : parameter[VAL_SC1].push_back(5.43064);
2196 8 : parameter[VAL_SC1].push_back(9.28809);
2197 8 : parameter[VAL_SC1].push_back(-14.9927);
2198 8 : parameter[VAL_SC1].push_back(6.6133);
2199 8 : parameter[VAL_SC1].push_back(-0.964977);
2200 :
2201 8 : parameter[A_BB1].push_back(32.88500000);
2202 8 : parameter[A_BB1].push_back(0.08339900);
2203 8 : parameter[A_BB1].push_back(-7.36054400);
2204 8 : parameter[A_BB1].push_back(2.19220300);
2205 8 : parameter[A_BB1].push_back(-3.56523400);
2206 8 : parameter[A_BB1].push_back(2.33326900);
2207 8 : parameter[A_BB1].push_back(-0.39785500);
2208 :
2209 8 : parameter[A_BB2].push_back(3.80600000);
2210 8 : parameter[A_BB2].push_back(-0.10727600);
2211 8 : parameter[A_BB2].push_back(9.58854100);
2212 8 : parameter[A_BB2].push_back(-6.23740500);
2213 8 : parameter[A_BB2].push_back(-0.48267300);
2214 8 : parameter[A_BB2].push_back(1.14119500);
2215 8 : parameter[A_BB2].push_back(-0.21385600);
2216 :
2217 8 : parameter[A_BB3].push_back(3.59400000);
2218 8 : parameter[A_BB3].push_back(0.04537300);
2219 8 : parameter[A_BB3].push_back(9.59178900);
2220 8 : parameter[A_BB3].push_back(-1.29202200);
2221 8 : parameter[A_BB3].push_back(-7.10851000);
2222 8 : parameter[A_BB3].push_back(4.05571200);
2223 8 : parameter[A_BB3].push_back(-0.63372500);
2224 :
2225 8 : parameter[A_SC1].push_back(6.67100000);
2226 8 : parameter[A_SC1].push_back(-0.00855300);
2227 8 : parameter[A_SC1].push_back(1.63222400);
2228 8 : parameter[A_SC1].push_back(-0.06466200);
2229 8 : parameter[A_SC1].push_back(-1.48694200);
2230 8 : parameter[A_SC1].push_back(0.78544600);
2231 8 : parameter[A_SC1].push_back(-0.12083500);
2232 :
2233 8 : parameter[A_SC2].push_back(5.95100000);
2234 8 : parameter[A_SC2].push_back(-0.02606600);
2235 8 : parameter[A_SC2].push_back(2.54399900);
2236 8 : parameter[A_SC2].push_back(-0.48436900);
2237 8 : parameter[A_SC2].push_back(-1.55357400);
2238 8 : parameter[A_SC2].push_back(0.86466900);
2239 8 : parameter[A_SC2].push_back(-0.13509000);
2240 :
2241 8 : parameter[A_SC3].push_back(11.39400000);
2242 8 : parameter[A_SC3].push_back(0.00871300);
2243 8 : parameter[A_SC3].push_back(-0.23891300);
2244 8 : parameter[A_SC3].push_back(0.48919400);
2245 8 : parameter[A_SC3].push_back(-1.75289400);
2246 8 : parameter[A_SC3].push_back(0.99267500);
2247 8 : parameter[A_SC3].push_back(-0.16291300);
2248 :
2249 8 : parameter[A_SC4].push_back(6.45900000);
2250 8 : parameter[A_SC4].push_back(0.01990600);
2251 8 : parameter[A_SC4].push_back(4.17970400);
2252 8 : parameter[A_SC4].push_back(0.97629900);
2253 8 : parameter[A_SC4].push_back(-5.03297800);
2254 8 : parameter[A_SC4].push_back(2.55576700);
2255 8 : parameter[A_SC4].push_back(-0.39150500);
2256 :
2257 8 : parameter[A_3TE].push_back(4.23000000);
2258 8 : parameter[A_3TE].push_back(0.00064800);
2259 8 : parameter[A_3TE].push_back(0.92124600);
2260 8 : parameter[A_3TE].push_back(0.08064300);
2261 8 : parameter[A_3TE].push_back(-0.39054400);
2262 8 : parameter[A_3TE].push_back(0.12429100);
2263 8 : parameter[A_3TE].push_back(-0.01122700);
2264 :
2265 8 : parameter[A_5TE].push_back(4.23000000);
2266 8 : parameter[A_5TE].push_back(0.00039300);
2267 8 : parameter[A_5TE].push_back(0.92305100);
2268 8 : parameter[A_5TE].push_back(0.07747500);
2269 8 : parameter[A_5TE].push_back(-0.38792100);
2270 8 : parameter[A_5TE].push_back(0.12323800);
2271 8 : parameter[A_5TE].push_back(-0.01106600);
2272 :
2273 8 : parameter[A_TE3].push_back(7.82400000);
2274 8 : parameter[A_TE3].push_back(-0.04881000);
2275 8 : parameter[A_TE3].push_back(8.21557900);
2276 8 : parameter[A_TE3].push_back(-0.89491400);
2277 8 : parameter[A_TE3].push_back(-9.54293700);
2278 8 : parameter[A_TE3].push_back(6.33122200);
2279 8 : parameter[A_TE3].push_back(-1.16672900);
2280 :
2281 8 : parameter[A_TE5].push_back(8.03600000);
2282 8 : parameter[A_TE5].push_back(0.01641200);
2283 8 : parameter[A_TE5].push_back(5.14902200);
2284 8 : parameter[A_TE5].push_back(0.83419700);
2285 8 : parameter[A_TE5].push_back(-7.59068300);
2286 8 : parameter[A_TE5].push_back(4.52063200);
2287 8 : parameter[A_TE5].push_back(-0.78260800);
2288 :
2289 8 : parameter[C_BB1].push_back(32.88500000);
2290 8 : parameter[C_BB1].push_back(0.08311100);
2291 8 : parameter[C_BB1].push_back(-7.35432100);
2292 8 : parameter[C_BB1].push_back(2.18610000);
2293 8 : parameter[C_BB1].push_back(-3.55788300);
2294 8 : parameter[C_BB1].push_back(2.32918700);
2295 8 : parameter[C_BB1].push_back(-0.39720000);
2296 :
2297 8 : parameter[C_BB2].push_back(3.80600000);
2298 8 : parameter[C_BB2].push_back(-0.10808100);
2299 8 : parameter[C_BB2].push_back(9.61612600);
2300 8 : parameter[C_BB2].push_back(-6.28595400);
2301 8 : parameter[C_BB2].push_back(-0.45187000);
2302 8 : parameter[C_BB2].push_back(1.13326000);
2303 8 : parameter[C_BB2].push_back(-0.21320300);
2304 :
2305 8 : parameter[C_BB3].push_back(3.59400000);
2306 8 : parameter[C_BB3].push_back(0.04484200);
2307 8 : parameter[C_BB3].push_back(9.61919800);
2308 8 : parameter[C_BB3].push_back(-1.33582800);
2309 8 : parameter[C_BB3].push_back(-7.07200400);
2310 8 : parameter[C_BB3].push_back(4.03952900);
2311 8 : parameter[C_BB3].push_back(-0.63098200);
2312 :
2313 8 : parameter[C_SC1].push_back(5.95100000);
2314 8 : parameter[C_SC1].push_back(-0.02911300);
2315 8 : parameter[C_SC1].push_back(2.59700400);
2316 8 : parameter[C_SC1].push_back(-0.55507700);
2317 8 : parameter[C_SC1].push_back(-1.56344600);
2318 8 : parameter[C_SC1].push_back(0.88956200);
2319 8 : parameter[C_SC1].push_back(-0.14061300);
2320 :
2321 8 : parameter[C_SC2].push_back(11.62100000);
2322 8 : parameter[C_SC2].push_back(0.01366100);
2323 8 : parameter[C_SC2].push_back(-0.25959200);
2324 8 : parameter[C_SC2].push_back(0.48918300);
2325 8 : parameter[C_SC2].push_back(-1.52550500);
2326 8 : parameter[C_SC2].push_back(0.83644100);
2327 8 : parameter[C_SC2].push_back(-0.13407300);
2328 :
2329 8 : parameter[C_SC3].push_back(5.01900000);
2330 8 : parameter[C_SC3].push_back(-0.03276100);
2331 8 : parameter[C_SC3].push_back(5.53776900);
2332 8 : parameter[C_SC3].push_back(-0.95105000);
2333 8 : parameter[C_SC3].push_back(-3.71130800);
2334 8 : parameter[C_SC3].push_back(2.16146000);
2335 8 : parameter[C_SC3].push_back(-0.34918600);
2336 :
2337 8 : parameter[C_3TE].push_back(4.23000000);
2338 8 : parameter[C_3TE].push_back(0.00057300);
2339 8 : parameter[C_3TE].push_back(0.92174800);
2340 8 : parameter[C_3TE].push_back(0.07964500);
2341 8 : parameter[C_3TE].push_back(-0.38965700);
2342 8 : parameter[C_3TE].push_back(0.12392500);
2343 8 : parameter[C_3TE].push_back(-0.01117000);
2344 :
2345 8 : parameter[C_5TE].push_back(4.23000000);
2346 8 : parameter[C_5TE].push_back(0.00071000);
2347 8 : parameter[C_5TE].push_back(0.92082800);
2348 8 : parameter[C_5TE].push_back(0.08150600);
2349 8 : parameter[C_5TE].push_back(-0.39127000);
2350 8 : parameter[C_5TE].push_back(0.12455900);
2351 8 : parameter[C_5TE].push_back(-0.01126300);
2352 :
2353 8 : parameter[C_TE3].push_back(7.82400000);
2354 8 : parameter[C_TE3].push_back(-0.05848300);
2355 8 : parameter[C_TE3].push_back(8.29319900);
2356 8 : parameter[C_TE3].push_back(-1.12563800);
2357 8 : parameter[C_TE3].push_back(-9.42197600);
2358 8 : parameter[C_TE3].push_back(6.35441700);
2359 8 : parameter[C_TE3].push_back(-1.18356900);
2360 :
2361 8 : parameter[C_TE5].push_back(8.03600000);
2362 8 : parameter[C_TE5].push_back(0.00493500);
2363 8 : parameter[C_TE5].push_back(4.92622000);
2364 8 : parameter[C_TE5].push_back(0.64810700);
2365 8 : parameter[C_TE5].push_back(-7.05100000);
2366 8 : parameter[C_TE5].push_back(4.26064400);
2367 8 : parameter[C_TE5].push_back(-0.74819100);
2368 :
2369 8 : parameter[G_BB1].push_back(32.88500000);
2370 8 : parameter[G_BB1].push_back(0.08325400);
2371 8 : parameter[G_BB1].push_back(-7.35736000);
2372 8 : parameter[G_BB1].push_back(2.18914800);
2373 8 : parameter[G_BB1].push_back(-3.56154800);
2374 8 : parameter[G_BB1].push_back(2.33120600);
2375 8 : parameter[G_BB1].push_back(-0.39752300);
2376 :
2377 8 : parameter[G_BB2].push_back(3.80600000);
2378 8 : parameter[G_BB2].push_back(-0.10788300);
2379 8 : parameter[G_BB2].push_back(9.60930800);
2380 8 : parameter[G_BB2].push_back(-6.27402500);
2381 8 : parameter[G_BB2].push_back(-0.46192700);
2382 8 : parameter[G_BB2].push_back(1.13737000);
2383 8 : parameter[G_BB2].push_back(-0.21383100);
2384 :
2385 8 : parameter[G_BB3].push_back(3.59400000);
2386 8 : parameter[G_BB3].push_back(0.04514500);
2387 8 : parameter[G_BB3].push_back(9.61234700);
2388 8 : parameter[G_BB3].push_back(-1.31542100);
2389 8 : parameter[G_BB3].push_back(-7.09150500);
2390 8 : parameter[G_BB3].push_back(4.04706200);
2391 8 : parameter[G_BB3].push_back(-0.63201000);
2392 :
2393 8 : parameter[G_SC1].push_back(6.67100000);
2394 8 : parameter[G_SC1].push_back(-0.00863200);
2395 8 : parameter[G_SC1].push_back(1.63252300);
2396 8 : parameter[G_SC1].push_back(-0.06567200);
2397 8 : parameter[G_SC1].push_back(-1.48680500);
2398 8 : parameter[G_SC1].push_back(0.78565600);
2399 8 : parameter[G_SC1].push_back(-0.12088900);
2400 :
2401 8 : parameter[G_SC2].push_back(11.39400000);
2402 8 : parameter[G_SC2].push_back(0.00912200);
2403 8 : parameter[G_SC2].push_back(-0.22869000);
2404 8 : parameter[G_SC2].push_back(0.49616400);
2405 8 : parameter[G_SC2].push_back(-1.75039000);
2406 8 : parameter[G_SC2].push_back(0.98649200);
2407 8 : parameter[G_SC2].push_back(-0.16141600);
2408 :
2409 8 : parameter[G_SC3].push_back(10.90100000);
2410 8 : parameter[G_SC3].push_back(0.02208700);
2411 8 : parameter[G_SC3].push_back(0.17032800);
2412 8 : parameter[G_SC3].push_back(0.73280800);
2413 8 : parameter[G_SC3].push_back(-1.95292000);
2414 8 : parameter[G_SC3].push_back(0.98357600);
2415 8 : parameter[G_SC3].push_back(-0.14790900);
2416 :
2417 8 : parameter[G_SC4].push_back(6.45900000);
2418 8 : parameter[G_SC4].push_back(0.02023700);
2419 8 : parameter[G_SC4].push_back(4.17655400);
2420 8 : parameter[G_SC4].push_back(0.98731800);
2421 8 : parameter[G_SC4].push_back(-5.04352800);
2422 8 : parameter[G_SC4].push_back(2.56059400);
2423 8 : parameter[G_SC4].push_back(-0.39234300);
2424 :
2425 8 : parameter[G_3TE].push_back(4.23000000);
2426 8 : parameter[G_3TE].push_back(0.00066300);
2427 8 : parameter[G_3TE].push_back(0.92118800);
2428 8 : parameter[G_3TE].push_back(0.08062700);
2429 8 : parameter[G_3TE].push_back(-0.39041600);
2430 8 : parameter[G_3TE].push_back(0.12419400);
2431 8 : parameter[G_3TE].push_back(-0.01120500);
2432 :
2433 8 : parameter[G_5TE].push_back(4.23000000);
2434 8 : parameter[G_5TE].push_back(0.00062800);
2435 8 : parameter[G_5TE].push_back(0.92133500);
2436 8 : parameter[G_5TE].push_back(0.08029900);
2437 8 : parameter[G_5TE].push_back(-0.39015300);
2438 8 : parameter[G_5TE].push_back(0.12411600);
2439 8 : parameter[G_5TE].push_back(-0.01119900);
2440 :
2441 8 : parameter[G_TE3].push_back(7.82400000);
2442 8 : parameter[G_TE3].push_back(-0.05177400);
2443 8 : parameter[G_TE3].push_back(8.34606700);
2444 8 : parameter[G_TE3].push_back(-1.02936300);
2445 8 : parameter[G_TE3].push_back(-9.55211900);
2446 8 : parameter[G_TE3].push_back(6.37776600);
2447 8 : parameter[G_TE3].push_back(-1.17898000);
2448 :
2449 8 : parameter[G_TE5].push_back(8.03600000);
2450 8 : parameter[G_TE5].push_back(0.00525100);
2451 8 : parameter[G_TE5].push_back(4.71070600);
2452 8 : parameter[G_TE5].push_back(0.66746900);
2453 8 : parameter[G_TE5].push_back(-6.72538700);
2454 8 : parameter[G_TE5].push_back(4.03644100);
2455 8 : parameter[G_TE5].push_back(-0.70605700);
2456 :
2457 8 : parameter[U_BB1].push_back(32.88500000);
2458 8 : parameter[U_BB1].push_back(0.08321400);
2459 8 : parameter[U_BB1].push_back(-7.35634900);
2460 8 : parameter[U_BB1].push_back(2.18826800);
2461 8 : parameter[U_BB1].push_back(-3.56047400);
2462 8 : parameter[U_BB1].push_back(2.33064700);
2463 8 : parameter[U_BB1].push_back(-0.39744000);
2464 :
2465 8 : parameter[U_BB2].push_back(3.80600000);
2466 8 : parameter[U_BB2].push_back(-0.10773100);
2467 8 : parameter[U_BB2].push_back(9.60099900);
2468 8 : parameter[U_BB2].push_back(-6.26131900);
2469 8 : parameter[U_BB2].push_back(-0.46668300);
2470 8 : parameter[U_BB2].push_back(1.13698100);
2471 8 : parameter[U_BB2].push_back(-0.21351600);
2472 :
2473 8 : parameter[U_BB3].push_back(3.59400000);
2474 8 : parameter[U_BB3].push_back(0.04544300);
2475 8 : parameter[U_BB3].push_back(9.59625900);
2476 8 : parameter[U_BB3].push_back(-1.29222200);
2477 8 : parameter[U_BB3].push_back(-7.11143200);
2478 8 : parameter[U_BB3].push_back(4.05687700);
2479 8 : parameter[U_BB3].push_back(-0.63382800);
2480 :
2481 8 : parameter[U_SC1].push_back(5.95100000);
2482 8 : parameter[U_SC1].push_back(-0.02924500);
2483 8 : parameter[U_SC1].push_back(2.59668700);
2484 8 : parameter[U_SC1].push_back(-0.56118700);
2485 8 : parameter[U_SC1].push_back(-1.56477100);
2486 8 : parameter[U_SC1].push_back(0.89265100);
2487 8 : parameter[U_SC1].push_back(-0.14130800);
2488 :
2489 8 : parameter[U_SC2].push_back(10.90100000);
2490 8 : parameter[U_SC2].push_back(0.02178900);
2491 8 : parameter[U_SC2].push_back(0.18839000);
2492 8 : parameter[U_SC2].push_back(0.72223100);
2493 8 : parameter[U_SC2].push_back(-1.92581600);
2494 8 : parameter[U_SC2].push_back(0.96654300);
2495 8 : parameter[U_SC2].push_back(-0.14501300);
2496 :
2497 8 : parameter[U_SC3].push_back(5.24600000);
2498 8 : parameter[U_SC3].push_back(-0.04586500);
2499 8 : parameter[U_SC3].push_back(5.89978100);
2500 8 : parameter[U_SC3].push_back(-1.50664700);
2501 8 : parameter[U_SC3].push_back(-3.17054400);
2502 8 : parameter[U_SC3].push_back(1.93717100);
2503 8 : parameter[U_SC3].push_back(-0.31701000);
2504 :
2505 8 : parameter[U_3TE].push_back(4.23000000);
2506 8 : parameter[U_3TE].push_back(0.00067500);
2507 8 : parameter[U_3TE].push_back(0.92102300);
2508 8 : parameter[U_3TE].push_back(0.08100800);
2509 8 : parameter[U_3TE].push_back(-0.39084300);
2510 8 : parameter[U_3TE].push_back(0.12441900);
2511 8 : parameter[U_3TE].push_back(-0.01124900);
2512 :
2513 8 : parameter[U_5TE].push_back(4.23000000);
2514 8 : parameter[U_5TE].push_back(0.00059000);
2515 8 : parameter[U_5TE].push_back(0.92154600);
2516 8 : parameter[U_5TE].push_back(0.07968200);
2517 8 : parameter[U_5TE].push_back(-0.38950100);
2518 8 : parameter[U_5TE].push_back(0.12382500);
2519 8 : parameter[U_5TE].push_back(-0.01115100);
2520 :
2521 8 : parameter[U_TE3].push_back(7.82400000);
2522 8 : parameter[U_TE3].push_back(-0.02968100);
2523 8 : parameter[U_TE3].push_back(7.93783200);
2524 8 : parameter[U_TE3].push_back(-0.33078100);
2525 8 : parameter[U_TE3].push_back(-10.14120200);
2526 8 : parameter[U_TE3].push_back(6.63334700);
2527 8 : parameter[U_TE3].push_back(-1.22111200);
2528 :
2529 8 : parameter[U_TE5].push_back(8.03600000);
2530 8 : parameter[U_TE5].push_back(-0.00909700);
2531 8 : parameter[U_TE5].push_back(4.33193500);
2532 8 : parameter[U_TE5].push_back(0.43416500);
2533 8 : parameter[U_TE5].push_back(-5.80831400);
2534 8 : parameter[U_TE5].push_back(3.52438800);
2535 8 : parameter[U_TE5].push_back(-0.62382400);
2536 :
2537 8 : parameter[DA_BB1].push_back(32.88500000);
2538 8 : parameter[DA_BB1].push_back(0.08179900);
2539 8 : parameter[DA_BB1].push_back(-7.31735900);
2540 8 : parameter[DA_BB1].push_back(2.15614500);
2541 8 : parameter[DA_BB1].push_back(-3.52263200);
2542 8 : parameter[DA_BB1].push_back(2.30604700);
2543 8 : parameter[DA_BB1].push_back(-0.39270100);
2544 :
2545 8 : parameter[DA_BB2].push_back(3.80600000);
2546 8 : parameter[DA_BB2].push_back(-0.10597700);
2547 8 : parameter[DA_BB2].push_back(9.52537500);
2548 8 : parameter[DA_BB2].push_back(-6.12991000);
2549 8 : parameter[DA_BB2].push_back(-0.54092600);
2550 8 : parameter[DA_BB2].push_back(1.15429100);
2551 8 : parameter[DA_BB2].push_back(-0.21503500);
2552 :
2553 8 : parameter[DA_BB3].push_back(-1.35600000);
2554 8 : parameter[DA_BB3].push_back(0.58928300);
2555 8 : parameter[DA_BB3].push_back(6.71894100);
2556 8 : parameter[DA_BB3].push_back(4.14050900);
2557 8 : parameter[DA_BB3].push_back(-9.65859900);
2558 8 : parameter[DA_BB3].push_back(4.43185000);
2559 8 : parameter[DA_BB3].push_back(-0.64657300);
2560 :
2561 8 : parameter[DA_SC1].push_back(6.67100000);
2562 8 : parameter[DA_SC1].push_back(-0.00871400);
2563 8 : parameter[DA_SC1].push_back(1.63289100);
2564 8 : parameter[DA_SC1].push_back(-0.06637700);
2565 8 : parameter[DA_SC1].push_back(-1.48632900);
2566 8 : parameter[DA_SC1].push_back(0.78551800);
2567 8 : parameter[DA_SC1].push_back(-0.12087300);
2568 :
2569 8 : parameter[DA_SC2].push_back(5.95100000);
2570 8 : parameter[DA_SC2].push_back(-0.02634300);
2571 8 : parameter[DA_SC2].push_back(2.54864300);
2572 8 : parameter[DA_SC2].push_back(-0.49015800);
2573 8 : parameter[DA_SC2].push_back(-1.55386900);
2574 8 : parameter[DA_SC2].push_back(0.86630200);
2575 8 : parameter[DA_SC2].push_back(-0.13546200);
2576 :
2577 8 : parameter[DA_SC3].push_back(11.39400000);
2578 8 : parameter[DA_SC3].push_back(0.00859500);
2579 8 : parameter[DA_SC3].push_back(-0.25471400);
2580 8 : parameter[DA_SC3].push_back(0.48718800);
2581 8 : parameter[DA_SC3].push_back(-1.74520000);
2582 8 : parameter[DA_SC3].push_back(0.99246200);
2583 8 : parameter[DA_SC3].push_back(-0.16351900);
2584 :
2585 8 : parameter[DA_SC4].push_back(6.45900000);
2586 8 : parameter[DA_SC4].push_back(0.01991800);
2587 8 : parameter[DA_SC4].push_back(4.17962300);
2588 8 : parameter[DA_SC4].push_back(0.97469100);
2589 8 : parameter[DA_SC4].push_back(-5.02950400);
2590 8 : parameter[DA_SC4].push_back(2.55371800);
2591 8 : parameter[DA_SC4].push_back(-0.39113400);
2592 :
2593 8 : parameter[DA_3TE].push_back(4.23000000);
2594 8 : parameter[DA_3TE].push_back(0.00062600);
2595 8 : parameter[DA_3TE].push_back(0.92142000);
2596 8 : parameter[DA_3TE].push_back(0.08016400);
2597 8 : parameter[DA_3TE].push_back(-0.39000300);
2598 8 : parameter[DA_3TE].push_back(0.12402500);
2599 8 : parameter[DA_3TE].push_back(-0.01117900);
2600 :
2601 8 : parameter[DA_5TE].push_back(4.23000000);
2602 8 : parameter[DA_5TE].push_back(0.00055500);
2603 8 : parameter[DA_5TE].push_back(0.92183900);
2604 8 : parameter[DA_5TE].push_back(0.07907600);
2605 8 : parameter[DA_5TE].push_back(-0.38895100);
2606 8 : parameter[DA_5TE].push_back(0.12359600);
2607 8 : parameter[DA_5TE].push_back(-0.01111600);
2608 :
2609 8 : parameter[DA_TE3].push_back(2.87400000);
2610 8 : parameter[DA_TE3].push_back(0.00112900);
2611 8 : parameter[DA_TE3].push_back(12.51167200);
2612 8 : parameter[DA_TE3].push_back(-7.67548000);
2613 8 : parameter[DA_TE3].push_back(-2.02234000);
2614 8 : parameter[DA_TE3].push_back(2.50837100);
2615 8 : parameter[DA_TE3].push_back(-0.49458500);
2616 :
2617 8 : parameter[DA_TE5].push_back(8.03600000);
2618 8 : parameter[DA_TE5].push_back(0.00473100);
2619 8 : parameter[DA_TE5].push_back(4.65554400);
2620 8 : parameter[DA_TE5].push_back(0.66424100);
2621 8 : parameter[DA_TE5].push_back(-6.62131300);
2622 8 : parameter[DA_TE5].push_back(3.96107400);
2623 8 : parameter[DA_TE5].push_back(-0.69075800);
2624 :
2625 8 : parameter[DC_BB1].push_back(32.88500000);
2626 8 : parameter[DC_BB1].push_back(0.08189900);
2627 8 : parameter[DC_BB1].push_back(-7.32493500);
2628 8 : parameter[DC_BB1].push_back(2.15976900);
2629 8 : parameter[DC_BB1].push_back(-3.52612100);
2630 8 : parameter[DC_BB1].push_back(2.31058600);
2631 8 : parameter[DC_BB1].push_back(-0.39402700);
2632 :
2633 8 : parameter[DC_BB2].push_back(3.80600000);
2634 8 : parameter[DC_BB2].push_back(-0.10559800);
2635 8 : parameter[DC_BB2].push_back(9.52527700);
2636 8 : parameter[DC_BB2].push_back(-6.12131700);
2637 8 : parameter[DC_BB2].push_back(-0.54899400);
2638 8 : parameter[DC_BB2].push_back(1.15592900);
2639 8 : parameter[DC_BB2].push_back(-0.21494500);
2640 :
2641 8 : parameter[DC_BB3].push_back(-1.35600000);
2642 8 : parameter[DC_BB3].push_back(0.55525700);
2643 8 : parameter[DC_BB3].push_back(6.80305500);
2644 8 : parameter[DC_BB3].push_back(4.05924700);
2645 8 : parameter[DC_BB3].push_back(-9.61034700);
2646 8 : parameter[DC_BB3].push_back(4.41253800);
2647 8 : parameter[DC_BB3].push_back(-0.64315100);
2648 :
2649 8 : parameter[DC_SC1].push_back(5.95100000);
2650 8 : parameter[DC_SC1].push_back(-0.02899900);
2651 8 : parameter[DC_SC1].push_back(2.59587800);
2652 8 : parameter[DC_SC1].push_back(-0.55388300);
2653 8 : parameter[DC_SC1].push_back(-1.56395100);
2654 8 : parameter[DC_SC1].push_back(0.88967400);
2655 8 : parameter[DC_SC1].push_back(-0.14062500);
2656 :
2657 8 : parameter[DC_SC2].push_back(11.62100000);
2658 8 : parameter[DC_SC2].push_back(0.01358100);
2659 8 : parameter[DC_SC2].push_back(-0.24913000);
2660 8 : parameter[DC_SC2].push_back(0.48787200);
2661 8 : parameter[DC_SC2].push_back(-1.52867300);
2662 8 : parameter[DC_SC2].push_back(0.83694900);
2663 8 : parameter[DC_SC2].push_back(-0.13395300);
2664 :
2665 8 : parameter[DC_SC3].push_back(5.01900000);
2666 8 : parameter[DC_SC3].push_back(-0.03298400);
2667 8 : parameter[DC_SC3].push_back(5.54242800);
2668 8 : parameter[DC_SC3].push_back(-0.96081500);
2669 8 : parameter[DC_SC3].push_back(-3.71051600);
2670 8 : parameter[DC_SC3].push_back(2.16500200);
2671 8 : parameter[DC_SC3].push_back(-0.35023400);
2672 :
2673 8 : parameter[DC_3TE].push_back(4.23000000);
2674 8 : parameter[DC_3TE].push_back(0.00055700);
2675 8 : parameter[DC_3TE].push_back(0.92181400);
2676 8 : parameter[DC_3TE].push_back(0.07924000);
2677 8 : parameter[DC_3TE].push_back(-0.38916400);
2678 8 : parameter[DC_3TE].push_back(0.12369900);
2679 8 : parameter[DC_3TE].push_back(-0.01113300);
2680 :
2681 8 : parameter[DC_5TE].push_back(4.23000000);
2682 8 : parameter[DC_5TE].push_back(0.00066500);
2683 8 : parameter[DC_5TE].push_back(0.92103900);
2684 8 : parameter[DC_5TE].push_back(0.08064600);
2685 8 : parameter[DC_5TE].push_back(-0.39034900);
2686 8 : parameter[DC_5TE].push_back(0.12417600);
2687 8 : parameter[DC_5TE].push_back(-0.01120600);
2688 :
2689 8 : parameter[DC_TE3].push_back(2.87400000);
2690 8 : parameter[DC_TE3].push_back(-0.05235500);
2691 8 : parameter[DC_TE3].push_back(13.09201200);
2692 8 : parameter[DC_TE3].push_back(-9.48128200);
2693 8 : parameter[DC_TE3].push_back(-0.14958600);
2694 8 : parameter[DC_TE3].push_back(1.75537200);
2695 8 : parameter[DC_TE3].push_back(-0.39347500);
2696 :
2697 8 : parameter[DC_TE5].push_back(8.03600000);
2698 8 : parameter[DC_TE5].push_back(-0.00513600);
2699 8 : parameter[DC_TE5].push_back(4.67705700);
2700 8 : parameter[DC_TE5].push_back(0.48333300);
2701 8 : parameter[DC_TE5].push_back(-6.34511000);
2702 8 : parameter[DC_TE5].push_back(3.83388500);
2703 8 : parameter[DC_TE5].push_back(-0.67367800);
2704 :
2705 8 : parameter[DG_BB1].push_back(32.88500000);
2706 8 : parameter[DG_BB1].push_back(0.08182900);
2707 8 : parameter[DG_BB1].push_back(-7.32133900);
2708 8 : parameter[DG_BB1].push_back(2.15767900);
2709 8 : parameter[DG_BB1].push_back(-3.52369700);
2710 8 : parameter[DG_BB1].push_back(2.30839600);
2711 8 : parameter[DG_BB1].push_back(-0.39348300);
2712 :
2713 8 : parameter[DG_BB2].push_back(3.80600000);
2714 8 : parameter[DG_BB2].push_back(-0.10618100);
2715 8 : parameter[DG_BB2].push_back(9.54169000);
2716 8 : parameter[DG_BB2].push_back(-6.15177600);
2717 8 : parameter[DG_BB2].push_back(-0.53462400);
2718 8 : parameter[DG_BB2].push_back(1.15581300);
2719 8 : parameter[DG_BB2].push_back(-0.21567000);
2720 :
2721 8 : parameter[DG_BB3].push_back(-1.35600000);
2722 8 : parameter[DG_BB3].push_back(0.57489100);
2723 8 : parameter[DG_BB3].push_back(6.75164700);
2724 8 : parameter[DG_BB3].push_back(4.11300900);
2725 8 : parameter[DG_BB3].push_back(-9.63394600);
2726 8 : parameter[DG_BB3].push_back(4.41675400);
2727 8 : parameter[DG_BB3].push_back(-0.64339900);
2728 :
2729 8 : parameter[DG_SC1].push_back(6.67100000);
2730 8 : parameter[DG_SC1].push_back(-0.00886600);
2731 8 : parameter[DG_SC1].push_back(1.63333000);
2732 8 : parameter[DG_SC1].push_back(-0.06892100);
2733 8 : parameter[DG_SC1].push_back(-1.48683500);
2734 8 : parameter[DG_SC1].push_back(0.78670800);
2735 8 : parameter[DG_SC1].push_back(-0.12113900);
2736 :
2737 8 : parameter[DG_SC2].push_back(11.39400000);
2738 8 : parameter[DG_SC2].push_back(0.00907900);
2739 8 : parameter[DG_SC2].push_back(-0.22475500);
2740 8 : parameter[DG_SC2].push_back(0.49535100);
2741 8 : parameter[DG_SC2].push_back(-1.75324900);
2742 8 : parameter[DG_SC2].push_back(0.98767400);
2743 8 : parameter[DG_SC2].push_back(-0.16150800);
2744 :
2745 8 : parameter[DG_SC3].push_back(10.90100000);
2746 8 : parameter[DG_SC3].push_back(0.02207600);
2747 8 : parameter[DG_SC3].push_back(0.17932200);
2748 8 : parameter[DG_SC3].push_back(0.73253200);
2749 8 : parameter[DG_SC3].push_back(-1.95554900);
2750 8 : parameter[DG_SC3].push_back(0.98339900);
2751 8 : parameter[DG_SC3].push_back(-0.14763600);
2752 :
2753 8 : parameter[DG_SC4].push_back(6.45900000);
2754 8 : parameter[DG_SC4].push_back(0.02018400);
2755 8 : parameter[DG_SC4].push_back(4.17705400);
2756 8 : parameter[DG_SC4].push_back(0.98531700);
2757 8 : parameter[DG_SC4].push_back(-5.04354900);
2758 8 : parameter[DG_SC4].push_back(2.56123700);
2759 8 : parameter[DG_SC4].push_back(-0.39249300);
2760 :
2761 8 : parameter[DG_3TE].push_back(4.23000000);
2762 8 : parameter[DG_3TE].push_back(0.00061700);
2763 8 : parameter[DG_3TE].push_back(0.92140100);
2764 8 : parameter[DG_3TE].push_back(0.08016400);
2765 8 : parameter[DG_3TE].push_back(-0.39003500);
2766 8 : parameter[DG_3TE].push_back(0.12406900);
2767 8 : parameter[DG_3TE].push_back(-0.01119200);
2768 :
2769 8 : parameter[DG_5TE].push_back(4.23000000);
2770 8 : parameter[DG_5TE].push_back(0.00064900);
2771 8 : parameter[DG_5TE].push_back(0.92110500);
2772 8 : parameter[DG_5TE].push_back(0.08031500);
2773 8 : parameter[DG_5TE].push_back(-0.38997000);
2774 8 : parameter[DG_5TE].push_back(0.12401200);
2775 8 : parameter[DG_5TE].push_back(-0.01118100);
2776 :
2777 8 : parameter[DG_TE3].push_back(2.87400000);
2778 8 : parameter[DG_TE3].push_back(0.00182000);
2779 8 : parameter[DG_TE3].push_back(12.41507000);
2780 8 : parameter[DG_TE3].push_back(-7.47384800);
2781 8 : parameter[DG_TE3].push_back(-2.11864700);
2782 8 : parameter[DG_TE3].push_back(2.50112600);
2783 8 : parameter[DG_TE3].push_back(-0.48652200);
2784 :
2785 8 : parameter[DG_TE5].push_back(8.03600000);
2786 8 : parameter[DG_TE5].push_back(0.00676400);
2787 8 : parameter[DG_TE5].push_back(4.65989200);
2788 8 : parameter[DG_TE5].push_back(0.78482500);
2789 8 : parameter[DG_TE5].push_back(-6.86460600);
2790 8 : parameter[DG_TE5].push_back(4.11675400);
2791 8 : parameter[DG_TE5].push_back(-0.72249100);
2792 :
2793 8 : parameter[DT_BB1].push_back(32.88500000);
2794 8 : parameter[DT_BB1].push_back(0.08220100);
2795 8 : parameter[DT_BB1].push_back(-7.33006800);
2796 8 : parameter[DT_BB1].push_back(2.16636500);
2797 8 : parameter[DT_BB1].push_back(-3.53465700);
2798 8 : parameter[DT_BB1].push_back(2.31447600);
2799 8 : parameter[DT_BB1].push_back(-0.39445400);
2800 :
2801 8 : parameter[DT_BB2].push_back(3.80600000);
2802 8 : parameter[DT_BB2].push_back(-0.10723000);
2803 8 : parameter[DT_BB2].push_back(9.56675000);
2804 8 : parameter[DT_BB2].push_back(-6.20236100);
2805 8 : parameter[DT_BB2].push_back(-0.49550400);
2806 8 : parameter[DT_BB2].push_back(1.14300600);
2807 8 : parameter[DT_BB2].push_back(-0.21420000);
2808 :
2809 8 : parameter[DT_BB3].push_back(-1.35600000);
2810 8 : parameter[DT_BB3].push_back(0.56737900);
2811 8 : parameter[DT_BB3].push_back(6.76595400);
2812 8 : parameter[DT_BB3].push_back(4.08976100);
2813 8 : parameter[DT_BB3].push_back(-9.61512500);
2814 8 : parameter[DT_BB3].push_back(4.40975100);
2815 8 : parameter[DT_BB3].push_back(-0.64239800);
2816 :
2817 8 : parameter[DT_SC1].push_back(5.95100000);
2818 8 : parameter[DT_SC1].push_back(-0.02926500);
2819 8 : parameter[DT_SC1].push_back(2.59630300);
2820 8 : parameter[DT_SC1].push_back(-0.56152200);
2821 8 : parameter[DT_SC1].push_back(-1.56532600);
2822 8 : parameter[DT_SC1].push_back(0.89322800);
2823 8 : parameter[DT_SC1].push_back(-0.14142900);
2824 :
2825 8 : parameter[DT_SC2].push_back(10.90100000);
2826 8 : parameter[DT_SC2].push_back(0.02183400);
2827 8 : parameter[DT_SC2].push_back(0.19463000);
2828 8 : parameter[DT_SC2].push_back(0.72393000);
2829 8 : parameter[DT_SC2].push_back(-1.93199500);
2830 8 : parameter[DT_SC2].push_back(0.96856300);
2831 8 : parameter[DT_SC2].push_back(-0.14512600);
2832 :
2833 8 : parameter[DT_SC3].push_back(4.31400000);
2834 8 : parameter[DT_SC3].push_back(-0.07745600);
2835 8 : parameter[DT_SC3].push_back(12.49820300);
2836 8 : parameter[DT_SC3].push_back(-7.64994200);
2837 8 : parameter[DT_SC3].push_back(-3.00359600);
2838 8 : parameter[DT_SC3].push_back(3.26263300);
2839 8 : parameter[DT_SC3].push_back(-0.64498600);
2840 :
2841 8 : parameter[DT_3TE].push_back(4.23000000);
2842 8 : parameter[DT_3TE].push_back(0.00062000);
2843 8 : parameter[DT_3TE].push_back(0.92141100);
2844 8 : parameter[DT_3TE].push_back(0.08030900);
2845 8 : parameter[DT_3TE].push_back(-0.39021500);
2846 8 : parameter[DT_3TE].push_back(0.12414000);
2847 8 : parameter[DT_3TE].push_back(-0.01120100);
2848 :
2849 8 : parameter[DT_5TE].push_back(4.23000000);
2850 8 : parameter[DT_5TE].push_back(0.00063700);
2851 8 : parameter[DT_5TE].push_back(0.92130800);
2852 8 : parameter[DT_5TE].push_back(0.08026900);
2853 8 : parameter[DT_5TE].push_back(-0.39007500);
2854 8 : parameter[DT_5TE].push_back(0.12406600);
2855 8 : parameter[DT_5TE].push_back(-0.01118800);
2856 :
2857 8 : parameter[DT_TE3].push_back(2.87400000);
2858 8 : parameter[DT_TE3].push_back(-0.00251200);
2859 8 : parameter[DT_TE3].push_back(12.43576400);
2860 8 : parameter[DT_TE3].push_back(-7.55343800);
2861 8 : parameter[DT_TE3].push_back(-2.07363500);
2862 8 : parameter[DT_TE3].push_back(2.51279300);
2863 8 : parameter[DT_TE3].push_back(-0.49437100);
2864 :
2865 8 : parameter[DT_TE5].push_back(8.03600000);
2866 8 : parameter[DT_TE5].push_back(0.00119900);
2867 8 : parameter[DT_TE5].push_back(4.91762300);
2868 8 : parameter[DT_TE5].push_back(0.65637000);
2869 8 : parameter[DT_TE5].push_back(-7.23392500);
2870 8 : parameter[DT_TE5].push_back(4.44636600);
2871 8 : parameter[DT_TE5].push_back(-0.79467800);
2872 :
2873 8 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
2874 8 : if( moldat ) {
2875 8400 : for(unsigned i=0; i<atoms.size(); ++i) {
2876 8392 : std::string Aname = moldat->getAtomName(atoms[i]);
2877 8392 : std::string Rname = moldat->getResidueName(atoms[i]);
2878 8392 : if(Rname=="ALA") {
2879 72 : if(Aname=="BB") {
2880 72 : atoi[i]=ALA_BB;
2881 : } else {
2882 0 : error("Atom name not known: "+Aname);
2883 : }
2884 8320 : } else if(Rname=="ARG") {
2885 420 : if(Aname=="BB") {
2886 140 : atoi[i]=ARG_BB;
2887 280 : } else if(Aname=="SC1") {
2888 140 : atoi[i]=ARG_SC1;
2889 140 : } else if(Aname=="SC2") {
2890 140 : atoi[i]=ARG_SC2;
2891 : } else {
2892 0 : error("Atom name not known: "+Aname);
2893 : }
2894 7900 : } else if(Rname=="ASN") {
2895 240 : if(Aname=="BB") {
2896 120 : atoi[i]=ASN_BB;
2897 120 : } else if(Aname=="SC1") {
2898 120 : atoi[i]=ASN_SC1;
2899 : } else {
2900 0 : error("Atom name not known: "+Aname);
2901 : }
2902 7660 : } else if(Rname=="ASP") {
2903 368 : if(Aname=="BB") {
2904 184 : atoi[i]=ASP_BB;
2905 184 : } else if(Aname=="SC1") {
2906 184 : atoi[i]=ASP_SC1;
2907 : } else {
2908 0 : error("Atom name not known: "+Aname);
2909 : }
2910 7292 : } else if(Rname=="CYS") {
2911 16 : if(Aname=="BB") {
2912 8 : atoi[i]=CYS_BB;
2913 8 : } else if(Aname=="SC1") {
2914 8 : atoi[i]=CYS_SC1;
2915 : } else {
2916 0 : error("Atom name not known: "+Aname);
2917 : }
2918 7276 : } else if(Rname=="GLN") {
2919 224 : if(Aname=="BB") {
2920 112 : atoi[i]=GLN_BB;
2921 112 : } else if(Aname=="SC1") {
2922 112 : atoi[i]=GLN_SC1;
2923 : } else {
2924 0 : error("Atom name not known: "+Aname);
2925 : }
2926 7052 : } else if(Rname=="GLU") {
2927 480 : if(Aname=="BB") {
2928 240 : atoi[i]=GLU_BB;
2929 240 : } else if(Aname=="SC1") {
2930 240 : atoi[i]=GLU_SC1;
2931 : } else {
2932 0 : error("Atom name not known: "+Aname);
2933 : }
2934 6572 : } else if(Rname=="GLY") {
2935 116 : if(Aname=="BB") {
2936 116 : atoi[i]=GLY_BB;
2937 : } else {
2938 0 : error("Atom name not known: "+Aname);
2939 : }
2940 6456 : } else if(Rname=="HIS") {
2941 576 : if(Aname=="BB") {
2942 144 : atoi[i]=HIS_BB;
2943 432 : } else if(Aname=="SC1") {
2944 144 : atoi[i]=HIS_SC1;
2945 288 : } else if(Aname=="SC2") {
2946 144 : atoi[i]=HIS_SC2;
2947 144 : } else if(Aname=="SC3") {
2948 144 : atoi[i]=HIS_SC3;
2949 : } else {
2950 0 : error("Atom name not known: "+Aname);
2951 : }
2952 5880 : } else if(Rname=="ILE") {
2953 584 : if(Aname=="BB") {
2954 292 : atoi[i]=ILE_BB;
2955 292 : } else if(Aname=="SC1") {
2956 292 : atoi[i]=ILE_SC1;
2957 : } else {
2958 0 : error("Atom name not known: "+Aname);
2959 : }
2960 5296 : } else if(Rname=="LEU") {
2961 448 : if(Aname=="BB") {
2962 224 : atoi[i]=LEU_BB;
2963 224 : } else if(Aname=="SC1") {
2964 224 : atoi[i]=LEU_SC1;
2965 : } else {
2966 0 : error("Atom name not known: "+Aname);
2967 : }
2968 4848 : } else if(Rname=="LYS") {
2969 792 : if(Aname=="BB") {
2970 264 : atoi[i]=LYS_BB;
2971 528 : } else if(Aname=="SC1") {
2972 264 : atoi[i]=LYS_SC1;
2973 264 : } else if(Aname=="SC2") {
2974 264 : atoi[i]=LYS_SC2;
2975 : } else {
2976 0 : error("Atom name not known: "+Aname);
2977 : }
2978 4056 : } else if(Rname=="MET") {
2979 80 : if(Aname=="BB") {
2980 40 : atoi[i]=MET_BB;
2981 40 : } else if(Aname=="SC1") {
2982 40 : atoi[i]=MET_SC1;
2983 : } else {
2984 0 : error("Atom name not known: "+Aname);
2985 : }
2986 3976 : } else if(Rname=="PHE") {
2987 512 : if(Aname=="BB") {
2988 128 : atoi[i]=PHE_BB;
2989 384 : } else if(Aname=="SC1") {
2990 128 : atoi[i]=PHE_SC1;
2991 256 : } else if(Aname=="SC2") {
2992 128 : atoi[i]=PHE_SC2;
2993 128 : } else if(Aname=="SC3") {
2994 128 : atoi[i]=PHE_SC3;
2995 : } else {
2996 0 : error("Atom name not known: "+Aname);
2997 : }
2998 3464 : } else if(Rname=="PRO") {
2999 128 : if(Aname=="BB") {
3000 64 : atoi[i]=PRO_BB;
3001 64 : } else if(Aname=="SC1") {
3002 64 : atoi[i]=PRO_SC1;
3003 : } else {
3004 0 : error("Atom name not known: "+Aname);
3005 : }
3006 3336 : } else if(Rname=="SER") {
3007 248 : if(Aname=="BB") {
3008 124 : atoi[i]=SER_BB;
3009 124 : } else if(Aname=="SC1") {
3010 124 : atoi[i]=SER_SC1;
3011 : } else {
3012 0 : error("Atom name not known: "+Aname);
3013 : }
3014 3088 : } else if(Rname=="THR") {
3015 288 : if(Aname=="BB") {
3016 144 : atoi[i]=THR_BB;
3017 144 : } else if(Aname=="SC1") {
3018 144 : atoi[i]=THR_SC1;
3019 : } else {
3020 0 : error("Atom name not known: "+Aname);
3021 : }
3022 2800 : } else if(Rname=="TRP") {
3023 0 : if(Aname=="BB") {
3024 0 : atoi[i]=TRP_BB;
3025 0 : } else if(Aname=="SC1") {
3026 0 : atoi[i]=TRP_SC1;
3027 0 : } else if(Aname=="SC2") {
3028 0 : atoi[i]=TRP_SC2;
3029 0 : } else if(Aname=="SC3") {
3030 0 : atoi[i]=TRP_SC3;
3031 0 : } else if(Aname=="SC4") {
3032 0 : atoi[i]=TRP_SC4;
3033 : } else {
3034 0 : error("Atom name not known: "+Aname);
3035 : }
3036 2800 : } else if(Rname=="TYR") {
3037 544 : if(Aname=="BB") {
3038 136 : atoi[i]=TYR_BB;
3039 408 : } else if(Aname=="SC1") {
3040 136 : atoi[i]=TYR_SC1;
3041 272 : } else if(Aname=="SC2") {
3042 136 : atoi[i]=TYR_SC2;
3043 136 : } else if(Aname=="SC3") {
3044 136 : atoi[i]=TYR_SC3;
3045 : } else {
3046 0 : error("Atom name not known: "+Aname);
3047 : }
3048 2256 : } else if(Rname=="VAL") {
3049 288 : if(Aname=="BB") {
3050 144 : atoi[i]=VAL_BB;
3051 144 : } else if(Aname=="SC1") {
3052 144 : atoi[i]=VAL_SC1;
3053 : } else {
3054 0 : error("Atom name not known: "+Aname);
3055 : }
3056 1968 : } else if(Rname==" A") {
3057 0 : if(Aname=="BB1") {
3058 0 : atoi[i]=A_BB1;
3059 0 : } else if(Aname=="BB2") {
3060 0 : atoi[i]=A_BB2;
3061 0 : } else if(Aname=="BB3") {
3062 0 : atoi[i]=A_BB3;
3063 0 : } else if(Aname=="SC1") {
3064 0 : atoi[i]=A_SC1;
3065 0 : } else if(Aname=="SC2") {
3066 0 : atoi[i]=A_SC2;
3067 0 : } else if(Aname=="SC3") {
3068 0 : atoi[i]=A_SC3;
3069 0 : } else if(Aname=="SC4") {
3070 0 : atoi[i]=A_SC4;
3071 0 : } else if(Aname=="3TE") {
3072 0 : atoi[i]=A_3TE;
3073 0 : } else if(Aname=="5TE") {
3074 0 : atoi[i]=A_5TE;
3075 0 : } else if(Aname=="TE3") {
3076 0 : atoi[i]=A_TE3;
3077 0 : } else if(Aname=="TE5") {
3078 0 : atoi[i]=A_TE5;
3079 : } else {
3080 0 : error("Atom name not known: "+Aname);
3081 : }
3082 1968 : } else if(Rname==" C") {
3083 0 : if(Aname=="BB1") {
3084 0 : atoi[i]=C_BB1;
3085 0 : } else if(Aname=="BB2") {
3086 0 : atoi[i]=C_BB2;
3087 0 : } else if(Aname=="BB3") {
3088 0 : atoi[i]=C_BB3;
3089 0 : } else if(Aname=="SC1") {
3090 0 : atoi[i]=C_SC1;
3091 0 : } else if(Aname=="SC2") {
3092 0 : atoi[i]=C_SC2;
3093 0 : } else if(Aname=="SC3") {
3094 0 : atoi[i]=C_SC3;
3095 0 : } else if(Aname=="3TE") {
3096 0 : atoi[i]=C_3TE;
3097 0 : } else if(Aname=="5TE") {
3098 0 : atoi[i]=C_5TE;
3099 0 : } else if(Aname=="TE3") {
3100 0 : atoi[i]=C_TE3;
3101 0 : } else if(Aname=="TE5") {
3102 0 : atoi[i]=C_TE5;
3103 : } else {
3104 0 : error("Atom name not known: "+Aname);
3105 : }
3106 1968 : } else if(Rname==" G") {
3107 0 : if(Aname=="BB1") {
3108 0 : atoi[i]=G_BB1;
3109 0 : } else if(Aname=="BB2") {
3110 0 : atoi[i]=G_BB2;
3111 0 : } else if(Aname=="BB3") {
3112 0 : atoi[i]=G_BB3;
3113 0 : } else if(Aname=="SC1") {
3114 0 : atoi[i]=G_SC1;
3115 0 : } else if(Aname=="SC2") {
3116 0 : atoi[i]=G_SC2;
3117 0 : } else if(Aname=="SC3") {
3118 0 : atoi[i]=G_SC3;
3119 0 : } else if(Aname=="SC4") {
3120 0 : atoi[i]=G_SC4;
3121 0 : } else if(Aname=="3TE") {
3122 0 : atoi[i]=G_3TE;
3123 0 : } else if(Aname=="5TE") {
3124 0 : atoi[i]=G_5TE;
3125 0 : } else if(Aname=="TE3") {
3126 0 : atoi[i]=G_TE3;
3127 0 : } else if(Aname=="TE5") {
3128 0 : atoi[i]=G_TE5;
3129 : } else {
3130 0 : error("Atom name not known: "+Aname);
3131 : }
3132 1968 : } else if(Rname==" U") {
3133 0 : if(Aname=="BB1") {
3134 0 : atoi[i]=U_BB1;
3135 0 : } else if(Aname=="BB2") {
3136 0 : atoi[i]=U_BB2;
3137 0 : } else if(Aname=="BB3") {
3138 0 : atoi[i]=U_BB3;
3139 0 : } else if(Aname=="SC1") {
3140 0 : atoi[i]=U_SC1;
3141 0 : } else if(Aname=="SC2") {
3142 0 : atoi[i]=U_SC2;
3143 0 : } else if(Aname=="SC3") {
3144 0 : atoi[i]=U_SC3;
3145 0 : } else if(Aname=="3TE") {
3146 0 : atoi[i]=U_3TE;
3147 0 : } else if(Aname=="5TE") {
3148 0 : atoi[i]=U_5TE;
3149 0 : } else if(Aname=="TE3") {
3150 0 : atoi[i]=U_TE3;
3151 0 : } else if(Aname=="TE5") {
3152 0 : atoi[i]=U_TE5;
3153 : } else {
3154 0 : error("Atom name not known: "+Aname);
3155 : }
3156 1968 : } else if(Rname==" DA") {
3157 696 : if(Aname=="BB1") {
3158 96 : atoi[i]=DA_BB1;
3159 600 : } else if(Aname=="BB2") {
3160 96 : atoi[i]=DA_BB2;
3161 504 : } else if(Aname=="BB3") {
3162 96 : atoi[i]=DA_BB3;
3163 408 : } else if(Aname=="SC1") {
3164 100 : atoi[i]=DA_SC1;
3165 308 : } else if(Aname=="SC2") {
3166 100 : atoi[i]=DA_SC2;
3167 208 : } else if(Aname=="SC3") {
3168 100 : atoi[i]=DA_SC3;
3169 108 : } else if(Aname=="SC4") {
3170 100 : atoi[i]=DA_SC4;
3171 8 : } else if(Aname=="3TE") {
3172 0 : atoi[i]=DA_3TE;
3173 8 : } else if(Aname=="5TE") {
3174 0 : atoi[i]=DA_5TE;
3175 8 : } else if(Aname=="TE3") {
3176 4 : atoi[i]=DA_TE3;
3177 4 : } else if(Aname=="TE5") {
3178 4 : atoi[i]=DA_TE5;
3179 : } else {
3180 0 : error("Atom name not known: "+Aname);
3181 : }
3182 1272 : } else if(Rname==" DC") {
3183 312 : if(Aname=="BB1") {
3184 52 : atoi[i]=DC_BB1;
3185 260 : } else if(Aname=="BB2") {
3186 52 : atoi[i]=DC_BB2;
3187 208 : } else if(Aname=="BB3") {
3188 52 : atoi[i]=DC_BB3;
3189 156 : } else if(Aname=="SC1") {
3190 52 : atoi[i]=DC_SC1;
3191 104 : } else if(Aname=="SC2") {
3192 52 : atoi[i]=DC_SC2;
3193 52 : } else if(Aname=="SC3") {
3194 52 : atoi[i]=DC_SC3;
3195 0 : } else if(Aname=="3TE") {
3196 0 : atoi[i]=DC_3TE;
3197 0 : } else if(Aname=="5TE") {
3198 0 : atoi[i]=DC_5TE;
3199 0 : } else if(Aname=="TE3") {
3200 0 : atoi[i]=DC_TE3;
3201 0 : } else if(Aname=="TE5") {
3202 0 : atoi[i]=DC_TE5;
3203 : } else {
3204 0 : error("Atom name not known: "+Aname);
3205 : }
3206 960 : } else if(Rname==" DG") {
3207 364 : if(Aname=="BB1") {
3208 52 : atoi[i]=DG_BB1;
3209 312 : } else if(Aname=="BB2") {
3210 52 : atoi[i]=DG_BB2;
3211 260 : } else if(Aname=="BB3") {
3212 52 : atoi[i]=DG_BB3;
3213 208 : } else if(Aname=="SC1") {
3214 52 : atoi[i]=DG_SC1;
3215 156 : } else if(Aname=="SC2") {
3216 52 : atoi[i]=DG_SC2;
3217 104 : } else if(Aname=="SC3") {
3218 52 : atoi[i]=DG_SC3;
3219 52 : } else if(Aname=="SC4") {
3220 52 : atoi[i]=DG_SC4;
3221 0 : } else if(Aname=="3TE") {
3222 0 : atoi[i]=DG_3TE;
3223 0 : } else if(Aname=="5TE") {
3224 0 : atoi[i]=DG_5TE;
3225 0 : } else if(Aname=="TE3") {
3226 0 : atoi[i]=DG_TE3;
3227 0 : } else if(Aname=="TE5") {
3228 0 : atoi[i]=DG_TE5;
3229 : } else {
3230 0 : error("Atom name not known: "+Aname);
3231 : }
3232 596 : } else if(Rname==" DT") {
3233 596 : if(Aname=="BB1") {
3234 96 : atoi[i]=DT_BB1;
3235 500 : } else if(Aname=="BB2") {
3236 96 : atoi[i]=DT_BB2;
3237 404 : } else if(Aname=="BB3") {
3238 96 : atoi[i]=DT_BB3;
3239 308 : } else if(Aname=="SC1") {
3240 100 : atoi[i]=DT_SC1;
3241 208 : } else if(Aname=="SC2") {
3242 100 : atoi[i]=DT_SC2;
3243 108 : } else if(Aname=="SC3") {
3244 100 : atoi[i]=DT_SC3;
3245 8 : } else if(Aname=="3TE") {
3246 0 : atoi[i]=DT_3TE;
3247 8 : } else if(Aname=="5TE") {
3248 0 : atoi[i]=DT_5TE;
3249 8 : } else if(Aname=="TE3") {
3250 4 : atoi[i]=DT_TE3;
3251 4 : } else if(Aname=="TE5") {
3252 4 : atoi[i]=DT_TE5;
3253 : } else {
3254 0 : error("Atom name not known: "+Aname);
3255 : }
3256 : } else {
3257 0 : error("Residue not known: "+Rname);
3258 : }
3259 : }
3260 : } else {
3261 0 : error("MOLINFO DATA not found\n");
3262 : }
3263 8 : }
3264 :
3265 10 : void SAXS::getOnebeadparam(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac, std::vector<std::vector<long double> > ¶meter_mix, std::vector<std::vector<long double> > ¶meter_solv, const std::vector<unsigned> & residue_atom) {
3266 :
3267 10 : parameter_solv[TRP].push_back(60737.60249988003);
3268 10 : parameter_solv[TRP].push_back(-77.75716755173752);
3269 10 : parameter_solv[TRP].push_back(-205962.98557711052);
3270 10 : parameter_solv[TRP].push_back(-62013.46984155453);
3271 10 : parameter_solv[TRP].push_back(680710.7592231638);
3272 10 : parameter_solv[TRP].push_back(-681336.8777362367);
3273 10 : parameter_solv[TRP].push_back(211473.65530642506);
3274 :
3275 10 : parameter_solv[TYR].push_back(46250.80359987982);
3276 10 : parameter_solv[TYR].push_back(-45.8287864681578);
3277 10 : parameter_solv[TYR].push_back(-143872.91752817619);
3278 10 : parameter_solv[TYR].push_back(-39049.68736409533);
3279 10 : parameter_solv[TYR].push_back(441321.71874090104);
3280 10 : parameter_solv[TYR].push_back(-434478.0972346327);
3281 10 : parameter_solv[TYR].push_back(133179.3694641212);
3282 :
3283 10 : parameter_solv[PHE].push_back(42407.164900118914);
3284 10 : parameter_solv[PHE].push_back(-159.1980754191431);
3285 10 : parameter_solv[PHE].push_back(-123847.86192757386);
3286 10 : parameter_solv[PHE].push_back(-41797.69041575073);
3287 10 : parameter_solv[PHE].push_back(380283.7035277073);
3288 10 : parameter_solv[PHE].push_back(-361432.67247521743);
3289 10 : parameter_solv[PHE].push_back(107750.64978068044);
3290 :
3291 10 : parameter_solv[HIP].push_back(24473.47360011923);
3292 10 : parameter_solv[HIP].push_back(-111.64156672747428);
3293 10 : parameter_solv[HIP].push_back(-65826.16993707925);
3294 10 : parameter_solv[HIP].push_back(-23305.91329798928);
3295 10 : parameter_solv[HIP].push_back(194795.11911635034);
3296 10 : parameter_solv[HIP].push_back(-180454.49458095312);
3297 10 : parameter_solv[HIP].push_back(52699.374196745615);
3298 :
3299 10 : parameter_solv[ARG].push_back(34106.70239988039);
3300 10 : parameter_solv[ARG].push_back(152.7472727640246);
3301 10 : parameter_solv[ARG].push_back(-117086.49392248681);
3302 10 : parameter_solv[ARG].push_back(-19664.229479267167);
3303 10 : parameter_solv[ARG].push_back(364454.0909203641);
3304 10 : parameter_solv[ARG].push_back(-382075.8018312776);
3305 10 : parameter_solv[ARG].push_back(122775.75036605193);
3306 :
3307 10 : parameter_solv[LYS].push_back(32292.090000118922);
3308 10 : parameter_solv[LYS].push_back(-111.97371180593888);
3309 10 : parameter_solv[LYS].push_back(-91953.10997619898);
3310 10 : parameter_solv[LYS].push_back(-30690.807047993283);
3311 10 : parameter_solv[LYS].push_back(282092.40760143084);
3312 10 : parameter_solv[LYS].push_back(-269503.2592457489);
3313 10 : parameter_solv[LYS].push_back(80777.81552915688);
3314 :
3315 10 : parameter_solv[CYS].push_back(11352.902500119093);
3316 10 : parameter_solv[CYS].push_back(-45.5226331859686);
3317 10 : parameter_solv[CYS].push_back(-20925.085562607524);
3318 10 : parameter_solv[CYS].push_back(-5662.685408989286);
3319 10 : parameter_solv[CYS].push_back(38559.10376731146);
3320 10 : parameter_solv[CYS].push_back(-27885.23426006181);
3321 10 : parameter_solv[CYS].push_back(6280.15058191397);
3322 :
3323 10 : parameter_solv[CYX].push_back(10281.960000119348);
3324 10 : parameter_solv[CYX].push_back(-42.315998754511);
3325 10 : parameter_solv[CYX].push_back(-19328.174487327480);
3326 10 : parameter_solv[CYX].push_back(-5523.191775626829);
3327 10 : parameter_solv[CYX].push_back(38185.463172673335);
3328 10 : parameter_solv[CYX].push_back(-28940.174693042034);
3329 10 : parameter_solv[CYX].push_back(6925.390014187676);
3330 :
3331 10 : parameter_solv[ASP].push_back(13511.73760011933);
3332 10 : parameter_solv[ASP].push_back(-59.929111107656595);
3333 10 : parameter_solv[ASP].push_back(-25849.869639655575);
3334 10 : parameter_solv[ASP].push_back(-7541.669448872824);
3335 10 : parameter_solv[ASP].push_back(50760.92045144903);
3336 10 : parameter_solv[ASP].push_back(-37677.87583269734);
3337 10 : parameter_solv[ASP].push_back(8745.7056219399);
3338 :
3339 10 : parameter_solv[GLU].push_back(20443.280400119456);
3340 10 : parameter_solv[GLU].push_back(-113.77561814283207);
3341 10 : parameter_solv[GLU].push_back(-45587.79314626863);
3342 10 : parameter_solv[GLU].push_back(-16187.556837331254);
3343 10 : parameter_solv[GLU].push_back(112609.65830609271);
3344 10 : parameter_solv[GLU].push_back(-93362.05323205091);
3345 10 : parameter_solv[GLU].push_back(24519.557866124724);
3346 :
3347 10 : parameter_solv[ILE].push_back(27858.948100119596);
3348 10 : parameter_solv[ILE].push_back(-159.27355145839834);
3349 10 : parameter_solv[ILE].push_back(-61571.43463039565);
3350 10 : parameter_solv[ILE].push_back(-21324.879474559468);
3351 10 : parameter_solv[ILE].push_back(144070.7572894681);
3352 10 : parameter_solv[ILE].push_back(-115021.81959095894);
3353 10 : parameter_solv[ILE].push_back(28939.085108838968);
3354 :
3355 10 : parameter_solv[LEU].push_back(27858.948100119596);
3356 10 : parameter_solv[LEU].push_back(-165.61892007509647);
3357 10 : parameter_solv[LEU].push_back(-62564.568746500125);
3358 10 : parameter_solv[LEU].push_back(-22465.332149768525);
3359 10 : parameter_solv[LEU].push_back(151616.79489291538);
3360 10 : parameter_solv[LEU].push_back(-122905.6119395393);
3361 10 : parameter_solv[LEU].push_back(31436.664377885514);
3362 :
3363 10 : parameter_solv[MET].push_back(25609.60090011981);
3364 10 : parameter_solv[MET].push_back(-135.38857843066708);
3365 10 : parameter_solv[MET].push_back(-67771.01108177133);
3366 10 : parameter_solv[MET].push_back(-25228.934337676077);
3367 10 : parameter_solv[MET].push_back(199649.95030712147);
3368 10 : parameter_solv[MET].push_back(-182251.94895101967);
3369 10 : parameter_solv[MET].push_back(52502.88444247481);
3370 :
3371 10 : parameter_solv[ASN].push_back(14376.010000119095);
3372 10 : parameter_solv[ASN].push_back(-67.65579048748472);
3373 10 : parameter_solv[ASN].push_back(-28302.87809850141);
3374 10 : parameter_solv[ASN].push_back(-8577.439830985548);
3375 10 : parameter_solv[ASN].push_back(57532.879075695324);
3376 10 : parameter_solv[ASN].push_back(-43261.79286366774);
3377 10 : parameter_solv[ASN].push_back(10186.448634149085);
3378 :
3379 10 : parameter_solv[PRO].push_back(16866.21690011944);
3380 10 : parameter_solv[PRO].push_back(-70.84327801054884);
3381 10 : parameter_solv[PRO].push_back(-31465.84064925844);
3382 10 : parameter_solv[PRO].push_back(-8653.3693368317);
3383 10 : parameter_solv[PRO].push_back(58032.28250733714);
3384 10 : parameter_solv[PRO].push_back(-41521.01146771431);
3385 10 : parameter_solv[PRO].push_back(9184.530596102064);
3386 :
3387 10 : parameter_solv[GLN].push_back(21503.289600119);
3388 10 : parameter_solv[GLN].push_back(-121.30164008960246);
3389 10 : parameter_solv[GLN].push_back(-50468.580981118175);
3390 10 : parameter_solv[GLN].push_back(-18462.49098408308);
3391 10 : parameter_solv[GLN].push_back(132718.44904081387);
3392 10 : parameter_solv[GLN].push_back(-113787.22666510186);
3393 10 : parameter_solv[GLN].push_back(30920.348610969988);
3394 :
3395 10 : parameter_solv[SER].push_back(9181.472400119354);
3396 10 : parameter_solv[SER].push_back(-28.77519915767741);
3397 10 : parameter_solv[SER].push_back(-15205.543144104717);
3398 10 : parameter_solv[SER].push_back(-3377.782176346411);
3399 10 : parameter_solv[SER].push_back(23345.555771001076);
3400 10 : parameter_solv[SER].push_back(-15312.694356014094);
3401 10 : parameter_solv[SER].push_back(3013.8428466148);
3402 :
3403 10 : parameter_solv[THR].push_back(15020.953600119403);
3404 10 : parameter_solv[THR].push_back(-61.91004832631006);
3405 10 : parameter_solv[THR].push_back(-27814.537889259853);
3406 10 : parameter_solv[THR].push_back(-7532.227289701552);
3407 10 : parameter_solv[THR].push_back(50586.30566118166);
3408 10 : parameter_solv[THR].push_back(-35943.866131120165);
3409 10 : parameter_solv[THR].push_back(7880.093558764326);
3410 :
3411 10 : parameter_solv[VAL].push_back(19647.628900119355);
3412 10 : parameter_solv[VAL].push_back(-89.04983250107853);
3413 10 : parameter_solv[VAL].push_back(-38050.09958470928);
3414 10 : parameter_solv[VAL].push_back(-10921.427112288537);
3415 10 : parameter_solv[VAL].push_back(72774.32322962297);
3416 10 : parameter_solv[VAL].push_back(-52689.060152305225);
3417 10 : parameter_solv[VAL].push_back(11806.492503632868);
3418 :
3419 10 : parameter_solv[ALA].push_back(7515.156100119276);
3420 10 : parameter_solv[ALA].push_back(-20.226381685697746);
3421 10 : parameter_solv[ALA].push_back(-11761.841094237716);
3422 10 : parameter_solv[ALA].push_back(-2341.4929468980367);
3423 10 : parameter_solv[ALA].push_back(16545.385777961936);
3424 10 : parameter_solv[ALA].push_back(-10397.175253025776);
3425 10 : parameter_solv[ALA].push_back(1921.5264606725107);
3426 :
3427 10 : parameter_solv[GLY].push_back(3594.002500119159);
3428 10 : parameter_solv[GLY].push_back(-6.910836154887606);
3429 10 : parameter_solv[GLY].push_back(-4937.354220666574);
3430 10 : parameter_solv[GLY].push_back(-785.4549468992149);
3431 10 : parameter_solv[GLY].push_back(5852.854429532936);
3432 10 : parameter_solv[GLY].push_back(-3391.2927115487832);
3433 10 : parameter_solv[GLY].push_back(552.3280571490722);
3434 :
3435 10 : parameter_solv[HIS].push_back(22888.664100119073);
3436 10 : parameter_solv[HIS].push_back(-133.86265270962434);
3437 10 : parameter_solv[HIS].push_back(-57533.51591635819);
3438 10 : parameter_solv[HIS].push_back(-21767.293192014684);
3439 10 : parameter_solv[HIS].push_back(161255.14120001195);
3440 10 : parameter_solv[HIS].push_back(-142176.64081149307);
3441 10 : parameter_solv[HIS].push_back(39642.61185646193);
3442 :
3443 10 : parameter_mix[TRP].push_back(48294.0117571196);
3444 10 : parameter_mix[TRP].push_back(-205.45879626487798);
3445 10 : parameter_mix[TRP].push_back(-148816.1858118254);
3446 10 : parameter_mix[TRP].push_back(-54968.030079609875);
3447 10 : parameter_mix[TRP].push_back(491793.79967057955);
3448 10 : parameter_mix[TRP].push_back(-476312.9117969879);
3449 10 : parameter_mix[TRP].push_back(144159.96165644142);
3450 :
3451 10 : parameter_mix[TYR].push_back(36984.20240312081);
3452 10 : parameter_mix[TYR].push_back(-83.86380083812203);
3453 10 : parameter_mix[TYR].push_back(-108820.52211887162);
3454 10 : parameter_mix[TYR].push_back(-33934.69818901515);
3455 10 : parameter_mix[TYR].push_back(341504.736372253);
3456 10 : parameter_mix[TYR].push_back(-334008.1748614056);
3457 10 : parameter_mix[TYR].push_back(102033.08077851454);
3458 :
3459 10 : parameter_mix[PHE].push_back(32119.469231338233);
3460 10 : parameter_mix[PHE].push_back(-172.96940450568917);
3461 10 : parameter_mix[PHE].push_back(-85831.4326887122);
3462 10 : parameter_mix[PHE].push_back(-33193.32405438845);
3463 10 : parameter_mix[PHE].push_back(262940.64471909316);
3464 10 : parameter_mix[PHE].push_back(-243540.06898907054);
3465 10 : parameter_mix[PHE].push_back(71084.54387480798);
3466 :
3467 10 : parameter_mix[HIP].push_back(22833.36414923898);
3468 10 : parameter_mix[HIP].push_back(-134.0493955562186);
3469 10 : parameter_mix[HIP].push_back(-55325.55607328898);
3470 10 : parameter_mix[HIP].push_back(-21898.314938881984);
3471 10 : parameter_mix[HIP].push_back(159995.6912885654);
3472 10 : parameter_mix[HIP].push_back(-142968.19796084083);
3473 10 : parameter_mix[HIP].push_back(40417.44581470003);
3474 :
3475 10 : parameter_mix[ARG].push_back(31385.401600920715);
3476 10 : parameter_mix[ARG].push_back(36.114094042884254);
3477 10 : parameter_mix[ARG].push_back(-103730.44467490204);
3478 10 : parameter_mix[ARG].push_back(-27036.249157905615);
3479 10 : parameter_mix[ARG].push_back(347011.0339314942);
3480 10 : parameter_mix[ARG].push_back(-358879.9736802336);
3481 10 : parameter_mix[ARG].push_back(114432.18361399164);
3482 :
3483 10 : parameter_mix[LYS].push_back(25511.35812671878);
3484 10 : parameter_mix[LYS].push_back(-130.4381491986372);
3485 10 : parameter_mix[LYS].push_back(-69258.61236879184);
3486 10 : parameter_mix[LYS].push_back(-27066.36783798707);
3487 10 : parameter_mix[LYS].push_back(220092.65231165203);
3488 10 : parameter_mix[LYS].push_back(-207794.5056092443);
3489 10 : parameter_mix[LYS].push_back(61665.57004630315);
3490 :
3491 10 : parameter_mix[CYS].push_back(11505.517261618916);
3492 10 : parameter_mix[CYS].push_back(-33.60468076978334);
3493 10 : parameter_mix[CYS].push_back(-18328.882710004465);
3494 10 : parameter_mix[CYS].push_back(-3956.9113649567626);
3495 10 : parameter_mix[CYS].push_back(27546.35146501212);
3496 10 : parameter_mix[CYS].push_back(-18024.826330595406);
3497 10 : parameter_mix[CYS].push_back(3551.2207387570024);
3498 :
3499 10 : parameter_mix[CYX].push_back(10746.617793719070);
3500 10 : parameter_mix[CYX].push_back(-37.082746200650);
3501 10 : parameter_mix[CYX].push_back(-17871.552278655203);
3502 10 : parameter_mix[CYX].push_back(-4512.203184574789);
3503 10 : parameter_mix[CYX].push_back(30605.726711712588);
3504 10 : parameter_mix[CYX].push_back(-21530.684072275839);
3505 10 : parameter_mix[CYX].push_back(4694.601090758420);
3506 :
3507 10 : parameter_mix[ASP].push_back(13713.858501879382);
3508 10 : parameter_mix[ASP].push_back(-51.33286241257164);
3509 10 : parameter_mix[ASP].push_back(-23807.8549764091);
3510 10 : parameter_mix[ASP].push_back(-6153.667315935503);
3511 10 : parameter_mix[ASP].push_back(41296.118377286424);
3512 10 : parameter_mix[ASP].push_back(-28740.28391184026);
3513 10 : parameter_mix[ASP].push_back(6132.671533319127);
3514 :
3515 10 : parameter_mix[GLU].push_back(19156.03660739947);
3516 10 : parameter_mix[GLU].push_back(-110.90600703589246);
3517 10 : parameter_mix[GLU].push_back(-40319.3351514524);
3518 10 : parameter_mix[GLU].push_back(-14679.813393816446);
3519 10 : parameter_mix[GLU].push_back(96769.28565573556);
3520 10 : parameter_mix[GLU].push_back(-77909.09315520026);
3521 10 : parameter_mix[GLU].push_back(19770.047062759568);
3522 :
3523 10 : parameter_mix[ILE].push_back(20693.06215917923);
3524 10 : parameter_mix[ILE].push_back(-102.87208880594848);
3525 10 : parameter_mix[ILE].push_back(-41080.44036311675);
3526 10 : parameter_mix[ILE].push_back(-12874.439649378206);
3527 10 : parameter_mix[ILE].push_back(84947.33147117581);
3528 10 : parameter_mix[ILE].push_back(-63779.07871450237);
3529 10 : parameter_mix[ILE].push_back(14938.919981690511);
3530 :
3531 10 : parameter_mix[LEU].push_back(20693.062159179233);
3532 10 : parameter_mix[LEU].push_back(-114.09539845409269);
3533 10 : parameter_mix[LEU].push_back(-42417.3431074524);
3534 10 : parameter_mix[LEU].push_back(-14393.801090829746);
3535 10 : parameter_mix[LEU].push_back(93640.48403643962);
3536 10 : parameter_mix[LEU].push_back(-71990.10354816525);
3537 10 : parameter_mix[LEU].push_back(17299.01082057651);
3538 :
3539 10 : parameter_mix[MET].push_back(22400.800002738917);
3540 10 : parameter_mix[MET].push_back(-138.14469221559762);
3541 10 : parameter_mix[MET].push_back(-53013.97694299946);
3542 10 : parameter_mix[MET].push_back(-21079.899452619244);
3543 10 : parameter_mix[MET].push_back(148607.1089339919);
3544 10 : parameter_mix[MET].push_back(-129827.63962878387);
3545 10 : parameter_mix[MET].push_back(35882.3297822684);
3546 :
3547 10 : parameter_mix[ASN].push_back(14384.287416519475);
3548 10 : parameter_mix[ASN].push_back(-55.24976731179147);
3549 10 : parameter_mix[ASN].push_back(-25372.978199926372);
3550 10 : parameter_mix[ASN].push_back(-6646.452004616925);
3551 10 : parameter_mix[ASN].push_back(44594.5027556148);
3552 10 : parameter_mix[ASN].push_back(-31202.511764907107);
3553 10 : parameter_mix[ASN].push_back(6703.764135873442);
3554 :
3555 10 : parameter_mix[PRO].push_back(13503.797145659117);
3556 10 : parameter_mix[PRO].push_back(-38.58316011847087);
3557 10 : parameter_mix[PRO].push_back(-21446.17847324053);
3558 10 : parameter_mix[PRO].push_back(-4480.55896170459);
3559 10 : parameter_mix[PRO].push_back(31274.287350083254);
3560 10 : parameter_mix[PRO].push_back(-19984.249229169505);
3561 10 : parameter_mix[PRO].push_back(3782.272312712745);
3562 :
3563 10 : parameter_mix[GLN].push_back(19938.23724683901);
3564 10 : parameter_mix[GLN].push_back(-121.24884503048865);
3565 10 : parameter_mix[GLN].push_back(-43928.589472297834);
3566 10 : parameter_mix[GLN].push_back(-16805.069757865473);
3567 10 : parameter_mix[GLN].push_back(112831.61348476357);
3568 10 : parameter_mix[GLN].push_back(-93979.08819184235);
3569 10 : parameter_mix[GLN].push_back(24741.563493163732);
3570 :
3571 10 : parameter_mix[SER].push_back(8813.67020471935);
3572 10 : parameter_mix[SER].push_back(-18.291615317790175);
3573 10 : parameter_mix[SER].push_back(-12585.074732466266);
3574 10 : parameter_mix[SER].push_back(-2064.454891600786);
3575 10 : parameter_mix[SER].push_back(15273.905065790364);
3576 10 : parameter_mix[SER].push_back(-8813.056005263466);
3577 10 : parameter_mix[SER].push_back(1404.9812302289881);
3578 :
3579 10 : parameter_mix[THR].push_back(13233.997179639062);
3580 10 : parameter_mix[THR].push_back(-39.40454157416847);
3581 10 : parameter_mix[THR].push_back(-21430.58717233547);
3582 10 : parameter_mix[THR].push_back(-4566.332853710876);
3583 10 : parameter_mix[THR].push_back(31717.497780073558);
3584 10 : parameter_mix[THR].push_back(-20299.614304281313);
3585 10 : parameter_mix[THR].push_back(3837.207224537505);
3586 :
3587 10 : parameter_mix[VAL].push_back(15135.438016299158);
3588 10 : parameter_mix[VAL].push_back(-51.415141550353205);
3589 10 : parameter_mix[VAL].push_back(-25859.078442379723);
3590 10 : parameter_mix[VAL].push_back(-6007.697291593915);
3591 10 : parameter_mix[VAL].push_back(40997.969600345634);
3592 10 : parameter_mix[VAL].push_back(-27036.257386814148);
3593 10 : parameter_mix[VAL].push_back(5328.922363811635);
3594 :
3595 10 : parameter_mix[ALA].push_back(6586.942863819189);
3596 10 : parameter_mix[ALA].push_back(-10.96713559950907);
3597 10 : parameter_mix[ALA].push_back(-8758.836131731925);
3598 10 : parameter_mix[ALA].push_back(-1223.1723720922605);
3599 10 : parameter_mix[ALA].push_back(9475.182453543037);
3600 10 : parameter_mix[ALA].push_back(-5124.611191433804);
3601 10 : parameter_mix[ALA].push_back(721.7625962949869);
3602 :
3603 10 : parameter_mix[GLY].push_back(3596.0718542192762);
3604 10 : parameter_mix[GLY].push_back(-4.079285964028122);
3605 10 : parameter_mix[GLY].push_back(-4089.4217504382686);
3606 10 : parameter_mix[GLY].push_back(-450.9650932154967);
3607 10 : parameter_mix[GLY].push_back(3737.026778223427);
3608 10 : parameter_mix[GLY].push_back(-1862.9856575810572);
3609 10 : parameter_mix[GLY].push_back(222.97288276257262);
3610 :
3611 10 : parameter_mix[HIS].push_back(21779.124723299232);
3612 10 : parameter_mix[HIS].push_back(-131.4603421188538);
3613 10 : parameter_mix[HIS].push_back(-49068.74667421681);
3614 10 : parameter_mix[HIS].push_back(-18685.909496392127);
3615 10 : parameter_mix[HIS].push_back(127724.60792384286);
3616 10 : parameter_mix[HIS].push_back(-107419.22159440348);
3617 10 : parameter_mix[HIS].push_back(28577.228634530744);
3618 :
3619 10 : parameter_vac[TRP].push_back(9599.949107368187);
3620 10 : parameter_vac[TRP].push_back(-66.35331786175249);
3621 10 : parameter_vac[TRP].push_back(-26311.640290970638);
3622 10 : parameter_vac[TRP].push_back(-11577.314600529338);
3623 10 : parameter_vac[TRP].push_back(85847.52554160352);
3624 10 : parameter_vac[TRP].push_back(-79417.17065742958);
3625 10 : parameter_vac[TRP].push_back(23090.348430572863);
3626 :
3627 10 : parameter_vac[TYR].push_back(7393.553846412945);
3628 10 : parameter_vac[TYR].push_back(-27.51954035778316);
3629 10 : parameter_vac[TYR].push_back(-20329.10485615286);
3630 10 : parameter_vac[TYR].push_back(-7444.276340508767);
3631 10 : parameter_vac[TYR].push_back(66343.22315132803);
3632 10 : parameter_vac[TYR].push_back(-64470.58721639446);
3633 10 : parameter_vac[TYR].push_back(19614.63563898146);
3634 :
3635 10 : parameter_vac[PHE].push_back(6081.874997705279);
3636 10 : parameter_vac[PHE].push_back(-40.474695969500104);
3637 10 : parameter_vac[PHE].push_back(-14354.627390498901);
3638 10 : parameter_vac[PHE].push_back(-6156.69750315959);
3639 10 : parameter_vac[PHE].push_back(42580.84239395237);
3640 10 : parameter_vac[PHE].push_back(-37704.09749809582);
3641 10 : parameter_vac[PHE].push_back(10543.005717478625);
3642 :
3643 10 : parameter_vac[HIP].push_back(5325.791987063724);
3644 10 : parameter_vac[HIP].push_back(-35.512112257530156);
3645 10 : parameter_vac[HIP].push_back(-11488.443296477566);
3646 10 : parameter_vac[HIP].push_back(-4916.724935318093);
3647 10 : parameter_vac[HIP].push_back(32134.338675979947);
3648 10 : parameter_vac[HIP].push_back(-27388.387595464188);
3649 10 : parameter_vac[HIP].push_back(7359.899986748838);
3650 :
3651 10 : parameter_vac[ARG].push_back(7220.306892248294);
3652 10 : parameter_vac[ARG].push_back(-20.65912886190997);
3653 10 : parameter_vac[ARG].push_back(-22700.70129646048);
3654 10 : parameter_vac[ARG].push_back(-8696.901551172636);
3655 10 : parameter_vac[ARG].push_back(83641.36257312517);
3656 10 : parameter_vac[ARG].push_back(-85237.33676336925);
3657 10 : parameter_vac[ARG].push_back(26899.162688310953);
3658 :
3659 10 : parameter_vac[LYS].push_back(5038.613120729022);
3660 10 : parameter_vac[LYS].push_back(-34.08366887546492);
3661 10 : parameter_vac[LYS].push_back(-12812.921120433106);
3662 10 : parameter_vac[LYS].push_back(-5843.761329082788);
3663 10 : parameter_vac[LYS].push_back(42419.08427856609);
3664 10 : parameter_vac[LYS].push_back(-39460.49038159249);
3665 10 : parameter_vac[LYS].push_back(11542.320830663035);
3666 :
3667 10 : parameter_vac[CYS].push_back(2915.0458981763995);
3668 10 : parameter_vac[CYS].push_back(-5.380571839804511);
3669 10 : parameter_vac[CYS].push_back(-3865.366285883624);
3670 10 : parameter_vac[CYS].push_back(-602.3275271136284);
3671 10 : parameter_vac[CYS].push_back(4524.133086072617);
3672 10 : parameter_vac[CYS].push_back(-2537.87137720241);
3673 10 : parameter_vac[CYS].push_back(381.52870758240016);
3674 :
3675 10 : parameter_vac[CYX].push_back(2808.068549348085);
3676 10 : parameter_vac[CYX].push_back(-7.372260063948);
3677 10 : parameter_vac[CYX].push_back(-4017.492317531980);
3678 10 : parameter_vac[CYX].push_back(-840.151815748375);
3679 10 : parameter_vac[CYX].push_back(5800.074437790741);
3680 10 : parameter_vac[CYX].push_back(-3637.868824045027);
3681 10 : parameter_vac[CYX].push_back(659.528934122407);
3682 :
3683 10 : parameter_vac[ASP].push_back(3479.750728224898);
3684 10 : parameter_vac[ASP].push_back(-10.33897891836596);
3685 10 : parameter_vac[ASP].push_back(-5382.628188436401);
3686 10 : parameter_vac[ASP].push_back(-1183.8060939576694);
3687 10 : parameter_vac[ASP].push_back(8100.082378727997);
3688 10 : parameter_vac[ASP].push_back(-5162.630696148773);
3689 10 : parameter_vac[ASP].push_back(958.993022379732);
3690 :
3691 10 : parameter_vac[GLU].push_back(4487.461543955491);
3692 10 : parameter_vac[GLU].push_back(-26.671865751817936);
3693 10 : parameter_vac[GLU].push_back(-8829.738168429001);
3694 10 : parameter_vac[GLU].push_back(-3297.668395415257);
3695 10 : parameter_vac[GLU].push_back(20686.457747123466);
3696 10 : parameter_vac[GLU].push_back(-16030.814134196151);
3697 10 : parameter_vac[GLU].push_back(3858.4457728083275);
3698 :
3699 10 : parameter_vac[ILE].push_back(3842.5968201937776);
3700 10 : parameter_vac[ILE].push_back(-13.848165050578492);
3701 10 : parameter_vac[ILE].push_back(-6480.062699452774);
3702 10 : parameter_vac[ILE].push_back(-1636.3888925440413);
3703 10 : parameter_vac[ILE].push_back(10967.333210698738);
3704 10 : parameter_vac[ILE].push_back(-7483.704914714421);
3705 10 : parameter_vac[ILE].push_back(1548.5696047594895);
3706 :
3707 10 : parameter_vac[LEU].push_back(3842.5968201937785);
3708 10 : parameter_vac[LEU].push_back(-16.2745108270949);
3709 10 : parameter_vac[LEU].push_back(-6807.110269770606);
3710 10 : parameter_vac[LEU].push_back(-1926.6303434106014);
3711 10 : parameter_vac[LEU].push_back(12577.952756390941);
3712 10 : parameter_vac[LEU].push_back(-8829.40489330961);
3713 10 : parameter_vac[LEU].push_back(1882.919316016889);
3714 :
3715 10 : parameter_vac[MET].push_back(4898.512892967389);
3716 10 : parameter_vac[MET].push_back(-30.588244886468207);
3717 10 : parameter_vac[MET].push_back(-10159.093665859045);
3718 10 : parameter_vac[MET].push_back(-4025.0261508449653);
3719 10 : parameter_vac[MET].push_back(26007.394369425827);
3720 10 : parameter_vac[MET].push_back(-21199.218680206573);
3721 10 : parameter_vac[MET].push_back(5423.004225853842);
3722 :
3723 10 : parameter_vac[ASN].push_back(3598.1423998115492);
3724 10 : parameter_vac[ASN].push_back(-10.357995638888545);
3725 10 : parameter_vac[ASN].push_back(-5565.603011562138);
3726 10 : parameter_vac[ASN].push_back(-1190.3294930971967);
3727 10 : parameter_vac[ASN].push_back(8227.920711951123);
3728 10 : parameter_vac[ASN].push_back(-5222.61541118056);
3729 10 : parameter_vac[ASN].push_back(968.593406702772);
3730 :
3731 10 : parameter_vac[PRO].push_back(2702.925890807494);
3732 10 : parameter_vac[PRO].push_back(-4.11690159421177);
3733 10 : parameter_vac[PRO].push_back(-3395.325331307625);
3734 10 : parameter_vac[PRO].push_back(-458.95242128002894);
3735 10 : parameter_vac[PRO].push_back(3584.3640448715823);
3736 10 : parameter_vac[PRO].push_back(-1921.4140769384692);
3737 10 : parameter_vac[PRO].push_back(267.08577848319516);
3738 :
3739 10 : parameter_vac[GLN].push_back(4621.773132292556);
3740 10 : parameter_vac[GLN].push_back(-29.511778489038818);
3741 10 : parameter_vac[GLN].push_back(-9486.077450010192);
3742 10 : parameter_vac[GLN].push_back(-3768.5756897489828);
3743 10 : parameter_vac[GLN].push_back(23828.07111260487);
3744 10 : parameter_vac[GLN].push_back(-19110.205836780202);
3745 10 : parameter_vac[GLN].push_back(4791.718204894083);
3746 :
3747 10 : parameter_vac[SER].push_back(2115.1504654043965);
3748 10 : parameter_vac[SER].push_back(-2.4158378234251234);
3749 10 : parameter_vac[SER].push_back(-2488.1131972903822);
3750 10 : parameter_vac[SER].push_back(-263.64072945387693);
3751 10 : parameter_vac[SER].push_back(2251.376687850687);
3752 10 : parameter_vac[SER].push_back(-1066.0790768852626);
3753 10 : parameter_vac[SER].push_back(105.5155397911316);
3754 :
3755 10 : parameter_vac[THR].push_back(2914.9061707158835);
3756 10 : parameter_vac[THR].push_back(-5.032844592364407);
3757 10 : parameter_vac[THR].push_back(-3903.2546253886653);
3758 10 : parameter_vac[THR].push_back(-559.4734271244915);
3759 10 : parameter_vac[THR].push_back(4315.044828297787);
3760 10 : parameter_vac[THR].push_back(-2331.211908177365);
3761 10 : parameter_vac[THR].push_back(323.76849758109853);
3762 :
3763 10 : parameter_vac[VAL].push_back(2914.8744247581953);
3764 10 : parameter_vac[VAL].push_back(-5.847217106105881);
3765 10 : parameter_vac[VAL].push_back(-4096.370479502377);
3766 10 : parameter_vac[VAL].push_back(-655.2917606620404);
3767 10 : parameter_vac[VAL].push_back(4888.77261250007);
3768 10 : parameter_vac[VAL].push_back(-2765.7552774385167);
3769 10 : parameter_vac[VAL].push_back(421.9081598033515);
3770 :
3771 10 : parameter_vac[ALA].push_back(1443.3438146824446);
3772 10 : parameter_vac[ALA].push_back(-1.1234573178567506);
3773 10 : parameter_vac[ALA].push_back(-1492.4547663363514);
3774 10 : parameter_vac[ALA].push_back(-121.47935619968672);
3775 10 : parameter_vac[ALA].push_back(1139.689871538201);
3776 10 : parameter_vac[ALA].push_back(-483.8336547914466);
3777 10 : parameter_vac[ALA].push_back(32.48231950404626);
3778 :
3779 10 : parameter_vac[GLY].push_back(899.5356000422925);
3780 10 : parameter_vac[GLY].push_back(-0.5200880084066986);
3781 10 : parameter_vac[GLY].push_back(-787.5892053280859);
3782 10 : parameter_vac[GLY].push_back(-56.07596224884467);
3783 10 : parameter_vac[GLY].push_back(546.4212287680981);
3784 10 : parameter_vac[GLY].push_back(-222.2667666932616);
3785 10 : parameter_vac[GLY].push_back(12.474587265791476);
3786 :
3787 10 : parameter_vac[HIS].push_back(5180.842705000207);
3788 10 : parameter_vac[HIS].push_back(-29.578973475252766);
3789 10 : parameter_vac[HIS].push_back(-10323.417251934066);
3790 10 : parameter_vac[HIS].push_back(-3788.977215582307);
3791 10 : parameter_vac[HIS].push_back(24427.720792289427);
3792 10 : parameter_vac[HIS].push_back(-19307.35836837878);
3793 10 : parameter_vac[HIS].push_back(4780.831414992477);
3794 :
3795 : // NUCLEIC ACIDS
3796 10 : parameter_solv[BB_PO3].push_back(1464.5929001192262);
3797 10 : parameter_solv[BB_PO3].push_back(-2.316908934494931);
3798 10 : parameter_solv[BB_PO3].push_back(-1882.4844584696532);
3799 10 : parameter_solv[BB_PO3].push_back(-258.8660305554736);
3800 10 : parameter_solv[BB_PO3].push_back(2007.5216385943972);
3801 10 : parameter_solv[BB_PO3].push_back(-1087.6423562424877);
3802 10 : parameter_solv[BB_PO3].push_back(154.89236486681165);
3803 :
3804 10 : parameter_solv[BB_PO2].push_back(575.5201001192197);
3805 10 : parameter_solv[BB_PO2].push_back(-0.6126595489733868);
3806 10 : parameter_solv[BB_PO2].push_back(-623.3371092254897);
3807 10 : parameter_solv[BB_PO2].push_back(-68.05795957022156);
3808 10 : parameter_solv[BB_PO2].push_back(561.8052621243662);
3809 10 : parameter_solv[BB_PO2].push_back(-283.39573309540344);
3810 10 : parameter_solv[BB_PO2].push_back(35.55001698010027);
3811 :
3812 10 : parameter_solv[BB_DNA].push_back(21211.009600118316);
3813 10 : parameter_solv[BB_DNA].push_back(-90.18805990529991);
3814 10 : parameter_solv[BB_DNA].push_back(-39731.1337351215);
3815 10 : parameter_solv[BB_DNA].push_back(-10920.373563712878);
3816 10 : parameter_solv[BB_DNA].push_back(72882.21702424977);
3817 10 : parameter_solv[BB_DNA].push_back(-51747.487078112754);
3818 10 : parameter_solv[BB_DNA].push_back(11308.67842901876);
3819 :
3820 10 : parameter_solv[BB_DNA_5].push_back(22737.624100119025);
3821 10 : parameter_solv[BB_DNA_5].push_back(-102.72714886664163);
3822 10 : parameter_solv[BB_DNA_5].push_back(-43685.329677789705);
3823 10 : parameter_solv[BB_DNA_5].push_back(-12564.259374093454);
3824 10 : parameter_solv[BB_DNA_5].push_back(83454.87540484876);
3825 10 : parameter_solv[BB_DNA_5].push_back(-60367.15652138888);
3826 10 : parameter_solv[BB_DNA_5].push_back(13507.33372986899);
3827 :
3828 10 : parameter_solv[BB_DNA_3].push_back(22737.62410011902);
3829 10 : parameter_solv[BB_DNA_3].push_back(-101.57816684452263);
3830 10 : parameter_solv[BB_DNA_3].push_back(-43488.53670557616);
3831 10 : parameter_solv[BB_DNA_3].push_back(-12345.056184958417);
3832 10 : parameter_solv[BB_DNA_3].push_back(81963.5236411489);
3833 10 : parameter_solv[BB_DNA_3].push_back(-58791.59443618196);
3834 10 : parameter_solv[BB_DNA_3].push_back(13003.199362335576);
3835 :
3836 10 : parameter_solv[BB_RNA].push_back(23953.752900120977);
3837 10 : parameter_solv[BB_RNA].push_back(-117.35779348824401);
3838 10 : parameter_solv[BB_RNA].push_back(-47644.41735332837);
3839 10 : parameter_solv[BB_RNA].push_back(-14641.556643789863);
3840 10 : parameter_solv[BB_RNA].push_back(96893.48627050382);
3841 10 : parameter_solv[BB_RNA].push_back(-72249.62534169314);
3842 10 : parameter_solv[BB_RNA].push_back(16792.05552105538);
3843 :
3844 10 : parameter_solv[BB_RNA_5].push_back(25574.406400119024);
3845 10 : parameter_solv[BB_RNA_5].push_back(-131.99642772933734);
3846 10 : parameter_solv[BB_RNA_5].push_back(-52136.51404531249);
3847 10 : parameter_solv[BB_RNA_5].push_back(-16682.14273917604);
3848 10 : parameter_solv[BB_RNA_5].push_back(110278.019216394);
3849 10 : parameter_solv[BB_RNA_5].push_back(-83715.92027818545);
3850 10 : parameter_solv[BB_RNA_5].push_back(19875.891337706045);
3851 :
3852 10 : parameter_solv[BB_RNA_3].push_back(25574.406400119024);
3853 10 : parameter_solv[BB_RNA_3].push_back(-127.96875237036166);
3854 10 : parameter_solv[BB_RNA_3].push_back(-51407.183917584385);
3855 10 : parameter_solv[BB_RNA_3].push_back(-15922.900669975606);
3856 10 : parameter_solv[BB_RNA_3].push_back(105078.58889106264);
3857 10 : parameter_solv[BB_RNA_3].push_back(-78289.16276190648);
3858 10 : parameter_solv[BB_RNA_3].push_back(18156.83214344118);
3859 :
3860 10 : parameter_solv[BASE_A].push_back(13282.562500119211);
3861 10 : parameter_solv[BASE_A].push_back(-76.45124168404048);
3862 10 : parameter_solv[BASE_A].push_back(-28376.06994108963);
3863 10 : parameter_solv[BASE_A].push_back(-9972.910773722022);
3864 10 : parameter_solv[BASE_A].push_back(65873.86341939073);
3865 10 : parameter_solv[BASE_A].push_back(-52064.33492910885);
3866 10 : parameter_solv[BASE_A].push_back(12931.608989412513);
3867 :
3868 10 : parameter_solv[BASE_C].push_back(10600.76160011891);
3869 10 : parameter_solv[BASE_C].push_back(-49.1670871249108);
3870 10 : parameter_solv[BASE_C].push_back(-20239.818742072875);
3871 10 : parameter_solv[BASE_C].push_back(-6020.278780090207);
3872 10 : parameter_solv[BASE_C].push_back(39632.13288981881);
3873 10 : parameter_solv[BASE_C].push_back(-28954.779736165576);
3874 10 : parameter_solv[BASE_C].push_back(6551.541109526305);
3875 :
3876 10 : parameter_solv[BASE_G].push_back(15470.384400119934);
3877 10 : parameter_solv[BASE_G].push_back(-93.8013620200972);
3878 10 : parameter_solv[BASE_G].push_back(-36188.29687013545);
3879 10 : parameter_solv[BASE_G].push_back(-13717.685098209471);
3880 10 : parameter_solv[BASE_G].push_back(95658.18473657136);
3881 10 : parameter_solv[BASE_G].push_back(-81262.37811451119);
3882 10 : parameter_solv[BASE_G].push_back(21841.903930943085);
3883 :
3884 10 : parameter_solv[BASE_T].push_back(17210.81610011936);
3885 10 : parameter_solv[BASE_T].push_back(-93.10189802920208);
3886 10 : parameter_solv[BASE_T].push_back(-36466.51927689957);
3887 10 : parameter_solv[BASE_T].push_back(-12425.55615716932);
3888 10 : parameter_solv[BASE_T].push_back(83847.427808925);
3889 10 : parameter_solv[BASE_T].push_back(-66735.64997846584);
3890 10 : parameter_solv[BASE_T].push_back(16757.3463987507);
3891 :
3892 10 : parameter_solv[BASE_U].push_back(10909.802500119395);
3893 10 : parameter_solv[BASE_U].push_back(-46.17712672768298);
3894 10 : parameter_solv[BASE_U].push_back(-20149.67695512526);
3895 10 : parameter_solv[BASE_U].push_back(-5590.242961204435);
3896 10 : parameter_solv[BASE_U].push_back(37169.2740983132);
3897 10 : parameter_solv[BASE_U].push_back(-26475.631627167604);
3898 10 : parameter_solv[BASE_U].push_back(5808.201015156168);
3899 :
3900 10 : parameter_mix[BB_PO3].push_back(3061.4050527391964);
3901 10 : parameter_mix[BB_PO3].push_back(-2.022452986623699);
3902 10 : parameter_mix[BB_PO3].push_back(-2998.2603666141363);
3903 10 : parameter_mix[BB_PO3].push_back(-218.44256405859076);
3904 10 : parameter_mix[BB_PO3].push_back(2113.3633950628328);
3905 10 : parameter_mix[BB_PO3].push_back(-868.4021757095805);
3906 10 : parameter_mix[BB_PO3].push_back(52.19052064107954);
3907 :
3908 10 : parameter_mix[BB_PO2].push_back(1487.2888381188868);
3909 10 : parameter_mix[BB_PO2].push_back(-0.6155376265599789);
3910 10 : parameter_mix[BB_PO2].push_back(-1181.5076027691764);
3911 10 : parameter_mix[BB_PO2].push_back(-66.25027450710594);
3912 10 : parameter_mix[BB_PO2].push_back(697.0421991965113);
3913 10 : parameter_mix[BB_PO2].push_back(-261.8559466354847);
3914 10 : parameter_mix[BB_PO2].push_back(9.974337082362194);
3915 :
3916 10 : parameter_mix[BB_DNA].push_back(17766.29474499878);
3917 10 : parameter_mix[BB_DNA].push_back(-48.97330188566253);
3918 10 : parameter_mix[BB_DNA].push_back(-28199.563596327207);
3919 10 : parameter_mix[BB_DNA].push_back(-5623.82085602494);
3920 10 : parameter_mix[BB_DNA].push_back(39646.22954828498);
3921 10 : parameter_mix[BB_DNA].push_back(-24658.81157651943);
3922 10 : parameter_mix[BB_DNA].push_back(4453.73906293146);
3923 :
3924 10 : parameter_mix[BB_DNA_5].push_back(18696.09744203927);
3925 10 : parameter_mix[BB_DNA_5].push_back(-56.29408880833802);
3926 10 : parameter_mix[BB_DNA_5].push_back(-30486.108599707608);
3927 10 : parameter_mix[BB_DNA_5].push_back(-6524.195857141158);
3928 10 : parameter_mix[BB_DNA_5].push_back(45280.80142686446);
3929 10 : parameter_mix[BB_DNA_5].push_back(-29007.98616567993);
3930 10 : parameter_mix[BB_DNA_5].push_back(5488.566965501818);
3931 :
3932 10 : parameter_mix[BB_DNA_3].push_back(18696.097442039274);
3933 10 : parameter_mix[BB_DNA_3].push_back(-55.5645003501971);
3934 10 : parameter_mix[BB_DNA_3].push_back(-30422.262113654506);
3935 10 : parameter_mix[BB_DNA_3].push_back(-6409.659659309089);
3936 10 : parameter_mix[BB_DNA_3].push_back(44605.76043515699);
3937 10 : parameter_mix[BB_DNA_3].push_back(-28295.62152988411);
3938 10 : parameter_mix[BB_DNA_3].push_back(5262.5765863484);
3939 :
3940 10 : parameter_mix[BB_RNA].push_back(21356.177105457366);
3941 10 : parameter_mix[BB_RNA].push_back(-76.73490647754872);
3942 10 : parameter_mix[BB_RNA].push_back(-36845.234814782816);
3943 10 : parameter_mix[BB_RNA].push_back(-9066.559625582728);
3944 10 : parameter_mix[BB_RNA].push_back(61167.998793390485);
3945 10 : parameter_mix[BB_RNA].push_back(-41467.23384423218);
3946 10 : parameter_mix[BB_RNA].push_back(8518.937793863257);
3947 :
3948 10 : parameter_mix[BB_RNA_5].push_back(22386.63276427916);
3949 10 : parameter_mix[BB_RNA_5].push_back(-85.70426456933487);
3950 10 : parameter_mix[BB_RNA_5].push_back(-39490.50298502025);
3951 10 : parameter_mix[BB_RNA_5].push_back(-10223.702594972712);
3952 10 : parameter_mix[BB_RNA_5].push_back(68450.60459618448);
3953 10 : parameter_mix[BB_RNA_5].push_back(-47409.91098159006);
3954 10 : parameter_mix[BB_RNA_5].push_back(10031.136138513202);
3955 :
3956 10 : parameter_mix[BB_RNA_3].push_back(22386.63276427916);
3957 10 : parameter_mix[BB_RNA_3].push_back(-81.93760812351479);
3958 10 : parameter_mix[BB_RNA_3].push_back(-39031.70571520093);
3959 10 : parameter_mix[BB_RNA_3].push_back(-9666.316086142708);
3960 10 : parameter_mix[BB_RNA_3].push_back(65120.07128126262);
3961 10 : parameter_mix[BB_RNA_3].push_back(-44110.13603681317);
3962 10 : parameter_mix[BB_RNA_3].push_back(9036.76498256983);
3963 :
3964 10 : parameter_mix[BASE_A].push_back(15897.31116611889);
3965 10 : parameter_mix[BASE_A].push_back(-67.86385832953485);
3966 10 : parameter_mix[BASE_A].push_back(-28851.754660951636);
3967 10 : parameter_mix[BASE_A].push_back(-8144.431687170413);
3968 10 : parameter_mix[BASE_A].push_back(53606.39082954489);
3969 10 : parameter_mix[BASE_A].push_back(-38083.51243782253);
3970 10 : parameter_mix[BASE_A].push_back(8293.47107993253);
3971 :
3972 10 : parameter_mix[BASE_C].push_back(11733.2828871599);
3973 10 : parameter_mix[BASE_C].push_back(-38.76775400274115);
3974 10 : parameter_mix[BASE_C].push_back(-19318.84666423464);
3975 10 : parameter_mix[BASE_C].push_back(-4507.915522704176);
3976 10 : parameter_mix[BASE_C].push_back(30576.57671286052);
3977 10 : parameter_mix[BASE_C].push_back(-20132.46696910844);
3978 10 : parameter_mix[BASE_C].push_back(3947.8727087996162);
3979 :
3980 10 : parameter_mix[BASE_G].push_back(19146.612417237808);
3981 10 : parameter_mix[BASE_G].push_back(-102.37046638004914);
3982 10 : parameter_mix[BASE_G].push_back(-38718.96478190546);
3983 10 : parameter_mix[BASE_G].push_back(-13238.106081860074);
3984 10 : parameter_mix[BASE_G].push_back(87309.07460288722);
3985 10 : parameter_mix[BASE_G].push_back(-68364.82442984737);
3986 10 : parameter_mix[BASE_G].push_back(16815.362401369);
3987 :
3988 10 : parameter_mix[BASE_T].push_back(17050.440260819163);
3989 10 : parameter_mix[BASE_T].push_back(-76.33750600643376);
3990 10 : parameter_mix[BASE_T].push_back(-31849.539096715005);
3991 10 : parameter_mix[BASE_T].push_back(-9484.498992751434);
3992 10 : parameter_mix[BASE_T].push_back(62881.895771680494);
3993 10 : parameter_mix[BASE_T].push_back(-46531.948557759024);
3994 10 : parameter_mix[BASE_T].push_back(10734.196329884822);
3995 :
3996 10 : parameter_mix[BASE_U].push_back(11904.095265219023);
3997 10 : parameter_mix[BASE_U].push_back(-34.67511054915295);
3998 10 : parameter_mix[BASE_U].push_back(-18842.275003104005);
3999 10 : parameter_mix[BASE_U].push_back(-3993.1174764890684);
4000 10 : parameter_mix[BASE_U].push_back(27663.625106762345);
4001 10 : parameter_mix[BASE_U].push_back(-17577.387831701515);
4002 10 : parameter_mix[BASE_U].push_back(3273.183903219142);
4003 :
4004 10 : parameter_vac[BB_PO3].push_back(1599.7962466063982);
4005 10 : parameter_vac[BB_PO3].push_back(-0.2734304923675441);
4006 10 : parameter_vac[BB_PO3].push_back(-1023.9448073303214);
4007 10 : parameter_vac[BB_PO3].push_back(-28.78655166266909);
4008 10 : parameter_vac[BB_PO3].push_back(426.4382937268249);
4009 10 : parameter_vac[BB_PO3].push_back(-109.57771615730755);
4010 10 : parameter_vac[BB_PO3].push_back(-10.244595559424265);
4011 :
4012 10 : parameter_vac[BB_PO2].push_back(960.8822037291127);
4013 10 : parameter_vac[BB_PO2].push_back(-0.09312135742159174);
4014 10 : parameter_vac[BB_PO2].push_back(-469.39643497461844);
4015 10 : parameter_vac[BB_PO2].push_back(-9.779346709041985);
4016 10 : parameter_vac[BB_PO2].push_back(162.1581550003227);
4017 10 : parameter_vac[BB_PO2].push_back(-37.06686233305618);
4018 10 : parameter_vac[BB_PO2].push_back(-4.695586672655664);
4019 :
4020 10 : parameter_vac[BB_DNA].push_back(3720.2522996838984);
4021 10 : parameter_vac[BB_DNA].push_back(-5.4229642176938);
4022 10 : parameter_vac[BB_DNA].push_back(-4800.897672711981);
4023 10 : parameter_vac[BB_DNA].push_back(-597.2274673070993);
4024 10 : parameter_vac[BB_DNA].push_back(4825.908840953665);
4025 10 : parameter_vac[BB_DNA].push_back(-2451.397454446564);
4026 10 : parameter_vac[BB_DNA].push_back(294.93071756645685);
4027 :
4028 10 : parameter_vac[BB_DNA_5].push_back(3843.234214262163);
4029 10 : parameter_vac[BB_DNA_5].push_back(-6.423078416284452);
4030 10 : parameter_vac[BB_DNA_5].push_back(-5112.1216386963115);
4031 10 : parameter_vac[BB_DNA_5].push_back(-713.8373583426668);
4032 10 : parameter_vac[BB_DNA_5].push_back(5547.545382516269);
4033 10 : parameter_vac[BB_DNA_5].push_back(-2973.5659871174225);
4034 10 : parameter_vac[BB_DNA_5].push_back(407.2789106630427);
4035 :
4036 10 : parameter_vac[BB_DNA_3].push_back(3843.234214262163);
4037 10 : parameter_vac[BB_DNA_3].push_back(-6.268636561475645);
4038 10 : parameter_vac[BB_DNA_3].push_back(-5103.192931218086);
4039 10 : parameter_vac[BB_DNA_3].push_back(-693.8705734390547);
4040 10 : parameter_vac[BB_DNA_3].push_back(5443.979645097035);
4041 10 : parameter_vac[BB_DNA_3].push_back(-2871.4337477324893);
4042 10 : parameter_vac[BB_DNA_3].push_back(377.3062915349831);
4043 :
4044 10 : parameter_vac[BB_RNA].push_back(4760.071443398374);
4045 10 : parameter_vac[BB_RNA].push_back(-11.0990475402486);
4046 10 : parameter_vac[BB_RNA].push_back(-6934.713566418421);
4047 10 : parameter_vac[BB_RNA].push_back(-1256.5202524085096);
4048 10 : parameter_vac[BB_RNA].push_back(9024.962587066922);
4049 10 : parameter_vac[BB_RNA].push_back(-5386.842667932241);
4050 10 : parameter_vac[BB_RNA].push_back(907.42947751372);
4051 :
4052 10 : parameter_vac[BB_RNA_5].push_back(4899.051406033406);
4053 10 : parameter_vac[BB_RNA_5].push_back(-12.279240472628238);
4054 10 : parameter_vac[BB_RNA_5].push_back(-7276.273570813667);
4055 10 : parameter_vac[BB_RNA_5].push_back(-1400.9520839250868);
4056 10 : parameter_vac[BB_RNA_5].push_back(9912.215823228895);
4057 10 : parameter_vac[BB_RNA_5].push_back(-6079.2565270404075);
4058 10 : parameter_vac[BB_RNA_5].push_back(1073.53428175472);
4059 :
4060 10 : parameter_vac[BB_RNA_3].push_back(4899.051406033406);
4061 10 : parameter_vac[BB_RNA_3].push_back(-11.642804195148194);
4062 10 : parameter_vac[BB_RNA_3].push_back(-7213.774619570996);
4063 10 : parameter_vac[BB_RNA_3].push_back(-1317.4463949342964);
4064 10 : parameter_vac[BB_RNA_3].push_back(9450.928929264686);
4065 10 : parameter_vac[BB_RNA_3].push_back(-5643.856117200917);
4066 10 : parameter_vac[BB_RNA_3].push_back(949.4698817407918);
4067 :
4068 10 : parameter_vac[BASE_A].push_back(4756.697028810353);
4069 10 : parameter_vac[BASE_A].push_back(-12.158940746852812);
4070 10 : parameter_vac[BASE_A].push_back(-7106.473423744205);
4071 10 : parameter_vac[BASE_A].push_back(-1376.295184173137);
4072 10 : parameter_vac[BASE_A].push_back(9747.132255557788);
4073 10 : parameter_vac[BASE_A].push_back(-5900.026637038756);
4074 10 : parameter_vac[BASE_A].push_back(1004.6226388342955);
4075 :
4076 10 : parameter_vac[BASE_C].push_back(3246.698975674651);
4077 10 : parameter_vac[BASE_C].push_back(-6.125036521218687);
4078 10 : parameter_vac[BASE_C].push_back(-4280.666521437201);
4079 10 : parameter_vac[BASE_C].push_back(-684.0183580843932);
4080 10 : parameter_vac[BASE_C].push_back(5077.062889522692);
4081 10 : parameter_vac[BASE_C].push_back(-2870.3239317750963);
4082 10 : parameter_vac[BASE_C].push_back(434.51551177863547);
4083 :
4084 10 : parameter_vac[BASE_G].push_back(5924.105658596052);
4085 10 : parameter_vac[BASE_G].push_back(-23.097956587232552);
4086 10 : parameter_vac[BASE_G].push_back(-10149.526301285418);
4087 10 : parameter_vac[BASE_G].push_back(-2752.9166169522528);
4088 10 : parameter_vac[BASE_G].push_back(18239.32985385683);
4089 10 : parameter_vac[BASE_G].push_back(-12749.277858800957);
4090 10 : parameter_vac[BASE_G].push_back(2715.354663787367);
4091 :
4092 10 : parameter_vac[BASE_T].push_back(4222.889713694404);
4093 10 : parameter_vac[BASE_T].push_back(-12.15861456306705);
4094 10 : parameter_vac[BASE_T].push_back(-6395.50289789404);
4095 10 : parameter_vac[BASE_T].push_back(-1421.3942549301012);
4096 10 : parameter_vac[BASE_T].push_back(9757.061008720135);
4097 10 : parameter_vac[BASE_T].push_back(-6399.630933839126);
4098 10 : parameter_vac[BASE_T].push_back(1258.9874225605438);
4099 :
4100 10 : parameter_vac[BASE_U].push_back(3247.251361465539);
4101 10 : parameter_vac[BASE_U].push_back(-5.211020853261115);
4102 10 : parameter_vac[BASE_U].push_back(-4125.165310360279);
4103 10 : parameter_vac[BASE_U].push_back(-575.1860235473902);
4104 10 : parameter_vac[BASE_U].push_back(4457.6562621371495);
4105 10 : parameter_vac[BASE_U].push_back(-2368.7250146912766);
4106 10 : parameter_vac[BASE_U].push_back(313.23997718445014);
4107 :
4108 35262 : for(unsigned i=0; i<atoms.size(); ++i) {
4109 35252 : std::string Aname = pdb.getAtomName(atoms[i]);
4110 35252 : std::string Rname = pdb.getResidueName(atoms[i]);
4111 35252 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
4112 35252 : if(Rname=="ALA") {
4113 1790 : atoi[residue_atom[i]]=ALA;
4114 33462 : } else if(Rname=="ARG") {
4115 2160 : atoi[residue_atom[i]]=ARG;
4116 31302 : } else if(Rname=="ASN") {
4117 1800 : atoi[residue_atom[i]]=ASN;
4118 29502 : } else if(Rname=="ASP") {
4119 1560 : atoi[residue_atom[i]]=ASP;
4120 27942 : } else if(Rname=="CYS") {
4121 120 : atoi[residue_atom[i]]=CYS;
4122 27822 : } else if(Rname=="CYX") {
4123 0 : atoi[residue_atom[i]]=CYX;
4124 27822 : } else if(Rname=="GLN") {
4125 2584 : atoi[residue_atom[i]]=GLN;
4126 25238 : } else if(Rname=="GLU") {
4127 1190 : atoi[residue_atom[i]]=GLU;
4128 24048 : } else if(Rname=="GLY") {
4129 1548 : atoi[residue_atom[i]]=GLY;
4130 22500 : } else if(Rname=="HIS") {
4131 0 : atoi[residue_atom[i]]=HIS;
4132 22500 : } else if(Rname=="HID") {
4133 0 : atoi[residue_atom[i]]=HIS;
4134 22500 : } else if(Rname=="HIE") {
4135 360 : atoi[residue_atom[i]]=HIS;
4136 22140 : } else if(Rname=="HIP") {
4137 0 : atoi[residue_atom[i]]=HIP;
4138 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
4139 22140 : } else if(Rname=="HSD") {
4140 0 : atoi[residue_atom[i]]=HIS;
4141 22140 : } else if(Rname=="HSE") {
4142 0 : atoi[residue_atom[i]]=HIS;
4143 22140 : } else if(Rname=="HSP") {
4144 0 : atoi[residue_atom[i]]=HIP;
4145 22140 : } else if(Rname=="ILE") {
4146 2160 : atoi[residue_atom[i]]=ILE;
4147 19980 : } else if(Rname=="LEU") {
4148 3800 : atoi[residue_atom[i]]=LEU;
4149 16180 : } else if(Rname=="LYS") {
4150 2600 : atoi[residue_atom[i]]=LYS;
4151 13580 : } else if(Rname=="MET") {
4152 1368 : atoi[residue_atom[i]]=MET;
4153 12212 : } else if(Rname=="PHE") {
4154 2520 : atoi[residue_atom[i]]=PHE;
4155 9692 : } else if(Rname=="PRO") {
4156 1870 : atoi[residue_atom[i]]=PRO;
4157 7822 : } else if(Rname=="SER") {
4158 1272 : atoi[residue_atom[i]]=SER;
4159 6550 : } else if(Rname=="THR") {
4160 1204 : atoi[residue_atom[i]]=THR;
4161 5346 : } else if(Rname=="TRP") {
4162 0 : atoi[residue_atom[i]]=TRP;
4163 5346 : } else if(Rname=="TYR") {
4164 1320 : atoi[residue_atom[i]]=TYR;
4165 4026 : } else if(Rname=="VAL") {
4166 2656 : atoi[residue_atom[i]]=VAL;
4167 : }
4168 : // NUCLEIC ACIDS
4169 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
4170 : // RNA - G
4171 1370 : else if(Rname=="G") {
4172 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4173 0 : Aname=="O1P" || Aname=="O2P" ) {
4174 0 : atoi [residue_atom[i]]=BB_PO2;
4175 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4176 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4177 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4178 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4179 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4180 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4181 0 : atoi[residue_atom[i]]=BB_RNA;
4182 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4183 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4184 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4185 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4186 0 : atoi[residue_atom[i]]=BASE_G;
4187 : } else {
4188 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4189 : }
4190 : // RNA - G3
4191 1370 : } else if(Rname=="G3") {
4192 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4193 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4194 0 : atoi [residue_atom[i]]=BB_PO2;
4195 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4196 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4197 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4198 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4199 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4200 0 : Aname=="H5'2" || Aname=="HO'2" ) {
4201 0 : atoi[residue_atom[i]]=BB_RNA_3;
4202 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4203 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4204 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4205 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4206 0 : atoi[residue_atom[i]]=BASE_G;
4207 : } else {
4208 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4209 : }
4210 : // RNA - G5
4211 1370 : } else if(Rname=="G5") {
4212 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4213 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4214 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4215 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4216 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4217 0 : Aname=="H2'1" || Aname=="H5T" ) {
4218 0 : atoi[residue_atom[i]]=BB_RNA_5;
4219 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4220 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4221 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4222 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4223 0 : atoi[residue_atom[i]]=BASE_G;
4224 : } else {
4225 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4226 : }
4227 : // RNA - GT
4228 1370 : } else if(Rname=="GT") {
4229 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4230 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4231 0 : atoi [residue_atom[i]]=BB_PO3;
4232 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4233 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4234 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4235 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4236 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4237 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4238 0 : atoi[residue_atom[i]]=BB_RNA;
4239 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4240 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4241 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4242 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4243 0 : atoi[residue_atom[i]]=BASE_G;
4244 : } else {
4245 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4246 : }
4247 : // RNA - U
4248 1370 : } else if(Rname=="U") {
4249 4218 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4250 2166 : Aname=="O1P" || Aname=="O2P" ) {
4251 114 : atoi [residue_atom[i]]=BB_PO2;
4252 3724 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4253 3116 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4254 2508 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4255 1938 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4256 1748 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4257 2280 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4258 608 : atoi[residue_atom[i]]=BB_RNA;
4259 1292 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4260 684 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4261 532 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4262 418 : atoi[residue_atom[i]]=BASE_U;
4263 : } else {
4264 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4265 : }
4266 : // RNA - U3
4267 230 : } else if(Rname=="U3") {
4268 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4269 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4270 6 : atoi [residue_atom[i]]=BB_PO2;
4271 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4272 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4273 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4274 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4275 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4276 78 : Aname=="H5'2" || Aname=="HO'2" ) {
4277 34 : atoi[residue_atom[i]]=BB_RNA_3;
4278 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4279 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4280 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4281 22 : atoi[residue_atom[i]]=BASE_U;
4282 : } else {
4283 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4284 : }
4285 : // RNA - U5
4286 168 : } else if(Rname=="U5") {
4287 612 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4288 516 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4289 420 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4290 324 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4291 264 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4292 234 : Aname=="H2'1" || Aname=="H5T" ) {
4293 102 : atoi[residue_atom[i]]=BB_RNA_5;
4294 204 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4295 108 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4296 84 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4297 66 : atoi[residue_atom[i]]=BASE_U;
4298 : } else {
4299 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4300 : }
4301 : // RNA - UT
4302 0 : } else if(Rname=="UT") {
4303 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4304 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4305 0 : atoi [residue_atom[i]]=BB_PO3;
4306 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4307 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4308 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4309 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4310 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4311 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4312 0 : atoi[residue_atom[i]]=BB_RNA;
4313 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4314 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4315 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4316 0 : atoi[residue_atom[i]]=BASE_U;
4317 : } else {
4318 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4319 : }
4320 : // RNA - A
4321 0 : } else if(Rname=="A") {
4322 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4323 0 : Aname=="O1P" || Aname=="O2P" ) {
4324 0 : atoi [residue_atom[i]]=BB_PO2;
4325 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4326 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4327 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4328 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4329 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4330 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4331 0 : atoi[residue_atom[i]]=BB_RNA;
4332 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4333 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4334 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4335 0 : Aname=="H61" || Aname=="H62" ) {
4336 0 : atoi[residue_atom[i]]=BASE_A;
4337 : } else {
4338 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4339 : }
4340 : // RNA - A3
4341 0 : } else if(Rname=="A3") {
4342 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4343 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4344 0 : atoi [residue_atom[i]]=BB_PO2;
4345 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4346 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4347 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4348 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4349 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4350 0 : Aname=="H5'2" || Aname=="HO'2" ) {
4351 0 : atoi[residue_atom[i]]=BB_RNA_3;
4352 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4353 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4354 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4355 0 : Aname=="H61" || Aname=="H62" ) {
4356 0 : atoi[residue_atom[i]]=BASE_A;
4357 : } else {
4358 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4359 : }
4360 : // RNA - A5
4361 0 : } else if(Rname=="A5") {
4362 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4363 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4364 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4365 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4366 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4367 0 : Aname=="H2'1" || Aname=="H5T" ) {
4368 0 : atoi[residue_atom[i]]=BB_RNA_5;
4369 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4370 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4371 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4372 0 : Aname=="H61" || Aname=="H62" ) {
4373 0 : atoi[residue_atom[i]]=BASE_A;
4374 : } else {
4375 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4376 : }
4377 : // RNA - AT
4378 0 : } else if(Rname=="AT") {
4379 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4380 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4381 0 : atoi [residue_atom[i]]=BB_PO3;
4382 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4383 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4384 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4385 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4386 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4387 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4388 0 : atoi[residue_atom[i]]=BB_RNA;
4389 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4390 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4391 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4392 0 : Aname=="H61" || Aname=="H62" ) {
4393 0 : atoi[residue_atom[i]]=BASE_A;
4394 : } else {
4395 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4396 : }
4397 : // RNA - C
4398 0 : } else if(Rname=="C") {
4399 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4400 0 : Aname=="O1P" || Aname=="O2P" ) {
4401 0 : atoi [residue_atom[i]]=BB_PO2;
4402 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4403 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4404 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4405 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4406 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4407 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4408 0 : atoi[residue_atom[i]]=BB_RNA;
4409 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4410 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4411 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4412 0 : atoi[residue_atom[i]]=BASE_C;
4413 : } else {
4414 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4415 : }
4416 : // RNA - C3
4417 0 : } else if(Rname=="C3") {
4418 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4419 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4420 0 : atoi [residue_atom[i]]=BB_PO2;
4421 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4422 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4423 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4424 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4425 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4426 0 : Aname=="H5'2" || Aname=="HO'2" ) {
4427 0 : atoi[residue_atom[i]]=BB_RNA_3;
4428 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4429 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4430 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4431 0 : atoi[residue_atom[i]]=BASE_C;
4432 : } else {
4433 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4434 : }
4435 : // RNA - C5
4436 0 : } else if(Rname=="C5") {
4437 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4438 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4439 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4440 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4441 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4442 0 : Aname=="H2'1" || Aname=="H5T" ) {
4443 0 : atoi[residue_atom[i]]=BB_RNA_5;
4444 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4445 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4446 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4447 0 : atoi[residue_atom[i]]=BASE_C;
4448 : } else {
4449 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4450 : }
4451 : // RNA - CT
4452 0 : } else if(Rname=="CT") {
4453 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4454 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4455 0 : atoi [residue_atom[i]]=BB_PO3;
4456 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4457 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4458 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4459 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4460 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4461 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4462 0 : atoi[residue_atom[i]]=BB_RNA;
4463 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4464 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4465 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4466 0 : atoi[residue_atom[i]]=BASE_C;
4467 : } else {
4468 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4469 : }
4470 : // DNA - G
4471 0 : } else if(Rname=="DG") {
4472 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4473 0 : Aname=="O1P" || Aname=="O2P" ) {
4474 0 : atoi [residue_atom[i]]=BB_PO2;
4475 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4476 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4477 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4478 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4479 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4480 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4481 0 : atoi[residue_atom[i]]=BB_DNA;
4482 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4483 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4484 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4485 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4486 0 : atoi[residue_atom[i]]=BASE_G;
4487 : } else {
4488 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4489 : }
4490 : // DNA - G3
4491 0 : } else if(Rname=="DG3") {
4492 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4493 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4494 0 : atoi [residue_atom[i]]=BB_PO2;
4495 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4496 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4497 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4498 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4499 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4500 : Aname=="H3T" ) {
4501 0 : atoi[residue_atom[i]]=BB_DNA_3;
4502 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4503 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4504 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4505 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4506 0 : atoi[residue_atom[i]]=BASE_G;
4507 : } else {
4508 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4509 : }
4510 : // DNA - G5
4511 0 : } else if(Rname=="DG5") {
4512 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4513 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4514 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4515 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4516 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4517 : Aname=="H5T" ) {
4518 0 : atoi[residue_atom[i]]=BB_DNA_5;
4519 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4520 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4521 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4522 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4523 0 : atoi[residue_atom[i]]=BASE_G;
4524 : } else {
4525 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4526 : }
4527 : // DNA - GT
4528 0 : } else if(Rname=="DGT") {
4529 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4530 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4531 0 : atoi [residue_atom[i]]=BB_PO3;
4532 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4533 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4534 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4535 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4536 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4537 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4538 0 : atoi[residue_atom[i]]=BB_DNA;
4539 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4540 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4541 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4542 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4543 0 : atoi[residue_atom[i]]=BASE_G;
4544 : } else {
4545 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4546 : }
4547 : // DNA - T
4548 0 : } else if(Rname=="DT") {
4549 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4550 0 : Aname=="O1P" || Aname=="O2P" ) {
4551 0 : atoi [residue_atom[i]]=BB_PO2;
4552 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4553 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4554 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4555 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4556 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4557 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4558 0 : atoi[residue_atom[i]]=BB_DNA;
4559 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4560 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4561 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4562 0 : Aname=="H72" || Aname=="H73" ) {
4563 0 : atoi[residue_atom[i]]=BASE_T;
4564 : } else {
4565 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4566 : }
4567 : // DNA - T3
4568 0 : } else if(Rname=="DT3") {
4569 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4570 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4571 0 : atoi [residue_atom[i]]=BB_PO2;
4572 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4573 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4574 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4575 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4576 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4577 : Aname=="H3T" ) {
4578 0 : atoi[residue_atom[i]]=BB_DNA_3;
4579 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4580 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4581 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4582 0 : Aname=="H72" || Aname=="H73" ) {
4583 0 : atoi[residue_atom[i]]=BASE_T;
4584 : } else {
4585 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4586 : }
4587 : // DNA - T5
4588 0 : } else if(Rname=="DT5") {
4589 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4590 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4591 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4592 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4593 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4594 : Aname=="H5T" ) {
4595 0 : atoi[residue_atom[i]]=BB_DNA_5;
4596 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4597 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4598 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4599 0 : Aname=="H72" || Aname=="H73" ) {
4600 0 : atoi[residue_atom[i]]=BASE_T;
4601 : } else {
4602 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4603 : }
4604 : // DNA - TT
4605 0 : } else if(Rname=="DTT") {
4606 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4607 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4608 0 : atoi [residue_atom[i]]=BB_PO3;
4609 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4610 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4611 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4612 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4613 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4614 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4615 0 : atoi[residue_atom[i]]=BB_DNA;
4616 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4617 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4618 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4619 0 : Aname=="H72" || Aname=="H73" ) {
4620 0 : atoi[residue_atom[i]]=BASE_T;
4621 : } else {
4622 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4623 : }
4624 : // DNA - A
4625 0 : } else if(Rname=="DA") {
4626 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4627 0 : Aname=="O1P" || Aname=="O2P" ) {
4628 0 : atoi [residue_atom[i]]=BB_PO2;
4629 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4630 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4631 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4632 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4633 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4634 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4635 0 : atoi[residue_atom[i]]=BB_DNA;
4636 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4637 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4638 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4639 0 : Aname=="H61" || Aname=="H62" ) {
4640 0 : atoi[residue_atom[i]]=BASE_A;
4641 : } else {
4642 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4643 : }
4644 : // DNA - A3
4645 0 : } else if(Rname=="DA3") {
4646 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4647 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4648 0 : atoi [residue_atom[i]]=BB_PO2;
4649 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4650 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4651 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4652 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4653 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4654 : Aname=="H3T" ) {
4655 0 : atoi[residue_atom[i]]=BB_DNA_3;
4656 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4657 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4658 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4659 0 : Aname=="H61" || Aname=="H62" ) {
4660 0 : atoi[residue_atom[i]]=BASE_A;
4661 : } else {
4662 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4663 : }
4664 : // DNA - A5
4665 0 : } else if(Rname=="DA5") {
4666 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4667 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4668 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4669 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4670 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4671 : Aname=="H5T" ) {
4672 0 : atoi[residue_atom[i]]=BB_DNA_5;
4673 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4674 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4675 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4676 0 : Aname=="H61" || Aname=="H62" ) {
4677 0 : atoi[residue_atom[i]]=BASE_A;
4678 : } else {
4679 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4680 : }
4681 : // DNA - AT
4682 0 : } else if(Rname=="DAT") {
4683 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4684 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4685 0 : atoi [residue_atom[i]]=BB_PO3;
4686 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4687 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4688 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4689 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4690 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4691 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4692 0 : atoi[residue_atom[i]]=BB_DNA;
4693 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4694 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4695 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4696 0 : Aname=="H61" || Aname=="H62" ) {
4697 0 : atoi[residue_atom[i]]=BASE_A;
4698 : } else {
4699 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4700 : }
4701 : // DNA - C
4702 0 : } else if(Rname=="DC") {
4703 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4704 0 : Aname=="O1P" || Aname=="O2P" ) {
4705 0 : atoi [residue_atom[i]]=BB_PO2;
4706 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4707 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4708 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4709 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4710 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4711 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4712 0 : atoi[residue_atom[i]]=BB_DNA;
4713 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4714 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4715 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4716 0 : atoi[residue_atom[i]]=BASE_C;
4717 : } else {
4718 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4719 : }
4720 : // DNA - C3
4721 0 : } else if(Rname=="DC3") {
4722 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4723 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4724 0 : atoi [residue_atom[i]]=BB_PO2;
4725 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4726 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4727 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4728 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4729 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4730 : Aname=="H3T" ) {
4731 0 : atoi[residue_atom[i]]=BB_DNA_3;
4732 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4733 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4734 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4735 0 : atoi[residue_atom[i]]=BASE_C;
4736 : } else {
4737 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4738 : }
4739 : // DNA - C5
4740 0 : } else if(Rname=="DC5") {
4741 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4742 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4743 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4744 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4745 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4746 : Aname=="H5T" ) {
4747 0 : atoi[residue_atom[i]]=BB_DNA_5;
4748 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4749 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4750 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4751 0 : atoi[residue_atom[i]]=BASE_C;
4752 : } else {
4753 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4754 : }
4755 : // DNA - CT
4756 0 : } else if(Rname=="DCT") {
4757 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4758 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4759 0 : atoi [residue_atom[i]]=BB_PO3;
4760 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4761 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4762 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4763 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4764 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4765 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4766 0 : atoi[residue_atom[i]]=BB_DNA;
4767 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4768 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4769 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4770 0 : atoi[residue_atom[i]]=BASE_C;
4771 : } else {
4772 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4773 : }
4774 : } else {
4775 0 : error("Residue not known: "+Rname);
4776 : }
4777 : }
4778 10 : }
4779 :
4780 6 : void SAXS::getOnebeadparam_sansH(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac_H, std::vector<std::vector<long double> > ¶meter_mix_H, std::vector<std::vector<long double> > ¶meter_solv_H) {
4781 6 : parameter_solv_H[TRP].push_back(60737.60249988011);
4782 6 : parameter_solv_H[TRP].push_back(-77.77344118516487);
4783 6 : parameter_solv_H[TRP].push_back(-205962.80436572764);
4784 6 : parameter_solv_H[TRP].push_back(-62014.18523271781);
4785 6 : parameter_solv_H[TRP].push_back(680712.0512548896);
4786 6 : parameter_solv_H[TRP].push_back(-681337.967312983);
4787 6 : parameter_solv_H[TRP].push_back(211474.00338118695);
4788 :
4789 6 : parameter_solv_H[TYR].push_back(46250.803599880084);
4790 6 : parameter_solv_H[TYR].push_back(-45.827646837514614);
4791 6 : parameter_solv_H[TYR].push_back(-143872.94597686914);
4792 6 : parameter_solv_H[TYR].push_back(-39049.51580628132);
4793 6 : parameter_solv_H[TYR].push_back(441321.31246635393);
4794 6 : parameter_solv_H[TYR].push_back(-434477.6826175059);
4795 6 : parameter_solv_H[TYR].push_back(133179.21673104732);
4796 :
4797 6 : parameter_solv_H[PHE].push_back(42407.164900118914);
4798 6 : parameter_solv_H[PHE].push_back(-159.20054549009086);
4799 6 : parameter_solv_H[PHE].push_back(-123847.83591352346);
4800 6 : parameter_solv_H[PHE].push_back(-41797.78884558073);
4801 6 : parameter_solv_H[PHE].push_back(380283.87543872406);
4802 6 : parameter_solv_H[PHE].push_back(-361432.81356389285);
4803 6 : parameter_solv_H[PHE].push_back(107750.69385054041);
4804 :
4805 6 : parameter_solv_H[HIP].push_back(24473.473600119047);
4806 6 : parameter_solv_H[HIP].push_back(-111.6412807124612);
4807 6 : parameter_solv_H[HIP].push_back(-65826.17293437096);
4808 6 : parameter_solv_H[HIP].push_back(-23305.902022201855);
4809 6 : parameter_solv_H[HIP].push_back(194795.09953510275);
4810 6 : parameter_solv_H[HIP].push_back(-180454.47859494278);
4811 6 : parameter_solv_H[HIP].push_back(52699.36922660704);
4812 :
4813 6 : parameter_solv_H[ARG].push_back(34106.70239988039);
4814 6 : parameter_solv_H[ARG].push_back(152.74468231268114);
4815 6 : parameter_solv_H[ARG].push_back(-117086.46040369231);
4816 6 : parameter_solv_H[ARG].push_back(-19664.37512726012);
4817 6 : parameter_solv_H[ARG].push_back(364454.3721646173);
4818 6 : parameter_solv_H[ARG].push_back(-382076.05102190404);
4819 6 : parameter_solv_H[ARG].push_back(122775.83306003918);
4820 :
4821 6 : parameter_solv_H[LYS].push_back(32292.09000011877);
4822 6 : parameter_solv_H[LYS].push_back(-111.97888350941923);
4823 6 : parameter_solv_H[LYS].push_back(-91953.05212591762);
4824 6 : parameter_solv_H[LYS].push_back(-30691.03615444628);
4825 6 : parameter_solv_H[LYS].push_back(282092.82233263896);
4826 6 : parameter_solv_H[LYS].push_back(-269503.6095978623);
4827 6 : parameter_solv_H[LYS].push_back(80777.92760273012);
4828 :
4829 6 : parameter_solv_H[CYS].push_back(11352.902500119093);
4830 6 : parameter_solv_H[CYS].push_back(-45.52255488723637);
4831 6 : parameter_solv_H[CYS].push_back(-20925.086525675117);
4832 6 : parameter_solv_H[CYS].push_back(-5662.681335644281);
4833 6 : parameter_solv_H[CYS].push_back(38559.09602816144);
4834 6 : parameter_solv_H[CYS].push_back(-27885.22747486708);
4835 6 : parameter_solv_H[CYS].push_back(6280.148346561226);
4836 :
4837 6 : parameter_solv_H[CYX].push_back(10281.960000119348);
4838 6 : parameter_solv_H[CYX].push_back(-42.315998754511);
4839 6 : parameter_solv_H[CYX].push_back(-19328.174487327480);
4840 6 : parameter_solv_H[CYX].push_back(-5523.191775626829);
4841 6 : parameter_solv_H[CYX].push_back(38185.463172673335);
4842 6 : parameter_solv_H[CYX].push_back(-28940.174693042034);
4843 6 : parameter_solv_H[CYX].push_back(6925.390014187676);
4844 :
4845 6 : parameter_solv_H[ASP].push_back(13511.73760011933);
4846 6 : parameter_solv_H[ASP].push_back(-59.92934247210642);
4847 6 : parameter_solv_H[ASP].push_back(-25849.867077822244);
4848 6 : parameter_solv_H[ASP].push_back(-7541.679510407563);
4849 6 : parameter_solv_H[ASP].push_back(50760.93853987092);
4850 6 : parameter_solv_H[ASP].push_back(-37677.89102528413);
4851 6 : parameter_solv_H[ASP].push_back(8745.710458140105);
4852 :
4853 6 : parameter_solv_H[GLU].push_back(20443.280400119456);
4854 6 : parameter_solv_H[GLU].push_back(-113.77513581661388);
4855 6 : parameter_solv_H[GLU].push_back(-45587.79863958479);
4856 6 : parameter_solv_H[GLU].push_back(-16187.534798976243);
4857 6 : parameter_solv_H[GLU].push_back(112609.61802147207);
4858 6 : parameter_solv_H[GLU].push_back(-93362.01894077536);
4859 6 : parameter_solv_H[GLU].push_back(24519.546829431332);
4860 :
4861 6 : parameter_solv_H[ILE].push_back(27858.948100119596);
4862 6 : parameter_solv_H[ILE].push_back(-159.27394962770595);
4863 6 : parameter_solv_H[ILE].push_back(-61571.43025249802);
4864 6 : parameter_solv_H[ILE].push_back(-21324.89659912433);
4865 6 : parameter_solv_H[ILE].push_back(144070.7880009225);
4866 6 : parameter_solv_H[ILE].push_back(-115021.84534734003);
4867 6 : parameter_solv_H[ILE].push_back(28939.093300284097);
4868 :
4869 6 : parameter_solv_H[LEU].push_back(27858.948100119596);
4870 6 : parameter_solv_H[LEU].push_back(-165.61872365361);
4871 6 : parameter_solv_H[LEU].push_back(-62564.5706162518);
4872 6 : parameter_solv_H[LEU].push_back(-22465.325666767214);
4873 6 : parameter_solv_H[LEU].push_back(151616.7844050042);
4874 6 : parameter_solv_H[LEU].push_back(-122905.60389771541);
4875 6 : parameter_solv_H[LEU].push_back(31436.66201442061);
4876 :
4877 6 : parameter_solv_H[MET].push_back(25609.60090011981);
4878 6 : parameter_solv_H[MET].push_back(-135.38816369794569);
4879 6 : parameter_solv_H[MET].push_back(-67771.01548433342);
4880 6 : parameter_solv_H[MET].push_back(-25228.91756660071);
4881 6 : parameter_solv_H[MET].push_back(199649.92084565928);
4882 6 : parameter_solv_H[MET].push_back(-182251.9246506795);
4883 6 : parameter_solv_H[MET].push_back(52502.876819125115);
4884 :
4885 6 : parameter_solv_H[ASN].push_back(14376.010000119095);
4886 6 : parameter_solv_H[ASN].push_back(-67.65587848183215);
4887 6 : parameter_solv_H[ASN].push_back(-28302.877059425664);
4888 6 : parameter_solv_H[ASN].push_back(-8577.444107282141);
4889 6 : parameter_solv_H[ASN].push_back(57532.88704197217);
4890 6 : parameter_solv_H[ASN].push_back(-43261.79974462857);
4891 6 : parameter_solv_H[ASN].push_back(10186.450874679671);
4892 :
4893 6 : parameter_solv_H[PRO].push_back(16866.21690011944);
4894 6 : parameter_solv_H[PRO].push_back(-70.84312112734995);
4895 6 : parameter_solv_H[PRO].push_back(-31465.8423531932);
4896 6 : parameter_solv_H[PRO].push_back(-8653.362744540535);
4897 6 : parameter_solv_H[PRO].push_back(58032.27079924916);
4898 6 : parameter_solv_H[PRO].push_back(-41521.001733021694);
4899 6 : parameter_solv_H[PRO].push_back(9184.527523759205);
4900 :
4901 6 : parameter_solv_H[GLN].push_back(21503.289600119);
4902 6 : parameter_solv_H[GLN].push_back(-121.3012777474678);
4903 6 : parameter_solv_H[GLN].push_back(-50468.58503443957);
4904 6 : parameter_solv_H[GLN].push_back(-18462.47495329696);
4905 6 : parameter_solv_H[GLN].push_back(132718.42007501892);
4906 6 : parameter_solv_H[GLN].push_back(-113787.20224345029);
4907 6 : parameter_solv_H[GLN].push_back(30920.340813688686);
4908 :
4909 6 : parameter_solv_H[SER].push_back(9181.47240011935);
4910 6 : parameter_solv_H[SER].push_back(-28.775273124392083);
4911 6 : parameter_solv_H[SER].push_back(-15205.54229808512);
4912 6 : parameter_solv_H[SER].push_back(-3377.785599913673);
4913 6 : parameter_solv_H[SER].push_back(23345.562090489493);
4914 6 : parameter_solv_H[SER].push_back(-15312.699787471944);
4915 6 : parameter_solv_H[SER].push_back(3013.844610647712);
4916 :
4917 6 : parameter_solv_H[THR].push_back(15020.953600119403);
4918 6 : parameter_solv_H[THR].push_back(-61.909951810375105);
4919 6 : parameter_solv_H[THR].push_back(-27814.538986050964);
4920 6 : parameter_solv_H[THR].push_back(-7532.222992514079);
4921 6 : parameter_solv_H[THR].push_back(50586.29804970814);
4922 6 : parameter_solv_H[THR].push_back(-35943.85986777198);
4923 6 : parameter_solv_H[THR].push_back(7880.091610023207);
4924 :
4925 6 : parameter_solv_H[VAL].push_back(19647.628900119355);
4926 6 : parameter_solv_H[VAL].push_back(-89.04968136833762);
4927 6 : parameter_solv_H[VAL].push_back(-38050.10118919102);
4928 6 : parameter_solv_H[VAL].push_back(-10921.421066774372);
4929 6 : parameter_solv_H[VAL].push_back(72774.31277743122);
4930 6 : parameter_solv_H[VAL].push_back(-52689.05168504517);
4931 6 : parameter_solv_H[VAL].push_back(11806.48989635518);
4932 :
4933 6 : parameter_solv_H[ALA].push_back(7515.156100119273);
4934 6 : parameter_solv_H[ALA].push_back(-20.226317591188526);
4935 6 : parameter_solv_H[ALA].push_back(-11761.841775007797);
4936 6 : parameter_solv_H[ALA].push_back(-2341.4903622033885);
4937 6 : parameter_solv_H[ALA].push_back(16545.381259883452);
4938 6 : parameter_solv_H[ALA].push_back(-10397.171546969075);
4939 6 : parameter_solv_H[ALA].push_back(1921.5253045340198);
4940 :
4941 6 : parameter_solv_H[GLY].push_back(3594.002500119159);
4942 6 : parameter_solv_H[GLY].push_back(-6.910832388009796);
4943 6 : parameter_solv_H[GLY].push_back(-4937.3542895091905);
4944 6 : parameter_solv_H[GLY].push_back(-785.4545979203357);
4945 6 : parameter_solv_H[GLY].push_back(5852.853693316741);
4946 6 : parameter_solv_H[GLY].push_back(-3391.2920205126734);
4947 6 : parameter_solv_H[GLY].push_back(552.3278183161507);
4948 :
4949 6 : parameter_solv_H[HIS].push_back(22888.664100119073);
4950 6 : parameter_solv_H[HIS].push_back(-133.86281863999585);
4951 6 : parameter_solv_H[HIS].push_back(-57533.51412287858);
4952 6 : parameter_solv_H[HIS].push_back(-21767.300111408193);
4953 6 : parameter_solv_H[HIS].push_back(161255.15347073504);
4954 6 : parameter_solv_H[HIS].push_back(-142176.65100718598);
4955 6 : parameter_solv_H[HIS].push_back(39642.61507384587);
4956 :
4957 6 : parameter_mix_H[TRP].push_back(2974.6515001192306);
4958 6 : parameter_mix_H[TRP].push_back(-18.361939022074825);
4959 6 : parameter_mix_H[TRP].push_back(-7284.637435770752);
4960 6 : parameter_mix_H[TRP].push_back(-2945.7969900381895);
4961 6 : parameter_mix_H[TRP].push_back(21235.01878657283);
4962 6 : parameter_mix_H[TRP].push_back(-18909.7406035548);
4963 6 : parameter_mix_H[TRP].push_back(5324.324204245179);
4964 :
4965 6 : parameter_mix_H[TYR].push_back(2029.7362801192114);
4966 6 : parameter_mix_H[TYR].push_back(-6.983186065527884);
4967 6 : parameter_mix_H[TYR].push_back(-5041.996113037476);
4968 6 : parameter_mix_H[TYR].push_back(-1744.5213085724158);
4969 6 : parameter_mix_H[TYR].push_back(15329.420227814338);
4970 6 : parameter_mix_H[TYR].push_back(-14648.322529889958);
4971 6 : parameter_mix_H[TYR].push_back(4405.608657083287);
4972 :
4973 6 : parameter_mix_H[PHE].push_back(1704.6885401192117);
4974 6 : parameter_mix_H[PHE].push_back(-10.077274979133408);
4975 6 : parameter_mix_H[PHE].push_back(-3769.440088334303);
4976 6 : parameter_mix_H[PHE].push_back(-1574.6255694551546);
4977 6 : parameter_mix_H[PHE].push_back(10996.32497868798);
4978 6 : parameter_mix_H[PHE].push_back(-9840.68281283696);
4979 6 : parameter_mix_H[PHE].push_back(2792.098605716682);
4980 :
4981 6 : parameter_mix_H[HIP].push_back(1376.0462401192394);
4982 6 : parameter_mix_H[HIP].push_back(-8.576320475413144);
4983 6 : parameter_mix_H[HIP].push_back(-2796.8327726392167);
4984 6 : parameter_mix_H[HIP].push_back(-1165.0473128576);
4985 6 : parameter_mix_H[HIP].push_back(7495.063650365717);
4986 6 : parameter_mix_H[HIP].push_back(-6331.20422098132);
4987 6 : parameter_mix_H[HIP].push_back(1692.637366093312);
4988 :
4989 6 : parameter_mix_H[ARG].push_back(1280.940480119178);
4990 6 : parameter_mix_H[ARG].push_back(-7.411214928783748);
4991 6 : parameter_mix_H[ARG].push_back(-3747.6200569785033);
4992 6 : parameter_mix_H[ARG].push_back(-1766.5282176004569);
4993 6 : parameter_mix_H[ARG].push_back(14307.817638456267);
4994 6 : parameter_mix_H[ARG].push_back(-14297.104122885643);
4995 6 : parameter_mix_H[ARG].push_back(4450.526244207772);
4996 :
4997 6 : parameter_mix_H[LYS].push_back(570.7272001192143);
4998 6 : parameter_mix_H[LYS].push_back(-5.371742288956095);
4999 6 : parameter_mix_H[LYS].push_back(-1255.9868267793006);
5000 6 : parameter_mix_H[LYS].push_back(-748.3071074443138);
5001 6 : parameter_mix_H[LYS].push_back(4534.824932304509);
5002 6 : parameter_mix_H[LYS].push_back(-4125.307867230812);
5003 6 : parameter_mix_H[LYS].push_back(1178.781491068295);
5004 :
5005 6 : parameter_mix_H[CYS].push_back(410.21750011921864);
5006 6 : parameter_mix_H[CYS].push_back(-0.7655651758449595);
5007 6 : parameter_mix_H[CYS].push_back(-523.8897033718782);
5008 6 : parameter_mix_H[CYS].push_back(-89.88478273744425);
5009 6 : parameter_mix_H[CYS].push_back(655.3313542467919);
5010 6 : parameter_mix_H[CYS].push_back(-407.87897719750896);
5011 6 : parameter_mix_H[CYS].push_back(76.50541508448237);
5012 :
5013 6 : parameter_mix_H[CYX].push_back(466.237200119199);
5014 6 : parameter_mix_H[CYX].push_back(-1.302082362010);
5015 6 : parameter_mix_H[CYX].push_back(-667.565738985901);
5016 6 : parameter_mix_H[CYX].push_back(-159.506437978088);
5017 6 : parameter_mix_H[CYX].push_back(1085.648159448292);
5018 6 : parameter_mix_H[CYX].push_back(-767.622943338598);
5019 6 : parameter_mix_H[CYX].push_back(170.157274620163);
5020 :
5021 6 : parameter_mix_H[ASP].push_back(893.6531201192147);
5022 6 : parameter_mix_H[ASP].push_back(-3.0756255172248874);
5023 6 : parameter_mix_H[ASP].push_back(-1453.1760425275006);
5024 6 : parameter_mix_H[ASP].push_back(-365.0424824614137);
5025 6 : parameter_mix_H[ASP].push_back(2443.570600976796);
5026 6 : parameter_mix_H[ASP].push_back(-1679.8996339740277);
5027 6 : parameter_mix_H[ASP].push_back(352.33054461512455);
5028 :
5029 6 : parameter_mix_H[GLU].push_back(1075.4955601191884);
5030 6 : parameter_mix_H[GLU].push_back(-6.917429973203965);
5031 6 : parameter_mix_H[GLU].push_back(-2262.861870389347);
5032 6 : parameter_mix_H[GLU].push_back(-909.8078514527992);
5033 6 : parameter_mix_H[GLU].push_back(5841.923857549836);
5034 6 : parameter_mix_H[GLU].push_back(-4784.620969556751);
5035 6 : parameter_mix_H[GLU].push_back(1230.873134652953);
5036 :
5037 6 : parameter_mix_H[ILE].push_back(466.0127201192081);
5038 6 : parameter_mix_H[ILE].push_back(-0.9323443258150218);
5039 6 : parameter_mix_H[ILE].push_back(-576.7178005955719);
5040 6 : parameter_mix_H[ILE].push_back(-103.03003361062478);
5041 6 : parameter_mix_H[ILE].push_back(706.4269951176641);
5042 6 : parameter_mix_H[ILE].push_back(-420.4412859632717);
5043 6 : parameter_mix_H[ILE].push_back(71.53175726608731);
5044 :
5045 6 : parameter_mix_H[LEU].push_back(466.0127201192081);
5046 6 : parameter_mix_H[LEU].push_back(-1.9793605752606065);
5047 6 : parameter_mix_H[LEU].push_back(-718.3988478701591);
5048 6 : parameter_mix_H[LEU].push_back(-227.36409339012113);
5049 6 : parameter_mix_H[LEU].push_back(1389.2058254917304);
5050 6 : parameter_mix_H[LEU].push_back(-990.0033118748643);
5051 6 : parameter_mix_H[LEU].push_back(213.15736815883042);
5052 :
5053 6 : parameter_mix_H[MET].push_back(562.9855401192196);
5054 6 : parameter_mix_H[MET].push_back(-3.7994094933771643);
5055 6 : parameter_mix_H[MET].push_back(-1139.6331862451661);
5056 6 : parameter_mix_H[MET].push_back(-516.6313269725724);
5057 6 : parameter_mix_H[MET].push_back(3268.957245190869);
5058 6 : parameter_mix_H[MET].push_back(-2809.178864807947);
5059 6 : parameter_mix_H[MET].push_back(761.4832732100416);
5060 :
5061 6 : parameter_mix_H[ASN].push_back(828.7488001191887);
5062 6 : parameter_mix_H[ASN].push_back(-2.1275493073799625);
5063 6 : parameter_mix_H[ASN].push_back(-1222.248291388804);
5064 6 : parameter_mix_H[ASN].push_back(-238.94210659613537);
5065 6 : parameter_mix_H[ASN].push_back(1660.8322402171973);
5066 6 : parameter_mix_H[ASN].push_back(-1008.7934996077323);
5067 6 : parameter_mix_H[ASN].push_back(173.6082238625797);
5068 :
5069 6 : parameter_mix_H[PRO].push_back(578.4409801192146);
5070 6 : parameter_mix_H[PRO].push_back(-0.5379505780909722);
5071 6 : parameter_mix_H[PRO].push_back(-648.146493857212);
5072 6 : parameter_mix_H[PRO].push_back(-56.67223895342921);
5073 6 : parameter_mix_H[PRO].push_back(509.88860586987437);
5074 6 : parameter_mix_H[PRO].push_back(-214.57871784725265);
5075 6 : parameter_mix_H[PRO].push_back(11.99659463759968);
5076 :
5077 6 : parameter_mix_H[GLN].push_back(989.2334401191976);
5078 6 : parameter_mix_H[GLN].push_back(-6.307760694331967);
5079 6 : parameter_mix_H[GLN].push_back(-1971.7067150503622);
5080 6 : parameter_mix_H[GLN].push_back(-791.333088386235);
5081 6 : parameter_mix_H[GLN].push_back(4900.009768434847);
5082 6 : parameter_mix_H[GLN].push_back(-3909.7740976374153);
5083 6 : parameter_mix_H[GLN].push_back(975.4952613244343);
5084 :
5085 6 : parameter_mix_H[SER].push_back(426.39900011920196);
5086 6 : parameter_mix_H[SER].push_back(-0.42304498358319664);
5087 6 : parameter_mix_H[SER].push_back(-484.2066027682147);
5088 6 : parameter_mix_H[SER].push_back(-45.38968988754228);
5089 6 : parameter_mix_H[SER].push_back(401.3420977115044);
5090 6 : parameter_mix_H[SER].push_back(-178.0861461692512);
5091 6 : parameter_mix_H[SER].push_back(13.540349238730284);
5092 :
5093 6 : parameter_mix_H[THR].push_back(525.0470401191992);
5094 6 : parameter_mix_H[THR].push_back(-0.7419102811534484);
5095 6 : parameter_mix_H[THR].push_back(-652.7134808154495);
5096 6 : parameter_mix_H[THR].push_back(-80.39481224407903);
5097 6 : parameter_mix_H[THR].push_back(641.5487902728123);
5098 6 : parameter_mix_H[THR].push_back(-320.4227667104819);
5099 6 : parameter_mix_H[THR].push_back(36.03558531183942);
5100 :
5101 6 : parameter_mix_H[VAL].push_back(414.6228601192123);
5102 6 : parameter_mix_H[VAL].push_back(-0.35889335250521337);
5103 6 : parameter_mix_H[VAL].push_back(-453.11631644097474);
5104 6 : parameter_mix_H[VAL].push_back(-36.402101097644284);
5105 6 : parameter_mix_H[VAL].push_back(336.24049431626804);
5106 6 : parameter_mix_H[VAL].push_back(-127.42235327515239);
5107 6 : parameter_mix_H[VAL].push_back(0.8013280923923705);
5108 :
5109 6 : parameter_mix_H[ALA].push_back(285.21010011920816);
5110 6 : parameter_mix_H[ALA].push_back(-0.1573012439142169);
5111 6 : parameter_mix_H[ALA].push_back(-282.8945838800694);
5112 6 : parameter_mix_H[ALA].push_back(-16.32030056827785);
5113 6 : parameter_mix_H[ALA].push_back(178.065895049598);
5114 6 : parameter_mix_H[ALA].push_back(-60.27423229179658);
5115 6 : parameter_mix_H[ALA].push_back(-1.4695219304131588);
5116 :
5117 6 : parameter_mix_H[GLY].push_back(207.18720011920414);
5118 6 : parameter_mix_H[GLY].push_back(-0.1036587134183235);
5119 6 : parameter_mix_H[GLY].push_back(-185.70794948240638);
5120 6 : parameter_mix_H[GLY].push_back(-11.008101039836257);
5121 6 : parameter_mix_H[GLY].push_back(115.30600405624061);
5122 6 : parameter_mix_H[GLY].push_back(-42.46629718037158);
5123 6 : parameter_mix_H[GLY].push_back(0.9238928987070913);
5124 :
5125 6 : parameter_mix_H[HIS].push_back(1443.9117601192354);
5126 6 : parameter_mix_H[HIS].push_back(-7.478618745973115);
5127 6 : parameter_mix_H[HIS].push_back(-2715.0835155803215);
5128 6 : parameter_mix_H[HIS].push_back(-918.5243015382779);
5129 6 : parameter_mix_H[HIS].push_back(5821.6258431396);
5130 6 : parameter_mix_H[HIS].push_back(-4415.32722209556);
5131 6 : parameter_mix_H[HIS].push_back(1044.7044029209756);
5132 :
5133 6 : parameter_vac_H[TRP].push_back(36.42122511920832);
5134 6 : parameter_vac_H[TRP].push_back(-0.36925500341767903);
5135 6 : parameter_vac_H[TRP].push_back(-51.34228792835503);
5136 6 : parameter_vac_H[TRP].push_back(-34.10021080004831);
5137 6 : parameter_vac_H[TRP].push_back(132.647034983933);
5138 6 : parameter_vac_H[TRP].push_back(-82.89152328934257);
5139 6 : parameter_vac_H[TRP].push_back(13.029994092013231);
5140 :
5141 6 : parameter_vac_H[TYR].push_back(22.268961119209557);
5142 6 : parameter_vac_H[TYR].push_back(-0.1995573892347673);
5143 6 : parameter_vac_H[TYR].push_back(-36.54202179838511);
5144 6 : parameter_vac_H[TYR].push_back(-23.820801043096694);
5145 6 : parameter_vac_H[TYR].push_back(127.46799692275353);
5146 6 : parameter_vac_H[TYR].push_back(-107.63783234245744);
5147 6 : parameter_vac_H[TYR].push_back(28.180858902960775);
5148 :
5149 6 : parameter_vac_H[PHE].push_back(17.131321119209627);
5150 6 : parameter_vac_H[PHE].push_back(-0.15766725674246446);
5151 6 : parameter_vac_H[PHE].push_back(-19.19964432024534);
5152 6 : parameter_vac_H[PHE].push_back(-12.34326882843138);
5153 6 : parameter_vac_H[PHE].push_back(38.17216645824474);
5154 6 : parameter_vac_H[PHE].push_back(-11.245288857407298);
5155 6 : parameter_vac_H[PHE].push_back(-3.8114731300899343);
5156 :
5157 6 : parameter_vac_H[HIP].push_back(19.34240411920875);
5158 6 : parameter_vac_H[HIP].push_back(-0.13533410292592593);
5159 6 : parameter_vac_H[HIP].push_back(-25.924121027387276);
5160 6 : parameter_vac_H[HIP].push_back(-12.36586927492752);
5161 6 : parameter_vac_H[HIP].push_back(56.75268702111191);
5162 6 : parameter_vac_H[HIP].push_back(-31.126240293638094);
5163 6 : parameter_vac_H[HIP].push_back(2.749811579250848);
5164 :
5165 6 : parameter_vac_H[ARG].push_back(12.027024119209557);
5166 6 : parameter_vac_H[ARG].push_back(-0.41927538341868287);
5167 6 : parameter_vac_H[ARG].push_back(-22.137566939867042);
5168 6 : parameter_vac_H[ARG].push_back(-43.22615008762667);
5169 6 : parameter_vac_H[ARG].push_back(165.77466655520323);
5170 6 : parameter_vac_H[ARG].push_back(-140.68664871425898);
5171 6 : parameter_vac_H[ARG].push_back(36.67401195170306);
5172 :
5173 6 : parameter_vac_H[LYS].push_back(2.5217441192093717);
5174 6 : parameter_vac_H[LYS].push_back(-0.0032825476242835413);
5175 6 : parameter_vac_H[LYS].push_back(14.019071697737793);
5176 6 : parameter_vac_H[LYS].push_back(7.8634074595069245);
5177 6 : parameter_vac_H[LYS].push_back(-82.44639716451474);
5178 6 : parameter_vac_H[LYS].push_back(94.32937851921197);
5179 6 : parameter_vac_H[LYS].push_back(-32.324473823417);
5180 :
5181 6 : parameter_vac_H[CYS].push_back(3.705624880856525);
5182 6 : parameter_vac_H[CYS].push_back(0.005214780840206113);
5183 6 : parameter_vac_H[CYS].push_back(1.25680902661715);
5184 6 : parameter_vac_H[CYS].push_back(0.5779209425501814);
5185 6 : parameter_vac_H[CYS].push_back(-3.716408071089366);
5186 6 : parameter_vac_H[CYS].push_back(2.3947518943233117);
5187 6 : parameter_vac_H[CYS].push_back(-0.40204949737133333);
5188 :
5189 6 : parameter_vac_H[CYX].push_back(5.285401118868);
5190 6 : parameter_vac_H[CYX].push_back(-0.006119528779);
5191 6 : parameter_vac_H[CYX].push_back(-3.091212256902);
5192 6 : parameter_vac_H[CYX].push_back(-0.679948780910);
5193 6 : parameter_vac_H[CYX].push_back(4.495837313271);
5194 6 : parameter_vac_H[CYX].push_back(-2.827133444940);
5195 6 : parameter_vac_H[CYX].push_back(0.494583310914);
5196 :
5197 6 : parameter_vac_H[ASP].push_back(14.776336119209605);
5198 6 : parameter_vac_H[ASP].push_back(-0.037351220316916435);
5199 6 : parameter_vac_H[ASP].push_back(-18.556358387626286);
5200 6 : parameter_vac_H[ASP].push_back(-4.1737354794552886);
5201 6 : parameter_vac_H[ASP].push_back(28.424721213037405);
5202 6 : parameter_vac_H[ASP].push_back(-17.51389895324883);
5203 6 : parameter_vac_H[ASP].push_back(2.9729111724708597);
5204 :
5205 6 : parameter_vac_H[GLU].push_back(14.145121119208973);
5206 6 : parameter_vac_H[GLU].push_back(-0.11468766098213011);
5207 6 : parameter_vac_H[GLU].push_back(-26.272637652294613);
5208 6 : parameter_vac_H[GLU].push_back(-13.769758826440151);
5209 6 : parameter_vac_H[GLU].push_back(80.4575683578491);
5210 6 : parameter_vac_H[GLU].push_back(-64.19346347075);
5211 6 : parameter_vac_H[GLU].push_back(15.545440117656236);
5212 :
5213 6 : parameter_vac_H[ILE].push_back(1.9488158808808775);
5214 6 : parameter_vac_H[ILE].push_back(0.05873132133874459);
5215 6 : parameter_vac_H[ILE].push_back(12.032778845884135);
5216 6 : parameter_vac_H[ILE].push_back(7.148416980612881);
5217 6 : parameter_vac_H[ILE].push_back(-41.87377843832961);
5218 6 : parameter_vac_H[ILE].push_back(33.96120749582283);
5219 6 : parameter_vac_H[ILE].push_back(-8.362535852631256);
5220 :
5221 6 : parameter_vac_H[LEU].push_back(1.9488158808977816);
5222 6 : parameter_vac_H[LEU].push_back(0.0778305500414777);
5223 6 : parameter_vac_H[LEU].push_back(12.333370614594);
5224 6 : parameter_vac_H[LEU].push_back(9.449427967560764);
5225 6 : parameter_vac_H[LEU].push_back(-52.65457680603262);
5226 6 : parameter_vac_H[LEU].push_back(44.681877289399615);
5227 6 : parameter_vac_H[LEU].push_back(-11.460498338671227);
5228 :
5229 6 : parameter_vac_H[MET].push_back(3.0940808808117652);
5230 6 : parameter_vac_H[MET].push_back(0.04903755678213222);
5231 6 : parameter_vac_H[MET].push_back(8.981927022922049);
5232 6 : parameter_vac_H[MET].push_back(8.654862771879014);
5233 6 : parameter_vac_H[MET].push_back(-57.09889409156816);
5234 6 : parameter_vac_H[MET].push_back(58.87704775164829);
5235 6 : parameter_vac_H[MET].push_back(-18.60431990258862);
5236 :
5237 6 : parameter_vac_H[ASN].push_back(11.943936119209074);
5238 6 : parameter_vac_H[ASN].push_back(-0.0005000836239497835);
5239 6 : parameter_vac_H[ASN].push_back(-9.581236453763157);
5240 6 : parameter_vac_H[ASN].push_back(0.16244025786232308);
5241 6 : parameter_vac_H[ASN].push_back(2.9276580099749574);
5242 6 : parameter_vac_H[ASN].push_back(2.133535783835143);
5243 6 : parameter_vac_H[ASN].push_back(-1.5709968820975018);
5244 :
5245 6 : parameter_vac_H[PRO].push_back(4.9595288808229245);
5246 6 : parameter_vac_H[PRO].push_back(0.017853932680793515);
5247 6 : parameter_vac_H[PRO].push_back(4.5421559293101605);
5248 6 : parameter_vac_H[PRO].push_back(2.008455612787203);
5249 6 : parameter_vac_H[PRO].push_back(-12.444117841318494);
5250 6 : parameter_vac_H[PRO].push_back(8.511723688836447);
5251 6 : parameter_vac_H[PRO].push_back(-1.6337543903496765);
5252 :
5253 6 : parameter_vac_H[GLN].push_back(11.377129119208574);
5254 6 : parameter_vac_H[GLN].push_back(-0.0674805307761209);
5255 6 : parameter_vac_H[GLN].push_back(-16.56692720411458);
5256 6 : parameter_vac_H[GLN].push_back(-6.477707440126834);
5257 6 : parameter_vac_H[GLN].push_back(34.78232259512621);
5258 6 : parameter_vac_H[GLN].push_back(-19.450886909938312);
5259 6 : parameter_vac_H[GLN].push_back(1.944286925108988);
5260 :
5261 6 : parameter_vac_H[SER].push_back(4.95062488096605);
5262 6 : parameter_vac_H[SER].push_back(0.004676435440506079);
5263 6 : parameter_vac_H[SER].push_back(-0.1896653085608564);
5264 6 : parameter_vac_H[SER].push_back(0.5142284931977218);
5265 6 : parameter_vac_H[SER].push_back(-2.8946087252759893);
5266 6 : parameter_vac_H[SER].push_back(2.1031239401634836);
5267 6 : parameter_vac_H[SER].push_back(-0.38226443516361713);
5268 :
5269 6 : parameter_vac_H[THR].push_back(4.588163880808971);
5270 6 : parameter_vac_H[THR].push_back(0.018587905993982613);
5271 6 : parameter_vac_H[THR].push_back(3.5289861308270214);
5272 6 : parameter_vac_H[THR].push_back(2.0780583604591567);
5273 6 : parameter_vac_H[THR].push_back(-12.3802007068414);
5274 6 : parameter_vac_H[THR].push_back(8.720986674116094);
5275 6 : parameter_vac_H[THR].push_back(-1.683256475122275);
5276 :
5277 6 : parameter_vac_H[VAL].push_back(2.187440880853519);
5278 6 : parameter_vac_H[VAL].push_back(0.028351524826584255);
5279 6 : parameter_vac_H[VAL].push_back(8.36584512491955);
5280 6 : parameter_vac_H[VAL].push_back(3.1686206615123926);
5281 6 : parameter_vac_H[VAL].push_back(-19.81959917770108);
5282 6 : parameter_vac_H[VAL].push_back(13.293003038570571);
5283 6 : parameter_vac_H[VAL].push_back(-2.4595257726774125);
5284 :
5285 6 : parameter_vac_H[ALA].push_back(2.7060248808167935);
5286 6 : parameter_vac_H[ALA].push_back(0.004618897267213416);
5287 6 : parameter_vac_H[ALA].push_back(2.4990261487383947);
5288 6 : parameter_vac_H[ALA].push_back(0.49579332664340864);
5289 6 : parameter_vac_H[ALA].push_back(-3.850400071630347);
5290 6 : parameter_vac_H[ALA].push_back(1.9501161562030942);
5291 6 : parameter_vac_H[ALA].push_back(-0.18332582719788362);
5292 :
5293 6 : parameter_vac_H[GLY].push_back(2.985983880876256);
5294 6 : parameter_vac_H[GLY].push_back(0.0005033131808079042);
5295 6 : parameter_vac_H[GLY].push_back(-0.42250170279962684);
5296 6 : parameter_vac_H[GLY].push_back(0.05620517453257455);
5297 6 : parameter_vac_H[GLY].push_back(-0.16801962822020733);
5298 6 : parameter_vac_H[GLY].push_back(0.23635459648780555);
5299 6 : parameter_vac_H[GLY].push_back(-0.06585244715658795);
5300 :
5301 6 : parameter_vac_H[HIS].push_back(22.77198411920933);
5302 6 : parameter_vac_H[HIS].push_back(-0.06607491006655417);
5303 6 : parameter_vac_H[HIS].push_back(-27.277710268717247);
5304 6 : parameter_vac_H[HIS].push_back(-5.674444390934355);
5305 6 : parameter_vac_H[HIS].push_back(33.4059567406171);
5306 6 : parameter_vac_H[HIS].push_back(-11.60826210271092);
5307 6 : parameter_vac_H[HIS].push_back(-1.7359607560773076);
5308 :
5309 : // NUCLEIC ACIDS
5310 :
5311 : // BB_PO2-BB_PO3 H and D parameters are identical as there is no H or D in the bead.
5312 6 : parameter_solv_H[BB_PO3].push_back(1464.5929001192262);
5313 6 : parameter_solv_H[BB_PO3].push_back(-2.316908934494931);
5314 6 : parameter_solv_H[BB_PO3].push_back(-1882.4844584696532);
5315 6 : parameter_solv_H[BB_PO3].push_back(-258.8660305554736);
5316 6 : parameter_solv_H[BB_PO3].push_back(2007.5216385943972);
5317 6 : parameter_solv_H[BB_PO3].push_back(-1087.6423562424877);
5318 6 : parameter_solv_H[BB_PO3].push_back(154.89236486681165);
5319 :
5320 6 : parameter_solv_H[BB_PO2].push_back(575.5201001192197);
5321 6 : parameter_solv_H[BB_PO2].push_back(-0.6126595489733864);
5322 6 : parameter_solv_H[BB_PO2].push_back(-623.3371092254899);
5323 6 : parameter_solv_H[BB_PO2].push_back(-68.05795957022144);
5324 6 : parameter_solv_H[BB_PO2].push_back(561.8052621243661);
5325 6 : parameter_solv_H[BB_PO2].push_back(-283.39573309540276);
5326 6 : parameter_solv_H[BB_PO2].push_back(35.550016980100295);
5327 :
5328 6 : parameter_solv_H[BB_DNA].push_back(21211.009600118316);
5329 6 : parameter_solv_H[BB_DNA].push_back(-90.18805990529991);
5330 6 : parameter_solv_H[BB_DNA].push_back(-39731.13373512149);
5331 6 : parameter_solv_H[BB_DNA].push_back(-10920.373563712872);
5332 6 : parameter_solv_H[BB_DNA].push_back(72882.21702424981);
5333 6 : parameter_solv_H[BB_DNA].push_back(-51747.487078112776);
5334 6 : parameter_solv_H[BB_DNA].push_back(11308.678429018755);
5335 :
5336 6 : parameter_solv_H[BB_DNA_5].push_back(22737.624100119025);
5337 6 : parameter_solv_H[BB_DNA_5].push_back(-102.72714886664161);
5338 6 : parameter_solv_H[BB_DNA_5].push_back(-43685.329677789734);
5339 6 : parameter_solv_H[BB_DNA_5].push_back(-12564.25937409345);
5340 6 : parameter_solv_H[BB_DNA_5].push_back(83454.87540484878);
5341 6 : parameter_solv_H[BB_DNA_5].push_back(-60367.15652138887);
5342 6 : parameter_solv_H[BB_DNA_5].push_back(13507.333729868991);
5343 :
5344 6 : parameter_solv_H[BB_DNA_3].push_back(22737.62410011902);
5345 6 : parameter_solv_H[BB_DNA_3].push_back(-101.57816684452251);
5346 6 : parameter_solv_H[BB_DNA_3].push_back(-43488.536705576145);
5347 6 : parameter_solv_H[BB_DNA_3].push_back(-12345.056184958425);
5348 6 : parameter_solv_H[BB_DNA_3].push_back(81963.52364114887);
5349 6 : parameter_solv_H[BB_DNA_3].push_back(-58791.59443618196);
5350 6 : parameter_solv_H[BB_DNA_3].push_back(13003.199362335583);
5351 :
5352 6 : parameter_solv_H[BB_RNA].push_back(23953.752900120977);
5353 6 : parameter_solv_H[BB_RNA].push_back(-117.35779348824417);
5354 6 : parameter_solv_H[BB_RNA].push_back(-47644.41735332843);
5355 6 : parameter_solv_H[BB_RNA].push_back(-14641.556643789861);
5356 6 : parameter_solv_H[BB_RNA].push_back(96893.48627050371);
5357 6 : parameter_solv_H[BB_RNA].push_back(-72249.62534169303);
5358 6 : parameter_solv_H[BB_RNA].push_back(16792.055521055358);
5359 :
5360 6 : parameter_solv_H[BB_RNA_5].push_back(25574.406400119024);
5361 6 : parameter_solv_H[BB_RNA_5].push_back(-131.99642772933734);
5362 6 : parameter_solv_H[BB_RNA_5].push_back(-52136.51404531251);
5363 6 : parameter_solv_H[BB_RNA_5].push_back(-16682.14273917604);
5364 6 : parameter_solv_H[BB_RNA_5].push_back(110278.01921639398);
5365 6 : parameter_solv_H[BB_RNA_5].push_back(-83715.92027818544);
5366 6 : parameter_solv_H[BB_RNA_5].push_back(19875.89133770605);
5367 :
5368 6 : parameter_solv_H[BB_RNA_3].push_back(25574.406400119027);
5369 6 : parameter_solv_H[BB_RNA_3].push_back(-127.96875237036166);
5370 6 : parameter_solv_H[BB_RNA_3].push_back(-51407.18391758439);
5371 6 : parameter_solv_H[BB_RNA_3].push_back(-15922.900669975606);
5372 6 : parameter_solv_H[BB_RNA_3].push_back(105078.5888910626);
5373 6 : parameter_solv_H[BB_RNA_3].push_back(-78289.16276190645);
5374 6 : parameter_solv_H[BB_RNA_3].push_back(18156.832143441192);
5375 :
5376 6 : parameter_solv_H[BASE_A].push_back(13282.562500119211);
5377 6 : parameter_solv_H[BASE_A].push_back(-76.45124168404048);
5378 6 : parameter_solv_H[BASE_A].push_back(-28376.06994108963);
5379 6 : parameter_solv_H[BASE_A].push_back(-9972.910773722022);
5380 6 : parameter_solv_H[BASE_A].push_back(65873.86341939073);
5381 6 : parameter_solv_H[BASE_A].push_back(-52064.33492910885);
5382 6 : parameter_solv_H[BASE_A].push_back(12931.608989412513);
5383 :
5384 6 : parameter_solv_H[BASE_C].push_back(10600.76160011891);
5385 6 : parameter_solv_H[BASE_C].push_back(-49.1670871249108);
5386 6 : parameter_solv_H[BASE_C].push_back(-20239.818742072875);
5387 6 : parameter_solv_H[BASE_C].push_back(-6020.278780090207);
5388 6 : parameter_solv_H[BASE_C].push_back(39632.13288981881);
5389 6 : parameter_solv_H[BASE_C].push_back(-28954.779736165576);
5390 6 : parameter_solv_H[BASE_C].push_back(6551.541109526305);
5391 :
5392 6 : parameter_solv_H[BASE_G].push_back(15470.384400119934);
5393 6 : parameter_solv_H[BASE_G].push_back(-93.8013620200972);
5394 6 : parameter_solv_H[BASE_G].push_back(-36188.29687013545);
5395 6 : parameter_solv_H[BASE_G].push_back(-13717.685098209471);
5396 6 : parameter_solv_H[BASE_G].push_back(95658.18473657136);
5397 6 : parameter_solv_H[BASE_G].push_back(-81262.37811451119);
5398 6 : parameter_solv_H[BASE_G].push_back(21841.903930943085);
5399 :
5400 6 : parameter_solv_H[BASE_T].push_back(17210.81610011936);
5401 6 : parameter_solv_H[BASE_T].push_back(-93.10189802920208);
5402 6 : parameter_solv_H[BASE_T].push_back(-36466.51927689957);
5403 6 : parameter_solv_H[BASE_T].push_back(-12425.55615716932);
5404 6 : parameter_solv_H[BASE_T].push_back(83847.427808925);
5405 6 : parameter_solv_H[BASE_T].push_back(-66735.64997846584);
5406 6 : parameter_solv_H[BASE_T].push_back(16757.3463987507);
5407 :
5408 6 : parameter_solv_H[BASE_U].push_back(10909.802500119395);
5409 6 : parameter_solv_H[BASE_U].push_back(-46.17712672768298);
5410 6 : parameter_solv_H[BASE_U].push_back(-20149.67695512526);
5411 6 : parameter_solv_H[BASE_U].push_back(-5590.242961204435);
5412 6 : parameter_solv_H[BASE_U].push_back(37169.2740983132);
5413 6 : parameter_solv_H[BASE_U].push_back(-26475.631627167604);
5414 6 : parameter_solv_H[BASE_U].push_back(5808.201015156168);
5415 :
5416 6 : parameter_mix_H[BB_PO3].push_back(143.5890401192106);
5417 6 : parameter_mix_H[BB_PO3].push_back(-0.0679405156108208);
5418 6 : parameter_mix_H[BB_PO3].push_back(-131.78648321068806);
5419 6 : parameter_mix_H[BB_PO3].push_back(-7.222980065241985);
5420 6 : parameter_mix_H[BB_PO3].push_back(79.67309464590994);
5421 6 : parameter_mix_H[BB_PO3].push_back(-27.950095608460042);
5422 6 : parameter_mix_H[BB_PO3].push_back(0.12790403369995257);
5423 :
5424 6 : parameter_mix_H[BB_PO2].push_back(80.12660011920252);
5425 6 : parameter_mix_H[BB_PO2].push_back(-0.0278885551982023);
5426 6 : parameter_mix_H[BB_PO2].push_back(-60.532194918222984);
5427 6 : parameter_mix_H[BB_PO2].push_back(-2.976882903409687);
5428 6 : parameter_mix_H[BB_PO2].push_back(33.30645116638125);
5429 6 : parameter_mix_H[BB_PO2].push_back(-11.601573219761374);
5430 6 : parameter_mix_H[BB_PO2].push_back(0.12551046492022422);
5431 :
5432 6 : parameter_mix_H[BB_DNA].push_back(712.7621601191935);
5433 6 : parameter_mix_H[BB_DNA].push_back(-0.3228709821198571);
5434 6 : parameter_mix_H[BB_DNA].push_back(-784.5118228559945);
5435 6 : parameter_mix_H[BB_DNA].push_back(-27.196125702249613);
5436 6 : parameter_mix_H[BB_DNA].push_back(410.0185035102729);
5437 6 : parameter_mix_H[BB_DNA].push_back(-54.453513369320355);
5438 6 : parameter_mix_H[BB_DNA].push_back(-44.85506789237683);
5439 :
5440 6 : parameter_mix_H[BB_DNA_5].push_back(625.175339965785);
5441 6 : parameter_mix_H[BB_DNA_5].push_back(0.2691706617748245);
5442 6 : parameter_mix_H[BB_DNA_5].push_back(-582.8721350420001);
5443 6 : parameter_mix_H[BB_DNA_5].push_back(46.512408351374326);
5444 6 : parameter_mix_H[BB_DNA_5].push_back(-58.93886949899108);
5445 6 : parameter_mix_H[BB_DNA_5].push_back(307.29720336085046);
5446 6 : parameter_mix_H[BB_DNA_5].push_back(-131.71996309259953);
5447 :
5448 6 : parameter_mix_H[BB_DNA_3].push_back(625.1753399401266);
5449 6 : parameter_mix_H[BB_DNA_3].push_back(0.08763234414546289);
5450 6 : parameter_mix_H[BB_DNA_3].push_back(-606.8067575087485);
5451 6 : parameter_mix_H[BB_DNA_3].push_back(20.84427254872218);
5452 6 : parameter_mix_H[BB_DNA_3].push_back(92.53523123608991);
5453 6 : parameter_mix_H[BB_DNA_3].push_back(162.04688035654937);
5454 6 : parameter_mix_H[BB_DNA_3].push_back(-89.13571774638052);
5455 :
5456 6 : parameter_mix_H[BB_RNA].push_back(936.9775801191857);
5457 6 : parameter_mix_H[BB_RNA].push_back(-1.3233686929680253);
5458 6 : parameter_mix_H[BB_RNA].push_back(-1212.1627155263773);
5459 6 : parameter_mix_H[BB_RNA].push_back(-141.35324744384351);
5460 6 : parameter_mix_H[BB_RNA].push_back(1155.8281658363026);
5461 6 : parameter_mix_H[BB_RNA].push_back(-548.9340055857343);
5462 6 : parameter_mix_H[BB_RNA].push_back(50.81734777881503);
5463 :
5464 6 : parameter_mix_H[BB_RNA_5].push_back(848.5355201165631);
5465 6 : parameter_mix_H[BB_RNA_5].push_back(-0.49570338490120175);
5466 6 : parameter_mix_H[BB_RNA_5].push_back(-976.1033073783973);
5467 6 : parameter_mix_H[BB_RNA_5].push_back(-32.943532187986605);
5468 6 : parameter_mix_H[BB_RNA_5].push_back(475.66177061923884);
5469 6 : parameter_mix_H[BB_RNA_5].push_back(17.51955845824258);
5470 6 : parameter_mix_H[BB_RNA_5].push_back(-96.74451972314769);
5471 :
5472 6 : parameter_mix_H[BB_RNA_3].push_back(848.5355201192122);
5473 6 : parameter_mix_H[BB_RNA_3].push_back(-0.8301109354355396);
5474 6 : parameter_mix_H[BB_RNA_3].push_back(-1019.9524389785406);
5475 6 : parameter_mix_H[BB_RNA_3].push_back(-84.1388451424885);
5476 6 : parameter_mix_H[BB_RNA_3].push_back(787.1277245040931);
5477 6 : parameter_mix_H[BB_RNA_3].push_back(-294.67807432795627);
5478 6 : parameter_mix_H[BB_RNA_3].push_back(-1.3214626461251089);
5479 :
5480 6 : parameter_mix_H[BASE_A].push_back(1504.9345001191857);
5481 6 : parameter_mix_H[BASE_A].push_back(-3.5306888452552663);
5482 6 : parameter_mix_H[BASE_A].push_back(-2234.3933572775572);
5483 6 : parameter_mix_H[BASE_A].push_back(-380.0255208494757);
5484 6 : parameter_mix_H[BASE_A].push_back(2726.27802432048);
5485 6 : parameter_mix_H[BASE_A].push_back(-1490.8825754968443);
5486 6 : parameter_mix_H[BASE_A].push_back(199.7501110740159);
5487 :
5488 6 : parameter_mix_H[BASE_C].push_back(939.8188801192172);
5489 6 : parameter_mix_H[BASE_C].push_back(-1.489638186262854);
5490 6 : parameter_mix_H[BASE_C].push_back(-1244.5515798554075);
5491 6 : parameter_mix_H[BASE_C].push_back(-161.3972705672055);
5492 6 : parameter_mix_H[BASE_C].push_back(1276.3568466722545);
5493 6 : parameter_mix_H[BASE_C].push_back(-643.3057776225742);
5494 6 : parameter_mix_H[BASE_C].push_back(72.75963113826273);
5495 :
5496 6 : parameter_mix_H[BASE_G].push_back(1768.434840119199);
5497 6 : parameter_mix_H[BASE_G].push_back(-6.505347007077434);
5498 6 : parameter_mix_H[BASE_G].push_back(-2919.3856777898427);
5499 6 : parameter_mix_H[BASE_G].push_back(-701.2456464463938);
5500 6 : parameter_mix_H[BASE_G].push_back(4464.594230284102);
5501 6 : parameter_mix_H[BASE_G].push_back(-2733.138521295608);
5502 6 : parameter_mix_H[BASE_G].push_back(458.1177706235891);
5503 :
5504 6 : parameter_mix_H[BASE_T].push_back(1179.3981001192033);
5505 6 : parameter_mix_H[BASE_T].push_back(-3.2037849252756527);
5506 6 : parameter_mix_H[BASE_T].push_back(-1821.255498763799);
5507 6 : parameter_mix_H[BASE_T].push_back(-371.01993266441303);
5508 6 : parameter_mix_H[BASE_T].push_back(2604.074226688971);
5509 6 : parameter_mix_H[BASE_T].push_back(-1648.1965787713084);
5510 6 : parameter_mix_H[BASE_T].push_back(307.2962186436368);
5511 :
5512 6 : parameter_mix_H[BASE_U].push_back(956.3442001192266);
5513 6 : parameter_mix_H[BASE_U].push_back(-1.724458000760567);
5514 6 : parameter_mix_H[BASE_U].push_back(-1287.9746970192687);
5515 6 : parameter_mix_H[BASE_U].push_back(-192.74748379510373);
5516 6 : parameter_mix_H[BASE_U].push_back(1459.0789258833893);
5517 6 : parameter_mix_H[BASE_U].push_back(-810.0763075080915);
5518 6 : parameter_mix_H[BASE_U].push_back(119.81810290248339);
5519 :
5520 6 : parameter_vac_H[BB_PO3].push_back(3.519375907888525);
5521 6 : parameter_vac_H[BB_PO3].push_back(7.742660056553524e-05);
5522 6 : parameter_vac_H[BB_PO3].push_back(-1.3856562746347367);
5523 6 : parameter_vac_H[BB_PO3].push_back(0.00821183249969174);
5524 6 : parameter_vac_H[BB_PO3].push_back(0.21213096729728745);
5525 6 : parameter_vac_H[BB_PO3].push_back(0.032592855104331325);
5526 6 : parameter_vac_H[BB_PO3].push_back(-0.02236149538438434);
5527 :
5528 6 : parameter_vac_H[BB_PO2].push_back(2.7889001116093275);
5529 6 : parameter_vac_H[BB_PO2].push_back(-0.00011178884266113128);
5530 6 : parameter_vac_H[BB_PO2].push_back(-1.1702605818380667);
5531 6 : parameter_vac_H[BB_PO2].push_back(-0.011278044036819933);
5532 6 : parameter_vac_H[BB_PO2].push_back(0.3214006584089025);
5533 6 : parameter_vac_H[BB_PO2].push_back(-0.04097165983591666);
5534 6 : parameter_vac_H[BB_PO2].push_back(-0.017525098100539722);
5535 :
5536 6 : parameter_vac_H[BB_DNA].push_back(5.987809026456476);
5537 6 : parameter_vac_H[BB_DNA].push_back(9.945454528827912e-05);
5538 6 : parameter_vac_H[BB_DNA].push_back(-1.1884708569330031);
5539 6 : parameter_vac_H[BB_DNA].push_back(-0.007457733256362841);
5540 6 : parameter_vac_H[BB_DNA].push_back(0.05666858781418339);
5541 6 : parameter_vac_H[BB_DNA].push_back(-0.15158797629971757);
5542 6 : parameter_vac_H[BB_DNA].push_back(0.11642340861329734);
5543 :
5544 6 : parameter_vac_H[BB_DNA_5].push_back(4.297328944539055);
5545 6 : parameter_vac_H[BB_DNA_5].push_back(0.0014793971885106831);
5546 6 : parameter_vac_H[BB_DNA_5].push_back(1.3961088365255605);
5547 6 : parameter_vac_H[BB_DNA_5].push_back(0.08974639858979384);
5548 6 : parameter_vac_H[BB_DNA_5].push_back(-1.5198099705167643);
5549 6 : parameter_vac_H[BB_DNA_5].push_back(-0.12127122359433733);
5550 6 : parameter_vac_H[BB_DNA_5].push_back(0.4134601046223601);
5551 :
5552 6 : parameter_vac_H[BB_DNA_3].push_back(4.297328886488132);
5553 6 : parameter_vac_H[BB_DNA_3].push_back(0.0041802954281271905);
5554 6 : parameter_vac_H[BB_DNA_3].push_back(1.6065462295705266);
5555 6 : parameter_vac_H[BB_DNA_3].push_back(0.4399805535688805);
5556 6 : parameter_vac_H[BB_DNA_3].push_back(-3.3806711791929804);
5557 6 : parameter_vac_H[BB_DNA_3].push_back(1.6729551563628675);
5558 6 : parameter_vac_H[BB_DNA_3].push_back(-0.10911063067909885);
5559 :
5560 6 : parameter_vac_H[BB_RNA].push_back(9.162728984394093);
5561 6 : parameter_vac_H[BB_RNA].push_back(0.00019952321584579868);
5562 6 : parameter_vac_H[BB_RNA].push_back(-4.744748946331966);
5563 6 : parameter_vac_H[BB_RNA].push_back(0.025106563403946364);
5564 6 : parameter_vac_H[BB_RNA].push_back(1.2302956694109803);
5565 6 : parameter_vac_H[BB_RNA].push_back(0.12359062278096915);
5566 6 : parameter_vac_H[BB_RNA].push_back(-0.1725633367685285);
5567 :
5568 6 : parameter_vac_H[BB_RNA_5].push_back(7.038408898671503);
5569 6 : parameter_vac_H[BB_RNA_5].push_back(0.005106788424920148);
5570 6 : parameter_vac_H[BB_RNA_5].push_back(-0.8981588221803118);
5571 6 : parameter_vac_H[BB_RNA_5].push_back(0.4922588155214312);
5572 6 : parameter_vac_H[BB_RNA_5].push_back(-2.6667853454023644);
5573 6 : parameter_vac_H[BB_RNA_5].push_back(1.533316567240718);
5574 6 : parameter_vac_H[BB_RNA_5].push_back(-0.07199604869737707);
5575 :
5576 6 : parameter_vac_H[BB_RNA_3].push_back(7.038408892621863);
5577 6 : parameter_vac_H[BB_RNA_3].push_back(0.002993083907266898);
5578 6 : parameter_vac_H[BB_RNA_3].push_back(-1.3626596831098492);
5579 6 : parameter_vac_H[BB_RNA_3].push_back(0.3138856961130113);
5580 6 : parameter_vac_H[BB_RNA_3].push_back(-1.684185014289391);
5581 6 : parameter_vac_H[BB_RNA_3].push_back(1.1862168720864616);
5582 6 : parameter_vac_H[BB_RNA_3].push_back(-0.1443894172417523);
5583 :
5584 6 : parameter_vac_H[BASE_A].push_back(42.62784088079008);
5585 6 : parameter_vac_H[BASE_A].push_back(0.02302908536431516);
5586 6 : parameter_vac_H[BASE_A].push_back(-33.22707177297222);
5587 6 : parameter_vac_H[BASE_A].push_back(2.6853748424439834);
5588 6 : parameter_vac_H[BASE_A].push_back(-1.6632902891624768);
5589 6 : parameter_vac_H[BASE_A].push_back(11.905766349515268);
5590 6 : parameter_vac_H[BASE_A].push_back(-4.547083454788805);
5591 :
5592 6 : parameter_vac_H[BASE_C].push_back(20.83009588079022);
5593 6 : parameter_vac_H[BASE_C].push_back(0.017055822321768378);
5594 6 : parameter_vac_H[BASE_C].push_back(-8.349634734370916);
5595 6 : parameter_vac_H[BASE_C].push_back(1.9324634367723073);
5596 6 : parameter_vac_H[BASE_C].push_back(-8.435199734060882);
5597 6 : parameter_vac_H[BASE_C].push_back(8.272798368731268);
5598 6 : parameter_vac_H[BASE_C].push_back(-1.986671440757263);
5599 :
5600 6 : parameter_vac_H[BASE_G].push_back(50.53788088079374);
5601 6 : parameter_vac_H[BASE_G].push_back(0.024035597617780367);
5602 6 : parameter_vac_H[BASE_G].push_back(-47.94916639302998);
5603 6 : parameter_vac_H[BASE_G].push_back(3.143375731466498);
5604 6 : parameter_vac_H[BASE_G].push_back(4.297009866708155);
5605 6 : parameter_vac_H[BASE_G].push_back(15.855448505050578);
5606 6 : parameter_vac_H[BASE_G].push_back(-7.827484135873966);
5607 :
5608 6 : parameter_vac_H[BASE_T].push_back(20.20502488079069);
5609 6 : parameter_vac_H[BASE_T].push_back(0.033659966153300002);
5610 6 : parameter_vac_H[BASE_T].push_back(-6.057999187718758);
5611 6 : parameter_vac_H[BASE_T].push_back(4.146969282504351);
5612 6 : parameter_vac_H[BASE_T].push_back(-20.664315319574357);
5613 6 : parameter_vac_H[BASE_T].push_back(19.982178623201648);
5614 6 : parameter_vac_H[BASE_T].push_back(-5.440921587349456);
5615 :
5616 6 : parameter_vac_H[BASE_U].push_back(20.958084119209754);
5617 6 : parameter_vac_H[BASE_U].push_back(-0.005164660707148803);
5618 6 : parameter_vac_H[BASE_U].push_back(-14.53831312442302);
5619 6 : parameter_vac_H[BASE_U].push_back(-0.5276995756310442);
5620 6 : parameter_vac_H[BASE_U].push_back(7.060900707522138);
5621 6 : parameter_vac_H[BASE_U].push_back(-1.8988408480951036);
5622 6 : parameter_vac_H[BASE_U].push_back(-0.215000567681094);
5623 :
5624 21340 : for(unsigned i=0; i<atoms.size(); ++i) {
5625 21334 : std::string Aname = pdb.getAtomName(atoms[i]);
5626 21334 : std::string Rname = pdb.getResidueName(atoms[i]);
5627 21334 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
5628 21334 : if(Rname=="ALA") {
5629 1078 : atoi[residue_atom[i]]=ALA;
5630 20256 : } else if(Rname=="ARG") {
5631 1296 : atoi[residue_atom[i]]=ARG;
5632 18960 : } else if(Rname=="ASN") {
5633 1080 : atoi[residue_atom[i]]=ASN;
5634 17880 : } else if(Rname=="ASP") {
5635 936 : atoi[residue_atom[i]]=ASP;
5636 16944 : } else if(Rname=="CYS") {
5637 72 : atoi[residue_atom[i]]=CYS;
5638 16872 : } else if(Rname=="CYX") {
5639 0 : atoi[residue_atom[i]]=CYX;
5640 16872 : } else if(Rname=="GLN") {
5641 1558 : atoi[residue_atom[i]]=GLN;
5642 15314 : } else if(Rname=="GLU") {
5643 714 : atoi[residue_atom[i]]=GLU;
5644 14600 : } else if(Rname=="GLY") {
5645 936 : atoi[residue_atom[i]]=GLY;
5646 13664 : } else if(Rname=="HIS") {
5647 0 : atoi[residue_atom[i]]=HIS;
5648 13664 : } else if(Rname=="HID") {
5649 0 : atoi[residue_atom[i]]=HIS;
5650 13664 : } else if(Rname=="HIE") {
5651 216 : atoi[residue_atom[i]]=HIS;
5652 13448 : } else if(Rname=="HIP") {
5653 0 : atoi[residue_atom[i]]=HIP;
5654 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
5655 13448 : } else if(Rname=="HSD") {
5656 0 : atoi[residue_atom[i]]=HIS;
5657 13448 : } else if(Rname=="HSE") {
5658 0 : atoi[residue_atom[i]]=HIS;
5659 13448 : } else if(Rname=="HSP") {
5660 0 : atoi[residue_atom[i]]=HIP;
5661 13448 : } else if(Rname=="ILE") {
5662 1296 : atoi[residue_atom[i]]=ILE;
5663 12152 : } else if(Rname=="LEU") {
5664 2280 : atoi[residue_atom[i]]=LEU;
5665 9872 : } else if(Rname=="LYS") {
5666 1560 : atoi[residue_atom[i]]=LYS;
5667 8312 : } else if(Rname=="MET") {
5668 836 : atoi[residue_atom[i]]=MET;
5669 7476 : } else if(Rname=="PHE") {
5670 1512 : atoi[residue_atom[i]]=PHE;
5671 5964 : } else if(Rname=="PRO") {
5672 1122 : atoi[residue_atom[i]]=PRO;
5673 4842 : } else if(Rname=="SER") {
5674 768 : atoi[residue_atom[i]]=SER;
5675 4074 : } else if(Rname=="THR") {
5676 728 : atoi[residue_atom[i]]=THR;
5677 3346 : } else if(Rname=="TRP") {
5678 0 : atoi[residue_atom[i]]=TRP;
5679 3346 : } else if(Rname=="TYR") {
5680 792 : atoi[residue_atom[i]]=TYR;
5681 2554 : } else if(Rname=="VAL") {
5682 1600 : atoi[residue_atom[i]]=VAL;
5683 : }
5684 : // NUCLEIC ACIDS
5685 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
5686 : // RNA - G
5687 954 : else if(Rname=="G") {
5688 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5689 0 : Aname=="O1P" || Aname=="O2P" ) {
5690 0 : atoi [residue_atom[i]]=BB_PO2;
5691 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5692 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5693 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5694 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5695 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5696 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5697 0 : atoi[residue_atom[i]]=BB_RNA;
5698 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5699 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5700 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5701 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5702 0 : atoi[residue_atom[i]]=BASE_G;
5703 : } else {
5704 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5705 : }
5706 : // RNA - G3
5707 954 : } else if(Rname=="G3") {
5708 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5709 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5710 0 : atoi [residue_atom[i]]=BB_PO2;
5711 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5712 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5713 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5714 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5715 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5716 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5717 0 : atoi[residue_atom[i]]=BB_RNA_3;
5718 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5719 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5720 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5721 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5722 0 : atoi[residue_atom[i]]=BASE_G;
5723 : } else {
5724 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5725 : }
5726 : // RNA - G5
5727 954 : } else if(Rname=="G5") {
5728 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5729 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5730 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5731 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5732 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5733 0 : Aname=="H2'1" || Aname=="H5T" ) {
5734 0 : atoi[residue_atom[i]]=BB_RNA_5;
5735 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5736 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5737 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5738 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5739 0 : atoi[residue_atom[i]]=BASE_G;
5740 : } else {
5741 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5742 : }
5743 : // RNA - GT
5744 954 : } else if(Rname=="GT") {
5745 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5746 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5747 0 : atoi [residue_atom[i]]=BB_PO3;
5748 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5749 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5750 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5751 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5752 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5753 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5754 0 : atoi[residue_atom[i]]=BB_RNA;
5755 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5756 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5757 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5758 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5759 0 : atoi[residue_atom[i]]=BASE_G;
5760 : } else {
5761 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5762 : }
5763 : // RNA - U
5764 954 : } else if(Rname=="U") {
5765 2886 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5766 1482 : Aname=="O1P" || Aname=="O2P" ) {
5767 78 : atoi [residue_atom[i]]=BB_PO2;
5768 2548 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5769 2132 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5770 1716 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5771 1326 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5772 1196 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5773 1560 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5774 416 : atoi[residue_atom[i]]=BB_RNA;
5775 884 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5776 468 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5777 364 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5778 286 : atoi[residue_atom[i]]=BASE_U;
5779 : } else {
5780 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5781 : }
5782 : // RNA - U3
5783 174 : } else if(Rname=="U3") {
5784 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5785 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5786 6 : atoi [residue_atom[i]]=BB_PO2;
5787 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5788 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5789 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5790 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5791 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5792 78 : Aname=="H5'2" || Aname=="HO'2" ) {
5793 34 : atoi[residue_atom[i]]=BB_RNA_3;
5794 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5795 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5796 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5797 22 : atoi[residue_atom[i]]=BASE_U;
5798 : } else {
5799 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5800 : }
5801 : // RNA - U5
5802 112 : } else if(Rname=="U5") {
5803 408 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5804 344 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5805 280 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5806 216 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5807 176 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5808 156 : Aname=="H2'1" || Aname=="H5T" ) {
5809 68 : atoi[residue_atom[i]]=BB_RNA_5;
5810 136 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5811 72 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5812 56 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5813 44 : atoi[residue_atom[i]]=BASE_U;
5814 : } else {
5815 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5816 : }
5817 : // RNA - UT
5818 0 : } else if(Rname=="UT") {
5819 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5820 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5821 0 : atoi [residue_atom[i]]=BB_PO3;
5822 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5823 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5824 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5825 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5826 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5827 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5828 0 : atoi[residue_atom[i]]=BB_RNA;
5829 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5830 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5831 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5832 0 : atoi[residue_atom[i]]=BASE_U;
5833 : } else {
5834 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5835 : }
5836 : // RNA - A
5837 0 : } else if(Rname=="A") {
5838 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5839 0 : Aname=="O1P" || Aname=="O2P" ) {
5840 0 : atoi [residue_atom[i]]=BB_PO2;
5841 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5842 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5843 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5844 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5845 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5846 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5847 0 : atoi[residue_atom[i]]=BB_RNA;
5848 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5849 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5850 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5851 0 : Aname=="H61" || Aname=="H62" ) {
5852 0 : atoi[residue_atom[i]]=BASE_A;
5853 : } else {
5854 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5855 : }
5856 : // RNA - A3
5857 0 : } else if(Rname=="A3") {
5858 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5859 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5860 0 : atoi [residue_atom[i]]=BB_PO2;
5861 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5862 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5863 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5864 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5865 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5866 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5867 0 : atoi[residue_atom[i]]=BB_RNA_3;
5868 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5869 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5870 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5871 0 : Aname=="H61" || Aname=="H62" ) {
5872 0 : atoi[residue_atom[i]]=BASE_A;
5873 : } else {
5874 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5875 : }
5876 : // RNA - A5
5877 0 : } else if(Rname=="A5") {
5878 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5879 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5880 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5881 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5882 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5883 0 : Aname=="H2'1" || Aname=="H5T" ) {
5884 0 : atoi[residue_atom[i]]=BB_RNA_5;
5885 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5886 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5887 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5888 0 : Aname=="H61" || Aname=="H62" ) {
5889 0 : atoi[residue_atom[i]]=BASE_A;
5890 : } else {
5891 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5892 : }
5893 : // RNA - AT
5894 0 : } else if(Rname=="AT") {
5895 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5896 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5897 0 : atoi [residue_atom[i]]=BB_PO3;
5898 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5899 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5900 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5901 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5902 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5903 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5904 0 : atoi[residue_atom[i]]=BB_RNA;
5905 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5906 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5907 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5908 0 : Aname=="H61" || Aname=="H62" ) {
5909 0 : atoi[residue_atom[i]]=BASE_A;
5910 : } else {
5911 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5912 : }
5913 : // RNA - C
5914 0 : } else if(Rname=="C") {
5915 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5916 0 : Aname=="O1P" || Aname=="O2P" ) {
5917 0 : atoi [residue_atom[i]]=BB_PO2;
5918 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5919 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5920 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5921 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5922 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5923 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5924 0 : atoi[residue_atom[i]]=BB_RNA;
5925 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5926 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5927 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5928 0 : atoi[residue_atom[i]]=BASE_C;
5929 : } else {
5930 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5931 : }
5932 : // RNA - C3
5933 0 : } else if(Rname=="C3") {
5934 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5935 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5936 0 : atoi [residue_atom[i]]=BB_PO2;
5937 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5938 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5939 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5940 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5941 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5942 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5943 0 : atoi[residue_atom[i]]=BB_RNA_3;
5944 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5945 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5946 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5947 0 : atoi[residue_atom[i]]=BASE_C;
5948 : } else {
5949 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5950 : }
5951 : // RNA - C5
5952 0 : } else if(Rname=="C5") {
5953 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5954 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5955 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5956 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5957 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5958 0 : Aname=="H2'1" || Aname=="H5T" ) {
5959 0 : atoi[residue_atom[i]]=BB_RNA_5;
5960 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5961 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5962 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5963 0 : atoi[residue_atom[i]]=BASE_C;
5964 : } else {
5965 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5966 : }
5967 : // RNA - CT
5968 0 : } else if(Rname=="CT") {
5969 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5970 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5971 0 : atoi [residue_atom[i]]=BB_PO3;
5972 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5973 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5974 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5975 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5976 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5977 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5978 0 : atoi[residue_atom[i]]=BB_RNA;
5979 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5980 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5981 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5982 0 : atoi[residue_atom[i]]=BASE_C;
5983 : } else {
5984 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5985 : }
5986 : // DNA - G
5987 0 : } else if(Rname=="DG") {
5988 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5989 0 : Aname=="O1P" || Aname=="O2P" ) {
5990 0 : atoi [residue_atom[i]]=BB_PO2;
5991 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5992 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5993 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5994 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5995 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5996 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5997 0 : atoi[residue_atom[i]]=BB_DNA;
5998 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5999 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6000 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6001 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6002 0 : atoi[residue_atom[i]]=BASE_G;
6003 : } else {
6004 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6005 : }
6006 : // DNA - G3
6007 0 : } else if(Rname=="DG3") {
6008 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6009 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6010 0 : atoi [residue_atom[i]]=BB_PO2;
6011 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6012 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6013 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6014 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6015 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6016 : Aname=="H3T" ) {
6017 0 : atoi[residue_atom[i]]=BB_DNA_3;
6018 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6019 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6020 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6021 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6022 0 : atoi[residue_atom[i]]=BASE_G;
6023 : } else {
6024 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6025 : }
6026 : // DNA - G5
6027 0 : } else if(Rname=="DG5") {
6028 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6029 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6030 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6031 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6032 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6033 : Aname=="H5T" ) {
6034 0 : atoi[residue_atom[i]]=BB_DNA_5;
6035 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6036 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6037 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6038 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6039 0 : atoi[residue_atom[i]]=BASE_G;
6040 : } else {
6041 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6042 : }
6043 : // DNA - GT
6044 0 : } else if(Rname=="DGT") {
6045 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6046 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6047 0 : atoi [residue_atom[i]]=BB_PO3;
6048 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6049 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6050 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6051 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6052 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6053 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6054 0 : atoi[residue_atom[i]]=BB_DNA;
6055 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6056 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6057 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6058 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6059 0 : atoi[residue_atom[i]]=BASE_G;
6060 : } else {
6061 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6062 : }
6063 : // DNA - T
6064 0 : } else if(Rname=="DT") {
6065 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6066 0 : Aname=="O1P" || Aname=="O2P" ) {
6067 0 : atoi [residue_atom[i]]=BB_PO2;
6068 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6069 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6070 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6071 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6072 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6073 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6074 0 : atoi[residue_atom[i]]=BB_DNA;
6075 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6076 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6077 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6078 0 : Aname=="H72" || Aname=="H73" ) {
6079 0 : atoi[residue_atom[i]]=BASE_T;
6080 : } else {
6081 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6082 : }
6083 : // DNA - T3
6084 0 : } else if(Rname=="DT3") {
6085 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6086 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6087 0 : atoi [residue_atom[i]]=BB_PO2;
6088 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6089 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6090 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6091 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6092 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6093 : Aname=="H3T" ) {
6094 0 : atoi[residue_atom[i]]=BB_DNA_3;
6095 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6096 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6097 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6098 0 : Aname=="H72" || Aname=="H73" ) {
6099 0 : atoi[residue_atom[i]]=BASE_T;
6100 : } else {
6101 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6102 : }
6103 : // DNA - T5
6104 0 : } else if(Rname=="DT5") {
6105 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6106 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6107 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6108 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6109 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6110 : Aname=="H5T" ) {
6111 0 : atoi[residue_atom[i]]=BB_DNA_5;
6112 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6113 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6114 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6115 0 : Aname=="H72" || Aname=="H73" ) {
6116 0 : atoi[residue_atom[i]]=BASE_T;
6117 : } else {
6118 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6119 : }
6120 : // DNA - TT
6121 0 : } else if(Rname=="DTT") {
6122 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6123 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6124 0 : atoi [residue_atom[i]]=BB_PO3;
6125 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6126 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6127 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6128 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6129 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6130 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6131 0 : atoi[residue_atom[i]]=BB_DNA;
6132 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6133 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6134 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6135 0 : Aname=="H72" || Aname=="H73" ) {
6136 0 : atoi[residue_atom[i]]=BASE_T;
6137 : } else {
6138 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6139 : }
6140 : // DNA - A
6141 0 : } else if(Rname=="DA") {
6142 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6143 0 : Aname=="O1P" || Aname=="O2P" ) {
6144 0 : atoi [residue_atom[i]]=BB_PO2;
6145 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6146 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6147 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6148 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6149 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6150 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6151 0 : atoi[residue_atom[i]]=BB_DNA;
6152 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6153 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6154 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6155 0 : Aname=="H61" || Aname=="H62" ) {
6156 0 : atoi[residue_atom[i]]=BASE_A;
6157 : } else {
6158 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6159 : }
6160 : // DNA - A3
6161 0 : } else if(Rname=="DA3") {
6162 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6163 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6164 0 : atoi [residue_atom[i]]=BB_PO2;
6165 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6166 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6167 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6168 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6169 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6170 : Aname=="H3T" ) {
6171 0 : atoi[residue_atom[i]]=BB_DNA_3;
6172 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6173 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6174 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6175 0 : Aname=="H61" || Aname=="H62" ) {
6176 0 : atoi[residue_atom[i]]=BASE_A;
6177 : } else {
6178 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6179 : }
6180 : // DNA - A5
6181 0 : } else if(Rname=="DA5") {
6182 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6183 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6184 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6185 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6186 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6187 : Aname=="H5T" ) {
6188 0 : atoi[residue_atom[i]]=BB_DNA_5;
6189 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6190 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6191 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6192 0 : Aname=="H61" || Aname=="H62" ) {
6193 0 : atoi[residue_atom[i]]=BASE_A;
6194 : } else {
6195 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6196 : }
6197 : // DNA - AT
6198 0 : } else if(Rname=="DAT") {
6199 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6200 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6201 0 : atoi [residue_atom[i]]=BB_PO3;
6202 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6203 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6204 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6205 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6206 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6207 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6208 0 : atoi[residue_atom[i]]=BB_DNA;
6209 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6210 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6211 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6212 0 : Aname=="H61" || Aname=="H62" ) {
6213 0 : atoi[residue_atom[i]]=BASE_A;
6214 : } else {
6215 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6216 : }
6217 : // DNA - C
6218 0 : } else if(Rname=="DC") {
6219 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6220 0 : Aname=="O1P" || Aname=="O2P" ) {
6221 0 : atoi [residue_atom[i]]=BB_PO2;
6222 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6223 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6224 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6225 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6226 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6227 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6228 0 : atoi[residue_atom[i]]=BB_DNA;
6229 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6230 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6231 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6232 0 : atoi[residue_atom[i]]=BASE_C;
6233 : } else {
6234 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6235 : }
6236 : // DNA - C3
6237 0 : } else if(Rname=="DC3") {
6238 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6239 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6240 0 : atoi [residue_atom[i]]=BB_PO2;
6241 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6242 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6243 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6244 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6245 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6246 : Aname=="H3T" ) {
6247 0 : atoi[residue_atom[i]]=BB_DNA_3;
6248 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6249 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6250 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6251 0 : atoi[residue_atom[i]]=BASE_C;
6252 : } else {
6253 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6254 : }
6255 : // DNA - C5
6256 0 : } else if(Rname=="DC5") {
6257 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6258 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6259 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6260 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6261 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6262 : Aname=="H5T" ) {
6263 0 : atoi[residue_atom[i]]=BB_DNA_5;
6264 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6265 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6266 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6267 0 : atoi[residue_atom[i]]=BASE_C;
6268 : } else {
6269 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6270 : }
6271 : // DNA - CT
6272 0 : } else if(Rname=="DCT") {
6273 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6274 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6275 0 : atoi [residue_atom[i]]=BB_PO3;
6276 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6277 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6278 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6279 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6280 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6281 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6282 0 : atoi[residue_atom[i]]=BB_DNA;
6283 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6284 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6285 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6286 0 : atoi[residue_atom[i]]=BASE_C;
6287 : } else {
6288 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6289 : }
6290 : } else {
6291 0 : error("Residue not known: "+Rname);
6292 : }
6293 : }
6294 6 : }
6295 :
6296 6 : void SAXS::getOnebeadparam_sansD(const PDB &pdb, const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter_vac_D, std::vector<std::vector<long double> > ¶meter_mix_D) {
6297 : // parameter_solv is identical in SAXS/SANS_H/SANS_D since it depends exclusively on param_v. For that reason we kept param_solv only in SAXS and SANS_H.
6298 6 : parameter_mix_D[TRP].push_back(8105.740500119327);
6299 6 : parameter_mix_D[TRP].push_back(-41.785616935469804);
6300 6 : parameter_mix_D[TRP].push_back(-25456.92790554363);
6301 6 : parameter_mix_D[TRP].push_back(-10058.20599969184);
6302 6 : parameter_mix_D[TRP].push_back(86171.76479108425);
6303 6 : parameter_mix_D[TRP].push_back(-83227.63139882773);
6304 6 : parameter_mix_D[TRP].push_back(25121.390436258724);
6305 :
6306 6 : parameter_mix_D[TYR].push_back(6059.530560118732);
6307 6 : parameter_mix_D[TYR].push_back(-24.522695525705736);
6308 6 : parameter_mix_D[TYR].push_back(-17180.858815360847);
6309 6 : parameter_mix_D[TYR].push_back(-5990.1358528219325);
6310 6 : parameter_mix_D[TYR].push_back(52936.46126637543);
6311 6 : parameter_mix_D[TYR].push_back(-50150.0042622683);
6312 6 : parameter_mix_D[TYR].push_back(14914.553672440441);
6313 :
6314 6 : parameter_mix_D[PHE].push_back(5563.404880119222);
6315 6 : parameter_mix_D[PHE].push_back(-33.609784645922794);
6316 6 : parameter_mix_D[PHE].push_back(-14576.935030777448);
6317 6 : parameter_mix_D[PHE].push_back(-5759.170105553782);
6318 6 : parameter_mix_D[PHE].push_back(43316.895956549866);
6319 6 : parameter_mix_D[PHE].push_back(-39106.58694570862);
6320 6 : parameter_mix_D[PHE].push_back(11143.375742877468);
6321 :
6322 6 : parameter_mix_D[HIP].push_back(3981.7108801192553);
6323 6 : parameter_mix_D[HIP].push_back(-23.788371565946427);
6324 6 : parameter_mix_D[HIP].push_back(-9471.73953776056);
6325 6 : parameter_mix_D[HIP].push_back(-3690.3981577198365);
6326 6 : parameter_mix_D[HIP].push_back(26365.958584217453);
6327 6 : parameter_mix_D[HIP].push_back(-23067.58974902849);
6328 6 : parameter_mix_D[HIP].push_back(6390.507451097114);
6329 :
6330 6 : parameter_mix_D[ARG].push_back(6279.489359881259);
6331 6 : parameter_mix_D[ARG].push_back(1.2061878338083583);
6332 6 : parameter_mix_D[ARG].push_back(-20305.413937989913);
6333 6 : parameter_mix_D[ARG].push_back(-5621.666335222669);
6334 6 : parameter_mix_D[ARG].push_back(67341.96785520067);
6335 6 : parameter_mix_D[ARG].push_back(-68849.15464591733);
6336 6 : parameter_mix_D[ARG].push_back(21773.0630363882);
6337 :
6338 6 : parameter_mix_D[LYS].push_back(5434.487400119193);
6339 6 : parameter_mix_D[LYS].push_back(-29.32356328987909);
6340 6 : parameter_mix_D[LYS].push_back(-14363.66155749977);
6341 6 : parameter_mix_D[LYS].push_back(-5650.383128516514);
6342 6 : parameter_mix_D[LYS].push_back(44573.73888236887);
6343 6 : parameter_mix_D[LYS].push_back(-41515.980945300485);
6344 6 : parameter_mix_D[LYS].push_back(12181.965046747513);
6345 :
6346 6 : parameter_mix_D[CYS].push_back(1519.4030001192032);
6347 6 : parameter_mix_D[CYS].push_back(-3.564386334921097);
6348 6 : parameter_mix_D[CYS].push_back(-2275.813167459516);
6349 6 : parameter_mix_D[CYS].push_back(-409.54431591328125);
6350 6 : parameter_mix_D[CYS].push_back(2969.5412742839258);
6351 6 : parameter_mix_D[CYS].push_back(-1798.3157146799638);
6352 6 : parameter_mix_D[CYS].push_back(314.568167888235);
6353 :
6354 6 : parameter_mix_D[CYX].push_back(1310.696400119220);
6355 6 : parameter_mix_D[CYX].push_back(-2.919852579787);
6356 6 : parameter_mix_D[CYX].push_back(-1902.283026713150);
6357 6 : parameter_mix_D[CYX].push_back(-340.431267947190);
6358 6 : parameter_mix_D[CYX].push_back(2480.025274590502);
6359 6 : parameter_mix_D[CYX].push_back(-1529.188197179144);
6360 6 : parameter_mix_D[CYX].push_back(278.926068515295);
6361 :
6362 6 : parameter_mix_D[ASP].push_back(1861.6998401191709);
6363 6 : parameter_mix_D[ASP].push_back(-5.349780637260551);
6364 6 : parameter_mix_D[ASP].push_back(-2960.36741510377);
6365 6 : parameter_mix_D[ASP].push_back(-621.8270745040523);
6366 6 : parameter_mix_D[ASP].push_back(4334.798300452934);
6367 6 : parameter_mix_D[ASP].push_back(-2776.8560521554878);
6368 6 : parameter_mix_D[ASP].push_back(527.9777182094936);
6369 :
6370 6 : parameter_mix_D[GLU].push_back(2861.6017201192253);
6371 6 : parameter_mix_D[GLU].push_back(-13.146456903921809);
6372 6 : parameter_mix_D[GLU].push_back(-5393.408563875243);
6373 6 : parameter_mix_D[GLU].push_back(-1646.460570818364);
6374 6 : parameter_mix_D[GLU].push_back(10884.544923253858);
6375 6 : parameter_mix_D[GLU].push_back(-8159.923373048856);
6376 6 : parameter_mix_D[GLU].push_back(1914.545660397314);
6377 :
6378 6 : parameter_mix_D[ILE].push_back(4288.585540119189);
6379 6 : parameter_mix_D[ILE].push_back(-19.937215352880365);
6380 6 : parameter_mix_D[ILE].push_back(-8324.540144463375);
6381 6 : parameter_mix_D[ILE].push_back(-2431.835931316717);
6382 6 : parameter_mix_D[ILE].push_back(16079.9912986194);
6383 6 : parameter_mix_D[ILE].push_back(-11637.693060394462);
6384 6 : parameter_mix_D[ILE].push_back(2600.8258068480495);
6385 :
6386 6 : parameter_mix_D[LEU].push_back(4288.585540119186);
6387 6 : parameter_mix_D[LEU].push_back(-21.50343599461759);
6388 6 : parameter_mix_D[LEU].push_back(-8479.703435720274);
6389 6 : parameter_mix_D[LEU].push_back(-2647.8693829269596);
6390 6 : parameter_mix_D[LEU].push_back(17297.18115838578);
6391 6 : parameter_mix_D[LEU].push_back(-12826.972408323161);
6392 6 : parameter_mix_D[LEU].push_back(2953.1262521615645);
6393 :
6394 6 : parameter_mix_D[MET].push_back(3561.6276801191552);
6395 6 : parameter_mix_D[MET].push_back(-22.19323392975885);
6396 6 : parameter_mix_D[MET].push_back(-8348.33907053846);
6397 6 : parameter_mix_D[MET].push_back(-3323.053272414289);
6398 6 : parameter_mix_D[MET].push_back(23153.238909304255);
6399 6 : parameter_mix_D[MET].push_back(-20091.960440908682);
6400 6 : parameter_mix_D[MET].push_back(5518.759669687693);
6401 :
6402 6 : parameter_mix_D[ASN].push_back(2326.5396001192003);
6403 6 : parameter_mix_D[ASN].push_back(-8.634908921289112);
6404 6 : parameter_mix_D[ASN].push_back(-4057.4552636749636);
6405 6 : parameter_mix_D[ASN].push_back(-1032.743130124821);
6406 6 : parameter_mix_D[ASN].push_back(6957.141592429445);
6407 6 : parameter_mix_D[ASN].push_back(-4808.265318722317);
6408 6 : parameter_mix_D[ASN].push_back(1016.3944815533755);
6409 :
6410 6 : parameter_mix_D[PRO].push_back(2471.1663601191985);
6411 6 : parameter_mix_D[PRO].push_back(-6.360795284260088);
6412 6 : parameter_mix_D[PRO].push_back(-3825.4533158429153);
6413 6 : parameter_mix_D[PRO].push_back(-728.7164844824666);
6414 6 : parameter_mix_D[PRO].push_back(5195.036303827973);
6415 6 : parameter_mix_D[PRO].push_back(-3183.733716480742);
6416 6 : parameter_mix_D[PRO].push_back(563.2376162754107);
6417 :
6418 6 : parameter_mix_D[GLN].push_back(3431.669280119236);
6419 6 : parameter_mix_D[GLN].push_back(-19.412747205646166);
6420 6 : parameter_mix_D[GLN].push_back(-7298.017973002134);
6421 6 : parameter_mix_D[GLN].push_back(-2659.3014182337706);
6422 6 : parameter_mix_D[GLN].push_back(17890.76595805173);
6423 6 : parameter_mix_D[GLN].push_back(-14684.603067192957);
6424 6 : parameter_mix_D[GLN].push_back(3814.338335151394);
6425 :
6426 6 : parameter_mix_D[SER].push_back(1423.885200119192);
6427 6 : parameter_mix_D[SER].push_back(-2.586428606204385);
6428 6 : parameter_mix_D[SER].push_back(-1966.7369507188134);
6429 6 : parameter_mix_D[SER].push_back(-289.17277383434106);
6430 6 : parameter_mix_D[SER].push_back(2209.478296043199);
6431 6 : parameter_mix_D[SER].push_back(-1216.1521614944);
6432 6 : parameter_mix_D[SER].push_back(177.0615931546754);
6433 :
6434 6 : parameter_mix_D[THR].push_back(2311.2364801191825);
6435 6 : parameter_mix_D[THR].push_back(-6.258071321531929);
6436 6 : parameter_mix_D[THR].push_back(-3656.295629081312);
6437 6 : parameter_mix_D[THR].push_back(-716.4013890357804);
6438 6 : parameter_mix_D[THR].push_back(5071.656317108832);
6439 6 : parameter_mix_D[THR].push_back(-3125.8076789667816);
6440 6 : parameter_mix_D[THR].push_back(555.9775741081131);
6441 :
6442 6 : parameter_mix_D[VAL].push_back(3041.128320119224);
6443 6 : parameter_mix_D[VAL].push_back(-9.314034190716423);
6444 6 : parameter_mix_D[VAL].push_back(-5075.684780220629);
6445 6 : parameter_mix_D[VAL].push_back(-1070.7083380665008);
6446 6 : parameter_mix_D[VAL].push_back(7455.654515006894);
6447 6 : parameter_mix_D[VAL].push_back(-4701.19187164774);
6448 6 : parameter_mix_D[VAL].push_back(863.4906179388547);
6449 :
6450 6 : parameter_mix_D[ALA].push_back(1187.65300011922);
6451 6 : parameter_mix_D[ALA].push_back(-1.7011187932116822);
6452 6 : parameter_mix_D[ALA].push_back(-1521.0113615359212);
6453 6 : parameter_mix_D[ALA].push_back(-187.93745840575576);
6454 6 : parameter_mix_D[ALA].push_back(1514.6745873304449);
6455 6 : parameter_mix_D[ALA].push_back(-775.3890045113897);
6456 6 : parameter_mix_D[ALA].push_back(96.41428177656567);
6457 :
6458 6 : parameter_mix_D[GLY].push_back(581.6349001192067);
6459 6 : parameter_mix_D[GLY].push_back(-0.5877833598361395);
6460 6 : parameter_mix_D[GLY].push_back(-640.0421286186524);
6461 6 : parameter_mix_D[GLY].push_back(-64.58515074152534);
6462 6 : parameter_mix_D[GLY].push_back(551.9509853583185);
6463 6 : parameter_mix_D[GLY].push_back(-264.1522021146006);
6464 6 : parameter_mix_D[GLY].push_back(28.36986478439301);
6465 :
6466 6 : parameter_mix_D[HIS].push_back(3648.812220119277);
6467 6 : parameter_mix_D[HIS].push_back(-22.703075403555548);
6468 6 : parameter_mix_D[HIS].push_back(-8260.235189881098);
6469 6 : parameter_mix_D[HIS].push_back(-3190.3176569039265);
6470 6 : parameter_mix_D[HIS].push_back(21589.074332364213);
6471 6 : parameter_mix_D[HIS].push_back(-18108.640157613925);
6472 6 : parameter_mix_D[HIS].push_back(4801.237639634437);
6473 :
6474 6 : parameter_vac_D[TRP].push_back(270.43802511921314);
6475 6 : parameter_vac_D[TRP].push_back(-2.196022464340772);
6476 6 : parameter_vac_D[TRP].push_back(-780.9546710244318);
6477 6 : parameter_vac_D[TRP].push_back(-371.1573508312626);
6478 6 : parameter_vac_D[TRP].push_back(2668.7678731652445);
6479 6 : parameter_vac_D[TRP].push_back(-2478.2920954223678);
6480 6 : parameter_vac_D[TRP].push_back(722.3731624901676);
6481 :
6482 6 : parameter_vac_D[TYR].push_back(198.471744119211);
6483 6 : parameter_vac_D[TYR].push_back(-1.236792846228289);
6484 6 : parameter_vac_D[TYR].push_back(-508.0448711054671);
6485 6 : parameter_vac_D[TYR].push_back(-210.55908129481216);
6486 6 : parameter_vac_D[TYR].push_back(1558.3884734212413);
6487 6 : parameter_vac_D[TYR].push_back(-1418.36319255665);
6488 6 : parameter_vac_D[TYR].push_back(407.21567613893296);
6489 :
6490 6 : parameter_vac_D[PHE].push_back(182.46606411921402);
6491 6 : parameter_vac_D[PHE].push_back(-1.2708008333861447);
6492 6 : parameter_vac_D[PHE].push_back(-424.50905926426054);
6493 6 : parameter_vac_D[PHE].push_back(-177.97207825696387);
6494 6 : parameter_vac_D[PHE].push_back(1180.839971941918);
6495 6 : parameter_vac_D[PHE].push_back(-1004.004765231886);
6496 6 : parameter_vac_D[PHE].push_back(269.34384064610344);
6497 :
6498 6 : parameter_vac_D[HIP].push_back(161.95107611920753);
6499 6 : parameter_vac_D[HIP].push_back(-0.9661246983835707);
6500 6 : parameter_vac_D[HIP].push_back(-332.04673226423995);
6501 6 : parameter_vac_D[HIP].push_back(-125.41755194926544);
6502 6 : parameter_vac_D[HIP].push_back(808.705672166199);
6503 6 : parameter_vac_D[HIP].push_back(-648.8340711218191);
6504 6 : parameter_vac_D[HIP].push_back(163.71251277400307);
6505 :
6506 6 : parameter_vac_D[ARG].push_back(289.0340011192071);
6507 6 : parameter_vac_D[ARG].push_back(-1.4195753436279361);
6508 6 : parameter_vac_D[ARG].push_back(-836.3864005546434);
6509 6 : parameter_vac_D[ARG].push_back(-346.7081039129904);
6510 6 : parameter_vac_D[ARG].push_back(2922.003491580559);
6511 6 : parameter_vac_D[ARG].push_back(-2864.816533173085);
6512 6 : parameter_vac_D[ARG].push_back(877.9525045072293);
6513 :
6514 6 : parameter_vac_D[LYS].push_back(228.64464111920753);
6515 6 : parameter_vac_D[LYS].push_back(-1.686580749083617);
6516 6 : parameter_vac_D[LYS].push_back(-544.8870548339771);
6517 6 : parameter_vac_D[LYS].push_back(-252.11087773186324);
6518 6 : parameter_vac_D[LYS].push_back(1693.784850493428);
6519 6 : parameter_vac_D[LYS].push_back(-1514.2375008160348);
6520 6 : parameter_vac_D[LYS].push_back(427.0713155512121);
6521 :
6522 6 : parameter_vac_D[CYS].push_back(50.836900116324315);
6523 6 : parameter_vac_D[CYS].push_back(-0.040204572899665315);
6524 6 : parameter_vac_D[CYS].push_back(-55.592868149339424);
6525 6 : parameter_vac_D[CYS].push_back(-4.341359624977117);
6526 6 : parameter_vac_D[CYS].push_back(41.55290573185214);
6527 6 : parameter_vac_D[CYS].push_back(-17.248208429078456);
6528 6 : parameter_vac_D[CYS].push_back(1.0736187172140528);
6529 :
6530 6 : parameter_vac_D[CYX].push_back(41.770369115535);
6531 6 : parameter_vac_D[CYX].push_back(-0.019277246931);
6532 6 : parameter_vac_D[CYX].push_back(-40.006821199463);
6533 6 : parameter_vac_D[CYX].push_back(-2.056736901533);
6534 6 : parameter_vac_D[CYX].push_back(23.707430747544);
6535 6 : parameter_vac_D[CYX].push_back(-8.010813092204);
6536 6 : parameter_vac_D[CYX].push_back(-0.023482540763);
6537 :
6538 6 : parameter_vac_D[ASP].push_back(64.12806411920792);
6539 6 : parameter_vac_D[ASP].push_back(-0.08245818875074411);
6540 6 : parameter_vac_D[ASP].push_back(-78.95500211069523);
6541 6 : parameter_vac_D[ASP].push_back(-9.030157332821238);
6542 6 : parameter_vac_D[ASP].push_back(74.72033164806712);
6543 6 : parameter_vac_D[ASP].push_back(-36.71042192737952);
6544 6 : parameter_vac_D[ASP].push_back(4.0989206257493676);
6545 :
6546 6 : parameter_vac_D[GLU].push_back(100.14004911920799);
6547 6 : parameter_vac_D[GLU].push_back(-0.28685123265362006);
6548 6 : parameter_vac_D[GLU].push_back(-152.44619103423773);
6549 6 : parameter_vac_D[GLU].push_back(-32.99432901288321);
6550 6 : parameter_vac_D[GLU].push_back(225.5853175183811);
6551 6 : parameter_vac_D[GLU].push_back(-144.8489352831419);
6552 6 : parameter_vac_D[GLU].push_back(27.49692658880534);
6553 :
6554 6 : parameter_vac_D[ILE].push_back(165.04540911921134);
6555 6 : parameter_vac_D[ILE].push_back(-0.5061553029227089);
6556 6 : parameter_vac_D[ILE].push_back(-275.1890586090823);
6557 6 : parameter_vac_D[ILE].push_back(-57.288063177375356);
6558 6 : parameter_vac_D[ILE].push_back(398.9780357099449);
6559 6 : parameter_vac_D[ILE].push_back(-245.42678814428692);
6560 6 : parameter_vac_D[ILE].push_back(42.72941025472001);
6561 :
6562 6 : parameter_vac_D[LEU].push_back(165.04540911921134);
6563 6 : parameter_vac_D[LEU].push_back(-0.580034983510499);
6564 6 : parameter_vac_D[LEU].push_back(-281.30910057877514);
6565 6 : parameter_vac_D[LEU].push_back(-66.19427345166183);
6566 6 : parameter_vac_D[LEU].push_back(445.19214155995115);
6567 6 : parameter_vac_D[LEU].push_back(-287.0653610399624);
6568 6 : parameter_vac_D[LEU].push_back(53.86626261066706);
6569 :
6570 6 : parameter_vac_D[MET].push_back(123.83238411920684);
6571 6 : parameter_vac_D[MET].push_back(-0.7698672022751385);
6572 6 : parameter_vac_D[MET].push_back(-251.2481622173618);
6573 6 : parameter_vac_D[MET].push_back(-100.67742019193848);
6574 6 : parameter_vac_D[MET].push_back(641.1563254731632);
6575 6 : parameter_vac_D[MET].push_back(-524.8742634212379);
6576 6 : parameter_vac_D[MET].push_back(135.36487813767542);
6577 :
6578 6 : parameter_vac_D[ASN].push_back(94.12880411921148);
6579 6 : parameter_vac_D[ASN].push_back(-0.22986194121078912);
6580 6 : parameter_vac_D[ASN].push_back(-138.78769705028003);
6581 6 : parameter_vac_D[ASN].push_back(-25.896846049402594);
6582 6 : parameter_vac_D[ASN].push_back(184.55609781654326);
6583 6 : parameter_vac_D[ASN].push_back(-110.14043851975404);
6584 6 : parameter_vac_D[ASN].push_back(18.388834098004153);
6585 :
6586 6 : parameter_vac_D[PRO].push_back(90.51619611920745);
6587 6 : parameter_vac_D[PRO].push_back(-0.0977238494110807);
6588 6 : parameter_vac_D[PRO].push_back(-109.43531311067846);
6589 6 : parameter_vac_D[PRO].push_back(-10.592981104983805);
6590 6 : parameter_vac_D[PRO].push_back(93.64863466237733);
6591 6 : parameter_vac_D[PRO].push_back(-42.348197720920865);
6592 6 : parameter_vac_D[PRO].push_back(3.5854078482704574);
6593 :
6594 6 : parameter_vac_D[GLN].push_back(136.91340111920806);
6595 6 : parameter_vac_D[GLN].push_back(-0.7259026842220699);
6596 6 : parameter_vac_D[GLN].push_back(-257.0347011897067);
6597 6 : parameter_vac_D[GLN].push_back(-89.99600255417684);
6598 6 : parameter_vac_D[GLN].push_back(570.3890595917421);
6599 6 : parameter_vac_D[GLN].push_back(-438.8977029769549);
6600 6 : parameter_vac_D[GLN].push_back(105.48846039376491);
6601 :
6602 6 : parameter_vac_D[SER].push_back(55.20490011583253);
6603 6 : parameter_vac_D[SER].push_back(-0.038078030710377984);
6604 6 : parameter_vac_D[SER].push_back(-58.79085960838952);
6605 6 : parameter_vac_D[SER].push_back(-4.067364063406562);
6606 6 : parameter_vac_D[SER].push_back(41.319899403658475);
6607 6 : parameter_vac_D[SER].push_back(-15.865682241288962);
6608 6 : parameter_vac_D[SER].push_back(0.5028409006168431);
6609 :
6610 6 : parameter_vac_D[THR].push_back(88.90604111920842);
6611 6 : parameter_vac_D[THR].push_back(-0.11566717587697625);
6612 6 : parameter_vac_D[THR].push_back(-114.4541243837681);
6613 6 : parameter_vac_D[THR].push_back(-12.541537413808342);
6614 6 : parameter_vac_D[THR].push_back(106.4974738790947);
6615 6 : parameter_vac_D[THR].push_back(-50.15009912825225);
6616 6 : parameter_vac_D[THR].push_back(4.719349514074467);
6617 :
6618 6 : parameter_vac_D[VAL].push_back(117.67910411920792);
6619 6 : parameter_vac_D[VAL].push_back(-0.18187311248567883);
6620 6 : parameter_vac_D[VAL].push_back(-162.8697844894754);
6621 6 : parameter_vac_D[VAL].push_back(-19.769248288711825);
6622 6 : parameter_vac_D[VAL].push_back(162.59270939168965);
6623 6 : parameter_vac_D[VAL].push_back(-79.37261506441627);
6624 6 : parameter_vac_D[VAL].push_back(8.230771959393175);
6625 :
6626 6 : parameter_vac_D[ALA].push_back(46.92250011448002);
6627 6 : parameter_vac_D[ALA].push_back(-0.020339064649444412);
6628 6 : parameter_vac_D[ALA].push_back(-44.41584945233503);
6629 6 : parameter_vac_D[ALA].push_back(-2.1483754537886113);
6630 6 : parameter_vac_D[ALA].push_back(25.713667829058785);
6631 6 : parameter_vac_D[ALA].push_back(-8.222782061575268);
6632 6 : parameter_vac_D[ALA].push_back(-0.2521732728817875);
6633 :
6634 6 : parameter_vac_D[GLY].push_back(23.532201119209795);
6635 6 : parameter_vac_D[GLY].push_back(-0.00628609590047614);
6636 6 : parameter_vac_D[GLY].push_back(-17.28421910139733);
6637 6 : parameter_vac_D[GLY].push_back(-0.6641226821159686);
6638 6 : parameter_vac_D[GLY].push_back(8.536119110048007);
6639 6 : parameter_vac_D[GLY].push_back(-2.5438638688361466);
6640 6 : parameter_vac_D[GLY].push_back(-0.11165675928832643);
6641 :
6642 6 : parameter_vac_D[HIS].push_back(145.41948111920982);
6643 6 : parameter_vac_D[HIS].push_back(-0.8548328183368781);
6644 6 : parameter_vac_D[HIS].push_back(-290.8653238004162);
6645 6 : parameter_vac_D[HIS].push_back(-107.85375269366395);
6646 6 : parameter_vac_D[HIS].push_back(685.7025818759361);
6647 6 : parameter_vac_D[HIS].push_back(-538.2592043545858);
6648 6 : parameter_vac_D[HIS].push_back(132.17357375729733);
6649 :
6650 : // NUCLEIC ACIDS
6651 6 : parameter_mix_D[BB_PO3].push_back(223.2671801192072);
6652 6 : parameter_mix_D[BB_PO3].push_back(-0.14452515213607267);
6653 6 : parameter_mix_D[BB_PO3].push_back(-219.64134852678032);
6654 6 : parameter_mix_D[BB_PO3].push_back(-15.527993497328728);
6655 6 : parameter_mix_D[BB_PO3].push_back(153.27197635784856);
6656 6 : parameter_mix_D[BB_PO3].push_back(-61.17793915482464);
6657 6 : parameter_mix_D[BB_PO3].push_back(2.92608540200577);
6658 :
6659 6 : parameter_mix_D[BB_PO2].push_back(80.12660011920252);
6660 6 : parameter_mix_D[BB_PO2].push_back(-0.02788855519820236);
6661 6 : parameter_mix_D[BB_PO2].push_back(-60.53219491822279);
6662 6 : parameter_mix_D[BB_PO2].push_back(-2.9768829034096806);
6663 6 : parameter_mix_D[BB_PO2].push_back(33.30645116638123);
6664 6 : parameter_mix_D[BB_PO2].push_back(-11.601573219761375);
6665 6 : parameter_mix_D[BB_PO2].push_back(0.12551046492022438);
6666 :
6667 6 : parameter_mix_D[BB_DNA].push_back(2835.3195201193003);
6668 6 : parameter_mix_D[BB_DNA].push_back(-7.954301723608173);
6669 6 : parameter_mix_D[BB_DNA].push_back(-4509.325563460958);
6670 6 : parameter_mix_D[BB_DNA].push_back(-909.1870692311344);
6671 6 : parameter_mix_D[BB_DNA].push_back(6375.156903893768);
6672 6 : parameter_mix_D[BB_DNA].push_back(-3956.4787847570715);
6673 6 : parameter_mix_D[BB_DNA].push_back(708.9872879613656);
6674 :
6675 6 : parameter_mix_D[BB_DNA_5].push_back(3136.73358011921);
6676 6 : parameter_mix_D[BB_DNA_5].push_back(-10.023435855160427);
6677 6 : parameter_mix_D[BB_DNA_5].push_back(-5208.921666368173);
6678 6 : parameter_mix_D[BB_DNA_5].push_back(-1160.4403539440214);
6679 6 : parameter_mix_D[BB_DNA_5].push_back(7962.598421448727);
6680 6 : parameter_mix_D[BB_DNA_5].push_back(-5149.059857691847);
6681 6 : parameter_mix_D[BB_DNA_5].push_back(984.5217027570121);
6682 :
6683 6 : parameter_mix_D[BB_DNA_3].push_back(3136.73358011921);
6684 6 : parameter_mix_D[BB_DNA_3].push_back(-9.618834865806274);
6685 6 : parameter_mix_D[BB_DNA_3].push_back(-5164.249220443828);
6686 6 : parameter_mix_D[BB_DNA_3].push_back(-1103.2721475326382);
6687 6 : parameter_mix_D[BB_DNA_3].push_back(7633.46089052312);
6688 6 : parameter_mix_D[BB_DNA_3].push_back(-4826.171688395644);
6689 6 : parameter_mix_D[BB_DNA_3].push_back(888.1820863683546);
6690 :
6691 6 : parameter_mix_D[BB_RNA].push_back(3192.5955601188807);
6692 6 : parameter_mix_D[BB_RNA].push_back(-11.475781582628308);
6693 6 : parameter_mix_D[BB_RNA].push_back(-5486.264576931735);
6694 6 : parameter_mix_D[BB_RNA].push_back(-1344.2878288415961);
6695 6 : parameter_mix_D[BB_RNA].push_back(9035.26109892441);
6696 6 : parameter_mix_D[BB_RNA].push_back(-6068.471909763036);
6697 6 : parameter_mix_D[BB_RNA].push_back(1226.3696076463866);
6698 :
6699 6 : parameter_mix_D[BB_RNA_5].push_back(3512.1630401192215);
6700 6 : parameter_mix_D[BB_RNA_5].push_back(-14.191020069433975);
6701 6 : parameter_mix_D[BB_RNA_5].push_back(-6293.687102187508);
6702 6 : parameter_mix_D[BB_RNA_5].push_back(-1689.3688494490984);
6703 6 : parameter_mix_D[BB_RNA_5].push_back(11193.448566821942);
6704 6 : parameter_mix_D[BB_RNA_5].push_back(-7806.9064399949375);
6705 6 : parameter_mix_D[BB_RNA_5].push_back(1662.4594983069844);
6706 :
6707 6 : parameter_mix_D[BB_RNA_3].push_back(3512.1630401192215);
6708 6 : parameter_mix_D[BB_RNA_3].push_back(-12.978118135595812);
6709 6 : parameter_mix_D[BB_RNA_3].push_back(-6149.290195451877);
6710 6 : parameter_mix_D[BB_RNA_3].push_back(-1515.8309761505627);
6711 6 : parameter_mix_D[BB_RNA_3].push_back(10176.605450440278);
6712 6 : parameter_mix_D[BB_RNA_3].push_back(-6813.250569884159);
6713 6 : parameter_mix_D[BB_RNA_3].push_back(1366.823518955858);
6714 :
6715 6 : parameter_mix_D[BASE_A].push_back(2464.736500119229);
6716 6 : parameter_mix_D[BASE_A].push_back(-12.127452038444783);
6717 6 : parameter_mix_D[BASE_A].push_back(-4710.661256689607);
6718 6 : parameter_mix_D[BASE_A].push_back(-1462.6964141954452);
6719 6 : parameter_mix_D[BASE_A].push_back(9451.725575888277);
6720 6 : parameter_mix_D[BASE_A].push_back(-6883.018479948857);
6721 6 : parameter_mix_D[BASE_A].push_back(1540.1526599737797);
6722 :
6723 6 : parameter_mix_D[BASE_C].push_back(1797.2697601191685);
6724 6 : parameter_mix_D[BASE_C].push_back(-5.963855532295215);
6725 6 : parameter_mix_D[BASE_C].push_back(-2955.077717756034);
6726 6 : parameter_mix_D[BASE_C].push_back(-689.4543508746372);
6727 6 : parameter_mix_D[BASE_C].push_back(4665.914740532565);
6728 6 : parameter_mix_D[BASE_C].push_back(-3051.4605913706982);
6729 6 : parameter_mix_D[BASE_C].push_back(590.2201952719585);
6730 :
6731 6 : parameter_mix_D[BASE_G].push_back(2804.271480119049);
6732 6 : parameter_mix_D[BASE_G].push_back(-16.928072935469974);
6733 6 : parameter_mix_D[BASE_G].push_back(-5989.82519987899);
6734 6 : parameter_mix_D[BASE_G].push_back(-2275.490326521775);
6735 6 : parameter_mix_D[BASE_G].push_back(15007.832401865428);
6736 6 : parameter_mix_D[BASE_G].push_back(-12287.520690325606);
6737 6 : parameter_mix_D[BASE_G].push_back(3172.98306575258);
6738 :
6739 6 : parameter_mix_D[BASE_T].push_back(2545.0860001192113);
6740 6 : parameter_mix_D[BASE_T].push_back(-10.975141620541738);
6741 6 : parameter_mix_D[BASE_T].push_back(-4636.058358764447);
6742 6 : parameter_mix_D[BASE_T].push_back(-1340.3746388296138);
6743 6 : parameter_mix_D[BASE_T].push_back(8850.604320505428);
6744 6 : parameter_mix_D[BASE_T].push_back(-6421.852532013674);
6745 6 : parameter_mix_D[BASE_T].push_back(1443.371517335904);
6746 :
6747 6 : parameter_mix_D[BASE_U].push_back(1608.7389001192062);
6748 6 : parameter_mix_D[BASE_U].push_back(-3.9816849036181434);
6749 6 : parameter_mix_D[BASE_U].push_back(-2411.056432130769);
6750 6 : parameter_mix_D[BASE_U].push_back(-451.8236361945487);
6751 6 : parameter_mix_D[BASE_U].push_back(3220.4418252803644);
6752 6 : parameter_mix_D[BASE_U].push_back(-1944.2515577994325);
6753 6 : parameter_mix_D[BASE_U].push_back(332.9259542628691);
6754 :
6755 6 : parameter_vac_D[BB_PO3].push_back(8.508889119209273);
6756 6 : parameter_vac_D[BB_PO3].push_back(-0.0010408625482164885);
6757 6 : parameter_vac_D[BB_PO3].push_back(-5.656130990440752);
6758 6 : parameter_vac_D[BB_PO3].push_back(-0.10748040057053611);
6759 6 : parameter_vac_D[BB_PO3].push_back(2.1441246977168227);
6760 6 : parameter_vac_D[BB_PO3].push_back(-0.3967083127147655);
6761 6 : parameter_vac_D[BB_PO3].push_back(-0.10110003105909898);
6762 :
6763 6 : parameter_vac_D[BB_PO2].push_back(2.7889001116093284);
6764 6 : parameter_vac_D[BB_PO2].push_back(-0.00011178884266113128);
6765 6 : parameter_vac_D[BB_PO2].push_back(-1.1702605818380654);
6766 6 : parameter_vac_D[BB_PO2].push_back(-0.011278044036819927);
6767 6 : parameter_vac_D[BB_PO2].push_back(0.3214006584089024);
6768 6 : parameter_vac_D[BB_PO2].push_back(-0.04097165983591666);
6769 6 : parameter_vac_D[BB_PO2].push_back(-0.017525098100539684);
6770 :
6771 6 : parameter_vac_D[BB_DNA].push_back(94.75075611920529);
6772 6 : parameter_vac_D[BB_DNA].push_back(-0.13973533952241124);
6773 6 : parameter_vac_D[BB_DNA].push_back(-123.45402430039046);
6774 6 : parameter_vac_D[BB_DNA].push_back(-15.19494522082691);
6775 6 : parameter_vac_D[BB_DNA].push_back(123.34749914811465);
6776 6 : parameter_vac_D[BB_DNA].push_back(-61.038507985345504);
6777 6 : parameter_vac_D[BB_DNA].push_back(6.601587478585944);
6778 :
6779 6 : parameter_vac_D[BB_DNA_5].push_back(108.18080111920679);
6780 6 : parameter_vac_D[BB_DNA_5].push_back(-0.2055953690887981);
6781 6 : parameter_vac_D[BB_DNA_5].push_back(-150.7924892157235);
6782 6 : parameter_vac_D[BB_DNA_5].push_back(-22.700459516383198);
6783 6 : parameter_vac_D[BB_DNA_5].push_back(172.2599851655527);
6784 6 : parameter_vac_D[BB_DNA_5].push_back(-93.4983124807692);
6785 6 : parameter_vac_D[BB_DNA_5].push_back(12.867661230942868);
6786 :
6787 6 : parameter_vac_D[BB_DNA_3].push_back(108.18080111920537);
6788 6 : parameter_vac_D[BB_DNA_3].push_back(-0.18263717534168372);
6789 6 : parameter_vac_D[BB_DNA_3].push_back(-148.5918817744255);
6790 6 : parameter_vac_D[BB_DNA_3].push_back(-19.90799847398835);
6791 6 : parameter_vac_D[BB_DNA_3].push_back(157.55184203379557);
6792 6 : parameter_vac_D[BB_DNA_3].push_back(-80.28471270058103);
6793 6 : parameter_vac_D[BB_DNA_3].push_back(9.313712500298278);
6794 :
6795 6 : parameter_vac_D[BB_RNA].push_back(106.37859611922117);
6796 6 : parameter_vac_D[BB_RNA].push_back(-0.2380766148121975);
6797 6 : parameter_vac_D[BB_RNA].push_back(-153.74131338570024);
6798 6 : parameter_vac_D[BB_RNA].push_back(-26.415436217574932);
6799 6 : parameter_vac_D[BB_RNA].push_back(191.90585451112776);
6800 6 : parameter_vac_D[BB_RNA].push_back(-109.61737794316868);
6801 6 : parameter_vac_D[BB_RNA].push_back(16.663804191332204);
6802 :
6803 6 : parameter_vac_D[BB_RNA_5].push_back(120.58236111920618);
6804 6 : parameter_vac_D[BB_RNA_5].push_back(-0.340258533619014);
6805 6 : parameter_vac_D[BB_RNA_5].push_back(-186.08333929996334);
6806 6 : parameter_vac_D[BB_RNA_5].push_back(-38.493337147644795);
6807 6 : parameter_vac_D[BB_RNA_5].push_back(266.2262415641144);
6808 6 : parameter_vac_D[BB_RNA_5].push_back(-164.73088478359585);
6809 6 : parameter_vac_D[BB_RNA_5].push_back(29.07014157680879);
6810 :
6811 6 : parameter_vac_D[BB_RNA_3].push_back(120.5823611192099);
6812 6 : parameter_vac_D[BB_RNA_3].push_back(-0.274146129206928);
6813 6 : parameter_vac_D[BB_RNA_3].push_back(-179.24499182395388);
6814 6 : parameter_vac_D[BB_RNA_3].push_back(-30.315729372259426);
6815 6 : parameter_vac_D[BB_RNA_3].push_back(222.2645581367648);
6816 6 : parameter_vac_D[BB_RNA_3].push_back(-125.13581171514033);
6817 6 : parameter_vac_D[BB_RNA_3].push_back(18.350308154920107);
6818 :
6819 6 : parameter_vac_D[BASE_A].push_back(114.34024911921);
6820 6 : parameter_vac_D[BASE_A].push_back(-0.4136665918383359);
6821 6 : parameter_vac_D[BASE_A].push_back(-192.33138384655922);
6822 6 : parameter_vac_D[BASE_A].push_back(-46.74428306691412);
6823 6 : parameter_vac_D[BASE_A].push_back(312.9511030981905);
6824 6 : parameter_vac_D[BASE_A].push_back(-199.6349962647333);
6825 6 : parameter_vac_D[BASE_A].push_back(36.15938693202153);
6826 :
6827 6 : parameter_vac_D[BASE_C].push_back(76.17798411921166);
6828 6 : parameter_vac_D[BASE_C].push_back(-0.1444475142707445);
6829 6 : parameter_vac_D[BASE_C].push_back(-102.66873668949485);
6830 6 : parameter_vac_D[BASE_C].push_back(-15.813768367725821);
6831 6 : parameter_vac_D[BASE_C].push_back(119.63436338715553);
6832 6 : parameter_vac_D[BASE_C].push_back(-64.22251971660583);
6833 6 : parameter_vac_D[BASE_C].push_back(8.351952332828862);
6834 :
6835 6 : parameter_vac_D[BASE_G].push_back(127.08052911921965);
6836 6 : parameter_vac_D[BASE_G].push_back(-0.7137457014712297);
6837 6 : parameter_vac_D[BASE_G].push_back(-239.67686838772786);
6838 6 : parameter_vac_D[BASE_G].push_back(-88.53661981200943);
6839 6 : parameter_vac_D[BASE_G].push_back(556.7254485453866);
6840 6 : parameter_vac_D[BASE_G].push_back(-432.0234649577737);
6841 6 : parameter_vac_D[BASE_G].push_back(104.407200463848);
6842 :
6843 6 : parameter_vac_D[BASE_T].push_back(94.09000011920868);
6844 6 : parameter_vac_D[BASE_T].push_back(-0.27147149980458524);
6845 6 : parameter_vac_D[BASE_T].push_back(-143.65649702254174);
6846 6 : parameter_vac_D[BASE_T].push_back(-30.861235738371892);
6847 6 : parameter_vac_D[BASE_T].push_back(212.3643014774958);
6848 6 : parameter_vac_D[BASE_T].push_back(-133.06675501066275);
6849 6 : parameter_vac_D[BASE_T].push_back(23.951588200687073);
6850 :
6851 6 : parameter_vac_D[BASE_U].push_back(59.30540111665979);
6852 6 : parameter_vac_D[BASE_U].push_back(-0.06146929846591808);
6853 6 : parameter_vac_D[BASE_U].push_back(-67.43680950211682);
6854 6 : parameter_vac_D[BASE_U].push_back(-6.625289749170134);
6855 6 : parameter_vac_D[BASE_U].push_back(58.37012229348065);
6856 6 : parameter_vac_D[BASE_U].push_back(-26.23044613101723);
6857 6 : parameter_vac_D[BASE_U].push_back(2.061238351422343);
6858 :
6859 21340 : for(unsigned i=0; i<atoms.size(); ++i) {
6860 21334 : std::string Aname = pdb.getAtomName(atoms[i]);
6861 21334 : std::string Rname = pdb.getResidueName(atoms[i]);
6862 21334 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
6863 21334 : if(Rname=="ALA") {
6864 1078 : atoi[residue_atom[i]]=ALA;
6865 20256 : } else if(Rname=="ARG") {
6866 1296 : atoi[residue_atom[i]]=ARG;
6867 18960 : } else if(Rname=="ASN") {
6868 1080 : atoi[residue_atom[i]]=ASN;
6869 17880 : } else if(Rname=="ASP") {
6870 936 : atoi[residue_atom[i]]=ASP;
6871 16944 : } else if(Rname=="CYS") {
6872 72 : atoi[residue_atom[i]]=CYS;
6873 16872 : } else if(Rname=="CYX") {
6874 0 : atoi[residue_atom[i]]=CYX;
6875 16872 : } else if(Rname=="GLN") {
6876 1558 : atoi[residue_atom[i]]=GLN;
6877 15314 : } else if(Rname=="GLU") {
6878 714 : atoi[residue_atom[i]]=GLU;
6879 14600 : } else if(Rname=="GLY") {
6880 936 : atoi[residue_atom[i]]=GLY;
6881 13664 : } else if(Rname=="HIS") {
6882 0 : atoi[residue_atom[i]]=HIS;
6883 13664 : } else if(Rname=="HID") {
6884 0 : atoi[residue_atom[i]]=HIS;
6885 13664 : } else if(Rname=="HIE") {
6886 216 : atoi[residue_atom[i]]=HIS;
6887 13448 : } else if(Rname=="HIP") {
6888 0 : atoi[residue_atom[i]]=HIP;
6889 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
6890 13448 : } else if(Rname=="HSD") {
6891 0 : atoi[residue_atom[i]]=HIS;
6892 13448 : } else if(Rname=="HSE") {
6893 0 : atoi[residue_atom[i]]=HIS;
6894 13448 : } else if(Rname=="HSP") {
6895 0 : atoi[residue_atom[i]]=HIP;
6896 13448 : } else if(Rname=="ILE") {
6897 1296 : atoi[residue_atom[i]]=ILE;
6898 12152 : } else if(Rname=="LEU") {
6899 2280 : atoi[residue_atom[i]]=LEU;
6900 9872 : } else if(Rname=="LYS") {
6901 1560 : atoi[residue_atom[i]]=LYS;
6902 8312 : } else if(Rname=="MET") {
6903 836 : atoi[residue_atom[i]]=MET;
6904 7476 : } else if(Rname=="PHE") {
6905 1512 : atoi[residue_atom[i]]=PHE;
6906 5964 : } else if(Rname=="PRO") {
6907 1122 : atoi[residue_atom[i]]=PRO;
6908 4842 : } else if(Rname=="SER") {
6909 768 : atoi[residue_atom[i]]=SER;
6910 4074 : } else if(Rname=="THR") {
6911 728 : atoi[residue_atom[i]]=THR;
6912 3346 : } else if(Rname=="TRP") {
6913 0 : atoi[residue_atom[i]]=TRP;
6914 3346 : } else if(Rname=="TYR") {
6915 792 : atoi[residue_atom[i]]=TYR;
6916 2554 : } else if(Rname=="VAL") {
6917 1600 : atoi[residue_atom[i]]=VAL;
6918 : }
6919 : // NUCLEIC ACIDS
6920 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
6921 : // RNA - G
6922 954 : else if(Rname=="G") {
6923 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6924 0 : Aname=="O1P" || Aname=="O2P" ) {
6925 0 : atoi [residue_atom[i]]=BB_PO2;
6926 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6927 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6928 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6929 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6930 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6931 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6932 0 : atoi[residue_atom[i]]=BB_RNA;
6933 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6934 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6935 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6936 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6937 0 : atoi[residue_atom[i]]=BASE_G;
6938 : } else {
6939 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6940 : }
6941 : // RNA - G3
6942 954 : } else if(Rname=="G3") {
6943 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6944 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6945 0 : atoi [residue_atom[i]]=BB_PO2;
6946 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6947 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6948 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6949 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6950 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6951 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6952 0 : atoi[residue_atom[i]]=BB_RNA_3;
6953 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6954 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6955 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6956 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6957 0 : atoi[residue_atom[i]]=BASE_G;
6958 : } else {
6959 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6960 : }
6961 : // RNA - G5
6962 954 : } else if(Rname=="G5") {
6963 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6964 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6965 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6966 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6967 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6968 0 : Aname=="H2'1" || Aname=="H5T" ) {
6969 0 : atoi[residue_atom[i]]=BB_RNA_5;
6970 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6971 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6972 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6973 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6974 0 : atoi[residue_atom[i]]=BASE_G;
6975 : } else {
6976 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6977 : }
6978 : // RNA - GT
6979 954 : } else if(Rname=="GT") {
6980 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6981 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6982 0 : atoi [residue_atom[i]]=BB_PO3;
6983 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6984 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6985 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6986 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6987 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6988 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6989 0 : atoi[residue_atom[i]]=BB_RNA;
6990 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6991 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6992 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6993 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6994 0 : atoi[residue_atom[i]]=BASE_G;
6995 : } else {
6996 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6997 : }
6998 : // RNA - U
6999 954 : } else if(Rname=="U") {
7000 2886 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7001 1482 : Aname=="O1P" || Aname=="O2P" ) {
7002 78 : atoi [residue_atom[i]]=BB_PO2;
7003 2548 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7004 2132 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7005 1716 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7006 1326 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7007 1196 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7008 1560 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7009 416 : atoi[residue_atom[i]]=BB_RNA;
7010 884 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7011 468 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7012 364 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
7013 286 : atoi[residue_atom[i]]=BASE_U;
7014 : } else {
7015 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7016 : }
7017 : // RNA - U3
7018 174 : } else if(Rname=="U3") {
7019 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7020 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7021 6 : atoi [residue_atom[i]]=BB_PO2;
7022 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7023 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7024 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7025 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7026 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
7027 78 : Aname=="H5'2" || Aname=="HO'2" ) {
7028 34 : atoi[residue_atom[i]]=BB_RNA_3;
7029 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7030 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7031 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
7032 22 : atoi[residue_atom[i]]=BASE_U;
7033 : } else {
7034 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7035 : }
7036 : // RNA - U5
7037 112 : } else if(Rname=="U5") {
7038 408 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7039 344 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7040 280 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7041 216 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
7042 176 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
7043 156 : Aname=="H2'1" || Aname=="H5T" ) {
7044 68 : atoi[residue_atom[i]]=BB_RNA_5;
7045 136 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7046 72 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7047 56 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
7048 44 : atoi[residue_atom[i]]=BASE_U;
7049 : } else {
7050 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7051 : }
7052 : // RNA - UT
7053 0 : } else if(Rname=="UT") {
7054 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7055 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7056 0 : atoi [residue_atom[i]]=BB_PO3;
7057 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7058 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7059 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7060 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7061 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7062 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7063 0 : atoi[residue_atom[i]]=BB_RNA;
7064 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7065 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7066 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
7067 0 : atoi[residue_atom[i]]=BASE_U;
7068 : } else {
7069 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7070 : }
7071 : // RNA - A
7072 0 : } else if(Rname=="A") {
7073 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7074 0 : Aname=="O1P" || Aname=="O2P" ) {
7075 0 : atoi [residue_atom[i]]=BB_PO2;
7076 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7077 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7078 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7079 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7080 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7081 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7082 0 : atoi[residue_atom[i]]=BB_RNA;
7083 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7084 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7085 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7086 0 : Aname=="H61" || Aname=="H62" ) {
7087 0 : atoi[residue_atom[i]]=BASE_A;
7088 : } else {
7089 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7090 : }
7091 : // RNA - A3
7092 0 : } else if(Rname=="A3") {
7093 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7094 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7095 0 : atoi [residue_atom[i]]=BB_PO2;
7096 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7097 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7098 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7099 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7100 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
7101 0 : Aname=="H5'2" || Aname=="HO'2" ) {
7102 0 : atoi[residue_atom[i]]=BB_RNA_3;
7103 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7104 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7105 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7106 0 : Aname=="H61" || Aname=="H62" ) {
7107 0 : atoi[residue_atom[i]]=BASE_A;
7108 : } else {
7109 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7110 : }
7111 : // RNA - A5
7112 0 : } else if(Rname=="A5") {
7113 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7114 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7115 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7116 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
7117 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
7118 0 : Aname=="H2'1" || Aname=="H5T" ) {
7119 0 : atoi[residue_atom[i]]=BB_RNA_5;
7120 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7121 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7122 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7123 0 : Aname=="H61" || Aname=="H62" ) {
7124 0 : atoi[residue_atom[i]]=BASE_A;
7125 : } else {
7126 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7127 : }
7128 : // RNA - AT
7129 0 : } else if(Rname=="AT") {
7130 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7131 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7132 0 : atoi [residue_atom[i]]=BB_PO3;
7133 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7134 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7135 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7136 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7137 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7138 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7139 0 : atoi[residue_atom[i]]=BB_RNA;
7140 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7141 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7142 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7143 0 : Aname=="H61" || Aname=="H62" ) {
7144 0 : atoi[residue_atom[i]]=BASE_A;
7145 : } else {
7146 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7147 : }
7148 : // RNA - C
7149 0 : } else if(Rname=="C") {
7150 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7151 0 : Aname=="O1P" || Aname=="O2P" ) {
7152 0 : atoi [residue_atom[i]]=BB_PO2;
7153 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7154 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7155 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7156 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7157 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7158 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7159 0 : atoi[residue_atom[i]]=BB_RNA;
7160 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7161 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7162 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7163 0 : atoi[residue_atom[i]]=BASE_C;
7164 : } else {
7165 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7166 : }
7167 : // RNA - C3
7168 0 : } else if(Rname=="C3") {
7169 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7170 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7171 0 : atoi [residue_atom[i]]=BB_PO2;
7172 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7173 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7174 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7175 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7176 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
7177 0 : Aname=="H5'2" || Aname=="HO'2" ) {
7178 0 : atoi[residue_atom[i]]=BB_RNA_3;
7179 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7180 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7181 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7182 0 : atoi[residue_atom[i]]=BASE_C;
7183 : } else {
7184 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7185 : }
7186 : // RNA - C5
7187 0 : } else if(Rname=="C5") {
7188 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7189 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7190 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7191 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
7192 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
7193 0 : Aname=="H2'1" || Aname=="H5T" ) {
7194 0 : atoi[residue_atom[i]]=BB_RNA_5;
7195 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7196 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7197 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7198 0 : atoi[residue_atom[i]]=BASE_C;
7199 : } else {
7200 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7201 : }
7202 : // RNA - CT
7203 0 : } else if(Rname=="CT") {
7204 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7205 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7206 0 : atoi [residue_atom[i]]=BB_PO3;
7207 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7208 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
7209 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
7210 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
7211 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
7212 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
7213 0 : atoi[residue_atom[i]]=BB_RNA;
7214 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7215 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7216 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7217 0 : atoi[residue_atom[i]]=BASE_C;
7218 : } else {
7219 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7220 : }
7221 : // DNA - G
7222 0 : } else if(Rname=="DG") {
7223 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7224 0 : Aname=="O1P" || Aname=="O2P" ) {
7225 0 : atoi [residue_atom[i]]=BB_PO2;
7226 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7227 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7228 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7229 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7230 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7231 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7232 0 : atoi[residue_atom[i]]=BB_DNA;
7233 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
7234 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
7235 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
7236 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
7237 0 : atoi[residue_atom[i]]=BASE_G;
7238 : } else {
7239 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7240 : }
7241 : // DNA - G3
7242 0 : } else if(Rname=="DG3") {
7243 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7244 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7245 0 : atoi [residue_atom[i]]=BB_PO2;
7246 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7247 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7248 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7249 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
7250 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7251 : Aname=="H3T" ) {
7252 0 : atoi[residue_atom[i]]=BB_DNA_3;
7253 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
7254 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
7255 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
7256 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
7257 0 : atoi[residue_atom[i]]=BASE_G;
7258 : } else {
7259 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7260 : }
7261 : // DNA - G5
7262 0 : } else if(Rname=="DG5") {
7263 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7264 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7265 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7266 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7267 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7268 : Aname=="H5T" ) {
7269 0 : atoi[residue_atom[i]]=BB_DNA_5;
7270 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
7271 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
7272 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
7273 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
7274 0 : atoi[residue_atom[i]]=BASE_G;
7275 : } else {
7276 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7277 : }
7278 : // DNA - GT
7279 0 : } else if(Rname=="DGT") {
7280 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7281 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7282 0 : atoi [residue_atom[i]]=BB_PO3;
7283 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7284 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7285 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7286 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7287 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7288 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7289 0 : atoi[residue_atom[i]]=BB_DNA;
7290 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
7291 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
7292 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
7293 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
7294 0 : atoi[residue_atom[i]]=BASE_G;
7295 : } else {
7296 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7297 : }
7298 : // DNA - T
7299 0 : } else if(Rname=="DT") {
7300 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7301 0 : Aname=="O1P" || Aname=="O2P" ) {
7302 0 : atoi [residue_atom[i]]=BB_PO2;
7303 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7304 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7305 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7306 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7307 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7308 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7309 0 : atoi[residue_atom[i]]=BB_DNA;
7310 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7311 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7312 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
7313 0 : Aname=="H72" || Aname=="H73" ) {
7314 0 : atoi[residue_atom[i]]=BASE_T;
7315 : } else {
7316 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7317 : }
7318 : // DNA - T3
7319 0 : } else if(Rname=="DT3") {
7320 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7321 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7322 0 : atoi [residue_atom[i]]=BB_PO2;
7323 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7324 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7325 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7326 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
7327 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7328 : Aname=="H3T" ) {
7329 0 : atoi[residue_atom[i]]=BB_DNA_3;
7330 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7331 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7332 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
7333 0 : Aname=="H72" || Aname=="H73" ) {
7334 0 : atoi[residue_atom[i]]=BASE_T;
7335 : } else {
7336 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7337 : }
7338 : // DNA - T5
7339 0 : } else if(Rname=="DT5") {
7340 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7341 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7342 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7343 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7344 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7345 : Aname=="H5T" ) {
7346 0 : atoi[residue_atom[i]]=BB_DNA_5;
7347 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7348 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7349 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
7350 0 : Aname=="H72" || Aname=="H73" ) {
7351 0 : atoi[residue_atom[i]]=BASE_T;
7352 : } else {
7353 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7354 : }
7355 : // DNA - TT
7356 0 : } else if(Rname=="DTT") {
7357 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7358 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7359 0 : atoi [residue_atom[i]]=BB_PO3;
7360 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7361 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7362 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7363 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7364 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7365 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7366 0 : atoi[residue_atom[i]]=BB_DNA;
7367 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7368 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
7369 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
7370 0 : Aname=="H72" || Aname=="H73" ) {
7371 0 : atoi[residue_atom[i]]=BASE_T;
7372 : } else {
7373 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7374 : }
7375 : // DNA - A
7376 0 : } else if(Rname=="DA") {
7377 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7378 0 : Aname=="O1P" || Aname=="O2P" ) {
7379 0 : atoi [residue_atom[i]]=BB_PO2;
7380 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7381 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7382 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7383 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7384 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7385 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7386 0 : atoi[residue_atom[i]]=BB_DNA;
7387 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7388 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7389 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7390 0 : Aname=="H61" || Aname=="H62" ) {
7391 0 : atoi[residue_atom[i]]=BASE_A;
7392 : } else {
7393 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7394 : }
7395 : // DNA - A3
7396 0 : } else if(Rname=="DA3") {
7397 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7398 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7399 0 : atoi [residue_atom[i]]=BB_PO2;
7400 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7401 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7402 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7403 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
7404 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7405 : Aname=="H3T" ) {
7406 0 : atoi[residue_atom[i]]=BB_DNA_3;
7407 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7408 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7409 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7410 0 : Aname=="H61" || Aname=="H62" ) {
7411 0 : atoi[residue_atom[i]]=BASE_A;
7412 : } else {
7413 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7414 : }
7415 : // DNA - A5
7416 0 : } else if(Rname=="DA5") {
7417 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7418 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7419 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7420 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7421 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7422 : Aname=="H5T" ) {
7423 0 : atoi[residue_atom[i]]=BB_DNA_5;
7424 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7425 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7426 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7427 0 : Aname=="H61" || Aname=="H62" ) {
7428 0 : atoi[residue_atom[i]]=BASE_A;
7429 : } else {
7430 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7431 : }
7432 : // DNA - AT
7433 0 : } else if(Rname=="DAT") {
7434 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7435 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7436 0 : atoi [residue_atom[i]]=BB_PO3;
7437 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7438 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7439 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7440 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7441 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7442 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7443 0 : atoi[residue_atom[i]]=BB_DNA;
7444 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7445 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7446 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7447 0 : Aname=="H61" || Aname=="H62" ) {
7448 0 : atoi[residue_atom[i]]=BASE_A;
7449 : } else {
7450 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7451 : }
7452 : // DNA - C
7453 0 : } else if(Rname=="DC") {
7454 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7455 0 : Aname=="O1P" || Aname=="O2P" ) {
7456 0 : atoi [residue_atom[i]]=BB_PO2;
7457 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7458 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7459 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7460 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7461 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7462 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7463 0 : atoi[residue_atom[i]]=BB_DNA;
7464 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7465 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7466 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7467 0 : atoi[residue_atom[i]]=BASE_C;
7468 : } else {
7469 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7470 : }
7471 : // DNA - C3
7472 0 : } else if(Rname=="DC3") {
7473 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7474 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7475 0 : atoi [residue_atom[i]]=BB_PO2;
7476 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7477 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7478 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7479 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
7480 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7481 : Aname=="H3T" ) {
7482 0 : atoi[residue_atom[i]]=BB_DNA_3;
7483 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7484 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7485 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7486 0 : atoi[residue_atom[i]]=BASE_C;
7487 : } else {
7488 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7489 : }
7490 : // DNA - C5
7491 0 : } else if(Rname=="DC5") {
7492 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7493 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7494 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7495 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7496 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7497 : Aname=="H5T" ) {
7498 0 : atoi[residue_atom[i]]=BB_DNA_5;
7499 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7500 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7501 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7502 0 : atoi[residue_atom[i]]=BASE_C;
7503 : } else {
7504 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7505 : }
7506 : // DNA - CT
7507 0 : } else if(Rname=="DCT") {
7508 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7509 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7510 0 : atoi [residue_atom[i]]=BB_PO3;
7511 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7512 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7513 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7514 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7515 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7516 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7517 0 : atoi[residue_atom[i]]=BB_DNA;
7518 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7519 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7520 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7521 0 : atoi[residue_atom[i]]=BASE_C;
7522 : } else {
7523 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7524 : }
7525 : } else {
7526 0 : error("Residue not known: "+Rname);
7527 : }
7528 : }
7529 6 : }
7530 :
7531 8 : double SAXS::calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho) {
7532 : std::map<std::string, unsigned> AA_map;
7533 8 : AA_map["H"] = H;
7534 8 : AA_map["C"] = C;
7535 8 : AA_map["N"] = N;
7536 8 : AA_map["O"] = O;
7537 8 : AA_map["P"] = P;
7538 8 : AA_map["S"] = S;
7539 :
7540 : std::vector<std::vector<double> > param_a;
7541 : std::vector<std::vector<double> > param_b;
7542 : std::vector<double> param_c;
7543 : std::vector<double> param_v;
7544 :
7545 8 : param_a.resize(NTT, std::vector<double>(5));
7546 8 : param_b.resize(NTT, std::vector<double>(5));
7547 8 : param_c.resize(NTT);
7548 8 : param_v.resize(NTT);
7549 :
7550 8 : param_a[H][0] = 0.493002;
7551 8 : param_b[H][0] = 10.5109;
7552 8 : param_c[H] = 0.003038;
7553 8 : param_a[H][1] = 0.322912;
7554 8 : param_b[H][1] = 26.1257;
7555 8 : param_v[H] = 5.15;
7556 8 : param_a[H][2] = 0.140191;
7557 8 : param_b[H][2] = 3.14236;
7558 8 : param_a[H][3] = 0.040810;
7559 8 : param_b[H][3] = 57.7997;
7560 8 : param_a[H][4] = 0.0;
7561 8 : param_b[H][4] = 1.0;
7562 :
7563 8 : param_a[C][0] = 2.31000;
7564 8 : param_b[C][0] = 20.8439;
7565 8 : param_c[C] = 0.215600;
7566 8 : param_a[C][1] = 1.02000;
7567 8 : param_b[C][1] = 10.2075;
7568 8 : param_v[C] = 16.44;
7569 8 : param_a[C][2] = 1.58860;
7570 8 : param_b[C][2] = 0.56870;
7571 8 : param_a[C][3] = 0.86500;
7572 8 : param_b[C][3] = 51.6512;
7573 8 : param_a[C][4] = 0.0;
7574 8 : param_b[C][4] = 1.0;
7575 :
7576 8 : param_a[N][0] = 12.2126;
7577 8 : param_b[N][0] = 0.00570;
7578 8 : param_c[N] = -11.529;
7579 8 : param_a[N][1] = 3.13220;
7580 8 : param_b[N][1] = 9.89330;
7581 8 : param_v[N] = 2.49;
7582 8 : param_a[N][2] = 2.01250;
7583 8 : param_b[N][2] = 28.9975;
7584 8 : param_a[N][3] = 1.16630;
7585 8 : param_b[N][3] = 0.58260;
7586 8 : param_a[N][4] = 0.0;
7587 8 : param_b[N][4] = 1.0;
7588 :
7589 8 : param_a[O][0] = 3.04850;
7590 8 : param_b[O][0] = 13.2771;
7591 8 : param_c[O] = 0.250800 ;
7592 8 : param_a[O][1] = 2.28680;
7593 8 : param_b[O][1] = 5.70110;
7594 8 : param_v[O] = 9.13;
7595 8 : param_a[O][2] = 1.54630;
7596 8 : param_b[O][2] = 0.32390;
7597 8 : param_a[O][3] = 0.86700;
7598 8 : param_b[O][3] = 32.9089;
7599 8 : param_a[O][4] = 0.0;
7600 8 : param_b[O][4] = 1.0;
7601 :
7602 8 : param_a[P][0] = 6.43450;
7603 8 : param_b[P][0] = 1.90670;
7604 8 : param_c[P] = 1.11490;
7605 8 : param_a[P][1] = 4.17910;
7606 8 : param_b[P][1] = 27.1570;
7607 8 : param_v[P] = 5.73;
7608 8 : param_a[P][2] = 1.78000;
7609 8 : param_b[P][2] = 0.52600;
7610 8 : param_a[P][3] = 1.49080;
7611 8 : param_b[P][3] = 68.1645;
7612 8 : param_a[P][4] = 0.0;
7613 8 : param_b[P][4] = 1.0;
7614 :
7615 8 : param_a[S][0] = 6.90530;
7616 8 : param_b[S][0] = 1.46790;
7617 8 : param_c[S] = 0.866900;
7618 8 : param_a[S][1] = 5.20340;
7619 8 : param_b[S][1] = 22.2151;
7620 8 : param_v[S] = 19.86;
7621 8 : param_a[S][2] = 1.43790;
7622 8 : param_b[S][2] = 0.25360;
7623 8 : param_a[S][3] = 1.58630;
7624 8 : param_b[S][3] = 56.1720;
7625 8 : param_a[S][4] = 0.0;
7626 8 : param_b[S][4] = 1.0;
7627 :
7628 8 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
7629 :
7630 : double Iq0=0.;
7631 8 : if( moldat ) {
7632 : // cycle over the atom types
7633 56 : for(unsigned i=0; i<NTT; ++i) {
7634 48 : const double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
7635 : // cycle over q
7636 480 : for(unsigned k=0; k<q_list.size(); ++k) {
7637 432 : const double q = q_list[k];
7638 432 : const double s = q / (4. * M_PI);
7639 432 : FF_tmp[k][i] = param_c[i];
7640 : // SUM [a_i * EXP( - b_i * (q/4pi)^2 )] Waasmaier and Kirfel (1995)
7641 2160 : for(unsigned j=0; j<4; ++j) {
7642 1728 : FF_tmp[k][i] += param_a[i][j]*std::exp(-param_b[i][j]*s*s);
7643 : }
7644 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
7645 432 : FF_tmp[k][i] -= rho*param_v[i]*std::exp(-volr*q*q);
7646 : }
7647 : }
7648 : // cycle over the atoms to assign the atom type and calculate I0
7649 28382 : for(unsigned i=0; i<atoms.size(); ++i) {
7650 : // get atom name
7651 28374 : std::string name = moldat->getAtomName(atoms[i]);
7652 : char type;
7653 : // get atom type
7654 28374 : char first = name.at(0);
7655 : // GOLDEN RULE: type is first letter, if not a number
7656 28374 : if (!isdigit(first)) {
7657 : type = first;
7658 : // otherwise is the second
7659 : } else {
7660 0 : type = name.at(1);
7661 : }
7662 28374 : std::string type_s = std::string(1,type);
7663 28374 : if(AA_map.find(type_s) != AA_map.end()) {
7664 28374 : const unsigned index=AA_map[type_s];
7665 28374 : atoi[i] = AA_map[type_s];
7666 141870 : for(unsigned j=0; j<4; ++j) {
7667 113496 : Iq0 += param_a[index][j];
7668 : }
7669 28374 : Iq0 = Iq0 -rho*param_v[index] + param_c[index];
7670 : } else {
7671 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
7672 : }
7673 : }
7674 : } else {
7675 0 : error("MOLINFO DATA not found\n");
7676 : }
7677 8 : if(absolute) {
7678 : Iq0 = 1;
7679 : }
7680 :
7681 8 : return Iq0;
7682 8 : }
7683 :
7684 4 : double SAXS::calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc) {
7685 : std::map<std::string, unsigned> AA_map;
7686 4 : AA_map["H"] = H;
7687 4 : AA_map["C"] = C;
7688 4 : AA_map["N"] = N;
7689 4 : AA_map["O"] = O;
7690 4 : AA_map["P"] = P;
7691 4 : AA_map["S"] = S;
7692 :
7693 : std::vector<double> param_b;
7694 : std::vector<double> param_v;
7695 :
7696 4 : param_b.resize(NTT);
7697 4 : param_v.resize(NTT);
7698 :
7699 4 : param_b[H] = -0.374;
7700 4 : param_v[H] = 5.15;
7701 : // param_b[D] = 0.667;
7702 4 : param_b[C] = 0.665;
7703 4 : param_v[C] = 16.44;
7704 4 : param_b[N] = 0.94;
7705 4 : param_v[N] = 2.49;
7706 4 : param_b[O] = 0.580;
7707 4 : param_v[O] = 9.13;
7708 4 : param_b[P] = 0.51;
7709 4 : param_v[P] = 5.73;
7710 4 : param_b[S] = 0.28;
7711 4 : param_v[S] = 19.86;
7712 :
7713 4 : double solv_sc_length = 0.1*(param_b[O] + 2.*((1. - deuter_conc) * param_b[H] + deuter_conc * 0.667)); // per water electron (10 electrons)
7714 :
7715 4 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
7716 :
7717 : double Iq0=0.;
7718 4 : if( moldat ) {
7719 : // cycle over the atom types
7720 28 : for(unsigned i=0; i<NTT; ++i) {
7721 24 : double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
7722 : // cycle over q
7723 240 : for(unsigned k=0; k<q_list.size(); ++k) {
7724 216 : const double q = q_list[k];
7725 216 : FF_tmp[k][i] = param_b[i];
7726 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
7727 216 : FF_tmp[k][i] -= solv_sc_length*rho*param_v[i]*std::exp(-volr*q*q);
7728 : }
7729 : }
7730 : // cycle over the atoms to assign the atom type and calculate I0
7731 13922 : for(unsigned i=0; i<atoms.size(); ++i) {
7732 : // get atom name
7733 13918 : std::string name = moldat->getAtomName(atoms[i]);
7734 : char type;
7735 : // get atom type
7736 13918 : char first = name.at(0);
7737 : // GOLDEN RULE: type is first letter, if not a number
7738 13918 : if (!isdigit(first)) {
7739 : type = first;
7740 : // otherwise is the second
7741 : } else {
7742 0 : type = name.at(1);
7743 : }
7744 13918 : std::string type_s = std::string(1,type);
7745 13918 : if(AA_map.find(type_s) != AA_map.end()) {
7746 13918 : const unsigned index=AA_map[type_s];
7747 13918 : atoi[i] = AA_map[type_s];
7748 13918 : Iq0 += param_b[index]-solv_sc_length*rho*param_v[index];
7749 : } else {
7750 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
7751 : }
7752 : }
7753 : } else {
7754 0 : error("MOLINFO DATA not found\n");
7755 : }
7756 4 : if(absolute) {
7757 : Iq0 = 1;
7758 : }
7759 :
7760 4 : return Iq0;
7761 : }
7762 :
7763 16 : std::map<std::string, std::vector<double> > SAXS::setupLCPOparam() {
7764 : std::map<std::string, std::vector<double> > lcpomap;
7765 :
7766 : // We arbitrarily set OC1/OT1 as the charged oxygen.
7767 :
7768 16 : lcpomap["ALA_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7769 16 : lcpomap["ALA_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7770 16 : lcpomap["ALA_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7771 16 : lcpomap["ALA_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7772 16 : lcpomap["ALA_CB"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7773 16 : lcpomap["ALA_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7774 16 : lcpomap["ALA_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7775 16 : lcpomap["ALA_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7776 16 : lcpomap["ALA_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7777 16 : lcpomap["ALA_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7778 :
7779 16 : lcpomap["ASP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7780 16 : lcpomap["ASP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7781 16 : lcpomap["ASP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7782 16 : lcpomap["ASP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7783 16 : lcpomap["ASP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7784 16 : lcpomap["ASP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7785 16 : lcpomap["ASP_OD1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7786 16 : lcpomap["ASP_OD2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7787 16 : lcpomap["ASP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7788 16 : lcpomap["ASP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7789 16 : lcpomap["ASP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7790 16 : lcpomap["ASP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7791 16 : lcpomap["ASP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7792 :
7793 16 : lcpomap["ASN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7794 16 : lcpomap["ASN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7795 16 : lcpomap["ASN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7796 16 : lcpomap["ASN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7797 16 : lcpomap["ASN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7798 16 : lcpomap["ASN_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7799 16 : lcpomap["ASN_OD1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7800 16 : lcpomap["ASN_ND2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7801 16 : lcpomap["ASN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7802 16 : lcpomap["ASN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7803 16 : lcpomap["ASN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7804 16 : lcpomap["ASN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7805 16 : lcpomap["ASN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7806 :
7807 16 : lcpomap["ARG_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7808 16 : lcpomap["ARG_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7809 16 : lcpomap["ARG_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7810 16 : lcpomap["ARG_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7811 16 : lcpomap["ARG_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7812 16 : lcpomap["ARG_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7813 16 : lcpomap["ARG_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7814 16 : lcpomap["ARG_NE"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7815 16 : lcpomap["ARG_NH1"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7816 16 : lcpomap["ARG_NH2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7817 16 : lcpomap["ARG_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7818 16 : lcpomap["ARG_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7819 16 : lcpomap["ARG_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7820 16 : lcpomap["ARG_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7821 16 : lcpomap["ARG_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7822 16 : lcpomap["ARG_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7823 :
7824 16 : lcpomap["CYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7825 16 : lcpomap["CYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7826 16 : lcpomap["CYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7827 16 : lcpomap["CYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7828 16 : lcpomap["CYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7829 16 : lcpomap["CYS_SG"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7830 16 : lcpomap["CYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7831 16 : lcpomap["CYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7832 16 : lcpomap["CYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7833 16 : lcpomap["CYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7834 16 : lcpomap["CYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7835 :
7836 16 : lcpomap["CYX_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7837 16 : lcpomap["CYX_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7838 16 : lcpomap["CYX_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7839 16 : lcpomap["CYX_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7840 16 : lcpomap["CYX_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7841 16 : lcpomap["CYX_SG"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7842 16 : lcpomap["CYX_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7843 16 : lcpomap["CYX_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7844 16 : lcpomap["CYX_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7845 16 : lcpomap["CYX_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7846 16 : lcpomap["CYX_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7847 :
7848 16 : lcpomap["GLU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7849 16 : lcpomap["GLU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7850 16 : lcpomap["GLU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7851 16 : lcpomap["GLU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7852 16 : lcpomap["GLU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7853 16 : lcpomap["GLU_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7854 16 : lcpomap["GLU_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7855 16 : lcpomap["GLU_OE1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7856 16 : lcpomap["GLU_OE2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7857 16 : lcpomap["GLU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7858 16 : lcpomap["GLU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7859 16 : lcpomap["GLU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7860 16 : lcpomap["GLU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7861 16 : lcpomap["GLU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7862 :
7863 16 : lcpomap["GLN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7864 16 : lcpomap["GLN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7865 16 : lcpomap["GLN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7866 16 : lcpomap["GLN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7867 16 : lcpomap["GLN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7868 16 : lcpomap["GLN_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7869 16 : lcpomap["GLN_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7870 16 : lcpomap["GLN_OE1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7871 16 : lcpomap["GLN_NE2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7872 16 : lcpomap["GLN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7873 16 : lcpomap["GLN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7874 16 : lcpomap["GLN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7875 16 : lcpomap["GLN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7876 16 : lcpomap["GLN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7877 :
7878 16 : lcpomap["GLY_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7879 16 : lcpomap["GLY_CA"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7880 16 : lcpomap["GLY_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7881 16 : lcpomap["GLY_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7882 16 : lcpomap["GLY_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7883 16 : lcpomap["GLY_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7884 16 : lcpomap["GLY_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7885 16 : lcpomap["GLY_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7886 16 : lcpomap["GLY_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7887 :
7888 16 : lcpomap["HIS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7889 16 : lcpomap["HIS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7890 16 : lcpomap["HIS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7891 16 : lcpomap["HIS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7892 16 : lcpomap["HIS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7893 16 : lcpomap["HIS_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7894 16 : lcpomap["HIS_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7895 16 : lcpomap["HIS_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7896 16 : lcpomap["HIS_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7897 16 : lcpomap["HIS_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7898 16 : lcpomap["HIS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7899 16 : lcpomap["HIS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7900 16 : lcpomap["HIS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7901 :
7902 16 : lcpomap["HIE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7903 16 : lcpomap["HIE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7904 16 : lcpomap["HIE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7905 16 : lcpomap["HIE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7906 16 : lcpomap["HIE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7907 16 : lcpomap["HIE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7908 16 : lcpomap["HIE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7909 16 : lcpomap["HIE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7910 16 : lcpomap["HIE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7911 16 : lcpomap["HIE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7912 16 : lcpomap["HIE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7913 16 : lcpomap["HIE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7914 16 : lcpomap["HIE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7915 :
7916 16 : lcpomap["HSE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7917 16 : lcpomap["HSE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7918 16 : lcpomap["HSE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7919 16 : lcpomap["HSE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7920 16 : lcpomap["HSE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7921 16 : lcpomap["HSE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7922 16 : lcpomap["HSE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7923 16 : lcpomap["HSE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7924 16 : lcpomap["HSE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7925 16 : lcpomap["HSE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7926 16 : lcpomap["HSE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7927 16 : lcpomap["HSE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7928 16 : lcpomap["HSE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7929 :
7930 16 : lcpomap["HID_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7931 16 : lcpomap["HID_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7932 16 : lcpomap["HID_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7933 16 : lcpomap["HID_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7934 16 : lcpomap["HID_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7935 16 : lcpomap["HID_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7936 16 : lcpomap["HID_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7937 16 : lcpomap["HID_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7938 16 : lcpomap["HID_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7939 16 : lcpomap["HID_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7940 16 : lcpomap["HID_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7941 16 : lcpomap["HID_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7942 16 : lcpomap["HID_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7943 :
7944 16 : lcpomap["HSD_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7945 16 : lcpomap["HSD_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7946 16 : lcpomap["HSD_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7947 16 : lcpomap["HSD_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7948 16 : lcpomap["HSD_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7949 16 : lcpomap["HSD_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7950 16 : lcpomap["HSD_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7951 16 : lcpomap["HSD_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7952 16 : lcpomap["HSD_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7953 16 : lcpomap["HSD_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7954 16 : lcpomap["HSD_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7955 16 : lcpomap["HSD_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7956 16 : lcpomap["HSD_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7957 :
7958 16 : lcpomap["HIP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7959 16 : lcpomap["HIP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7960 16 : lcpomap["HIP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7961 16 : lcpomap["HIP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7962 16 : lcpomap["HIP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7963 16 : lcpomap["HIP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7964 16 : lcpomap["HIP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7965 16 : lcpomap["HIP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7966 16 : lcpomap["HIP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7967 16 : lcpomap["HIP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7968 16 : lcpomap["HIP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7969 16 : lcpomap["HIP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7970 16 : lcpomap["HIP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7971 :
7972 16 : lcpomap["HSP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7973 16 : lcpomap["HSP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7974 16 : lcpomap["HSP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7975 16 : lcpomap["HSP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7976 16 : lcpomap["HSP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7977 16 : lcpomap["HSP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7978 16 : lcpomap["HSP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7979 16 : lcpomap["HSP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7980 16 : lcpomap["HSP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7981 16 : lcpomap["HSP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7982 16 : lcpomap["HSP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7983 16 : lcpomap["HSP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7984 16 : lcpomap["HSP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7985 :
7986 16 : lcpomap["ILE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7987 16 : lcpomap["ILE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7988 16 : lcpomap["ILE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7989 16 : lcpomap["ILE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7990 16 : lcpomap["ILE_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7991 16 : lcpomap["ILE_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7992 16 : lcpomap["ILE_CG1"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7993 16 : lcpomap["ILE_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7994 16 : lcpomap["ILE_CD"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7995 16 : lcpomap["ILE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7996 16 : lcpomap["ILE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7997 16 : lcpomap["ILE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7998 16 : lcpomap["ILE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7999 16 : lcpomap["ILE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8000 :
8001 16 : lcpomap["LEU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8002 16 : lcpomap["LEU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8003 16 : lcpomap["LEU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8004 16 : lcpomap["LEU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8005 16 : lcpomap["LEU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8006 16 : lcpomap["LEU_CG"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8007 16 : lcpomap["LEU_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8008 16 : lcpomap["LEU_CD2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8009 16 : lcpomap["LEU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8010 16 : lcpomap["LEU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8011 16 : lcpomap["LEU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8012 16 : lcpomap["LEU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8013 16 : lcpomap["LEU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8014 :
8015 16 : lcpomap["LYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8016 16 : lcpomap["LYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8017 16 : lcpomap["LYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8018 16 : lcpomap["LYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8019 16 : lcpomap["LYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8020 16 : lcpomap["LYS_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8021 16 : lcpomap["LYS_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8022 16 : lcpomap["LYS_CE"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8023 16 : lcpomap["LYS_NZ"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
8024 16 : lcpomap["LYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8025 16 : lcpomap["LYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8026 16 : lcpomap["LYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8027 16 : lcpomap["LYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8028 16 : lcpomap["LYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8029 :
8030 16 : lcpomap["MET_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8031 16 : lcpomap["MET_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8032 16 : lcpomap["MET_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8033 16 : lcpomap["MET_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8034 16 : lcpomap["MET_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8035 16 : lcpomap["MET_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8036 16 : lcpomap["MET_SD"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
8037 16 : lcpomap["MET_CE"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8038 16 : lcpomap["MET_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8039 16 : lcpomap["MET_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8040 16 : lcpomap["MET_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8041 16 : lcpomap["MET_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8042 16 : lcpomap["MET_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8043 :
8044 16 : lcpomap["PHE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8045 16 : lcpomap["PHE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8046 16 : lcpomap["PHE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8047 16 : lcpomap["PHE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8048 16 : lcpomap["PHE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8049 16 : lcpomap["PHE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8050 16 : lcpomap["PHE_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8051 16 : lcpomap["PHE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8052 16 : lcpomap["PHE_CZ"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8053 16 : lcpomap["PHE_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8054 16 : lcpomap["PHE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8055 16 : lcpomap["PHE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8056 16 : lcpomap["PHE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8057 16 : lcpomap["PHE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8058 16 : lcpomap["PHE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8059 16 : lcpomap["PHE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8060 :
8061 16 : lcpomap["PRO_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8062 16 : lcpomap["PRO_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8063 16 : lcpomap["PRO_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8064 16 : lcpomap["PRO_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8065 16 : lcpomap["PRO_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8066 16 : lcpomap["PRO_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8067 16 : lcpomap["PRO_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8068 16 : lcpomap["PRO_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8069 16 : lcpomap["PRO_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8070 16 : lcpomap["PRO_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8071 16 : lcpomap["PRO_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8072 16 : lcpomap["PRO_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8073 :
8074 16 : lcpomap["SER_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8075 16 : lcpomap["SER_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8076 16 : lcpomap["SER_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8077 16 : lcpomap["SER_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8078 16 : lcpomap["SER_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8079 16 : lcpomap["SER_OG"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
8080 16 : lcpomap["SER_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8081 16 : lcpomap["SER_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8082 16 : lcpomap["SER_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8083 16 : lcpomap["SER_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8084 16 : lcpomap["SER_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8085 :
8086 16 : lcpomap["THR_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8087 16 : lcpomap["THR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8088 16 : lcpomap["THR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8089 16 : lcpomap["THR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8090 16 : lcpomap["THR_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8091 16 : lcpomap["THR_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8092 16 : lcpomap["THR_OG1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
8093 16 : lcpomap["THR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8094 16 : lcpomap["THR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8095 16 : lcpomap["THR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8096 16 : lcpomap["THR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8097 16 : lcpomap["THR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8098 :
8099 16 : lcpomap["TRP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8100 16 : lcpomap["TRP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8101 16 : lcpomap["TRP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8102 16 : lcpomap["TRP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8103 16 : lcpomap["TRP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8104 16 : lcpomap["TRP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8105 16 : lcpomap["TRP_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8106 16 : lcpomap["TRP_NE1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
8107 16 : lcpomap["TRP_CE2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8108 16 : lcpomap["TRP_CZ2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8109 16 : lcpomap["TRP_CH2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8110 16 : lcpomap["TRP_CZ3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8111 16 : lcpomap["TRP_CE3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8112 16 : lcpomap["TRP_CD2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8113 16 : lcpomap["TRP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8114 16 : lcpomap["TRP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8115 16 : lcpomap["TRP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8116 16 : lcpomap["TRP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8117 16 : lcpomap["TRP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8118 :
8119 16 : lcpomap["TYR_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
8120 16 : lcpomap["TYR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8121 16 : lcpomap["TYR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8122 16 : lcpomap["TYR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8123 16 : lcpomap["TYR_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
8124 16 : lcpomap["TYR_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8125 16 : lcpomap["TYR_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8126 16 : lcpomap["TYR_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8127 16 : lcpomap["TYR_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8128 16 : lcpomap["TYR_OH"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
8129 16 : lcpomap["TYR_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8130 16 : lcpomap["TYR_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
8131 16 : lcpomap["TYR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8132 16 : lcpomap["TYR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8133 16 : lcpomap["TYR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8134 16 : lcpomap["TYR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8135 16 : lcpomap["TYR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8136 :
8137 16 : lcpomap["VAL_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
8138 16 : lcpomap["VAL_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8139 16 : lcpomap["VAL_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8140 16 : lcpomap["VAL_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8141 16 : lcpomap["VAL_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
8142 16 : lcpomap["VAL_CG1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8143 16 : lcpomap["VAL_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
8144 16 : lcpomap["VAL_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8145 16 : lcpomap["VAL_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8146 16 : lcpomap["VAL_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8147 16 : lcpomap["VAL_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
8148 16 : lcpomap["VAL_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
8149 :
8150 : // nucleic acids - WARNING: ONLY AMBER (OL3-rna/OL15-dna) FORMAT
8151 :
8152 16 : lcpomap["A3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8153 16 : lcpomap["A3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8154 16 : lcpomap["A3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8155 16 : lcpomap["A3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8156 16 : lcpomap["A3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8157 16 : lcpomap["A3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8158 16 : lcpomap["A3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8159 16 : lcpomap["A3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8160 16 : lcpomap["A3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8161 16 : lcpomap["A3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8162 16 : lcpomap["A3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8163 16 : lcpomap["A3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8164 16 : lcpomap["A3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8165 16 : lcpomap["A3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8166 16 : lcpomap["A3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8167 16 : lcpomap["A3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8168 16 : lcpomap["A3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8169 16 : lcpomap["A3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8170 16 : lcpomap["A3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8171 16 : lcpomap["A3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8172 16 : lcpomap["A3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8173 16 : lcpomap["A3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8174 16 : lcpomap["A3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8175 16 : lcpomap["A3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8176 16 : lcpomap["A3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8177 16 : lcpomap["A3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8178 :
8179 16 : lcpomap["A5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8180 16 : lcpomap["A5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8181 16 : lcpomap["A5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8182 16 : lcpomap["A5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8183 16 : lcpomap["A5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8184 16 : lcpomap["A5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8185 16 : lcpomap["A5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8186 16 : lcpomap["A5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8187 16 : lcpomap["A5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8188 16 : lcpomap["A5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8189 16 : lcpomap["A5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8190 16 : lcpomap["A5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8191 16 : lcpomap["A5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8192 16 : lcpomap["A5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8193 16 : lcpomap["A5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8194 16 : lcpomap["A5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8195 16 : lcpomap["A5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8196 16 : lcpomap["A5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8197 16 : lcpomap["A5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8198 16 : lcpomap["A5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8199 16 : lcpomap["A5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8200 16 : lcpomap["A5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8201 16 : lcpomap["A5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8202 16 : lcpomap["A5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8203 :
8204 16 : lcpomap["AT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8205 16 : lcpomap["AT_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8206 16 : lcpomap["AT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8207 16 : lcpomap["AT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8208 16 : lcpomap["AT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8209 16 : lcpomap["AT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8210 16 : lcpomap["AT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8211 16 : lcpomap["AT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8212 16 : lcpomap["AT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8213 16 : lcpomap["AT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8214 16 : lcpomap["AT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8215 16 : lcpomap["AT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8216 16 : lcpomap["AT_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8217 16 : lcpomap["AT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8218 16 : lcpomap["AT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8219 16 : lcpomap["AT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8220 16 : lcpomap["AT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8221 16 : lcpomap["AT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8222 16 : lcpomap["AT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8223 16 : lcpomap["AT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8224 16 : lcpomap["AT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8225 16 : lcpomap["AT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8226 16 : lcpomap["AT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8227 16 : lcpomap["AT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8228 16 : lcpomap["AT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8229 16 : lcpomap["AT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8230 :
8231 16 : lcpomap["A_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8232 16 : lcpomap["A_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8233 16 : lcpomap["A_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8234 16 : lcpomap["A_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8235 16 : lcpomap["A_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8236 16 : lcpomap["A_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8237 16 : lcpomap["A_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8238 16 : lcpomap["A_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8239 16 : lcpomap["A_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8240 16 : lcpomap["A_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8241 16 : lcpomap["A_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8242 16 : lcpomap["A_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8243 16 : lcpomap["A_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8244 16 : lcpomap["A_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8245 16 : lcpomap["A_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8246 16 : lcpomap["A_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8247 16 : lcpomap["A_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8248 16 : lcpomap["A_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8249 16 : lcpomap["A_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8250 16 : lcpomap["A_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8251 16 : lcpomap["A_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8252 16 : lcpomap["A_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8253 16 : lcpomap["A_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8254 16 : lcpomap["A_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8255 16 : lcpomap["A_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8256 16 : lcpomap["A_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8257 :
8258 16 : lcpomap["C3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8259 16 : lcpomap["C3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8260 16 : lcpomap["C3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8261 16 : lcpomap["C3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8262 16 : lcpomap["C3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8263 16 : lcpomap["C3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8264 16 : lcpomap["C3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8265 16 : lcpomap["C3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8266 16 : lcpomap["C3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8267 16 : lcpomap["C3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8268 16 : lcpomap["C3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8269 16 : lcpomap["C3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8270 16 : lcpomap["C3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8271 16 : lcpomap["C3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8272 16 : lcpomap["C3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8273 16 : lcpomap["C3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8274 16 : lcpomap["C3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8275 16 : lcpomap["C3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8276 16 : lcpomap["C3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8277 16 : lcpomap["C3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8278 16 : lcpomap["C3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8279 16 : lcpomap["C3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8280 16 : lcpomap["C3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8281 16 : lcpomap["C3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8282 :
8283 16 : lcpomap["C5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8284 16 : lcpomap["C5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8285 16 : lcpomap["C5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8286 16 : lcpomap["C5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8287 16 : lcpomap["C5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8288 16 : lcpomap["C5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8289 16 : lcpomap["C5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8290 16 : lcpomap["C5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8291 16 : lcpomap["C5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8292 16 : lcpomap["C5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8293 16 : lcpomap["C5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8294 16 : lcpomap["C5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8295 16 : lcpomap["C5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8296 16 : lcpomap["C5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8297 16 : lcpomap["C5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8298 16 : lcpomap["C5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8299 16 : lcpomap["C5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8300 16 : lcpomap["C5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8301 16 : lcpomap["C5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8302 16 : lcpomap["C5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8303 16 : lcpomap["C5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8304 16 : lcpomap["C5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8305 :
8306 16 : lcpomap["CT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8307 16 : lcpomap["CT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8308 16 : lcpomap["CT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8309 16 : lcpomap["CT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8310 16 : lcpomap["CT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8311 16 : lcpomap["CT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8312 16 : lcpomap["CT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8313 16 : lcpomap["CT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8314 16 : lcpomap["CT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8315 16 : lcpomap["CT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8316 16 : lcpomap["CT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8317 16 : lcpomap["CT_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8318 16 : lcpomap["CT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8319 16 : lcpomap["CT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8320 16 : lcpomap["CT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8321 16 : lcpomap["CT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8322 16 : lcpomap["CT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8323 16 : lcpomap["CT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8324 16 : lcpomap["CT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8325 16 : lcpomap["CT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8326 16 : lcpomap["CT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8327 16 : lcpomap["CT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8328 16 : lcpomap["CT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8329 16 : lcpomap["CT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8330 :
8331 16 : lcpomap["C_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8332 16 : lcpomap["C_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8333 16 : lcpomap["C_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8334 16 : lcpomap["C_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8335 16 : lcpomap["C_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8336 16 : lcpomap["C_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8337 16 : lcpomap["C_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8338 16 : lcpomap["C_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8339 16 : lcpomap["C_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8340 16 : lcpomap["C_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8341 16 : lcpomap["C_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8342 16 : lcpomap["C_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8343 16 : lcpomap["C_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8344 16 : lcpomap["C_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8345 16 : lcpomap["C_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8346 16 : lcpomap["C_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8347 16 : lcpomap["C_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8348 16 : lcpomap["C_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8349 16 : lcpomap["C_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8350 16 : lcpomap["C_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8351 16 : lcpomap["C_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8352 16 : lcpomap["C_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8353 16 : lcpomap["C_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8354 16 : lcpomap["C_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8355 :
8356 16 : lcpomap["DA3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8357 16 : lcpomap["DA3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8358 16 : lcpomap["DA3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8359 16 : lcpomap["DA3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8360 16 : lcpomap["DA3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8361 16 : lcpomap["DA3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8362 16 : lcpomap["DA3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8363 16 : lcpomap["DA3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8364 16 : lcpomap["DA3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8365 16 : lcpomap["DA3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8366 16 : lcpomap["DA3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8367 16 : lcpomap["DA3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8368 16 : lcpomap["DA3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8369 16 : lcpomap["DA3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8370 16 : lcpomap["DA3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8371 16 : lcpomap["DA3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8372 16 : lcpomap["DA3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8373 16 : lcpomap["DA3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8374 16 : lcpomap["DA3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8375 16 : lcpomap["DA3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8376 16 : lcpomap["DA3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8377 16 : lcpomap["DA3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8378 16 : lcpomap["DA3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8379 16 : lcpomap["DA3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8380 16 : lcpomap["DA3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8381 :
8382 16 : lcpomap["DA5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8383 16 : lcpomap["DA5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8384 16 : lcpomap["DA5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8385 16 : lcpomap["DA5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8386 16 : lcpomap["DA5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8387 16 : lcpomap["DA5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8388 16 : lcpomap["DA5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8389 16 : lcpomap["DA5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8390 16 : lcpomap["DA5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8391 16 : lcpomap["DA5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8392 16 : lcpomap["DA5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8393 16 : lcpomap["DA5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8394 16 : lcpomap["DA5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8395 16 : lcpomap["DA5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8396 16 : lcpomap["DA5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8397 16 : lcpomap["DA5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8398 16 : lcpomap["DA5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8399 16 : lcpomap["DA5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8400 16 : lcpomap["DA5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8401 16 : lcpomap["DA5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8402 16 : lcpomap["DA5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8403 16 : lcpomap["DA5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8404 16 : lcpomap["DA5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8405 :
8406 16 : lcpomap["DAT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8407 16 : lcpomap["DAT_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8408 16 : lcpomap["DAT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8409 16 : lcpomap["DAT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8410 16 : lcpomap["DAT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8411 16 : lcpomap["DAT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8412 16 : lcpomap["DAT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8413 16 : lcpomap["DAT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8414 16 : lcpomap["DAT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8415 16 : lcpomap["DAT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8416 16 : lcpomap["DAT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8417 16 : lcpomap["DAT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8418 16 : lcpomap["DAT_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8419 16 : lcpomap["DAT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8420 16 : lcpomap["DAT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8421 16 : lcpomap["DAT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8422 16 : lcpomap["DAT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8423 16 : lcpomap["DAT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8424 16 : lcpomap["DAT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8425 16 : lcpomap["DAT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8426 16 : lcpomap["DAT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8427 16 : lcpomap["DAT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8428 16 : lcpomap["DAT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8429 16 : lcpomap["DAT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8430 16 : lcpomap["DAT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8431 :
8432 16 : lcpomap["DA_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8433 16 : lcpomap["DA_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8434 16 : lcpomap["DA_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8435 16 : lcpomap["DA_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8436 16 : lcpomap["DA_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8437 16 : lcpomap["DA_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8438 16 : lcpomap["DA_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8439 16 : lcpomap["DA_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8440 16 : lcpomap["DA_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8441 16 : lcpomap["DA_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8442 16 : lcpomap["DA_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8443 16 : lcpomap["DA_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8444 16 : lcpomap["DA_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8445 16 : lcpomap["DA_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8446 16 : lcpomap["DA_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8447 16 : lcpomap["DA_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8448 16 : lcpomap["DA_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8449 16 : lcpomap["DA_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8450 16 : lcpomap["DA_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8451 16 : lcpomap["DA_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8452 16 : lcpomap["DA_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8453 16 : lcpomap["DA_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8454 16 : lcpomap["DA_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8455 16 : lcpomap["DA_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8456 16 : lcpomap["DA_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8457 :
8458 16 : lcpomap["DC3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8459 16 : lcpomap["DC3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8460 16 : lcpomap["DC3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8461 16 : lcpomap["DC3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8462 16 : lcpomap["DC3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8463 16 : lcpomap["DC3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8464 16 : lcpomap["DC3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8465 16 : lcpomap["DC3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8466 16 : lcpomap["DC3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8467 16 : lcpomap["DC3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8468 16 : lcpomap["DC3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8469 16 : lcpomap["DC3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8470 16 : lcpomap["DC3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8471 16 : lcpomap["DC3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8472 16 : lcpomap["DC3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8473 16 : lcpomap["DC3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8474 16 : lcpomap["DC3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8475 16 : lcpomap["DC3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8476 16 : lcpomap["DC3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8477 16 : lcpomap["DC3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8478 16 : lcpomap["DC3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8479 16 : lcpomap["DC3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8480 16 : lcpomap["DC3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8481 :
8482 16 : lcpomap["DC5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8483 16 : lcpomap["DC5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8484 16 : lcpomap["DC5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8485 16 : lcpomap["DC5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8486 16 : lcpomap["DC5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8487 16 : lcpomap["DC5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8488 16 : lcpomap["DC5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8489 16 : lcpomap["DC5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8490 16 : lcpomap["DC5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8491 16 : lcpomap["DC5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8492 16 : lcpomap["DC5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8493 16 : lcpomap["DC5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8494 16 : lcpomap["DC5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8495 16 : lcpomap["DC5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8496 16 : lcpomap["DC5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8497 16 : lcpomap["DC5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8498 16 : lcpomap["DC5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8499 16 : lcpomap["DC5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8500 16 : lcpomap["DC5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8501 16 : lcpomap["DC5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8502 16 : lcpomap["DC5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8503 :
8504 16 : lcpomap["DCT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8505 16 : lcpomap["DCT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8506 16 : lcpomap["DCT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8507 16 : lcpomap["DCT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8508 16 : lcpomap["DCT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8509 16 : lcpomap["DCT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8510 16 : lcpomap["DCT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8511 16 : lcpomap["DCT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8512 16 : lcpomap["DCT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8513 16 : lcpomap["DCT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
8514 16 : lcpomap["DCT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8515 16 : lcpomap["DCT_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8516 16 : lcpomap["DCT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8517 16 : lcpomap["DCT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8518 16 : lcpomap["DCT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8519 16 : lcpomap["DCT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8520 16 : lcpomap["DCT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8521 16 : lcpomap["DCT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8522 16 : lcpomap["DCT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8523 16 : lcpomap["DCT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8524 16 : lcpomap["DCT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8525 16 : lcpomap["DCT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8526 16 : lcpomap["DCT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8527 :
8528 16 : lcpomap["DC_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8529 16 : lcpomap["DC_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8530 16 : lcpomap["DC_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8531 16 : lcpomap["DC_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8532 16 : lcpomap["DC_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8533 16 : lcpomap["DC_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8534 16 : lcpomap["DC_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8535 16 : lcpomap["DC_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8536 16 : lcpomap["DC_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8537 16 : lcpomap["DC_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8538 16 : lcpomap["DC_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8539 16 : lcpomap["DC_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8540 16 : lcpomap["DC_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8541 16 : lcpomap["DC_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8542 16 : lcpomap["DC_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8543 16 : lcpomap["DC_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8544 16 : lcpomap["DC_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8545 16 : lcpomap["DC_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8546 16 : lcpomap["DC_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8547 16 : lcpomap["DC_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8548 16 : lcpomap["DC_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8549 16 : lcpomap["DC_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8550 16 : lcpomap["DC_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8551 :
8552 16 : lcpomap["DG3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8553 16 : lcpomap["DG3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8554 16 : lcpomap["DG3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8555 16 : lcpomap["DG3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8556 16 : lcpomap["DG3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8557 16 : lcpomap["DG3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8558 16 : lcpomap["DG3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8559 16 : lcpomap["DG3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8560 16 : lcpomap["DG3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8561 16 : lcpomap["DG3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8562 16 : lcpomap["DG3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8563 16 : lcpomap["DG3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8564 16 : lcpomap["DG3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8565 16 : lcpomap["DG3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8566 16 : lcpomap["DG3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8567 16 : lcpomap["DG3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8568 16 : lcpomap["DG3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8569 16 : lcpomap["DG3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8570 16 : lcpomap["DG3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8571 16 : lcpomap["DG3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8572 16 : lcpomap["DG3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8573 16 : lcpomap["DG3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8574 16 : lcpomap["DG3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8575 16 : lcpomap["DG3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8576 16 : lcpomap["DG3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8577 16 : lcpomap["DG3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8578 :
8579 16 : lcpomap["DG5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8580 16 : lcpomap["DG5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8581 16 : lcpomap["DG5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8582 16 : lcpomap["DG5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8583 16 : lcpomap["DG5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8584 16 : lcpomap["DG5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8585 16 : lcpomap["DG5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8586 16 : lcpomap["DG5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8587 16 : lcpomap["DG5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8588 16 : lcpomap["DG5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8589 16 : lcpomap["DG5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8590 16 : lcpomap["DG5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8591 16 : lcpomap["DG5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8592 16 : lcpomap["DG5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8593 16 : lcpomap["DG5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8594 16 : lcpomap["DG5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8595 16 : lcpomap["DG5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8596 16 : lcpomap["DG5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8597 16 : lcpomap["DG5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8598 16 : lcpomap["DG5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8599 16 : lcpomap["DG5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8600 16 : lcpomap["DG5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8601 16 : lcpomap["DG5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8602 16 : lcpomap["DG5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8603 :
8604 16 : lcpomap["DGT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8605 16 : lcpomap["DGT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8606 16 : lcpomap["DGT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8607 16 : lcpomap["DGT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8608 16 : lcpomap["DGT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8609 16 : lcpomap["DGT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8610 16 : lcpomap["DGT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8611 16 : lcpomap["DGT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8612 16 : lcpomap["DGT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8613 16 : lcpomap["DGT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8614 16 : lcpomap["DGT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8615 16 : lcpomap["DGT_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8616 16 : lcpomap["DGT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8617 16 : lcpomap["DGT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8618 16 : lcpomap["DGT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8619 16 : lcpomap["DGT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8620 16 : lcpomap["DGT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8621 16 : lcpomap["DGT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8622 16 : lcpomap["DGT_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8623 16 : lcpomap["DGT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8624 16 : lcpomap["DGT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8625 16 : lcpomap["DGT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8626 16 : lcpomap["DGT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8627 16 : lcpomap["DGT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8628 16 : lcpomap["DGT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8629 16 : lcpomap["DGT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8630 :
8631 16 : lcpomap["DG_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8632 16 : lcpomap["DG_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8633 16 : lcpomap["DG_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8634 16 : lcpomap["DG_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8635 16 : lcpomap["DG_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8636 16 : lcpomap["DG_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8637 16 : lcpomap["DG_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8638 16 : lcpomap["DG_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8639 16 : lcpomap["DG_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8640 16 : lcpomap["DG_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8641 16 : lcpomap["DG_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8642 16 : lcpomap["DG_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8643 16 : lcpomap["DG_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8644 16 : lcpomap["DG_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8645 16 : lcpomap["DG_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8646 16 : lcpomap["DG_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8647 16 : lcpomap["DG_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8648 16 : lcpomap["DG_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8649 16 : lcpomap["DG_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8650 16 : lcpomap["DG_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8651 16 : lcpomap["DG_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8652 16 : lcpomap["DG_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8653 16 : lcpomap["DG_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8654 16 : lcpomap["DG_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8655 16 : lcpomap["DG_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8656 16 : lcpomap["DG_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8657 :
8658 16 : lcpomap["DT3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8659 16 : lcpomap["DT3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8660 16 : lcpomap["DT3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8661 16 : lcpomap["DT3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8662 16 : lcpomap["DT3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8663 16 : lcpomap["DT3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8664 16 : lcpomap["DT3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8665 16 : lcpomap["DT3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8666 16 : lcpomap["DT3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8667 16 : lcpomap["DT3_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8668 16 : lcpomap["DT3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8669 16 : lcpomap["DT3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8670 16 : lcpomap["DT3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8671 16 : lcpomap["DT3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8672 16 : lcpomap["DT3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8673 16 : lcpomap["DT3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8674 16 : lcpomap["DT3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8675 16 : lcpomap["DT3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8676 16 : lcpomap["DT3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8677 16 : lcpomap["DT3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8678 16 : lcpomap["DT3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8679 16 : lcpomap["DT3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8680 16 : lcpomap["DT3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8681 16 : lcpomap["DT3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8682 :
8683 16 : lcpomap["DT5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8684 16 : lcpomap["DT5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8685 16 : lcpomap["DT5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8686 16 : lcpomap["DT5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8687 16 : lcpomap["DT5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8688 16 : lcpomap["DT5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8689 16 : lcpomap["DT5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8690 16 : lcpomap["DT5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8691 16 : lcpomap["DT5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8692 16 : lcpomap["DT5_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8693 16 : lcpomap["DT5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8694 16 : lcpomap["DT5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8695 16 : lcpomap["DT5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8696 16 : lcpomap["DT5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8697 16 : lcpomap["DT5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8698 16 : lcpomap["DT5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8699 16 : lcpomap["DT5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8700 16 : lcpomap["DT5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8701 16 : lcpomap["DT5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8702 16 : lcpomap["DT5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8703 16 : lcpomap["DT5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8704 16 : lcpomap["DT5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8705 :
8706 16 : lcpomap["DTT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8707 16 : lcpomap["DTT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8708 16 : lcpomap["DTT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8709 16 : lcpomap["DTT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8710 16 : lcpomap["DTT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8711 16 : lcpomap["DTT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8712 16 : lcpomap["DTT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8713 16 : lcpomap["DTT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8714 16 : lcpomap["DTT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8715 16 : lcpomap["DTT_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8716 16 : lcpomap["DTT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8717 16 : lcpomap["DTT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8718 16 : lcpomap["DTT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8719 16 : lcpomap["DTT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8720 16 : lcpomap["DTT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8721 16 : lcpomap["DTT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8722 16 : lcpomap["DTT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8723 16 : lcpomap["DTT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8724 16 : lcpomap["DTT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8725 16 : lcpomap["DTT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8726 16 : lcpomap["DTT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8727 16 : lcpomap["DTT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8728 16 : lcpomap["DTT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8729 16 : lcpomap["DTT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8730 :
8731 16 : lcpomap["DT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8732 16 : lcpomap["DT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8733 16 : lcpomap["DT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8734 16 : lcpomap["DT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8735 16 : lcpomap["DT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8736 16 : lcpomap["DT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8737 16 : lcpomap["DT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8738 16 : lcpomap["DT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8739 16 : lcpomap["DT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8740 16 : lcpomap["DT_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8741 16 : lcpomap["DT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8742 16 : lcpomap["DT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8743 16 : lcpomap["DT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8744 16 : lcpomap["DT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8745 16 : lcpomap["DT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8746 16 : lcpomap["DT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8747 16 : lcpomap["DT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8748 16 : lcpomap["DT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8749 16 : lcpomap["DT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8750 16 : lcpomap["DT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8751 16 : lcpomap["DT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8752 16 : lcpomap["DT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8753 16 : lcpomap["DT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8754 16 : lcpomap["DT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8755 :
8756 16 : lcpomap["G3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8757 16 : lcpomap["G3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8758 16 : lcpomap["G3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8759 16 : lcpomap["G3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8760 16 : lcpomap["G3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8761 16 : lcpomap["G3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8762 16 : lcpomap["G3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8763 16 : lcpomap["G3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8764 16 : lcpomap["G3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8765 16 : lcpomap["G3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8766 16 : lcpomap["G3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8767 16 : lcpomap["G3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8768 16 : lcpomap["G3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8769 16 : lcpomap["G3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8770 16 : lcpomap["G3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8771 16 : lcpomap["G3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8772 16 : lcpomap["G3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8773 16 : lcpomap["G3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8774 16 : lcpomap["G3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8775 16 : lcpomap["G3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8776 16 : lcpomap["G3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8777 16 : lcpomap["G3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8778 16 : lcpomap["G3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8779 16 : lcpomap["G3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8780 16 : lcpomap["G3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8781 16 : lcpomap["G3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8782 16 : lcpomap["G3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8783 :
8784 16 : lcpomap["G5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8785 16 : lcpomap["G5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8786 16 : lcpomap["G5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8787 16 : lcpomap["G5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8788 16 : lcpomap["G5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8789 16 : lcpomap["G5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8790 16 : lcpomap["G5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8791 16 : lcpomap["G5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8792 16 : lcpomap["G5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8793 16 : lcpomap["G5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8794 16 : lcpomap["G5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8795 16 : lcpomap["G5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8796 16 : lcpomap["G5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8797 16 : lcpomap["G5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8798 16 : lcpomap["G5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8799 16 : lcpomap["G5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8800 16 : lcpomap["G5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8801 16 : lcpomap["G5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8802 16 : lcpomap["G5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8803 16 : lcpomap["G5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8804 16 : lcpomap["G5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8805 16 : lcpomap["G5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8806 16 : lcpomap["G5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8807 16 : lcpomap["G5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8808 16 : lcpomap["G5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8809 :
8810 16 : lcpomap["GT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8811 16 : lcpomap["GT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8812 16 : lcpomap["GT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8813 16 : lcpomap["GT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8814 16 : lcpomap["GT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8815 16 : lcpomap["GT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8816 16 : lcpomap["GT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8817 16 : lcpomap["GT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8818 16 : lcpomap["GT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8819 16 : lcpomap["GT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8820 16 : lcpomap["GT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8821 16 : lcpomap["GT_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8822 16 : lcpomap["GT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8823 16 : lcpomap["GT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8824 16 : lcpomap["GT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8825 16 : lcpomap["GT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8826 16 : lcpomap["GT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8827 16 : lcpomap["GT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8828 16 : lcpomap["GT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8829 16 : lcpomap["GT_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8830 16 : lcpomap["GT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8831 16 : lcpomap["GT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8832 16 : lcpomap["GT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8833 16 : lcpomap["GT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8834 16 : lcpomap["GT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8835 16 : lcpomap["GT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8836 16 : lcpomap["GT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8837 :
8838 16 : lcpomap["G_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8839 16 : lcpomap["G_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8840 16 : lcpomap["G_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8841 16 : lcpomap["G_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8842 16 : lcpomap["G_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8843 16 : lcpomap["G_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8844 16 : lcpomap["G_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8845 16 : lcpomap["G_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8846 16 : lcpomap["G_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8847 16 : lcpomap["G_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8848 16 : lcpomap["G_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8849 16 : lcpomap["G_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8850 16 : lcpomap["G_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8851 16 : lcpomap["G_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8852 16 : lcpomap["G_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8853 16 : lcpomap["G_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8854 16 : lcpomap["G_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8855 16 : lcpomap["G_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8856 16 : lcpomap["G_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8857 16 : lcpomap["G_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8858 16 : lcpomap["G_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8859 16 : lcpomap["G_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8860 16 : lcpomap["G_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8861 16 : lcpomap["G_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8862 16 : lcpomap["G_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8863 16 : lcpomap["G_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8864 16 : lcpomap["G_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8865 :
8866 16 : lcpomap["U3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8867 16 : lcpomap["U3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8868 16 : lcpomap["U3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8869 16 : lcpomap["U3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8870 16 : lcpomap["U3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8871 16 : lcpomap["U3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8872 16 : lcpomap["U3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8873 16 : lcpomap["U3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8874 16 : lcpomap["U3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8875 16 : lcpomap["U3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8876 16 : lcpomap["U3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8877 16 : lcpomap["U3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8878 16 : lcpomap["U3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8879 16 : lcpomap["U3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8880 16 : lcpomap["U3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8881 16 : lcpomap["U3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8882 16 : lcpomap["U3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8883 16 : lcpomap["U3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8884 16 : lcpomap["U3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8885 16 : lcpomap["U3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8886 16 : lcpomap["U3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8887 16 : lcpomap["U3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8888 16 : lcpomap["U3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8889 16 : lcpomap["U3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8890 :
8891 16 : lcpomap["U5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8892 16 : lcpomap["U5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8893 16 : lcpomap["U5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8894 16 : lcpomap["U5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8895 16 : lcpomap["U5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8896 16 : lcpomap["U5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8897 16 : lcpomap["U5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8898 16 : lcpomap["U5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8899 16 : lcpomap["U5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8900 16 : lcpomap["U5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8901 16 : lcpomap["U5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8902 16 : lcpomap["U5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8903 16 : lcpomap["U5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8904 16 : lcpomap["U5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8905 16 : lcpomap["U5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8906 16 : lcpomap["U5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8907 16 : lcpomap["U5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8908 16 : lcpomap["U5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8909 16 : lcpomap["U5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8910 16 : lcpomap["U5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8911 16 : lcpomap["U5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8912 16 : lcpomap["U5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8913 :
8914 16 : lcpomap["UT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8915 16 : lcpomap["UT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8916 16 : lcpomap["UT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8917 16 : lcpomap["UT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8918 16 : lcpomap["UT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8919 16 : lcpomap["UT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8920 16 : lcpomap["UT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8921 16 : lcpomap["UT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8922 16 : lcpomap["UT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8923 16 : lcpomap["UT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8924 16 : lcpomap["UT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8925 16 : lcpomap["UT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8926 16 : lcpomap["UT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8927 16 : lcpomap["UT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8928 16 : lcpomap["UT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8929 16 : lcpomap["UT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8930 16 : lcpomap["UT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8931 16 : lcpomap["UT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8932 16 : lcpomap["UT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8933 16 : lcpomap["UT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8934 16 : lcpomap["UT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8935 16 : lcpomap["UT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8936 16 : lcpomap["UT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8937 16 : lcpomap["UT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8938 :
8939 16 : lcpomap["U_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8940 16 : lcpomap["U_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8941 16 : lcpomap["U_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8942 16 : lcpomap["U_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8943 16 : lcpomap["U_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8944 16 : lcpomap["U_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8945 16 : lcpomap["U_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8946 16 : lcpomap["U_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8947 16 : lcpomap["U_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8948 16 : lcpomap["U_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8949 16 : lcpomap["U_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8950 16 : lcpomap["U_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8951 16 : lcpomap["U_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8952 16 : lcpomap["U_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8953 16 : lcpomap["U_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8954 16 : lcpomap["U_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8955 16 : lcpomap["U_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8956 16 : lcpomap["U_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8957 16 : lcpomap["U_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8958 16 : lcpomap["U_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8959 16 : lcpomap["U_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8960 16 : lcpomap["U_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8961 16 : lcpomap["U_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8962 16 : lcpomap["U_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8963 :
8964 16 : return lcpomap;
8965 : }
8966 :
8967 : // assigns LCPO parameters to each atom reading from database
8968 16 : void SAXS::readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms) {
8969 16 : std::map<std::string, std::vector<double> > lcpomap = setupLCPOparam();
8970 :
8971 56602 : for(unsigned i=0; i<natoms; ++i) {
8972 56586 : if ((AtomResidueName[0][i][0]=='O') || (AtomResidueName[0][i][0]=='N') || (AtomResidueName[0][i][0]=='C') || (AtomResidueName[0][i][0]=='S' || (AtomResidueName[0][i][0]=='P'))) {
8973 26526 : std::string identifier = AtomResidueName[1][i]+"_"+AtomResidueName[0][i];
8974 26526 : std::vector<double> LCPOparamVector = lcpomap.at(identifier);
8975 : double rs = 0.14;
8976 26526 : LCPOparam[i].push_back(LCPOparamVector[0]+rs*10.);
8977 26526 : LCPOparam[i].push_back(LCPOparamVector[1]);
8978 26526 : LCPOparam[i].push_back(LCPOparamVector[2]);
8979 26526 : LCPOparam[i].push_back(LCPOparamVector[3]);
8980 26526 : LCPOparam[i].push_back(LCPOparamVector[4]);
8981 : }
8982 : }
8983 :
8984 56602 : for(unsigned i=0; i<natoms; ++i) {
8985 56586 : if (LCPOparam[i].size()==0 ) {
8986 30060 : if ((AtomResidueName[0][i][0]=='O') || (AtomResidueName[0][i][0]=='N') || (AtomResidueName[0][i][0]=='C') || (AtomResidueName[0][i][0]=='S') || (AtomResidueName[0][i][0]=='P')) {
8987 0 : std::cout << "Could not find LCPO paramaters for atom " << AtomResidueName[0][i] << " of residue " << AtomResidueName[1][i] << std::endl;
8988 0 : error ("missing LCPO parameters\n");
8989 : }
8990 : }
8991 : }
8992 :
8993 16 : if (AtomResidueName[0][0] == "N") {
8994 16 : LCPOparam[0][1] = 7.3511e-01;
8995 16 : LCPOparam[0][2] = -2.2116e-01;
8996 16 : LCPOparam[0][3] = -8.9148e-04;
8997 16 : LCPOparam[0][4] = 2.5230e-04;
8998 : }
8999 :
9000 16 : if (AtomResidueName[0][natoms-1] == "O") {
9001 0 : LCPOparam[natoms-1][1] = 8.8857e-01;
9002 0 : LCPOparam[natoms-1][2] = -3.3421e-01;
9003 0 : LCPOparam[natoms-1][3] = -1.8683e-03;
9004 0 : LCPOparam[natoms-1][4] = 4.9372e-04;
9005 : }
9006 16 : }
9007 :
9008 4 : void SAXS::resolution_function() {
9009 4 : const unsigned numq = q_list.size();
9010 :
9011 : // only OpenMP because numq might be smaller than the number of ranks
9012 4 : #pragma omp parallel for num_threads(OpenMP::getNumThreads())
9013 : for (unsigned i=0; i<numq; i++) {
9014 : double qi = q_list[i];
9015 : double dq = 6*sigma_res[i]/(Nj-1);
9016 : double sigma_sq = sigma_res[i]*sigma_res[i];
9017 : double qstart = qi - 3*sigma_res[i];
9018 : for (unsigned j=0; j<Nj; j++) {
9019 : double qj = qstart + j*dq;
9020 : double I0exp = i0e(qj*qi/sigma_sq);
9021 :
9022 : qj_list[i][j] = qj;
9023 : Rij[i][j] = (qj/sigma_sq)*std::exp(-0.5*(qj - qi)*(qj - qi)/sigma_sq)*I0exp;
9024 : }
9025 : }
9026 4 : }
9027 :
9028 : // i0e function from cephes
9029 : // compute I0(x) * exp (-x), with I0 being the modified Bessel function
9030 : // of first kind and zeroth order.
9031 660 : inline double SAXS::i0e(double x) {
9032 : double y = 0.0;
9033 :
9034 660 : if (x < 0) {
9035 0 : x = -x;
9036 : }
9037 660 : if (x <= 8.0) {
9038 0 : y = (x/2.0) - 2.0;
9039 0 : return chbevl(y, A);
9040 : }
9041 :
9042 660 : return chbevl(32.0/x - 2.0, B) / sqrt(x);
9043 : }
9044 :
9045 660 : double SAXS::chbevl(double x, const std::vector<double> &coeffs) {
9046 : double b0, b1, b2;
9047 660 : unsigned n = coeffs.size();
9048 :
9049 660 : b0 = coeffs[0];
9050 : b1 = 0.0;
9051 : b2 = 0.0;
9052 :
9053 16500 : for (unsigned i = 1; i < n; i++) {
9054 : b2 = b1;
9055 : b1 = b0;
9056 15840 : b0 = x * b1 - b2 + coeffs[i];
9057 : }
9058 660 : return 0.5 * (b0 - b2);
9059 : }
9060 :
9061 134310 : inline double SAXS::interpolation(std::vector<SplineCoeffs> &coeffs, double x) {
9062 : unsigned s = 0;
9063 1002034 : while ((x >= q_list[s+1]) && (s+1 < q_list.size()-1)) {
9064 : s++;
9065 : }
9066 :
9067 134310 : double dx = x - coeffs[s].x;
9068 134310 : return coeffs[s].a + coeffs[s].b*dx + coeffs[s].c*dx*dx + coeffs[s].d*dx*dx*dx;
9069 : }
9070 :
9071 : // natural bc cubic spline implementation from the Wikipedia algorithm
9072 : // modified from https://stackoverflow.com/a/19216702/3254658
9073 814 : std::vector<SAXS::SplineCoeffs> SAXS::spline_coeffs(std::vector<double> &x, std::vector<double> &y) {
9074 814 : unsigned n = x.size()-1;
9075 : std::vector<double> a;
9076 814 : a.insert(a.begin(), y.begin(), y.end());
9077 814 : std::vector<double> b(n);
9078 814 : std::vector<double> d(n);
9079 : std::vector<double> h;
9080 :
9081 12210 : for(unsigned i=0; i<n; i++) {
9082 11396 : h.push_back(x[i+1]-x[i]);
9083 : }
9084 :
9085 : std::vector<double> alpha;
9086 814 : alpha.push_back(0);
9087 11396 : for(unsigned i=1; i<n; i++) {
9088 10582 : alpha.push_back( 3*(a[i+1]-a[i])/h[i] - 3*(a[i]-a[i-1])/h[i-1] );
9089 : }
9090 :
9091 814 : std::vector<double> c(n+1);
9092 814 : std::vector<double> l(n+1);
9093 814 : std::vector<double> mu(n+1);
9094 814 : std::vector<double> z(n+1);
9095 814 : l[0] = 1;
9096 814 : mu[0] = 0;
9097 814 : z[0] = 0;
9098 :
9099 11396 : for(unsigned i=1; i<n; i++) {
9100 10582 : l[i] = 2 *(x[i+1]-x[i-1])-h[i-1]*mu[i-1];
9101 10582 : mu[i] = h[i]/l[i];
9102 10582 : z[i] = (alpha[i]-h[i-1]*z[i-1])/l[i];
9103 : }
9104 :
9105 814 : l[n] = 1;
9106 814 : z[n] = 0;
9107 814 : c[n] = 0;
9108 :
9109 12210 : for(int j=n-1; j>=0; j--) {
9110 11396 : c[j] = z[j] - mu[j] * c[j+1];
9111 11396 : b[j] = (a[j+1]-a[j])/h[j]-h[j]*(c[j+1]+2*c[j])/3;
9112 11396 : d[j] = (c[j+1]-c[j])/3/h[j];
9113 : }
9114 :
9115 814 : std::vector<SplineCoeffs> output_set(n);
9116 12210 : for(unsigned i=0; i<n; i++) {
9117 11396 : output_set[i].a = a[i];
9118 11396 : output_set[i].b = b[i];
9119 11396 : output_set[i].c = c[i];
9120 11396 : output_set[i].d = d[i];
9121 11396 : output_set[i].x = x[i];
9122 : }
9123 :
9124 814 : return output_set;
9125 : }
9126 :
9127 :
9128 : }//namespace isdb
9129 : }//namespace PLMD
|