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 : {
246 : private:
247 : enum { H, C, N, O, P, S, NTT };
248 : enum { ALA_BB, ARG_BB, ARG_SC1, ARG_SC2, ASN_BB, ASN_SC1, ASP_BB, ASP_SC1, CYS_BB, CYS_SC1,
249 : GLN_BB, GLN_SC1, GLU_BB, GLU_SC1, GLY_BB, HIS_BB, HIS_SC1, HIS_SC2, HIS_SC3, ILE_BB,
250 : ILE_SC1, LEU_BB, LEU_SC1, LYS_BB, LYS_SC1, LYS_SC2, MET_BB, MET_SC1, PHE_BB, PHE_SC1,
251 : PHE_SC2, PHE_SC3, PRO_BB, PRO_SC1, SER_BB, SER_SC1, THR_BB, THR_SC1, TRP_BB, TRP_SC1,
252 : TRP_SC2, TRP_SC3, TRP_SC4, TYR_BB, TYR_SC1, TYR_SC2, TYR_SC3, VAL_BB, VAL_SC1, A_BB1,
253 : A_BB2, A_BB3, A_SC1, A_SC2, A_SC3, A_SC4, A_3TE, A_5TE, A_TE3, A_TE5, C_BB1, C_BB2,
254 : C_BB3, C_SC1, C_SC2, C_SC3, C_3TE, C_5TE, C_TE3, C_TE5, G_BB1, G_BB2, G_BB3, G_SC1,
255 : G_SC2, G_SC3, G_SC4, G_3TE, G_5TE, G_TE3, G_TE5, U_BB1, U_BB2, U_BB3, U_SC1, U_SC2,
256 : U_SC3, U_3TE, U_5TE, U_TE3, U_TE5, DA_BB1, DA_BB2, DA_BB3, DA_SC1, DA_SC2, DA_SC3,
257 : DA_SC4, DA_3TE, DA_5TE, DA_TE3, DA_TE5, DC_BB1, DC_BB2, DC_BB3, DC_SC1, DC_SC2, DC_SC3,
258 : DC_3TE, DC_5TE, DC_TE3, DC_TE5, DG_BB1, DG_BB2, DG_BB3, DG_SC1, DG_SC2, DG_SC3, DG_SC4,
259 : DG_3TE, DG_5TE, DG_TE3, DG_TE5, DT_BB1, DT_BB2, DT_BB3, DT_SC1, DT_SC2, DT_SC3, DT_3TE,
260 : DT_5TE, DT_TE3, DT_TE5, NMARTINI
261 : };
262 : enum { TRP,
263 : TYR,
264 : PHE,
265 : HIS,
266 : HIP,
267 : ARG,
268 : LYS,
269 : CYS,
270 : CYX,
271 : ASP,
272 : GLU,
273 : ILE,
274 : LEU,
275 : MET,
276 : ASN,
277 : PRO,
278 : GLN,
279 : SER,
280 : THR,
281 : VAL,
282 : ALA,
283 : GLY,
284 : BB_PO2,
285 : BB_PO3,
286 : BB_DNA,
287 : BB_DNA_5,
288 : BB_DNA_3,
289 : BB_RNA,
290 : BB_RNA_5,
291 : BB_RNA_3,
292 : BASE_A,
293 : BASE_C,
294 : BASE_T,
295 : BASE_G,
296 : BASE_U,
297 : NONEBEAD
298 : };
299 : struct SplineCoeffs {
300 : double a;
301 : double b;
302 : double c;
303 : double d;
304 : double x;
305 : };
306 : bool saxs;
307 : bool absolute;
308 : bool pbc;
309 : bool serial;
310 : bool gpu;
311 : bool onebead;
312 : bool resolution;
313 : bool isFirstStep;
314 : int deviceid;
315 : unsigned nres;
316 : std::vector<unsigned> atoi;
317 : std::vector<unsigned> atoms_per_bead;
318 : std::vector<double> atoms_masses;
319 : std::vector<double> q_list;
320 : std::vector<double> FF_rank;
321 : std::vector<std::vector<double> > FF_value_vacuum;
322 : std::vector<std::vector<double> > FF_value_solv;
323 : std::vector<std::vector<double> > FF_value_mixed;
324 : std::vector<std::vector<double> > FF_value;
325 : std::vector<std::vector<float> > FFf_value;
326 : // SANS:
327 : std::vector<std::vector<double> > FF_value_vacuum_H;
328 : std::vector<std::vector<double> > FF_value_solv_H;
329 : std::vector<std::vector<double> > FF_value_mixed_H;
330 : std::vector<std::vector<double> > FF_value_vacuum_D;
331 : std::vector<std::vector<double> > FF_value_mixed_D;
332 :
333 : std::vector<std::vector<double> > LCPOparam;
334 : std::vector<unsigned> residue_atom;
335 :
336 : double rho, rho_corr, sasa_cutoff;
337 : double deuter_conc;
338 : unsigned solv_stride;
339 : std::vector<double> Iq0_vac;
340 : std::vector<double> Iq0_solv;
341 : std::vector<double> Iq0_mix;
342 : double Iq0;
343 :
344 : // SANS:
345 : std::vector<double> Iq0_vac_H;
346 : std::vector<double> Iq0_solv_H;
347 : std::vector<double> Iq0_mix_H;
348 : std::vector<double> Iq0_vac_D;
349 : std::vector<double> Iq0_mix_D;
350 : unsigned int Nj;
351 : std::vector<std::vector<double> > qj_list;
352 : std::vector<std::vector<double> > Rij;
353 : std::vector<double> sigma_res;
354 :
355 : // Chebyshev polynomial coefficients for i0e(x) used for resolution function
356 : // values taken from cephes library
357 : const std::vector<double> A = {
358 : -4.41534164647933937950E-18,
359 : 3.33079451882223809783E-17,
360 : -2.43127984654795469359E-16,
361 : 1.71539128555513303061E-15,
362 : -1.16853328779934516808E-14,
363 : 7.67618549860493561688E-14,
364 : -4.85644678311192946090E-13,
365 : 2.95505266312963983461E-12,
366 : -1.72682629144155570723E-11,
367 : 9.67580903537323691224E-11,
368 : -5.18979560163526290666E-10,
369 : 2.65982372468238665035E-9,
370 : -1.30002500998624804212E-8,
371 : 6.04699502254191894932E-8,
372 : -2.67079385394061173391E-7,
373 : 1.11738753912010371815E-6,
374 : -4.41673835845875056359E-6,
375 : 1.64484480707288970893E-5,
376 : -5.75419501008210370398E-5,
377 : 1.88502885095841655729E-4,
378 : -5.76375574538582365885E-4,
379 : 1.63947561694133579842E-3,
380 : -4.32430999505057594430E-3,
381 : 1.05464603945949983183E-2,
382 : -2.37374148058994688156E-2,
383 : 4.93052842396707084878E-2,
384 : -9.49010970480476444210E-2,
385 : 1.71620901522208775349E-1,
386 : -3.04682672343198398683E-1,
387 : 6.76795274409476084995E-1
388 : };
389 : const std::vector<double> B = {
390 : -7.23318048787475395456E-18,
391 : -4.83050448594418207126E-18,
392 : 4.46562142029675999901E-17,
393 : 3.46122286769746109310E-17,
394 : -2.82762398051658348494E-16,
395 : -3.42548561967721913462E-16,
396 : 1.77256013305652638360E-15,
397 : 3.81168066935262242075E-15,
398 : -9.55484669882830764870E-15,
399 : -4.15056934728722208663E-14,
400 : 1.54008621752140982691E-14,
401 : 3.85277838274214270114E-13,
402 : 7.18012445138366623367E-13,
403 : -1.79417853150680611778E-12,
404 : -1.32158118404477131188E-11,
405 : -3.14991652796324136454E-11,
406 : 1.18891471078464383424E-11,
407 : 4.94060238822496958910E-10,
408 : 3.39623202570838634515E-9,
409 : 2.26666899049817806459E-8,
410 : 2.04891858946906374183E-7,
411 : 2.89137052083475648297E-6,
412 : 6.88975834691682398426E-5,
413 : 3.36911647825569408990E-3,
414 : 8.04490411014108831608E-1
415 : };
416 :
417 : void calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
418 : void calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
419 : void getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter);
420 : 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);
421 : unsigned getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms);
422 : double calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho);
423 : std::map<std::string, std::vector<double> > setupLCPOparam();
424 : void readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms);
425 : void calcNlist(std::vector<std::vector<int> > &Nlist);
426 : void sasa_calculate(std::vector<bool> &solv_res);
427 : // SANS:
428 : 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);
429 : 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);
430 : double calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc);
431 : void resolution_function();
432 : std::vector<SplineCoeffs> spline_coeffs(std::vector<double> &x, std::vector<double> &y);
433 : inline double interpolation(std::vector<SplineCoeffs> &coeffs, double x);
434 : inline double i0e(double x);
435 : double chbevl(double x, const std::vector<double> &coeffs);
436 :
437 : public:
438 : static void registerKeywords( Keywords& keys );
439 : explicit SAXS(const ActionOptions&);
440 : void calculate() override;
441 : void update() override;
442 : };
443 :
444 : PLUMED_REGISTER_ACTION(SAXS,"SAXS")
445 : PLUMED_REGISTER_ACTION(SAXS,"SANS")
446 :
447 48 : void SAXS::registerKeywords(Keywords& keys) {
448 48 : MetainferenceBase::registerKeywords(keys);
449 96 : keys.addFlag("NOPBC",false,"Ignore the periodic boundary conditions when calculating distances");
450 96 : keys.addFlag("SERIAL",false,"Perform the calculation in serial - for debug purpose");
451 96 : keys.add("compulsory","DEVICEID","-1","Identifier of the GPU to be used");
452 96 : keys.addFlag("GPU",false,"Calculate SAXS using ARRAYFIRE on an accelerator device");
453 96 : keys.addFlag("ABSOLUTE",false,"Absolute intensity: the intensities for each q-value are not normalised for the intensity at q=0.");
454 96 : keys.addFlag("ATOMISTIC",false,"Calculate SAXS for an atomistic model");
455 96 : keys.addFlag("MARTINI",false,"Calculate SAXS for a Martini model");
456 96 : keys.addFlag("ONEBEAD",false,"calculate SAXS for a single bead model");
457 96 : keys.add("compulsory","TEMPLATE","template.pdb","A PDB file is required for ONEBEAD mapping");
458 96 : keys.add("atoms","ATOMS","The atoms to be included in the calculation, e.g. the whole protein");
459 96 : keys.add("numbered","QVALUE","Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ...");
460 96 : 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");
461 96 : keys.add("optional","PARAMETERSFILE","Read the PARAMETERS from a file");
462 96 : keys.add("compulsory","DEUTER_CONC","0.","Fraction of deuterated solvent");
463 96 : keys.add("compulsory","SOLVDENS","0.334","Density of the solvent to be used for the correction of atomistic form factors");
464 96 : keys.add("compulsory","SOLVATION_CORRECTION","0.0","Solvation layer electron density correction (ONEBEAD only)");
465 96 : keys.add("compulsory","SASA_CUTOFF","1.0","SASA value to consider a residue as exposed to the solvent (ONEBEAD only)");
466 96 : keys.add("numbered","EXPINT","Add an experimental value for each q value");
467 96 : keys.add("numbered","SIGMARES","Variance of Gaussian distribution describing the deviation in the scattering angle for each q value");
468 96 : keys.add("compulsory","N","10","Number of points in the resolution function integral");
469 96 : keys.add("compulsory","SOLVATION_STRIDE","10","Number of steps between every new residues solvation estimation via LCPO (ONEBEAD only)");
470 96 : keys.add("compulsory","SCALE_EXPINT","1.0","Scaling value for experimental data normalization");
471 96 : keys.addOutputComponent("q","default","scalar","The # SAXS of q");
472 96 : keys.addOutputComponent("exp","EXPINT","scalar","The # experimental intensity");
473 48 : }
474 :
475 44 : SAXS::SAXS(const ActionOptions&ao):
476 : PLUMED_METAINF_INIT(ao),
477 44 : saxs(true),
478 44 : absolute(false),
479 44 : pbc(true),
480 44 : serial(false),
481 44 : gpu(false),
482 44 : onebead(false),
483 44 : isFirstStep(true),
484 44 : deviceid(-1)
485 : {
486 44 : if( getName().find("SAXS")!=std::string::npos) { saxs=true; }
487 14 : else if( getName().find("SANS")!=std::string::npos) { saxs=false; }
488 :
489 : std::vector<AtomNumber> atoms;
490 88 : parseAtomList("ATOMS",atoms);
491 44 : unsigned size = atoms.size();
492 :
493 44 : parseFlag("SERIAL",serial);
494 :
495 44 : bool nopbc=!pbc;
496 44 : parseFlag("NOPBC",nopbc);
497 44 : pbc=!nopbc;
498 44 : if(pbc) log.printf(" using periodic boundary conditions\n");
499 28 : else log.printf(" without periodic boundary conditions\n");
500 :
501 44 : parseFlag("GPU",gpu);
502 : #ifndef __PLUMED_HAS_ARRAYFIRE
503 44 : if(gpu) error("To use the GPU mode PLUMED must be compiled with ARRAYFIRE");
504 : #endif
505 :
506 44 : parse("DEVICEID",deviceid);
507 : #ifdef __PLUMED_HAS_ARRAYFIRE
508 : if(gpu&&comm.Get_rank()==0) {
509 : // if not set try to check the one set by the API
510 : if(deviceid==-1) deviceid=plumed.getGpuDeviceId();
511 : // if still not set use 0
512 : if(deviceid==-1) deviceid=0;
513 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
514 : af::setDevice(afcu::getNativeId(deviceid));
515 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
516 : af::setDevice(afcl::getNativeId(deviceid));
517 : #else
518 : af::setDevice(deviceid);
519 : #endif
520 : af::info();
521 : }
522 : #endif
523 :
524 44 : bool atomistic=false;
525 44 : parseFlag("ATOMISTIC",atomistic);
526 44 : if(atomistic) log.printf(" using ATOMISTIC form factors\n");
527 44 : bool martini=false;
528 44 : parseFlag("MARTINI",martini);
529 44 : if(martini) log.printf(" using MARTINI form factors\n");
530 44 : onebead=false;
531 44 : parseFlag("ONEBEAD",onebead);
532 44 : if(onebead) log.printf(" using ONEBEAD form factors\n");
533 : bool fromfile=false;
534 : std::string parametersfile;
535 88 : parse("PARAMETERSFILE",parametersfile);
536 44 : if (parametersfile.length() != 0) fromfile=true;
537 4 : if(fromfile) log.printf(" will read form factors from file\n");
538 44 : parseFlag("ABSOLUTE",absolute);
539 :
540 44 : if(martini&&atomistic) error("You cannot use MARTINI and ATOMISTIC at the same time");
541 44 : if(martini&&onebead) error("You cannot use MARTINI and ONEBEAD at the same time");
542 44 : if(onebead&&atomistic) error("You cannot use ONEBEAD and ATOMISTIC at the same time");
543 44 : if((martini)&&(!saxs)) error("MARTINI cannot be used with SANS");
544 44 : if((fromfile)&&((atomistic)||(martini)||(onebead))) {
545 0 : error("You cannot read parameters from file and use ATOMISTIC/MARTINI/ONEBEAD");
546 : }
547 :
548 : unsigned ntarget=0;
549 : for(unsigned i=0;; ++i) {
550 : double t_list;
551 976 : if( !parseNumbered( "QVALUE", i+1, t_list) ) break;
552 444 : if(t_list<=0.) error("QVALUE cannot be less or equal to zero!\n");
553 444 : if(onebead&&t_list>0.3) error("ONEBEAD mapping QVALUE must be smaller or equal to 0.3");
554 444 : q_list.push_back(t_list);
555 444 : ntarget++;
556 444 : }
557 : const unsigned numq = ntarget;
558 :
559 488 : for(unsigned i=0; i<numq; ++i) {
560 444 : if(q_list[i]==0.) error("it is not possible to set q=0\n");
561 444 : if(i>0&&q_list[i]<q_list[i-1]) error("QVALUE must be in ascending order");
562 444 : log.printf(" my q: %lf \n",q_list[i]);
563 : }
564 :
565 44 : rho = 0.334;
566 44 : parse("SOLVDENS", rho);
567 44 : log.printf(" Solvent density: %lf\n", rho);
568 :
569 44 : double scale_expint=1.;
570 44 : parse("SCALE_EXPINT",scale_expint);
571 :
572 44 : if((!atomistic&&absolute)||(absolute&&scale_expint!=1)) error("ABSOLUTE can be used only combined with ATOMISTIC without SCALE_EXPINT");
573 56 : if(atomistic) log.printf(" Scale for intensities: %s\n", absolute ? "absolute" : "normalised");
574 :
575 44 : double correction = 0.00;
576 44 : parse("SOLVATION_CORRECTION", correction);
577 44 : rho_corr=rho-correction;
578 44 : if(onebead) log.printf(" Solvation density contribution: %lf\n", correction);
579 44 : if((atomistic||martini||fromfile)&&(rho_corr!=rho)) log.printf(" Solvation density contribution is taken into account in ONEBEAD only\n");
580 :
581 44 : solv_stride = 10;
582 44 : parse("SOLVATION_STRIDE", solv_stride);
583 44 : if(solv_stride < 1.) error("SOLVATION_STRIDE must be greater than 0");
584 44 : if(onebead&&(rho_corr!=rho)) log.printf(" SASA calculation stride: %u\n", solv_stride);
585 :
586 44 : sasa_cutoff = 1.0;
587 44 : parse("SASA_CUTOFF", sasa_cutoff);
588 44 : if(sasa_cutoff <= 0.) error("SASA_CUTOFF must be greater than 0");
589 :
590 44 : deuter_conc = 0.;
591 44 : parse("DEUTER_CONC", deuter_conc);
592 44 : if ((deuter_conc)&&(fromfile)) error("DEUTER_CONC cannot be used with PARAMETERSFILE");
593 44 : if(deuter_conc < 0. || deuter_conc > 1.) error("DEUTER_CONC must be in 0-1 range");
594 44 : if ((atomistic||onebead)&&(!saxs)) log.printf(" Solvent deuterium fraction: %lf/1.000000\n", deuter_conc);
595 :
596 44 : PDB pdb;
597 44 : if(onebead) {
598 : std::string template_name;
599 16 : parse("TEMPLATE",template_name);
600 16 : log.printf(" Template for ONEBEAD mapping conversion: %s\n", template_name.c_str());
601 16 : if( !pdb.read(template_name,usingNaturalUnits(),1.) ) plumed_merror("missing input file " + template_name);
602 : }
603 :
604 : // preliminary mapping for onebead representation
605 44 : if(onebead) {
606 16 : LCPOparam.resize(size);
607 16 : nres = getOnebeadMapping(pdb, atoms);
608 16 : if(saxs) {
609 10 : Iq0_vac.resize(nres);
610 10 : Iq0_solv.resize(nres);
611 10 : Iq0_mix.resize(nres);
612 : } else { // SANS
613 6 : Iq0_vac_H.resize(nres);
614 6 : Iq0_solv_H.resize(nres);
615 6 : Iq0_mix_H.resize(nres);
616 6 : Iq0_vac_D.resize(nres);
617 6 : Iq0_mix_D.resize(nres);
618 : }
619 16 : atoi.resize(nres);
620 : } else {
621 28 : atoi.resize(size);
622 : }
623 :
624 44 : Iq0=0;
625 : std::vector<std::vector<long double> > FF_tmp;
626 : std::vector<std::vector<long double> > FF_tmp_vac;
627 : std::vector<std::vector<long double> > FF_tmp_mix;
628 : std::vector<std::vector<long double> > FF_tmp_solv;
629 : // SANS
630 : std::vector<std::vector<long double> > FF_tmp_vac_H;
631 : std::vector<std::vector<long double> > FF_tmp_mix_H;
632 : std::vector<std::vector<long double> > FF_tmp_solv_H;
633 : std::vector<std::vector<long double> > FF_tmp_vac_D;
634 : std::vector<std::vector<long double> > FF_tmp_mix_D;
635 : std::vector<std::vector<long double> > parameter_H;
636 : std::vector<std::vector<long double> > parameter_D;
637 :
638 44 : if(!atomistic&&!martini&&!onebead&&!fromfile) { // read PARAMETERS from PLUMED file
639 4 : if (saxs) {
640 : // read in parameter std::vector
641 : std::vector<std::vector<long double> > parameter;
642 4 : parameter.resize(size);
643 : ntarget=0;
644 36 : for(unsigned i=0; i<size; ++i) {
645 64 : if( !parseNumberedVector( "PARAMETERS", i+1, parameter[i]) ) break;
646 32 : ntarget++;
647 : }
648 4 : if( ntarget!=size ) error("found wrong number of parameter std::vectors");
649 4 : FF_tmp.resize(numq,std::vector<long double>(size));
650 36 : for(unsigned i=0; i<size; ++i) {
651 32 : atoi[i]=i;
652 128 : for(unsigned k=0; k<numq; ++k) {
653 480 : for(unsigned j=0; j<parameter[i].size(); ++j) {
654 384 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
655 : }
656 : }
657 : }
658 36 : for(unsigned i=0; i<size; ++i) Iq0+=parameter[i][0];
659 4 : Iq0 *= Iq0;
660 4 : }
661 : else { // SANS
662 : std::vector<long double> parameter;
663 0 : parameter.resize(size);
664 : ntarget=0;
665 0 : for(unsigned i=0; i<size; ++i) {
666 0 : if( !parseNumbered( "PARAMETERS", i+1, parameter[i]) ) break;
667 0 : ntarget++;
668 : }
669 0 : if( ntarget!=size ) error("found wrong number of parameter std::vectors");
670 0 : FF_tmp.resize(numq,std::vector<long double>(size));
671 0 : for(unsigned i=0; i<size; ++i) {
672 0 : atoi[i]=i;
673 0 : for(unsigned k=0; k<numq; ++k) {
674 0 : FF_tmp[k][i]+= parameter[i];
675 : }
676 : }
677 0 : for(unsigned i=0; i<size; ++i) Iq0+=parameter[i];
678 0 : Iq0 *= Iq0;
679 : }
680 40 : } else if (fromfile) { // read PARAMETERS from user-provided file
681 4 : log.printf(" Reading PARAMETERS from file: %s\n", parametersfile.c_str());
682 4 : if (saxs) {
683 0 : FF_tmp.resize(numq,std::vector<long double>(size));
684 : std::vector<std::vector<long double> > parameter;
685 0 : parameter.resize(size);
686 :
687 0 : IFile ifile;
688 0 : ifile.open(parametersfile);
689 : std::string line;
690 :
691 : ntarget=0;
692 0 : while(ifile.getline(line)) {
693 0 : Tools::ltrim(line);
694 0 : Tools::trimComments(line);
695 0 : if (line.empty()) continue;
696 0 : if (ntarget > size) error("PARAMETERSFILE has more PARAMETERS than there are scattering centers");
697 0 : std::string num; Tools::convert(ntarget+1,num);
698 0 : std::vector<std::string> lineread{line};
699 0 : if (!Tools::parseVector(lineread, "PARAMETERS"+num, parameter[ntarget], -1)) error("Missing PARAMETERS or PARAMETERS not sorted");
700 : ntarget++;
701 0 : }
702 0 : if( ntarget!=size ) error("found wrong number of PARAMETERS in file");
703 :
704 0 : for(unsigned i=0; i<size; ++i) {
705 0 : atoi[i]=i;
706 0 : for(unsigned k=0; k<numq; ++k) {
707 0 : for(unsigned j=0; j<parameter[i].size(); ++j) {
708 0 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
709 : }
710 : }
711 : }
712 0 : for(unsigned i=0; i<size; ++i) Iq0+=parameter[i][0];
713 0 : Iq0 *= Iq0;
714 0 : } else { // SANS
715 4 : FF_tmp.resize(numq,std::vector<long double>(size));
716 :
717 4 : IFile ifile;
718 4 : ifile.open(parametersfile);
719 : std::string line;
720 :
721 : ntarget=0;
722 1084 : while(ifile.getline(line)) {
723 1080 : Tools::ltrim(line);
724 1080 : Tools::trimComments(line);
725 1080 : if (line.empty()) continue;
726 1080 : if (ntarget > size) error("PARAMETERSFILE has more PARAMETERS than there are scattering centers");
727 1080 : std::string num; Tools::convert(ntarget+1,num);
728 2160 : std::vector<std::string> lineread{line};
729 : long double scatlen;
730 1080 : atoi[ntarget]=ntarget;
731 2160 : if (!Tools::parse(lineread, "PARAMETERS"+num, scatlen, -1)) error("Missing PARAMETERS or PARAMETERS not sorted");
732 17280 : for(unsigned k=0; k<numq; ++k) {
733 16200 : FF_tmp[k][ntarget] = scatlen;
734 : }
735 : ntarget++;
736 1080 : }
737 4 : if( ntarget!=size ) error("found wrong number of PARAMETERS in file");
738 1084 : for(unsigned i=0; i<size; ++i) Iq0+=FF_tmp[0][i];
739 4 : Iq0 *= Iq0;
740 4 : }
741 36 : } else if(onebead) {
742 16 : if(saxs) {
743 : // read built-in ONEBEAD parameters
744 10 : FF_tmp_vac.resize(numq,std::vector<long double>(NONEBEAD));
745 10 : FF_tmp_mix.resize(numq,std::vector<long double>(NONEBEAD));
746 10 : FF_tmp_solv.resize(numq,std::vector<long double>(NONEBEAD));
747 10 : std::vector<std::vector<long double> > parameter_vac(NONEBEAD);
748 10 : std::vector<std::vector<long double> > parameter_mix(NONEBEAD);
749 10 : std::vector<std::vector<long double> > parameter_solv(NONEBEAD);
750 10 : getOnebeadparam(pdb, atoms, parameter_vac, parameter_mix, parameter_solv, residue_atom);
751 360 : for(unsigned i=0; i<NONEBEAD; ++i) {
752 3500 : for(unsigned k=0; k<numq; ++k) {
753 25200 : for(unsigned j=0; j<parameter_vac[i].size(); ++j) {
754 22050 : FF_tmp_vac[k][i]+= parameter_vac[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
755 : }
756 25200 : for(unsigned j=0; j<parameter_mix[i].size(); ++j) {
757 22050 : FF_tmp_mix[k][i]+= parameter_mix[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
758 : }
759 25200 : for(unsigned j=0; j<parameter_solv[i].size(); ++j) {
760 22050 : FF_tmp_solv[k][i]+= parameter_solv[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
761 : }
762 : }
763 : }
764 2166 : for(unsigned i=0; i<nres; ++i) {
765 2156 : Iq0_vac[i]=parameter_vac[atoi[i]][0];
766 2156 : Iq0_mix[i]=parameter_mix[atoi[i]][0];
767 2156 : Iq0_solv[i]=parameter_solv[atoi[i]][0];
768 : }
769 10 : } else { // SANS
770 : // read built-in ONEBEAD parameters
771 6 : FF_tmp_vac_H.resize(numq,std::vector<long double>(NONEBEAD));
772 6 : FF_tmp_mix_H.resize(numq,std::vector<long double>(NONEBEAD));
773 6 : FF_tmp_solv_H.resize(numq,std::vector<long double>(NONEBEAD));
774 6 : FF_tmp_vac_D.resize(numq,std::vector<long double>(NONEBEAD));
775 6 : FF_tmp_mix_D.resize(numq,std::vector<long double>(NONEBEAD));
776 6 : std::vector<std::vector<long double> > parameter_vac_H(NONEBEAD);
777 6 : std::vector<std::vector<long double> > parameter_mix_H(NONEBEAD);
778 6 : std::vector<std::vector<long double> > parameter_solv_H(NONEBEAD);
779 6 : std::vector<std::vector<long double> > parameter_vac_D(NONEBEAD);
780 6 : std::vector<std::vector<long double> > parameter_mix_D(NONEBEAD);
781 6 : getOnebeadparam_sansH(pdb, atoms, parameter_vac_H, parameter_mix_H, parameter_solv_H);
782 6 : getOnebeadparam_sansD(pdb, atoms, parameter_vac_D, parameter_mix_D);
783 216 : for(unsigned i=0; i<NONEBEAD; ++i) {
784 2100 : for(unsigned k=0; k<numq; ++k) {
785 15120 : for(unsigned j=0; j<parameter_vac_H[i].size(); ++j) { // same number of parameters
786 13230 : FF_tmp_vac_H[k][i]+= parameter_vac_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
787 13230 : FF_tmp_vac_D[k][i]+= parameter_vac_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
788 : }
789 15120 : for(unsigned j=0; j<parameter_mix_H[i].size(); ++j) {
790 13230 : FF_tmp_mix_H[k][i]+= parameter_mix_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
791 13230 : FF_tmp_mix_D[k][i]+= parameter_mix_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
792 : }
793 15120 : for(unsigned j=0; j<parameter_solv_H[i].size(); ++j) {
794 13230 : FF_tmp_solv_H[k][i]+= parameter_solv_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
795 : }
796 : }
797 : }
798 1316 : for(unsigned i=0; i<nres; ++i) {
799 1310 : Iq0_vac_H[i]=parameter_vac_H[atoi[i]][0];
800 1310 : Iq0_mix_H[i]=parameter_mix_H[atoi[i]][0];
801 1310 : Iq0_solv_H[i]=parameter_solv_H[atoi[i]][0];
802 1310 : Iq0_vac_D[i]=parameter_vac_D[atoi[i]][0];
803 1310 : Iq0_mix_D[i]=parameter_mix_D[atoi[i]][0];
804 : }
805 6 : }
806 20 : } else if(martini) {
807 : // read built-in MARTINI parameters
808 16 : FF_tmp.resize(numq,std::vector<long double>(NMARTINI));
809 : std::vector<std::vector<long double> > parameter;
810 8 : parameter.resize(NMARTINI);
811 8 : getMartiniFFparam(atoms, parameter);
812 1072 : for(unsigned i=0; i<NMARTINI; ++i) {
813 17024 : for(unsigned k=0; k<numq; ++k) {
814 127680 : for(unsigned j=0; j<parameter[i].size(); ++j) {
815 111720 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
816 : }
817 : }
818 : }
819 8400 : for(unsigned i=0; i<size; ++i) Iq0+=parameter[atoi[i]][0];
820 8 : Iq0 *= Iq0;
821 20 : } else if(atomistic) {
822 12 : FF_tmp.resize(numq,std::vector<long double>(NTT));
823 12 : if(saxs) Iq0=calculateAFF(atoms, FF_tmp, rho);
824 4 : else Iq0=calculateAFFsans(atoms, FF_tmp, deuter_conc);
825 12 : Iq0 *= Iq0;
826 : }
827 :
828 :
829 : std::vector<double> expint;
830 44 : expint.resize( numq );
831 : ntarget=0;
832 236 : for(unsigned i=0; i<numq; ++i) {
833 440 : if( !parseNumbered( "EXPINT", i+1, expint[i] ) ) break;
834 192 : ntarget++;
835 : }
836 236 : std::transform(expint.begin(), expint.begin() + ntarget, expint.begin(), [scale_expint](double x) { return x / scale_expint; });
837 : bool exp=false;
838 44 : if(ntarget!=numq && ntarget!=0) error("found wrong number of EXPINT values");
839 44 : if(ntarget==numq) exp=true;
840 44 : if(getDoScore()&&!exp) error("with DOSCORE you need to set the EXPINT values");
841 :
842 44 : sigma_res.resize( numq );
843 44 : resolution=false;
844 : ntarget=0;
845 104 : for(unsigned i=0; i<numq; ++i) {
846 200 : if( !parseNumbered( "SIGMARES", i+1, sigma_res[i] ) ) break;
847 60 : ntarget++;
848 : }
849 44 : if(ntarget!=numq && ntarget!=0) error("found wrong number of SIGMARES values");
850 44 : if(ntarget==numq) resolution=true;
851 :
852 44 : if(gpu && resolution) error("Resolution function is not supported in GPUs");
853 :
854 44 : Nj = 10;
855 44 : parse("N", Nj);
856 44 : if (Nj < 2) error("N should be larger than 1");
857 44 : if (resolution) log.printf(" Resolution function with N: %d\n", Nj);
858 :
859 44 : if(!gpu) {
860 44 : FF_rank.resize(numq);
861 : unsigned n_atom_types;
862 44 : if(onebead) {
863 16 : FF_value.resize(nres,std::vector<double>(numq));
864 : n_atom_types=NONEBEAD;
865 16 : if(saxs) {
866 10 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
867 10 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
868 20 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
869 : } else {
870 6 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
871 6 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
872 6 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
873 6 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
874 12 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
875 : }
876 : } else {
877 56 : FF_value.resize(size,std::vector<double>(numq));
878 : }
879 488 : for(unsigned k=0; k<numq; ++k) {
880 444 : if(!onebead) {
881 523104 : for(unsigned i=0; i<size; ++i) FF_value[i][k] = static_cast<double>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
882 523104 : for(unsigned i=0; i<size; ++i) FF_rank[k] += FF_value[i][k]*FF_value[i][k];
883 : } else {
884 144 : if(saxs) {
885 3240 : for(unsigned i=0; i<n_atom_types; ++i) {
886 3150 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
887 3150 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
888 3150 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
889 : }
890 : } else { // SANS
891 1944 : for(unsigned i=0; i<n_atom_types; ++i) {
892 1890 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
893 1890 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
894 1890 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
895 1890 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
896 1890 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
897 : }
898 : }
899 : }
900 : }
901 : } else {
902 : unsigned n_atom_types;
903 0 : if(onebead) {
904 0 : FFf_value.resize(numq,std::vector<float>(nres));
905 : n_atom_types=NONEBEAD;
906 0 : if(saxs) {
907 0 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
908 0 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
909 0 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
910 : } else { // SANS
911 0 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
912 0 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
913 0 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
914 0 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
915 0 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
916 : }
917 : } else {
918 0 : FFf_value.resize(numq,std::vector<float>(size));
919 : }
920 0 : for(unsigned k=0; k<numq; ++k) {
921 0 : if(!onebead) {
922 0 : for(unsigned i=0; i<size; ++i) {
923 0 : FFf_value[k][i] = static_cast<float>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
924 : }
925 : } else {
926 0 : if(saxs) {
927 0 : for(unsigned i=0; i<n_atom_types; ++i) {
928 0 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
929 0 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
930 0 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
931 : }
932 : } else { // SANS
933 0 : for(unsigned i=0; i<n_atom_types; ++i) {
934 0 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
935 0 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
936 0 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
937 0 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
938 0 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
939 : }
940 : }
941 : }
942 : }
943 : }
944 :
945 44 : if(!getDoScore()) {
946 408 : for(unsigned i=0; i<numq; ++i) {
947 372 : std::string num; Tools::convert(i,num);
948 744 : addComponentWithDerivatives("q-"+num);
949 744 : componentIsNotPeriodic("q-"+num);
950 : }
951 36 : if(exp) {
952 128 : for(unsigned i=0; i<numq; ++i) {
953 120 : std::string num; Tools::convert(i,num);
954 240 : addComponent("exp-"+num);
955 120 : componentIsNotPeriodic("exp-"+num);
956 120 : Value* comp=getPntrToComponent("exp-"+num);
957 120 : comp->set(expint[i]);
958 : }
959 : }
960 : } else {
961 80 : for(unsigned i=0; i<numq; ++i) {
962 72 : std::string num; Tools::convert(i,num);
963 144 : addComponent("q-"+num);
964 144 : componentIsNotPeriodic("q-"+num);
965 : }
966 80 : for(unsigned i=0; i<numq; ++i) {
967 72 : std::string num; Tools::convert(i,num);
968 144 : addComponent("exp-"+num);
969 72 : componentIsNotPeriodic("exp-"+num);
970 72 : Value* comp=getPntrToComponent("exp-"+num);
971 72 : comp->set(expint[i]);
972 : }
973 : }
974 :
975 : // convert units to nm^-1
976 488 : for(unsigned i=0; i<numq; ++i) {
977 444 : q_list[i]=q_list[i]*10.0; // factor 10 to convert from A^-1 to nm^-1
978 444 : if (resolution) sigma_res[i]=sigma_res[i]*10.0;
979 : }
980 :
981 : // compute resolution function after converting units
982 44 : if (resolution) {
983 4 : qj_list.resize(numq, std::vector<double>(Nj));
984 4 : Rij.resize(numq, std::vector<double>(Nj));
985 : // compute Rij and qj_list
986 4 : resolution_function();
987 : }
988 :
989 44 : log<<" Bibliography ";
990 44 : if(onebead) {
991 32 : log<<plumed.cite("Ballabio, Paissoni, Bollati, de Rosa, Capelli, Camilloni, J. Chem. Theory Comput., 19, 22, 8401-8413 (2023)");
992 : }
993 44 : if(martini) {
994 16 : log<<plumed.cite("Niebling, Björling, Westenhoff, J. Appl. Crystallogr., 47, 1190–1198 (2014)");
995 16 : log<<plumed.cite("Paissoni, Jussupow, Camilloni, J. Appl. Crystallogr., 52, 394-402 (2019)");
996 : }
997 44 : if(atomistic) {
998 24 : log<<plumed.cite("Fraser, MacRae, Suzuki, J. Appl. Crystallogr., 11, 693–694 (1978)");
999 24 : log<<plumed.cite("Brown, Fox, Maslen, O'Keefe, Willis, International Tables for Crystallography, C, 554–595 (International Union of Crystallography, 2006)");
1000 : }
1001 44 : if(resolution) {
1002 8 : log<<plumed.cite("Pedersen, Posselt, Mortensen, J. Appl. Crystallogr., 23, 321–333 (1990)");
1003 : }
1004 :
1005 88 : log<< plumed.cite("Bonomi, Camilloni, Bioinformatics, 33, 3999 (2017)");
1006 44 : log<<"\n";
1007 :
1008 44 : requestAtoms(atoms, false);
1009 :
1010 44 : if(getDoScore()) {
1011 8 : setParameters(expint);
1012 8 : Initialise(numq);
1013 : }
1014 44 : setDerivatives();
1015 44 : checkRead();
1016 88 : }
1017 :
1018 : // calculates SASA neighbor list
1019 12 : void SAXS::calcNlist(std::vector<std::vector<int> > &Nlist)
1020 : {
1021 : unsigned natoms = getNumberOfAtoms();
1022 42680 : for(unsigned i = 0; i < natoms; ++i) {
1023 42668 : if (LCPOparam[i].size()>0) {
1024 36236236 : for (unsigned j = 0; j < i; ++j) {
1025 36216204 : if (LCPOparam[j].size()>0) {
1026 16741476 : double Delta_ij_mod = modulo(delta(getPosition(i), getPosition(j)))*10.;
1027 16741476 : double overlapD = LCPOparam[i][0]+LCPOparam[j][0];
1028 16741476 : if(Delta_ij_mod < overlapD) {
1029 391272 : Nlist.at(i).push_back(j);
1030 391272 : Nlist.at(j).push_back(i);
1031 : }
1032 : }
1033 : }
1034 : }
1035 : }
1036 :
1037 12 : }
1038 :
1039 : // calculates SASA according to LCPO algorithm
1040 12 : void SAXS::sasa_calculate(std::vector<bool> &solv_res) {
1041 : unsigned natoms = getNumberOfAtoms();
1042 12 : std::vector<std::vector<int> > Nlist(natoms);
1043 12 : calcNlist(Nlist);
1044 12 : std::vector<double> sasares(nres, 0.);
1045 :
1046 12 : #pragma omp parallel num_threads(OpenMP::getNumThreads())
1047 : {
1048 : std::vector<double> private_sasares(nres, 0.);
1049 : #pragma omp for
1050 : for (unsigned i = 0; i < natoms; ++i) {
1051 : if (LCPOparam[i].size() > 1 && LCPOparam[i][1] > 0.0) {
1052 : double Aij = 0.0;
1053 : double Aijk = 0.0;
1054 : double Ajk = 0.0;
1055 : double ri = LCPOparam[i][0];
1056 : double S1 = 4.*M_PI*ri*ri;
1057 : for (unsigned j = 0; j < Nlist[i].size(); ++j) {
1058 : double d_ij = modulo(delta( getPosition(i), getPosition(Nlist[i][j]) ))*10.;
1059 : double rj = LCPOparam[Nlist[i][j]][0];
1060 : double Aijt = (2.*M_PI*ri*(ri-d_ij/2.-((ri*ri-rj*rj)/(2.*d_ij))));
1061 : double Ajkt = 0.0;
1062 : for (unsigned k = 0; k < Nlist[Nlist[i][j]].size(); ++k) {
1063 : if (std::find (Nlist[i].begin(), Nlist[i].end(), Nlist[Nlist[i][j]][k]) != Nlist[i].end()) {
1064 : double d_jk = modulo(delta( getPosition(Nlist[i][j]), getPosition(Nlist[Nlist[i][j]][k]) ))*10.;
1065 : double rk = LCPOparam[Nlist[Nlist[i][j]][k]][0];
1066 : double sjk = (2.*M_PI*rj*(rj-d_jk/2.-((rj*rj-rk*rk)/(2.*d_jk))));
1067 : Ajkt += sjk;
1068 : }
1069 : }
1070 : Aijk += (Aijt * Ajkt);
1071 : Aij += Aijt;
1072 : Ajk += Ajkt;
1073 : }
1074 : double sasai = (LCPOparam[i][1]*S1+LCPOparam[i][2]*Aij+LCPOparam[i][3]*Ajk+LCPOparam[i][4]*Aijk);
1075 : if (sasai > 0) {
1076 : private_sasares[residue_atom[i]] += sasai / 100.0;
1077 : }
1078 : }
1079 : }
1080 : #pragma omp critical
1081 : { // combining private_sasares into sasares
1082 : for (unsigned i = 0; i < nres; ++i) {
1083 : sasares[i] += private_sasares[i];
1084 : }
1085 : }
1086 : }
1087 2632 : for(unsigned i=0; i<nres; ++i) { // updating solv_res based on sasares
1088 2620 : if(sasares[i]>sasa_cutoff) solv_res[i] = 1;
1089 : else solv_res[i] = 0;
1090 : }
1091 12 : }
1092 :
1093 0 : void SAXS::calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv)
1094 : {
1095 : #ifdef __PLUMED_HAS_ARRAYFIRE
1096 : unsigned size;
1097 : if(onebead) size = nres;
1098 : else size = getNumberOfAtoms();
1099 : const unsigned numq = q_list.size();
1100 :
1101 : std::vector<float> sum;
1102 : sum.resize(numq);
1103 :
1104 : std::vector<float> dd;
1105 : dd.resize(size*3*numq);
1106 :
1107 : // on gpu only the master rank run the calculation
1108 : if(comm.Get_rank()==0) {
1109 : std::vector<float> posi;
1110 : posi.resize(3*size);
1111 : #pragma omp parallel for num_threads(OpenMP::getNumThreads())
1112 : for (unsigned i=0; i<size; ++i) {
1113 : const Vector tmp = pos[i];
1114 : posi[3*i] = static_cast<float>(tmp[0]);
1115 : posi[3*i+1] = static_cast<float>(tmp[1]);
1116 : posi[3*i+2] = static_cast<float>(tmp[2]);
1117 : }
1118 :
1119 : // create array a and b containing atomic coordinates
1120 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
1121 : af::setDevice(afcu::getNativeId(deviceid));
1122 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
1123 : af::setDevice(afcl::getNativeId(deviceid));
1124 : #else
1125 : af::setDevice(deviceid);
1126 : #endif
1127 : // 3,size,1,1
1128 : af::array pos_a = af::array(3, size, &posi.front());
1129 : // size,3,1,1
1130 : pos_a = af::moddims(pos_a.T(), size, 3, 1);
1131 : // size,3,1,1
1132 : af::array pos_b = pos_a(af::span, af::span);
1133 : // size,1,3,1
1134 : pos_a = af::moddims(pos_a, size, 1, 3);
1135 : // 1,size,3,1
1136 : pos_b = af::moddims(pos_b, 1, size, 3);
1137 :
1138 : // size,size,3,1
1139 : af::array pos_a_t = af::tile(pos_a, 1, size, 1);
1140 : // size,size,3,1: for some reason we need this
1141 : pos_a_t = af::moddims(pos_a_t, size, size, 3);
1142 : // size,size,3,1
1143 : af::array pos_b_t = af::tile(pos_b, size, 1, 1);
1144 : // size,size,3,1: for some reason we need this
1145 : pos_b_t = af::moddims(pos_b_t, size, size, 3);
1146 : // size,size,3,1
1147 : af::array xyz_dist = pos_a_t - pos_b_t;
1148 : // size,size,1,1
1149 : af::array square = af::sum(xyz_dist*xyz_dist,2);
1150 : // size,size,1,1
1151 : af::array dist_sqrt = af::sqrt(square);
1152 : // replace the zero of square with one to avoid nan in the derivatives (the number does not matter because this are multiplied by zero)
1153 : af::replace(square,!(af::iszero(square)),1.);
1154 : // size,size,3,1
1155 : xyz_dist = xyz_dist / af::tile(square, 1, 1, 3);
1156 : // numq,1,1,1
1157 : af::array sum_device = af::constant(0, numq, f32);
1158 : // numq,size,3,1
1159 : af::array deriv_device = af::constant(0, numq, size, 3, f32);
1160 :
1161 : for (unsigned k=0; k<numq; ++k) {
1162 : // calculate FF matrix
1163 : // size,1,1,1
1164 : af::array AFF_value(size, &FFf_value[k].front());
1165 : // size,size,1,1
1166 : af::array FFdist_mod = af::tile(AFF_value(af::span), 1, size)*af::transpose(af::tile(AFF_value(af::span), 1, size));
1167 :
1168 : // get q
1169 : const float qvalue = static_cast<float>(q_list[k]);
1170 : // size,size,1,1
1171 : af::array dist_q = qvalue*dist_sqrt;
1172 : // size,size,1
1173 : af::array dist_sin = af::sin(dist_q)/dist_q;
1174 : af::replace(dist_sin,!(af::isNaN(dist_sin)),1.);
1175 : // 1,1,1,1
1176 : sum_device(k) = af::sum(af::flat(dist_sin)*af::flat(FFdist_mod));
1177 :
1178 : // size,size,1,1
1179 : af::array tmp = FFdist_mod*(dist_sin - af::cos(dist_q));
1180 : // size,size,3,1
1181 : af::array dd_all = af::tile(tmp, 1, 1, 3)*xyz_dist;
1182 : // it should become 1,size,3
1183 : deriv_device(k, af::span, af::span) = af::sum(dd_all,0);
1184 : }
1185 :
1186 : // read out results
1187 : sum_device.host(&sum.front());
1188 :
1189 : deriv_device = af::reorder(deriv_device, 2, 1, 0);
1190 : deriv_device = af::flat(deriv_device);
1191 : deriv_device.host(&dd.front());
1192 : }
1193 :
1194 : comm.Bcast(dd, 0);
1195 : comm.Bcast(sum, 0);
1196 :
1197 : for(unsigned k=0; k<numq; ++k) {
1198 : std::string num; Tools::convert(k,num);
1199 : Value* val=getPntrToComponent("q-"+num);
1200 : val->set(sum[k]);
1201 : if(getDoScore()) setCalcData(k, sum[k]);
1202 : for(unsigned i=0; i<size; ++i) {
1203 : const unsigned di = k*size*3+i*3;
1204 : deriv[k*size+i] = Vector(2.*dd[di+0],2.*dd[di+1],2.*dd[di+2]);
1205 : }
1206 : }
1207 : #endif
1208 0 : }
1209 :
1210 204 : void SAXS::calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv)
1211 : {
1212 : unsigned size;
1213 204 : if(onebead) size = nres;
1214 : else size = getNumberOfAtoms();
1215 204 : const unsigned numq = q_list.size();
1216 :
1217 204 : unsigned stride = comm.Get_size();
1218 204 : unsigned rank = comm.Get_rank();
1219 204 : if(serial) {
1220 : stride = 1;
1221 : rank = 0;
1222 : }
1223 204 : std::vector<double> sum(numq,0);
1224 204 : unsigned nt=OpenMP::getNumThreads();
1225 204 : #pragma omp parallel num_threads(nt)
1226 : {
1227 : std::vector<Vector> omp_deriv(deriv.size());
1228 : std::vector<double> omp_sum(numq,0);
1229 : #pragma omp for nowait
1230 : for (unsigned i=rank; i<size-1; i+=stride) {
1231 : Vector posi = pos[i];
1232 : for (unsigned j=i+1; j<size ; ++j) {
1233 : Vector c_distances = delta(posi,pos[j]);
1234 : double m_distances = c_distances.modulo();
1235 : c_distances = c_distances/m_distances/m_distances;
1236 : for (unsigned k=0; k<numq; ++k) {
1237 : unsigned kdx=k*size;
1238 : double qdist = q_list[k]*m_distances;
1239 : double FFF = 2.*FF_value[i][k]*FF_value[j][k];
1240 : double tsq = std::sin(qdist)/qdist;
1241 : double tcq = std::cos(qdist);
1242 : double tmp = FFF*(tcq-tsq);
1243 : Vector dd = c_distances*tmp;
1244 : if(nt>1) {
1245 : omp_deriv[kdx+i] -=dd;
1246 : omp_deriv[kdx+j] +=dd;
1247 : omp_sum[k] += FFF*tsq;
1248 : } else {
1249 : deriv[kdx+i] -= dd;
1250 : deriv[kdx+j] += dd;
1251 : sum[k] += FFF*tsq;
1252 : }
1253 : }
1254 : }
1255 : }
1256 : #pragma omp critical
1257 : if(nt>1) {
1258 : for(unsigned i=0; i<deriv.size(); ++i) deriv[i]+=omp_deriv[i];
1259 : for(unsigned k=0; k<numq; ++k) sum[k]+=omp_sum[k];
1260 : }
1261 : }
1262 :
1263 204 : if(!serial) {
1264 200 : comm.Sum(&deriv[0][0], 3*deriv.size());
1265 200 : comm.Sum(&sum[0], numq);
1266 : }
1267 :
1268 204 : if (resolution) {
1269 : // get spline for scatering curve
1270 4 : std::vector<SplineCoeffs> scatt_coeffs = spline_coeffs(q_list, sum);
1271 :
1272 : // get spline for the derivatives
1273 : // copy the deriv to a new vector and zero deriv
1274 4 : std::vector<Vector> old_deriv(deriv);
1275 4 : memset(&deriv[0][0], 0.0, deriv.size() * sizeof deriv[0]);
1276 :
1277 4 : unsigned nt=OpenMP::getNumThreads();
1278 274 : for (unsigned i=rank; i<size; i+=stride) {
1279 270 : std::vector<double> deriv_i_x(numq);
1280 270 : std::vector<double> deriv_i_y(numq);
1281 270 : std::vector<double> deriv_i_z(numq);
1282 :
1283 : std::vector<SplineCoeffs> deriv_coeffs_x;
1284 : std::vector<SplineCoeffs> deriv_coeffs_y;
1285 : std::vector<SplineCoeffs> deriv_coeffs_z;
1286 4320 : for (unsigned k=0; k<numq; k++) {
1287 4050 : unsigned kdx = k*size;
1288 4050 : deriv_i_x[k] = old_deriv[kdx+i][0];
1289 4050 : deriv_i_y[k] = old_deriv[kdx+i][1];
1290 4050 : deriv_i_z[k] = old_deriv[kdx+i][2];
1291 : }
1292 270 : deriv_coeffs_x = spline_coeffs(q_list, deriv_i_x);
1293 270 : deriv_coeffs_y = spline_coeffs(q_list, deriv_i_y);
1294 270 : deriv_coeffs_z = spline_coeffs(q_list, deriv_i_z);
1295 :
1296 : // compute derivative with the smearing using the resolution function
1297 270 : #pragma omp parallel for num_threads(nt)
1298 : for (unsigned k=0; k<numq; k++) {
1299 : unsigned kdx = k*size;
1300 : double dq = qj_list[k][1] - qj_list[k][0];
1301 : for (unsigned j=0; j<Nj; j++) {
1302 : deriv[kdx+i][0] += Rij[k][j] * interpolation(deriv_coeffs_x, qj_list[k][j]) * dq;
1303 : deriv[kdx+i][1] += Rij[k][j] * interpolation(deriv_coeffs_y, qj_list[k][j]) * dq;
1304 : deriv[kdx+i][2] += Rij[k][j] * interpolation(deriv_coeffs_z, qj_list[k][j]) * dq;
1305 : }
1306 : }
1307 : }
1308 :
1309 4 : if(!serial) {
1310 4 : comm.Sum(&deriv[0][0], 3*deriv.size());
1311 : }
1312 :
1313 : // compute the smeared spectra using the resolution function
1314 4 : #pragma omp parallel for num_threads(nt)
1315 : for (unsigned i=0; i<numq; i++) {
1316 : sum[i] = 0.;
1317 : double dq = qj_list[i][1] - qj_list[i][0];
1318 : for (unsigned j=0; j<Nj; j++) {
1319 : sum[i] += Rij[i][j] * interpolation(scatt_coeffs, qj_list[i][j]) * dq;
1320 : }
1321 : }
1322 : }
1323 :
1324 2088 : for (unsigned k=0; k<numq; ++k) {
1325 1884 : sum[k]+=FF_rank[k];
1326 1884 : std::string num; Tools::convert(k,num);
1327 1884 : Value* val=getPntrToComponent("q-"+num);
1328 1884 : val->set(sum[k]);
1329 1884 : if(getDoScore()) setCalcData(k, sum[k]);
1330 : }
1331 204 : }
1332 :
1333 204 : void SAXS::calculate()
1334 : {
1335 204 : if(pbc) makeWhole();
1336 :
1337 204 : const size_t size = getNumberOfAtoms();
1338 : const size_t numq = q_list.size();
1339 :
1340 : // these are the derivatives associated to the coarse graining
1341 204 : std::vector<Vector> aa_deriv(size);
1342 :
1343 : size_t beads_size = size;
1344 204 : if(onebead) beads_size = nres;
1345 : // these are the derivatives particle,q
1346 204 : std::vector<Vector> bd_deriv(numq*beads_size);
1347 :
1348 204 : std::vector<Vector> beads_pos(beads_size);
1349 204 : if(onebead) {
1350 3482 : for(unsigned resid=0; resid<nres; resid++) {
1351 : double sum_mass = 0.;
1352 3466 : Vector sum_pos = Vector(0,0,0);
1353 12278134 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1354 12274668 : if(residue_atom[atom_id] == resid) {
1355 56586 : aa_deriv[atom_id] = Vector(atoms_masses[atom_id],atoms_masses[atom_id],atoms_masses[atom_id]);
1356 56586 : sum_pos += atoms_masses[atom_id] * getPosition(atom_id); // getPosition(first_atom+atom_id)
1357 56586 : sum_mass += atoms_masses[atom_id];
1358 : }
1359 : }
1360 3466 : beads_pos[resid] = sum_pos/sum_mass;
1361 12278134 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1362 12274668 : if(residue_atom[atom_id] == resid) {
1363 56586 : aa_deriv[atom_id] /= sum_mass;
1364 : }
1365 : }
1366 : }
1367 : // SASA
1368 16 : std::vector<bool> solv_res(nres, 0);
1369 16 : if(saxs) {
1370 10 : if(getStep()%solv_stride == 0 || isFirstStep) {
1371 10 : isFirstStep = 0;
1372 10 : if(rho_corr!=rho) sasa_calculate(solv_res);
1373 10 : Iq0=0.;
1374 2166 : for(unsigned i=0; i<nres; ++i) {
1375 2156 : if(solv_res[i] == 1 ) {
1376 260 : Iq0 += std::sqrt((Iq0_vac[i]+(rho_corr*rho_corr)*Iq0_solv[i]-rho_corr*Iq0_mix[i]));
1377 : } else {
1378 1896 : Iq0 += std::sqrt((Iq0_vac[i]+(rho*rho)*Iq0_solv[i]-rho*Iq0_mix[i]));
1379 : }
1380 : }
1381 : // Form Factors
1382 100 : for(unsigned k=0; k<numq; ++k) {
1383 19494 : for(unsigned i=0; i<nres; ++i) {
1384 19404 : if(!gpu) {
1385 19404 : if(solv_res[i] == 0) { // buried
1386 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;
1387 : } else { // surface
1388 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;
1389 : }
1390 : } else {
1391 0 : if(solv_res[i] == 0) { // buried
1392 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);
1393 : } else { // surface
1394 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);
1395 : }
1396 : }
1397 : }
1398 : }
1399 10 : if(!gpu) {
1400 100 : for(unsigned k=0; k<numq; ++k) {
1401 90 : FF_rank[k]=0.;
1402 19494 : for(unsigned i=0; i<nres; ++i) {
1403 19404 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1404 : }
1405 : }
1406 : }
1407 : }
1408 : } else { // SANS
1409 6 : std::vector<bool> deut_res(nres, 0);
1410 6 : double solv_sc_length = 0.1*(0.580 + 2.*((1. - deuter_conc) * (-0.374) + deuter_conc * 0.667)); // per water electron (10 electrons)
1411 6 : double rho_sans = rho * solv_sc_length;
1412 6 : double rho_sans_corr = rho_corr * solv_sc_length;
1413 6 : if(getStep()%solv_stride == 0 || isFirstStep) {
1414 6 : isFirstStep = 0;
1415 6 : if(deuter_conc!=0.||rho != rho_corr) sasa_calculate(solv_res);
1416 6 : Iq0=0.;
1417 1316 : for(unsigned i=0; i<nres; ++i) {
1418 1310 : if(solv_res[i] == 1 ) {
1419 260 : if(rand()/RAND_MAX<deuter_conc) {
1420 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]));
1421 : deut_res[i] = 1;
1422 : } else {
1423 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]));
1424 : }
1425 : } else {
1426 1050 : Iq0 += std::sqrt(std::fabs(Iq0_vac_H[i] + rho_sans*rho_sans*Iq0_solv_H[i] - rho_sans*Iq0_mix_H[i]));
1427 : }
1428 : }
1429 : // Form Factors
1430 60 : for(unsigned k=0; k<numq; ++k) {
1431 11844 : for(unsigned i=0; i<nres; ++i) {
1432 11790 : if(!gpu) {
1433 11790 : if(solv_res[i] == 0) { // hydrogen
1434 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;
1435 : } else {
1436 2340 : if(deut_res[i] == 0) {
1437 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;
1438 : } else {
1439 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;
1440 : }
1441 : }
1442 : } else {
1443 0 : if(solv_res[i] == 0) { // hydrogen
1444 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);
1445 : } else {
1446 0 : if(deut_res[i] == 0) {
1447 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);
1448 : } else {
1449 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);
1450 : }
1451 : }
1452 : }
1453 : }
1454 : }
1455 6 : if(!gpu) {
1456 60 : for(unsigned k=0; k<numq; ++k) {
1457 54 : FF_rank[k]=0.;
1458 11844 : for(unsigned i=0; i<nres; ++i) {
1459 11790 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1460 : }
1461 : }
1462 : }
1463 : }
1464 : }
1465 : // not ONEBEAD
1466 : } else {
1467 81024 : for(unsigned i=0; i<size; ++i) {
1468 80836 : beads_pos[i] = getPosition(i);
1469 : }
1470 376 : aa_deriv = std::vector<Vector>(size,(Vector(1,1,1)));
1471 : }
1472 :
1473 204 : if(gpu) calculate_gpu(beads_pos, bd_deriv);
1474 204 : else calculate_cpu(beads_pos, bd_deriv);
1475 :
1476 204 : if(getDoScore()) {
1477 : /* Metainference */
1478 168 : double score = getScore();
1479 168 : setScore(score);
1480 : }
1481 :
1482 2088 : for (unsigned k=0; k<numq; ++k) {
1483 1884 : const unsigned kdx=k*beads_size;
1484 1884 : Tensor deriv_box;
1485 : Value* val;
1486 1884 : if(!getDoScore()) {
1487 372 : std::string num; Tools::convert(k,num);
1488 372 : val=getPntrToComponent("q-"+num);
1489 :
1490 372 : if(onebead) {
1491 : unsigned atom_id=0;
1492 31338 : for(unsigned i=0; i<beads_size; ++i) {
1493 540468 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1494 509274 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1495 509274 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1496 509274 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1497 509274 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1498 509274 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1499 1018548 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1500 509274 : atom_id++;
1501 : }
1502 : }
1503 : } else {
1504 501636 : for(unsigned i=0; i<beads_size; ++i) {
1505 501408 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0], \
1506 501408 : bd_deriv[kdx+i][1], \
1507 501408 : bd_deriv[kdx+i][2]) );
1508 1002816 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0], \
1509 501408 : bd_deriv[kdx+i][1], \
1510 1002816 : bd_deriv[kdx+i][2]) );
1511 : }
1512 : }
1513 : } else {
1514 1512 : val=getPntrToComponent("score");
1515 1512 : if(onebead) {
1516 : unsigned atom_id=0;
1517 0 : for(unsigned i=0; i<beads_size; ++i) {
1518 0 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1519 0 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1520 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1521 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1522 0 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1523 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1524 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1525 0 : atom_id++;
1526 : }
1527 : }
1528 : } else {
1529 450828 : for(unsigned i=0; i<beads_size; ++i) {
1530 449316 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1531 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1532 449316 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1533 898632 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1534 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1535 898632 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1536 : }
1537 : }
1538 : }
1539 1884 : setBoxDerivatives(val, -deriv_box);
1540 : }
1541 204 : }
1542 :
1543 204 : void SAXS::update() {
1544 : // write status file
1545 204 : if(getWstride()>0&& (getStep()%getWstride()==0 || getCPT()) ) writeStatus();
1546 204 : }
1547 :
1548 16 : unsigned SAXS::getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms) {
1549 16 : std::vector<std::string> chains; pdb.getChainNames( chains );
1550 : std::vector<std::vector<std::string> > AtomResidueName;
1551 :
1552 : // cycle over chains
1553 42 : for(unsigned i=0; i<chains.size(); ++i) {
1554 : unsigned start, end;
1555 : std::string errmsg;
1556 26 : pdb.getResidueRange(chains[i], start, end, errmsg);
1557 26 : AtomResidueName.resize(2);
1558 : // cycle over residues
1559 3346 : for(unsigned res=start; res<=end; res++) {
1560 3320 : std::string Rname = pdb.getResidueName(res, chains[i]);
1561 3320 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
1562 3320 : std::vector<AtomNumber> res_atoms = pdb.getAtomsInResidue(res, chains[i]);
1563 3320 : std::vector<unsigned> tmp_residue_atom; tmp_residue_atom.resize(3,0);
1564 : // cycle over atoms
1565 59906 : for(unsigned a=0; a<res_atoms.size(); a++) {
1566 : // operations shared among all beads
1567 56586 : std::string Aname=pdb.getAtomName(res_atoms[a]);
1568 56586 : AtomResidueName[0].push_back(Aname);
1569 56586 : AtomResidueName[1].push_back(Rname);
1570 : char type;
1571 56586 : char first = Aname.at(0);
1572 : // We assume that element symbol is first letter, if not a number
1573 56586 : if (!isdigit(first)) {
1574 : type = first;
1575 : // otherwise is the second
1576 : } else {
1577 0 : type = Aname.at(1);
1578 : }
1579 56586 : if (type == 'H') atoms_masses.push_back(1.008);
1580 16594 : else if(type == 'C') atoms_masses.push_back(12.011);
1581 4416 : else if(type == 'N') atoms_masses.push_back(14.007);
1582 5316 : else if(type == 'O') atoms_masses.push_back(15.999);
1583 132 : else if(type == 'S') atoms_masses.push_back(32.065);
1584 68 : else if(type == 'P') atoms_masses.push_back(30.974);
1585 : else {
1586 0 : error("Unknown element in mass extraction\n");
1587 : }
1588 113172 : if(pdb.allowedResidue("protein",Rname)) {
1589 54262 : residue_atom.push_back(atoms_per_bead.size());
1590 : } else {
1591 : // check for nucleic acids
1592 : // Pentose bead
1593 10450 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" || Aname=="O3'" ||
1594 8500 : Aname=="C3'" || Aname=="O2'" || Aname=="C2'" || Aname=="C1'" || Aname=="H5'" ||
1595 6628 : Aname=="H5''" || Aname=="H4'" || Aname=="H3'" || Aname=="H2'" || Aname=="H2''" ||
1596 5732 : Aname=="H2'2" || Aname=="H1'" || Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" ||
1597 7634 : Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ||
1598 : Aname=="H3T" ) {
1599 1262 : residue_atom.push_back(atoms_per_bead.size()+0);
1600 1262 : tmp_residue_atom[0]++;
1601 : }
1602 : // Nucleobase bead
1603 4686 : else if(Aname=="N1" || Aname=="N2" || Aname=="N3" || Aname=="N4" || Aname=="N6" ||
1604 4062 : Aname=="N7" || Aname=="N9" || Aname=="C2" || Aname=="C4" || Aname=="C5" ||
1605 2736 : Aname=="C6" || Aname=="C7" || Aname=="C8" || Aname=="O2" || Aname=="O4" ||
1606 1956 : Aname=="O6" || Aname=="H1" || Aname=="H2" || Aname=="H3" || Aname=="H5" ||
1607 1020 : Aname=="H6" || Aname=="H8" || Aname=="H21" || Aname=="H22" || Aname=="H41" ||
1608 2082 : Aname=="H42" || Aname=="H61" || Aname=="H62" || Aname=="H71" || Aname=="H72" ||
1609 : Aname=="H73" ) {
1610 858 : residue_atom.push_back(atoms_per_bead.size()+1);
1611 858 : tmp_residue_atom[1]++;
1612 : }
1613 : // PO bead
1614 204 : else if(Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" || Aname=="O1P" ||
1615 204 : Aname=="O2P" || Aname=="O3P" || Aname=="HP" || Aname=="HOP3" ) {
1616 204 : residue_atom.push_back(atoms_per_bead.size()+2);
1617 204 : tmp_residue_atom[2]++;
1618 : }
1619 : // error
1620 0 : else error("Atom name "+Aname+" cannot be indexed to any bead. Check the PDB.");
1621 : }
1622 : }
1623 6640 : if(pdb.allowedResidue("protein",Rname)) {
1624 3242 : atoms_per_bead.push_back(res_atoms.size());
1625 : } else {
1626 78 : atoms_per_bead.push_back(tmp_residue_atom[0]);
1627 78 : atoms_per_bead.push_back(tmp_residue_atom[1]);
1628 78 : if(tmp_residue_atom[2]>0) atoms_per_bead.push_back(tmp_residue_atom[2]);
1629 : }
1630 : }
1631 : }
1632 16 : readLCPOparam(AtomResidueName, atoms.size());
1633 16 : return atoms_per_bead.size();
1634 16 : }
1635 :
1636 8 : void SAXS::getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter)
1637 : {
1638 8 : parameter[ALA_BB].push_back(9.045);
1639 8 : parameter[ALA_BB].push_back(-0.098114);
1640 8 : parameter[ALA_BB].push_back(7.54281);
1641 8 : parameter[ALA_BB].push_back(-1.97438);
1642 8 : parameter[ALA_BB].push_back(-8.32689);
1643 8 : parameter[ALA_BB].push_back(6.09318);
1644 8 : parameter[ALA_BB].push_back(-1.18913);
1645 :
1646 8 : parameter[ARG_BB].push_back(10.729);
1647 8 : parameter[ARG_BB].push_back(-0.0392574);
1648 8 : parameter[ARG_BB].push_back(1.15382);
1649 8 : parameter[ARG_BB].push_back(-0.155999);
1650 8 : parameter[ARG_BB].push_back(-2.43619);
1651 8 : parameter[ARG_BB].push_back(1.72922);
1652 8 : parameter[ARG_BB].push_back(-0.33799);
1653 :
1654 8 : parameter[ARG_SC1].push_back(-2.796);
1655 8 : parameter[ARG_SC1].push_back(0.472403);
1656 8 : parameter[ARG_SC1].push_back(8.07424);
1657 8 : parameter[ARG_SC1].push_back(4.37299);
1658 8 : parameter[ARG_SC1].push_back(-10.7398);
1659 8 : parameter[ARG_SC1].push_back(4.95677);
1660 8 : parameter[ARG_SC1].push_back(-0.725797);
1661 :
1662 8 : parameter[ARG_SC2].push_back(15.396);
1663 8 : parameter[ARG_SC2].push_back(0.0636736);
1664 8 : parameter[ARG_SC2].push_back(-1.258);
1665 8 : parameter[ARG_SC2].push_back(1.93135);
1666 8 : parameter[ARG_SC2].push_back(-4.45031);
1667 8 : parameter[ARG_SC2].push_back(2.49356);
1668 8 : parameter[ARG_SC2].push_back(-0.410721);
1669 :
1670 8 : parameter[ASN_BB].push_back(10.738);
1671 8 : parameter[ASN_BB].push_back(-0.0402162);
1672 8 : parameter[ASN_BB].push_back(1.03007);
1673 8 : parameter[ASN_BB].push_back(-0.254174);
1674 8 : parameter[ASN_BB].push_back(-2.12015);
1675 8 : parameter[ASN_BB].push_back(1.55535);
1676 8 : parameter[ASN_BB].push_back(-0.30963);
1677 :
1678 8 : parameter[ASN_SC1].push_back(9.249);
1679 8 : parameter[ASN_SC1].push_back(-0.0148678);
1680 8 : parameter[ASN_SC1].push_back(5.52169);
1681 8 : parameter[ASN_SC1].push_back(0.00853212);
1682 8 : parameter[ASN_SC1].push_back(-6.71992);
1683 8 : parameter[ASN_SC1].push_back(3.93622);
1684 8 : parameter[ASN_SC1].push_back(-0.64973);
1685 :
1686 8 : parameter[ASP_BB].push_back(10.695);
1687 8 : parameter[ASP_BB].push_back(-0.0410247);
1688 8 : parameter[ASP_BB].push_back(1.03656);
1689 8 : parameter[ASP_BB].push_back(-0.298558);
1690 8 : parameter[ASP_BB].push_back(-2.06064);
1691 8 : parameter[ASP_BB].push_back(1.53495);
1692 8 : parameter[ASP_BB].push_back(-0.308365);
1693 :
1694 8 : parameter[ASP_SC1].push_back(9.476);
1695 8 : parameter[ASP_SC1].push_back(-0.0254664);
1696 8 : parameter[ASP_SC1].push_back(5.57899);
1697 8 : parameter[ASP_SC1].push_back(-0.395027);
1698 8 : parameter[ASP_SC1].push_back(-5.9407);
1699 8 : parameter[ASP_SC1].push_back(3.48836);
1700 8 : parameter[ASP_SC1].push_back(-0.569402);
1701 :
1702 8 : parameter[CYS_BB].push_back(10.698);
1703 8 : parameter[CYS_BB].push_back(-0.0233493);
1704 8 : parameter[CYS_BB].push_back(1.18257);
1705 8 : parameter[CYS_BB].push_back(0.0684464);
1706 8 : parameter[CYS_BB].push_back(-2.792);
1707 8 : parameter[CYS_BB].push_back(1.88995);
1708 8 : parameter[CYS_BB].push_back(-0.360229);
1709 :
1710 8 : parameter[CYS_SC1].push_back(8.199);
1711 8 : parameter[CYS_SC1].push_back(-0.0261569);
1712 8 : parameter[CYS_SC1].push_back(6.79677);
1713 8 : parameter[CYS_SC1].push_back(-0.343845);
1714 8 : parameter[CYS_SC1].push_back(-5.03578);
1715 8 : parameter[CYS_SC1].push_back(2.7076);
1716 8 : parameter[CYS_SC1].push_back(-0.420714);
1717 :
1718 8 : parameter[GLN_BB].push_back(10.728);
1719 8 : parameter[GLN_BB].push_back(-0.0391984);
1720 8 : parameter[GLN_BB].push_back(1.09264);
1721 8 : parameter[GLN_BB].push_back(-0.261555);
1722 8 : parameter[GLN_BB].push_back(-2.21245);
1723 8 : parameter[GLN_BB].push_back(1.62071);
1724 8 : parameter[GLN_BB].push_back(-0.322325);
1725 :
1726 8 : parameter[GLN_SC1].push_back(8.317);
1727 8 : parameter[GLN_SC1].push_back(-0.229045);
1728 8 : parameter[GLN_SC1].push_back(12.6338);
1729 8 : parameter[GLN_SC1].push_back(-7.6719);
1730 8 : parameter[GLN_SC1].push_back(-5.8376);
1731 8 : parameter[GLN_SC1].push_back(5.53784);
1732 8 : parameter[GLN_SC1].push_back(-1.12604);
1733 :
1734 8 : parameter[GLU_BB].push_back(10.694);
1735 8 : parameter[GLU_BB].push_back(-0.0521961);
1736 8 : parameter[GLU_BB].push_back(1.11153);
1737 8 : parameter[GLU_BB].push_back(-0.491995);
1738 8 : parameter[GLU_BB].push_back(-1.86236);
1739 8 : parameter[GLU_BB].push_back(1.45332);
1740 8 : parameter[GLU_BB].push_back(-0.29708);
1741 :
1742 8 : parameter[GLU_SC1].push_back(8.544);
1743 8 : parameter[GLU_SC1].push_back(-0.249555);
1744 8 : parameter[GLU_SC1].push_back(12.8031);
1745 8 : parameter[GLU_SC1].push_back(-8.42696);
1746 8 : parameter[GLU_SC1].push_back(-4.66486);
1747 8 : parameter[GLU_SC1].push_back(4.90004);
1748 8 : parameter[GLU_SC1].push_back(-1.01204);
1749 :
1750 8 : parameter[GLY_BB].push_back(9.977);
1751 8 : parameter[GLY_BB].push_back(-0.0285799);
1752 8 : parameter[GLY_BB].push_back(1.84236);
1753 8 : parameter[GLY_BB].push_back(-0.0315192);
1754 8 : parameter[GLY_BB].push_back(-2.88326);
1755 8 : parameter[GLY_BB].push_back(1.87323);
1756 8 : parameter[GLY_BB].push_back(-0.345773);
1757 :
1758 8 : parameter[HIS_BB].push_back(10.721);
1759 8 : parameter[HIS_BB].push_back(-0.0379337);
1760 8 : parameter[HIS_BB].push_back(1.06028);
1761 8 : parameter[HIS_BB].push_back(-0.236143);
1762 8 : parameter[HIS_BB].push_back(-2.17819);
1763 8 : parameter[HIS_BB].push_back(1.58357);
1764 8 : parameter[HIS_BB].push_back(-0.31345);
1765 :
1766 8 : parameter[HIS_SC1].push_back(-0.424);
1767 8 : parameter[HIS_SC1].push_back(0.665176);
1768 8 : parameter[HIS_SC1].push_back(3.4369);
1769 8 : parameter[HIS_SC1].push_back(2.93795);
1770 8 : parameter[HIS_SC1].push_back(-5.18288);
1771 8 : parameter[HIS_SC1].push_back(2.12381);
1772 8 : parameter[HIS_SC1].push_back(-0.284224);
1773 :
1774 8 : parameter[HIS_SC2].push_back(5.363);
1775 8 : parameter[HIS_SC2].push_back(-0.0176945);
1776 8 : parameter[HIS_SC2].push_back(2.9506);
1777 8 : parameter[HIS_SC2].push_back(-0.387018);
1778 8 : parameter[HIS_SC2].push_back(-1.83951);
1779 8 : parameter[HIS_SC2].push_back(0.9703);
1780 8 : parameter[HIS_SC2].push_back(-0.1458);
1781 :
1782 8 : parameter[HIS_SC3].push_back(5.784);
1783 8 : parameter[HIS_SC3].push_back(-0.0293129);
1784 8 : parameter[HIS_SC3].push_back(2.74167);
1785 8 : parameter[HIS_SC3].push_back(-0.520875);
1786 8 : parameter[HIS_SC3].push_back(-1.62949);
1787 8 : parameter[HIS_SC3].push_back(0.902379);
1788 8 : parameter[HIS_SC3].push_back(-0.139957);
1789 :
1790 8 : parameter[ILE_BB].push_back(10.699);
1791 8 : parameter[ILE_BB].push_back(-0.0188962);
1792 8 : parameter[ILE_BB].push_back(1.217);
1793 8 : parameter[ILE_BB].push_back(0.242481);
1794 8 : parameter[ILE_BB].push_back(-3.13898);
1795 8 : parameter[ILE_BB].push_back(2.07916);
1796 8 : parameter[ILE_BB].push_back(-0.392574);
1797 :
1798 8 : parameter[ILE_SC1].push_back(-4.448);
1799 8 : parameter[ILE_SC1].push_back(1.20996);
1800 8 : parameter[ILE_SC1].push_back(11.5141);
1801 8 : parameter[ILE_SC1].push_back(6.98895);
1802 8 : parameter[ILE_SC1].push_back(-19.1948);
1803 8 : parameter[ILE_SC1].push_back(9.89207);
1804 8 : parameter[ILE_SC1].push_back(-1.60877);
1805 :
1806 8 : parameter[LEU_BB].push_back(10.692);
1807 8 : parameter[LEU_BB].push_back(-0.0414917);
1808 8 : parameter[LEU_BB].push_back(1.1077);
1809 8 : parameter[LEU_BB].push_back(-0.288062);
1810 8 : parameter[LEU_BB].push_back(-2.17187);
1811 8 : parameter[LEU_BB].push_back(1.59879);
1812 8 : parameter[LEU_BB].push_back(-0.318545);
1813 :
1814 8 : parameter[LEU_SC1].push_back(-4.448);
1815 8 : parameter[LEU_SC1].push_back(2.1063);
1816 8 : parameter[LEU_SC1].push_back(6.72381);
1817 8 : parameter[LEU_SC1].push_back(14.6954);
1818 8 : parameter[LEU_SC1].push_back(-23.7197);
1819 8 : parameter[LEU_SC1].push_back(10.7247);
1820 8 : parameter[LEU_SC1].push_back(-1.59146);
1821 :
1822 8 : parameter[LYS_BB].push_back(10.706);
1823 8 : parameter[LYS_BB].push_back(-0.0468629);
1824 8 : parameter[LYS_BB].push_back(1.09477);
1825 8 : parameter[LYS_BB].push_back(-0.432751);
1826 8 : parameter[LYS_BB].push_back(-1.94335);
1827 8 : parameter[LYS_BB].push_back(1.49109);
1828 8 : parameter[LYS_BB].push_back(-0.302589);
1829 :
1830 8 : parameter[LYS_SC1].push_back(-2.796);
1831 8 : parameter[LYS_SC1].push_back(0.508044);
1832 8 : parameter[LYS_SC1].push_back(7.91436);
1833 8 : parameter[LYS_SC1].push_back(4.54097);
1834 8 : parameter[LYS_SC1].push_back(-10.8051);
1835 8 : parameter[LYS_SC1].push_back(4.96204);
1836 8 : parameter[LYS_SC1].push_back(-0.724414);
1837 :
1838 8 : parameter[LYS_SC2].push_back(3.070);
1839 8 : parameter[LYS_SC2].push_back(-0.0101448);
1840 8 : parameter[LYS_SC2].push_back(4.67994);
1841 8 : parameter[LYS_SC2].push_back(-0.792529);
1842 8 : parameter[LYS_SC2].push_back(-2.09142);
1843 8 : parameter[LYS_SC2].push_back(1.02933);
1844 8 : parameter[LYS_SC2].push_back(-0.137787);
1845 :
1846 8 : parameter[MET_BB].push_back(10.671);
1847 8 : parameter[MET_BB].push_back(-0.0433724);
1848 8 : parameter[MET_BB].push_back(1.13784);
1849 8 : parameter[MET_BB].push_back(-0.40768);
1850 8 : parameter[MET_BB].push_back(-2.00555);
1851 8 : parameter[MET_BB].push_back(1.51673);
1852 8 : parameter[MET_BB].push_back(-0.305547);
1853 :
1854 8 : parameter[MET_SC1].push_back(5.85);
1855 8 : parameter[MET_SC1].push_back(-0.0485798);
1856 8 : parameter[MET_SC1].push_back(17.0391);
1857 8 : parameter[MET_SC1].push_back(-3.65327);
1858 8 : parameter[MET_SC1].push_back(-13.174);
1859 8 : parameter[MET_SC1].push_back(8.68286);
1860 8 : parameter[MET_SC1].push_back(-1.56095);
1861 :
1862 8 : parameter[PHE_BB].push_back(10.741);
1863 8 : parameter[PHE_BB].push_back(-0.0317275);
1864 8 : parameter[PHE_BB].push_back(1.15599);
1865 8 : parameter[PHE_BB].push_back(0.0276187);
1866 8 : parameter[PHE_BB].push_back(-2.74757);
1867 8 : parameter[PHE_BB].push_back(1.88783);
1868 8 : parameter[PHE_BB].push_back(-0.363525);
1869 :
1870 8 : parameter[PHE_SC1].push_back(-0.636);
1871 8 : parameter[PHE_SC1].push_back(0.527882);
1872 8 : parameter[PHE_SC1].push_back(6.77612);
1873 8 : parameter[PHE_SC1].push_back(3.18508);
1874 8 : parameter[PHE_SC1].push_back(-8.92826);
1875 8 : parameter[PHE_SC1].push_back(4.29752);
1876 8 : parameter[PHE_SC1].push_back(-0.65187);
1877 :
1878 8 : parameter[PHE_SC2].push_back(-0.424);
1879 8 : parameter[PHE_SC2].push_back(0.389174);
1880 8 : parameter[PHE_SC2].push_back(4.11761);
1881 8 : parameter[PHE_SC2].push_back(2.29527);
1882 8 : parameter[PHE_SC2].push_back(-4.7652);
1883 8 : parameter[PHE_SC2].push_back(1.97023);
1884 8 : parameter[PHE_SC2].push_back(-0.262318);
1885 :
1886 8 : parameter[PHE_SC3].push_back(-0.424);
1887 8 : parameter[PHE_SC3].push_back(0.38927);
1888 8 : parameter[PHE_SC3].push_back(4.11708);
1889 8 : parameter[PHE_SC3].push_back(2.29623);
1890 8 : parameter[PHE_SC3].push_back(-4.76592);
1891 8 : parameter[PHE_SC3].push_back(1.97055);
1892 8 : parameter[PHE_SC3].push_back(-0.262381);
1893 :
1894 8 : parameter[PRO_BB].push_back(11.434);
1895 8 : parameter[PRO_BB].push_back(-0.033323);
1896 8 : parameter[PRO_BB].push_back(0.472014);
1897 8 : parameter[PRO_BB].push_back(-0.290854);
1898 8 : parameter[PRO_BB].push_back(-1.81409);
1899 8 : parameter[PRO_BB].push_back(1.39751);
1900 8 : parameter[PRO_BB].push_back(-0.280407);
1901 :
1902 8 : parameter[PRO_SC1].push_back(-2.796);
1903 8 : parameter[PRO_SC1].push_back(0.95668);
1904 8 : parameter[PRO_SC1].push_back(6.84197);
1905 8 : parameter[PRO_SC1].push_back(6.43774);
1906 8 : parameter[PRO_SC1].push_back(-12.5068);
1907 8 : parameter[PRO_SC1].push_back(5.64597);
1908 8 : parameter[PRO_SC1].push_back(-0.825206);
1909 :
1910 8 : parameter[SER_BB].push_back(10.699);
1911 8 : parameter[SER_BB].push_back(-0.0325828);
1912 8 : parameter[SER_BB].push_back(1.20329);
1913 8 : parameter[SER_BB].push_back(-0.0674351);
1914 8 : parameter[SER_BB].push_back(-2.60749);
1915 8 : parameter[SER_BB].push_back(1.80318);
1916 8 : parameter[SER_BB].push_back(-0.346803);
1917 :
1918 8 : parameter[SER_SC1].push_back(3.298);
1919 8 : parameter[SER_SC1].push_back(-0.0366801);
1920 8 : parameter[SER_SC1].push_back(5.11077);
1921 8 : parameter[SER_SC1].push_back(-1.46774);
1922 8 : parameter[SER_SC1].push_back(-1.48421);
1923 8 : parameter[SER_SC1].push_back(0.800326);
1924 8 : parameter[SER_SC1].push_back(-0.108314);
1925 :
1926 8 : parameter[THR_BB].push_back(10.697);
1927 8 : parameter[THR_BB].push_back(-0.0242955);
1928 8 : parameter[THR_BB].push_back(1.24671);
1929 8 : parameter[THR_BB].push_back(0.146423);
1930 8 : parameter[THR_BB].push_back(-2.97429);
1931 8 : parameter[THR_BB].push_back(1.97513);
1932 8 : parameter[THR_BB].push_back(-0.371479);
1933 :
1934 8 : parameter[THR_SC1].push_back(2.366);
1935 8 : parameter[THR_SC1].push_back(0.0297604);
1936 8 : parameter[THR_SC1].push_back(11.9216);
1937 8 : parameter[THR_SC1].push_back(-9.32503);
1938 8 : parameter[THR_SC1].push_back(1.9396);
1939 8 : parameter[THR_SC1].push_back(0.0804861);
1940 8 : parameter[THR_SC1].push_back(-0.0302721);
1941 :
1942 8 : parameter[TRP_BB].push_back(10.689);
1943 8 : parameter[TRP_BB].push_back(-0.0265879);
1944 8 : parameter[TRP_BB].push_back(1.17819);
1945 8 : parameter[TRP_BB].push_back(0.0386457);
1946 8 : parameter[TRP_BB].push_back(-2.75634);
1947 8 : parameter[TRP_BB].push_back(1.88065);
1948 8 : parameter[TRP_BB].push_back(-0.360217);
1949 :
1950 8 : parameter[TRP_SC1].push_back(0.084);
1951 8 : parameter[TRP_SC1].push_back(0.752407);
1952 8 : parameter[TRP_SC1].push_back(5.3802);
1953 8 : parameter[TRP_SC1].push_back(4.09281);
1954 8 : parameter[TRP_SC1].push_back(-9.28029);
1955 8 : parameter[TRP_SC1].push_back(4.45923);
1956 8 : parameter[TRP_SC1].push_back(-0.689008);
1957 :
1958 8 : parameter[TRP_SC2].push_back(5.739);
1959 8 : parameter[TRP_SC2].push_back(0.0298492);
1960 8 : parameter[TRP_SC2].push_back(4.60446);
1961 8 : parameter[TRP_SC2].push_back(1.34463);
1962 8 : parameter[TRP_SC2].push_back(-5.69968);
1963 8 : parameter[TRP_SC2].push_back(2.84924);
1964 8 : parameter[TRP_SC2].push_back(-0.433781);
1965 :
1966 8 : parameter[TRP_SC3].push_back(-0.424);
1967 8 : parameter[TRP_SC3].push_back(0.388576);
1968 8 : parameter[TRP_SC3].push_back(4.11859);
1969 8 : parameter[TRP_SC3].push_back(2.29485);
1970 8 : parameter[TRP_SC3].push_back(-4.76255);
1971 8 : parameter[TRP_SC3].push_back(1.96849);
1972 8 : parameter[TRP_SC3].push_back(-0.262015);
1973 :
1974 8 : parameter[TRP_SC4].push_back(-0.424);
1975 8 : parameter[TRP_SC4].push_back(0.387685);
1976 8 : parameter[TRP_SC4].push_back(4.12153);
1977 8 : parameter[TRP_SC4].push_back(2.29144);
1978 8 : parameter[TRP_SC4].push_back(-4.7589);
1979 8 : parameter[TRP_SC4].push_back(1.96686);
1980 8 : parameter[TRP_SC4].push_back(-0.261786);
1981 :
1982 8 : parameter[TYR_BB].push_back(10.689);
1983 8 : parameter[TYR_BB].push_back(-0.0193526);
1984 8 : parameter[TYR_BB].push_back(1.18241);
1985 8 : parameter[TYR_BB].push_back(0.207318);
1986 8 : parameter[TYR_BB].push_back(-3.0041);
1987 8 : parameter[TYR_BB].push_back(1.99335);
1988 8 : parameter[TYR_BB].push_back(-0.376482);
1989 :
1990 8 : parameter[TYR_SC1].push_back(-0.636);
1991 8 : parameter[TYR_SC1].push_back(0.528902);
1992 8 : parameter[TYR_SC1].push_back(6.78168);
1993 8 : parameter[TYR_SC1].push_back(3.17769);
1994 8 : parameter[TYR_SC1].push_back(-8.93667);
1995 8 : parameter[TYR_SC1].push_back(4.30692);
1996 8 : parameter[TYR_SC1].push_back(-0.653993);
1997 :
1998 8 : parameter[TYR_SC2].push_back(-0.424);
1999 8 : parameter[TYR_SC2].push_back(0.388811);
2000 8 : parameter[TYR_SC2].push_back(4.11851);
2001 8 : parameter[TYR_SC2].push_back(2.29545);
2002 8 : parameter[TYR_SC2].push_back(-4.7668);
2003 8 : parameter[TYR_SC2].push_back(1.97131);
2004 8 : parameter[TYR_SC2].push_back(-0.262534);
2005 :
2006 8 : parameter[TYR_SC3].push_back(4.526);
2007 8 : parameter[TYR_SC3].push_back(-0.00381305);
2008 8 : parameter[TYR_SC3].push_back(5.8567);
2009 8 : parameter[TYR_SC3].push_back(-0.214086);
2010 8 : parameter[TYR_SC3].push_back(-4.63649);
2011 8 : parameter[TYR_SC3].push_back(2.52869);
2012 8 : parameter[TYR_SC3].push_back(-0.39894);
2013 :
2014 8 : parameter[VAL_BB].push_back(10.691);
2015 8 : parameter[VAL_BB].push_back(-0.0162929);
2016 8 : parameter[VAL_BB].push_back(1.24446);
2017 8 : parameter[VAL_BB].push_back(0.307914);
2018 8 : parameter[VAL_BB].push_back(-3.27446);
2019 8 : parameter[VAL_BB].push_back(2.14788);
2020 8 : parameter[VAL_BB].push_back(-0.403259);
2021 :
2022 8 : parameter[VAL_SC1].push_back(-3.516);
2023 8 : parameter[VAL_SC1].push_back(1.62307);
2024 8 : parameter[VAL_SC1].push_back(5.43064);
2025 8 : parameter[VAL_SC1].push_back(9.28809);
2026 8 : parameter[VAL_SC1].push_back(-14.9927);
2027 8 : parameter[VAL_SC1].push_back(6.6133);
2028 8 : parameter[VAL_SC1].push_back(-0.964977);
2029 :
2030 8 : parameter[A_BB1].push_back(32.88500000);
2031 8 : parameter[A_BB1].push_back(0.08339900);
2032 8 : parameter[A_BB1].push_back(-7.36054400);
2033 8 : parameter[A_BB1].push_back(2.19220300);
2034 8 : parameter[A_BB1].push_back(-3.56523400);
2035 8 : parameter[A_BB1].push_back(2.33326900);
2036 8 : parameter[A_BB1].push_back(-0.39785500);
2037 :
2038 8 : parameter[A_BB2].push_back(3.80600000);
2039 8 : parameter[A_BB2].push_back(-0.10727600);
2040 8 : parameter[A_BB2].push_back(9.58854100);
2041 8 : parameter[A_BB2].push_back(-6.23740500);
2042 8 : parameter[A_BB2].push_back(-0.48267300);
2043 8 : parameter[A_BB2].push_back(1.14119500);
2044 8 : parameter[A_BB2].push_back(-0.21385600);
2045 :
2046 8 : parameter[A_BB3].push_back(3.59400000);
2047 8 : parameter[A_BB3].push_back(0.04537300);
2048 8 : parameter[A_BB3].push_back(9.59178900);
2049 8 : parameter[A_BB3].push_back(-1.29202200);
2050 8 : parameter[A_BB3].push_back(-7.10851000);
2051 8 : parameter[A_BB3].push_back(4.05571200);
2052 8 : parameter[A_BB3].push_back(-0.63372500);
2053 :
2054 8 : parameter[A_SC1].push_back(6.67100000);
2055 8 : parameter[A_SC1].push_back(-0.00855300);
2056 8 : parameter[A_SC1].push_back(1.63222400);
2057 8 : parameter[A_SC1].push_back(-0.06466200);
2058 8 : parameter[A_SC1].push_back(-1.48694200);
2059 8 : parameter[A_SC1].push_back(0.78544600);
2060 8 : parameter[A_SC1].push_back(-0.12083500);
2061 :
2062 8 : parameter[A_SC2].push_back(5.95100000);
2063 8 : parameter[A_SC2].push_back(-0.02606600);
2064 8 : parameter[A_SC2].push_back(2.54399900);
2065 8 : parameter[A_SC2].push_back(-0.48436900);
2066 8 : parameter[A_SC2].push_back(-1.55357400);
2067 8 : parameter[A_SC2].push_back(0.86466900);
2068 8 : parameter[A_SC2].push_back(-0.13509000);
2069 :
2070 8 : parameter[A_SC3].push_back(11.39400000);
2071 8 : parameter[A_SC3].push_back(0.00871300);
2072 8 : parameter[A_SC3].push_back(-0.23891300);
2073 8 : parameter[A_SC3].push_back(0.48919400);
2074 8 : parameter[A_SC3].push_back(-1.75289400);
2075 8 : parameter[A_SC3].push_back(0.99267500);
2076 8 : parameter[A_SC3].push_back(-0.16291300);
2077 :
2078 8 : parameter[A_SC4].push_back(6.45900000);
2079 8 : parameter[A_SC4].push_back(0.01990600);
2080 8 : parameter[A_SC4].push_back(4.17970400);
2081 8 : parameter[A_SC4].push_back(0.97629900);
2082 8 : parameter[A_SC4].push_back(-5.03297800);
2083 8 : parameter[A_SC4].push_back(2.55576700);
2084 8 : parameter[A_SC4].push_back(-0.39150500);
2085 :
2086 8 : parameter[A_3TE].push_back(4.23000000);
2087 8 : parameter[A_3TE].push_back(0.00064800);
2088 8 : parameter[A_3TE].push_back(0.92124600);
2089 8 : parameter[A_3TE].push_back(0.08064300);
2090 8 : parameter[A_3TE].push_back(-0.39054400);
2091 8 : parameter[A_3TE].push_back(0.12429100);
2092 8 : parameter[A_3TE].push_back(-0.01122700);
2093 :
2094 8 : parameter[A_5TE].push_back(4.23000000);
2095 8 : parameter[A_5TE].push_back(0.00039300);
2096 8 : parameter[A_5TE].push_back(0.92305100);
2097 8 : parameter[A_5TE].push_back(0.07747500);
2098 8 : parameter[A_5TE].push_back(-0.38792100);
2099 8 : parameter[A_5TE].push_back(0.12323800);
2100 8 : parameter[A_5TE].push_back(-0.01106600);
2101 :
2102 8 : parameter[A_TE3].push_back(7.82400000);
2103 8 : parameter[A_TE3].push_back(-0.04881000);
2104 8 : parameter[A_TE3].push_back(8.21557900);
2105 8 : parameter[A_TE3].push_back(-0.89491400);
2106 8 : parameter[A_TE3].push_back(-9.54293700);
2107 8 : parameter[A_TE3].push_back(6.33122200);
2108 8 : parameter[A_TE3].push_back(-1.16672900);
2109 :
2110 8 : parameter[A_TE5].push_back(8.03600000);
2111 8 : parameter[A_TE5].push_back(0.01641200);
2112 8 : parameter[A_TE5].push_back(5.14902200);
2113 8 : parameter[A_TE5].push_back(0.83419700);
2114 8 : parameter[A_TE5].push_back(-7.59068300);
2115 8 : parameter[A_TE5].push_back(4.52063200);
2116 8 : parameter[A_TE5].push_back(-0.78260800);
2117 :
2118 8 : parameter[C_BB1].push_back(32.88500000);
2119 8 : parameter[C_BB1].push_back(0.08311100);
2120 8 : parameter[C_BB1].push_back(-7.35432100);
2121 8 : parameter[C_BB1].push_back(2.18610000);
2122 8 : parameter[C_BB1].push_back(-3.55788300);
2123 8 : parameter[C_BB1].push_back(2.32918700);
2124 8 : parameter[C_BB1].push_back(-0.39720000);
2125 :
2126 8 : parameter[C_BB2].push_back(3.80600000);
2127 8 : parameter[C_BB2].push_back(-0.10808100);
2128 8 : parameter[C_BB2].push_back(9.61612600);
2129 8 : parameter[C_BB2].push_back(-6.28595400);
2130 8 : parameter[C_BB2].push_back(-0.45187000);
2131 8 : parameter[C_BB2].push_back(1.13326000);
2132 8 : parameter[C_BB2].push_back(-0.21320300);
2133 :
2134 8 : parameter[C_BB3].push_back(3.59400000);
2135 8 : parameter[C_BB3].push_back(0.04484200);
2136 8 : parameter[C_BB3].push_back(9.61919800);
2137 8 : parameter[C_BB3].push_back(-1.33582800);
2138 8 : parameter[C_BB3].push_back(-7.07200400);
2139 8 : parameter[C_BB3].push_back(4.03952900);
2140 8 : parameter[C_BB3].push_back(-0.63098200);
2141 :
2142 8 : parameter[C_SC1].push_back(5.95100000);
2143 8 : parameter[C_SC1].push_back(-0.02911300);
2144 8 : parameter[C_SC1].push_back(2.59700400);
2145 8 : parameter[C_SC1].push_back(-0.55507700);
2146 8 : parameter[C_SC1].push_back(-1.56344600);
2147 8 : parameter[C_SC1].push_back(0.88956200);
2148 8 : parameter[C_SC1].push_back(-0.14061300);
2149 :
2150 8 : parameter[C_SC2].push_back(11.62100000);
2151 8 : parameter[C_SC2].push_back(0.01366100);
2152 8 : parameter[C_SC2].push_back(-0.25959200);
2153 8 : parameter[C_SC2].push_back(0.48918300);
2154 8 : parameter[C_SC2].push_back(-1.52550500);
2155 8 : parameter[C_SC2].push_back(0.83644100);
2156 8 : parameter[C_SC2].push_back(-0.13407300);
2157 :
2158 8 : parameter[C_SC3].push_back(5.01900000);
2159 8 : parameter[C_SC3].push_back(-0.03276100);
2160 8 : parameter[C_SC3].push_back(5.53776900);
2161 8 : parameter[C_SC3].push_back(-0.95105000);
2162 8 : parameter[C_SC3].push_back(-3.71130800);
2163 8 : parameter[C_SC3].push_back(2.16146000);
2164 8 : parameter[C_SC3].push_back(-0.34918600);
2165 :
2166 8 : parameter[C_3TE].push_back(4.23000000);
2167 8 : parameter[C_3TE].push_back(0.00057300);
2168 8 : parameter[C_3TE].push_back(0.92174800);
2169 8 : parameter[C_3TE].push_back(0.07964500);
2170 8 : parameter[C_3TE].push_back(-0.38965700);
2171 8 : parameter[C_3TE].push_back(0.12392500);
2172 8 : parameter[C_3TE].push_back(-0.01117000);
2173 :
2174 8 : parameter[C_5TE].push_back(4.23000000);
2175 8 : parameter[C_5TE].push_back(0.00071000);
2176 8 : parameter[C_5TE].push_back(0.92082800);
2177 8 : parameter[C_5TE].push_back(0.08150600);
2178 8 : parameter[C_5TE].push_back(-0.39127000);
2179 8 : parameter[C_5TE].push_back(0.12455900);
2180 8 : parameter[C_5TE].push_back(-0.01126300);
2181 :
2182 8 : parameter[C_TE3].push_back(7.82400000);
2183 8 : parameter[C_TE3].push_back(-0.05848300);
2184 8 : parameter[C_TE3].push_back(8.29319900);
2185 8 : parameter[C_TE3].push_back(-1.12563800);
2186 8 : parameter[C_TE3].push_back(-9.42197600);
2187 8 : parameter[C_TE3].push_back(6.35441700);
2188 8 : parameter[C_TE3].push_back(-1.18356900);
2189 :
2190 8 : parameter[C_TE5].push_back(8.03600000);
2191 8 : parameter[C_TE5].push_back(0.00493500);
2192 8 : parameter[C_TE5].push_back(4.92622000);
2193 8 : parameter[C_TE5].push_back(0.64810700);
2194 8 : parameter[C_TE5].push_back(-7.05100000);
2195 8 : parameter[C_TE5].push_back(4.26064400);
2196 8 : parameter[C_TE5].push_back(-0.74819100);
2197 :
2198 8 : parameter[G_BB1].push_back(32.88500000);
2199 8 : parameter[G_BB1].push_back(0.08325400);
2200 8 : parameter[G_BB1].push_back(-7.35736000);
2201 8 : parameter[G_BB1].push_back(2.18914800);
2202 8 : parameter[G_BB1].push_back(-3.56154800);
2203 8 : parameter[G_BB1].push_back(2.33120600);
2204 8 : parameter[G_BB1].push_back(-0.39752300);
2205 :
2206 8 : parameter[G_BB2].push_back(3.80600000);
2207 8 : parameter[G_BB2].push_back(-0.10788300);
2208 8 : parameter[G_BB2].push_back(9.60930800);
2209 8 : parameter[G_BB2].push_back(-6.27402500);
2210 8 : parameter[G_BB2].push_back(-0.46192700);
2211 8 : parameter[G_BB2].push_back(1.13737000);
2212 8 : parameter[G_BB2].push_back(-0.21383100);
2213 :
2214 8 : parameter[G_BB3].push_back(3.59400000);
2215 8 : parameter[G_BB3].push_back(0.04514500);
2216 8 : parameter[G_BB3].push_back(9.61234700);
2217 8 : parameter[G_BB3].push_back(-1.31542100);
2218 8 : parameter[G_BB3].push_back(-7.09150500);
2219 8 : parameter[G_BB3].push_back(4.04706200);
2220 8 : parameter[G_BB3].push_back(-0.63201000);
2221 :
2222 8 : parameter[G_SC1].push_back(6.67100000);
2223 8 : parameter[G_SC1].push_back(-0.00863200);
2224 8 : parameter[G_SC1].push_back(1.63252300);
2225 8 : parameter[G_SC1].push_back(-0.06567200);
2226 8 : parameter[G_SC1].push_back(-1.48680500);
2227 8 : parameter[G_SC1].push_back(0.78565600);
2228 8 : parameter[G_SC1].push_back(-0.12088900);
2229 :
2230 8 : parameter[G_SC2].push_back(11.39400000);
2231 8 : parameter[G_SC2].push_back(0.00912200);
2232 8 : parameter[G_SC2].push_back(-0.22869000);
2233 8 : parameter[G_SC2].push_back(0.49616400);
2234 8 : parameter[G_SC2].push_back(-1.75039000);
2235 8 : parameter[G_SC2].push_back(0.98649200);
2236 8 : parameter[G_SC2].push_back(-0.16141600);
2237 :
2238 8 : parameter[G_SC3].push_back(10.90100000);
2239 8 : parameter[G_SC3].push_back(0.02208700);
2240 8 : parameter[G_SC3].push_back(0.17032800);
2241 8 : parameter[G_SC3].push_back(0.73280800);
2242 8 : parameter[G_SC3].push_back(-1.95292000);
2243 8 : parameter[G_SC3].push_back(0.98357600);
2244 8 : parameter[G_SC3].push_back(-0.14790900);
2245 :
2246 8 : parameter[G_SC4].push_back(6.45900000);
2247 8 : parameter[G_SC4].push_back(0.02023700);
2248 8 : parameter[G_SC4].push_back(4.17655400);
2249 8 : parameter[G_SC4].push_back(0.98731800);
2250 8 : parameter[G_SC4].push_back(-5.04352800);
2251 8 : parameter[G_SC4].push_back(2.56059400);
2252 8 : parameter[G_SC4].push_back(-0.39234300);
2253 :
2254 8 : parameter[G_3TE].push_back(4.23000000);
2255 8 : parameter[G_3TE].push_back(0.00066300);
2256 8 : parameter[G_3TE].push_back(0.92118800);
2257 8 : parameter[G_3TE].push_back(0.08062700);
2258 8 : parameter[G_3TE].push_back(-0.39041600);
2259 8 : parameter[G_3TE].push_back(0.12419400);
2260 8 : parameter[G_3TE].push_back(-0.01120500);
2261 :
2262 8 : parameter[G_5TE].push_back(4.23000000);
2263 8 : parameter[G_5TE].push_back(0.00062800);
2264 8 : parameter[G_5TE].push_back(0.92133500);
2265 8 : parameter[G_5TE].push_back(0.08029900);
2266 8 : parameter[G_5TE].push_back(-0.39015300);
2267 8 : parameter[G_5TE].push_back(0.12411600);
2268 8 : parameter[G_5TE].push_back(-0.01119900);
2269 :
2270 8 : parameter[G_TE3].push_back(7.82400000);
2271 8 : parameter[G_TE3].push_back(-0.05177400);
2272 8 : parameter[G_TE3].push_back(8.34606700);
2273 8 : parameter[G_TE3].push_back(-1.02936300);
2274 8 : parameter[G_TE3].push_back(-9.55211900);
2275 8 : parameter[G_TE3].push_back(6.37776600);
2276 8 : parameter[G_TE3].push_back(-1.17898000);
2277 :
2278 8 : parameter[G_TE5].push_back(8.03600000);
2279 8 : parameter[G_TE5].push_back(0.00525100);
2280 8 : parameter[G_TE5].push_back(4.71070600);
2281 8 : parameter[G_TE5].push_back(0.66746900);
2282 8 : parameter[G_TE5].push_back(-6.72538700);
2283 8 : parameter[G_TE5].push_back(4.03644100);
2284 8 : parameter[G_TE5].push_back(-0.70605700);
2285 :
2286 8 : parameter[U_BB1].push_back(32.88500000);
2287 8 : parameter[U_BB1].push_back(0.08321400);
2288 8 : parameter[U_BB1].push_back(-7.35634900);
2289 8 : parameter[U_BB1].push_back(2.18826800);
2290 8 : parameter[U_BB1].push_back(-3.56047400);
2291 8 : parameter[U_BB1].push_back(2.33064700);
2292 8 : parameter[U_BB1].push_back(-0.39744000);
2293 :
2294 8 : parameter[U_BB2].push_back(3.80600000);
2295 8 : parameter[U_BB2].push_back(-0.10773100);
2296 8 : parameter[U_BB2].push_back(9.60099900);
2297 8 : parameter[U_BB2].push_back(-6.26131900);
2298 8 : parameter[U_BB2].push_back(-0.46668300);
2299 8 : parameter[U_BB2].push_back(1.13698100);
2300 8 : parameter[U_BB2].push_back(-0.21351600);
2301 :
2302 8 : parameter[U_BB3].push_back(3.59400000);
2303 8 : parameter[U_BB3].push_back(0.04544300);
2304 8 : parameter[U_BB3].push_back(9.59625900);
2305 8 : parameter[U_BB3].push_back(-1.29222200);
2306 8 : parameter[U_BB3].push_back(-7.11143200);
2307 8 : parameter[U_BB3].push_back(4.05687700);
2308 8 : parameter[U_BB3].push_back(-0.63382800);
2309 :
2310 8 : parameter[U_SC1].push_back(5.95100000);
2311 8 : parameter[U_SC1].push_back(-0.02924500);
2312 8 : parameter[U_SC1].push_back(2.59668700);
2313 8 : parameter[U_SC1].push_back(-0.56118700);
2314 8 : parameter[U_SC1].push_back(-1.56477100);
2315 8 : parameter[U_SC1].push_back(0.89265100);
2316 8 : parameter[U_SC1].push_back(-0.14130800);
2317 :
2318 8 : parameter[U_SC2].push_back(10.90100000);
2319 8 : parameter[U_SC2].push_back(0.02178900);
2320 8 : parameter[U_SC2].push_back(0.18839000);
2321 8 : parameter[U_SC2].push_back(0.72223100);
2322 8 : parameter[U_SC2].push_back(-1.92581600);
2323 8 : parameter[U_SC2].push_back(0.96654300);
2324 8 : parameter[U_SC2].push_back(-0.14501300);
2325 :
2326 8 : parameter[U_SC3].push_back(5.24600000);
2327 8 : parameter[U_SC3].push_back(-0.04586500);
2328 8 : parameter[U_SC3].push_back(5.89978100);
2329 8 : parameter[U_SC3].push_back(-1.50664700);
2330 8 : parameter[U_SC3].push_back(-3.17054400);
2331 8 : parameter[U_SC3].push_back(1.93717100);
2332 8 : parameter[U_SC3].push_back(-0.31701000);
2333 :
2334 8 : parameter[U_3TE].push_back(4.23000000);
2335 8 : parameter[U_3TE].push_back(0.00067500);
2336 8 : parameter[U_3TE].push_back(0.92102300);
2337 8 : parameter[U_3TE].push_back(0.08100800);
2338 8 : parameter[U_3TE].push_back(-0.39084300);
2339 8 : parameter[U_3TE].push_back(0.12441900);
2340 8 : parameter[U_3TE].push_back(-0.01124900);
2341 :
2342 8 : parameter[U_5TE].push_back(4.23000000);
2343 8 : parameter[U_5TE].push_back(0.00059000);
2344 8 : parameter[U_5TE].push_back(0.92154600);
2345 8 : parameter[U_5TE].push_back(0.07968200);
2346 8 : parameter[U_5TE].push_back(-0.38950100);
2347 8 : parameter[U_5TE].push_back(0.12382500);
2348 8 : parameter[U_5TE].push_back(-0.01115100);
2349 :
2350 8 : parameter[U_TE3].push_back(7.82400000);
2351 8 : parameter[U_TE3].push_back(-0.02968100);
2352 8 : parameter[U_TE3].push_back(7.93783200);
2353 8 : parameter[U_TE3].push_back(-0.33078100);
2354 8 : parameter[U_TE3].push_back(-10.14120200);
2355 8 : parameter[U_TE3].push_back(6.63334700);
2356 8 : parameter[U_TE3].push_back(-1.22111200);
2357 :
2358 8 : parameter[U_TE5].push_back(8.03600000);
2359 8 : parameter[U_TE5].push_back(-0.00909700);
2360 8 : parameter[U_TE5].push_back(4.33193500);
2361 8 : parameter[U_TE5].push_back(0.43416500);
2362 8 : parameter[U_TE5].push_back(-5.80831400);
2363 8 : parameter[U_TE5].push_back(3.52438800);
2364 8 : parameter[U_TE5].push_back(-0.62382400);
2365 :
2366 8 : parameter[DA_BB1].push_back(32.88500000);
2367 8 : parameter[DA_BB1].push_back(0.08179900);
2368 8 : parameter[DA_BB1].push_back(-7.31735900);
2369 8 : parameter[DA_BB1].push_back(2.15614500);
2370 8 : parameter[DA_BB1].push_back(-3.52263200);
2371 8 : parameter[DA_BB1].push_back(2.30604700);
2372 8 : parameter[DA_BB1].push_back(-0.39270100);
2373 :
2374 8 : parameter[DA_BB2].push_back(3.80600000);
2375 8 : parameter[DA_BB2].push_back(-0.10597700);
2376 8 : parameter[DA_BB2].push_back(9.52537500);
2377 8 : parameter[DA_BB2].push_back(-6.12991000);
2378 8 : parameter[DA_BB2].push_back(-0.54092600);
2379 8 : parameter[DA_BB2].push_back(1.15429100);
2380 8 : parameter[DA_BB2].push_back(-0.21503500);
2381 :
2382 8 : parameter[DA_BB3].push_back(-1.35600000);
2383 8 : parameter[DA_BB3].push_back(0.58928300);
2384 8 : parameter[DA_BB3].push_back(6.71894100);
2385 8 : parameter[DA_BB3].push_back(4.14050900);
2386 8 : parameter[DA_BB3].push_back(-9.65859900);
2387 8 : parameter[DA_BB3].push_back(4.43185000);
2388 8 : parameter[DA_BB3].push_back(-0.64657300);
2389 :
2390 8 : parameter[DA_SC1].push_back(6.67100000);
2391 8 : parameter[DA_SC1].push_back(-0.00871400);
2392 8 : parameter[DA_SC1].push_back(1.63289100);
2393 8 : parameter[DA_SC1].push_back(-0.06637700);
2394 8 : parameter[DA_SC1].push_back(-1.48632900);
2395 8 : parameter[DA_SC1].push_back(0.78551800);
2396 8 : parameter[DA_SC1].push_back(-0.12087300);
2397 :
2398 8 : parameter[DA_SC2].push_back(5.95100000);
2399 8 : parameter[DA_SC2].push_back(-0.02634300);
2400 8 : parameter[DA_SC2].push_back(2.54864300);
2401 8 : parameter[DA_SC2].push_back(-0.49015800);
2402 8 : parameter[DA_SC2].push_back(-1.55386900);
2403 8 : parameter[DA_SC2].push_back(0.86630200);
2404 8 : parameter[DA_SC2].push_back(-0.13546200);
2405 :
2406 8 : parameter[DA_SC3].push_back(11.39400000);
2407 8 : parameter[DA_SC3].push_back(0.00859500);
2408 8 : parameter[DA_SC3].push_back(-0.25471400);
2409 8 : parameter[DA_SC3].push_back(0.48718800);
2410 8 : parameter[DA_SC3].push_back(-1.74520000);
2411 8 : parameter[DA_SC3].push_back(0.99246200);
2412 8 : parameter[DA_SC3].push_back(-0.16351900);
2413 :
2414 8 : parameter[DA_SC4].push_back(6.45900000);
2415 8 : parameter[DA_SC4].push_back(0.01991800);
2416 8 : parameter[DA_SC4].push_back(4.17962300);
2417 8 : parameter[DA_SC4].push_back(0.97469100);
2418 8 : parameter[DA_SC4].push_back(-5.02950400);
2419 8 : parameter[DA_SC4].push_back(2.55371800);
2420 8 : parameter[DA_SC4].push_back(-0.39113400);
2421 :
2422 8 : parameter[DA_3TE].push_back(4.23000000);
2423 8 : parameter[DA_3TE].push_back(0.00062600);
2424 8 : parameter[DA_3TE].push_back(0.92142000);
2425 8 : parameter[DA_3TE].push_back(0.08016400);
2426 8 : parameter[DA_3TE].push_back(-0.39000300);
2427 8 : parameter[DA_3TE].push_back(0.12402500);
2428 8 : parameter[DA_3TE].push_back(-0.01117900);
2429 :
2430 8 : parameter[DA_5TE].push_back(4.23000000);
2431 8 : parameter[DA_5TE].push_back(0.00055500);
2432 8 : parameter[DA_5TE].push_back(0.92183900);
2433 8 : parameter[DA_5TE].push_back(0.07907600);
2434 8 : parameter[DA_5TE].push_back(-0.38895100);
2435 8 : parameter[DA_5TE].push_back(0.12359600);
2436 8 : parameter[DA_5TE].push_back(-0.01111600);
2437 :
2438 8 : parameter[DA_TE3].push_back(2.87400000);
2439 8 : parameter[DA_TE3].push_back(0.00112900);
2440 8 : parameter[DA_TE3].push_back(12.51167200);
2441 8 : parameter[DA_TE3].push_back(-7.67548000);
2442 8 : parameter[DA_TE3].push_back(-2.02234000);
2443 8 : parameter[DA_TE3].push_back(2.50837100);
2444 8 : parameter[DA_TE3].push_back(-0.49458500);
2445 :
2446 8 : parameter[DA_TE5].push_back(8.03600000);
2447 8 : parameter[DA_TE5].push_back(0.00473100);
2448 8 : parameter[DA_TE5].push_back(4.65554400);
2449 8 : parameter[DA_TE5].push_back(0.66424100);
2450 8 : parameter[DA_TE5].push_back(-6.62131300);
2451 8 : parameter[DA_TE5].push_back(3.96107400);
2452 8 : parameter[DA_TE5].push_back(-0.69075800);
2453 :
2454 8 : parameter[DC_BB1].push_back(32.88500000);
2455 8 : parameter[DC_BB1].push_back(0.08189900);
2456 8 : parameter[DC_BB1].push_back(-7.32493500);
2457 8 : parameter[DC_BB1].push_back(2.15976900);
2458 8 : parameter[DC_BB1].push_back(-3.52612100);
2459 8 : parameter[DC_BB1].push_back(2.31058600);
2460 8 : parameter[DC_BB1].push_back(-0.39402700);
2461 :
2462 8 : parameter[DC_BB2].push_back(3.80600000);
2463 8 : parameter[DC_BB2].push_back(-0.10559800);
2464 8 : parameter[DC_BB2].push_back(9.52527700);
2465 8 : parameter[DC_BB2].push_back(-6.12131700);
2466 8 : parameter[DC_BB2].push_back(-0.54899400);
2467 8 : parameter[DC_BB2].push_back(1.15592900);
2468 8 : parameter[DC_BB2].push_back(-0.21494500);
2469 :
2470 8 : parameter[DC_BB3].push_back(-1.35600000);
2471 8 : parameter[DC_BB3].push_back(0.55525700);
2472 8 : parameter[DC_BB3].push_back(6.80305500);
2473 8 : parameter[DC_BB3].push_back(4.05924700);
2474 8 : parameter[DC_BB3].push_back(-9.61034700);
2475 8 : parameter[DC_BB3].push_back(4.41253800);
2476 8 : parameter[DC_BB3].push_back(-0.64315100);
2477 :
2478 8 : parameter[DC_SC1].push_back(5.95100000);
2479 8 : parameter[DC_SC1].push_back(-0.02899900);
2480 8 : parameter[DC_SC1].push_back(2.59587800);
2481 8 : parameter[DC_SC1].push_back(-0.55388300);
2482 8 : parameter[DC_SC1].push_back(-1.56395100);
2483 8 : parameter[DC_SC1].push_back(0.88967400);
2484 8 : parameter[DC_SC1].push_back(-0.14062500);
2485 :
2486 8 : parameter[DC_SC2].push_back(11.62100000);
2487 8 : parameter[DC_SC2].push_back(0.01358100);
2488 8 : parameter[DC_SC2].push_back(-0.24913000);
2489 8 : parameter[DC_SC2].push_back(0.48787200);
2490 8 : parameter[DC_SC2].push_back(-1.52867300);
2491 8 : parameter[DC_SC2].push_back(0.83694900);
2492 8 : parameter[DC_SC2].push_back(-0.13395300);
2493 :
2494 8 : parameter[DC_SC3].push_back(5.01900000);
2495 8 : parameter[DC_SC3].push_back(-0.03298400);
2496 8 : parameter[DC_SC3].push_back(5.54242800);
2497 8 : parameter[DC_SC3].push_back(-0.96081500);
2498 8 : parameter[DC_SC3].push_back(-3.71051600);
2499 8 : parameter[DC_SC3].push_back(2.16500200);
2500 8 : parameter[DC_SC3].push_back(-0.35023400);
2501 :
2502 8 : parameter[DC_3TE].push_back(4.23000000);
2503 8 : parameter[DC_3TE].push_back(0.00055700);
2504 8 : parameter[DC_3TE].push_back(0.92181400);
2505 8 : parameter[DC_3TE].push_back(0.07924000);
2506 8 : parameter[DC_3TE].push_back(-0.38916400);
2507 8 : parameter[DC_3TE].push_back(0.12369900);
2508 8 : parameter[DC_3TE].push_back(-0.01113300);
2509 :
2510 8 : parameter[DC_5TE].push_back(4.23000000);
2511 8 : parameter[DC_5TE].push_back(0.00066500);
2512 8 : parameter[DC_5TE].push_back(0.92103900);
2513 8 : parameter[DC_5TE].push_back(0.08064600);
2514 8 : parameter[DC_5TE].push_back(-0.39034900);
2515 8 : parameter[DC_5TE].push_back(0.12417600);
2516 8 : parameter[DC_5TE].push_back(-0.01120600);
2517 :
2518 8 : parameter[DC_TE3].push_back(2.87400000);
2519 8 : parameter[DC_TE3].push_back(-0.05235500);
2520 8 : parameter[DC_TE3].push_back(13.09201200);
2521 8 : parameter[DC_TE3].push_back(-9.48128200);
2522 8 : parameter[DC_TE3].push_back(-0.14958600);
2523 8 : parameter[DC_TE3].push_back(1.75537200);
2524 8 : parameter[DC_TE3].push_back(-0.39347500);
2525 :
2526 8 : parameter[DC_TE5].push_back(8.03600000);
2527 8 : parameter[DC_TE5].push_back(-0.00513600);
2528 8 : parameter[DC_TE5].push_back(4.67705700);
2529 8 : parameter[DC_TE5].push_back(0.48333300);
2530 8 : parameter[DC_TE5].push_back(-6.34511000);
2531 8 : parameter[DC_TE5].push_back(3.83388500);
2532 8 : parameter[DC_TE5].push_back(-0.67367800);
2533 :
2534 8 : parameter[DG_BB1].push_back(32.88500000);
2535 8 : parameter[DG_BB1].push_back(0.08182900);
2536 8 : parameter[DG_BB1].push_back(-7.32133900);
2537 8 : parameter[DG_BB1].push_back(2.15767900);
2538 8 : parameter[DG_BB1].push_back(-3.52369700);
2539 8 : parameter[DG_BB1].push_back(2.30839600);
2540 8 : parameter[DG_BB1].push_back(-0.39348300);
2541 :
2542 8 : parameter[DG_BB2].push_back(3.80600000);
2543 8 : parameter[DG_BB2].push_back(-0.10618100);
2544 8 : parameter[DG_BB2].push_back(9.54169000);
2545 8 : parameter[DG_BB2].push_back(-6.15177600);
2546 8 : parameter[DG_BB2].push_back(-0.53462400);
2547 8 : parameter[DG_BB2].push_back(1.15581300);
2548 8 : parameter[DG_BB2].push_back(-0.21567000);
2549 :
2550 8 : parameter[DG_BB3].push_back(-1.35600000);
2551 8 : parameter[DG_BB3].push_back(0.57489100);
2552 8 : parameter[DG_BB3].push_back(6.75164700);
2553 8 : parameter[DG_BB3].push_back(4.11300900);
2554 8 : parameter[DG_BB3].push_back(-9.63394600);
2555 8 : parameter[DG_BB3].push_back(4.41675400);
2556 8 : parameter[DG_BB3].push_back(-0.64339900);
2557 :
2558 8 : parameter[DG_SC1].push_back(6.67100000);
2559 8 : parameter[DG_SC1].push_back(-0.00886600);
2560 8 : parameter[DG_SC1].push_back(1.63333000);
2561 8 : parameter[DG_SC1].push_back(-0.06892100);
2562 8 : parameter[DG_SC1].push_back(-1.48683500);
2563 8 : parameter[DG_SC1].push_back(0.78670800);
2564 8 : parameter[DG_SC1].push_back(-0.12113900);
2565 :
2566 8 : parameter[DG_SC2].push_back(11.39400000);
2567 8 : parameter[DG_SC2].push_back(0.00907900);
2568 8 : parameter[DG_SC2].push_back(-0.22475500);
2569 8 : parameter[DG_SC2].push_back(0.49535100);
2570 8 : parameter[DG_SC2].push_back(-1.75324900);
2571 8 : parameter[DG_SC2].push_back(0.98767400);
2572 8 : parameter[DG_SC2].push_back(-0.16150800);
2573 :
2574 8 : parameter[DG_SC3].push_back(10.90100000);
2575 8 : parameter[DG_SC3].push_back(0.02207600);
2576 8 : parameter[DG_SC3].push_back(0.17932200);
2577 8 : parameter[DG_SC3].push_back(0.73253200);
2578 8 : parameter[DG_SC3].push_back(-1.95554900);
2579 8 : parameter[DG_SC3].push_back(0.98339900);
2580 8 : parameter[DG_SC3].push_back(-0.14763600);
2581 :
2582 8 : parameter[DG_SC4].push_back(6.45900000);
2583 8 : parameter[DG_SC4].push_back(0.02018400);
2584 8 : parameter[DG_SC4].push_back(4.17705400);
2585 8 : parameter[DG_SC4].push_back(0.98531700);
2586 8 : parameter[DG_SC4].push_back(-5.04354900);
2587 8 : parameter[DG_SC4].push_back(2.56123700);
2588 8 : parameter[DG_SC4].push_back(-0.39249300);
2589 :
2590 8 : parameter[DG_3TE].push_back(4.23000000);
2591 8 : parameter[DG_3TE].push_back(0.00061700);
2592 8 : parameter[DG_3TE].push_back(0.92140100);
2593 8 : parameter[DG_3TE].push_back(0.08016400);
2594 8 : parameter[DG_3TE].push_back(-0.39003500);
2595 8 : parameter[DG_3TE].push_back(0.12406900);
2596 8 : parameter[DG_3TE].push_back(-0.01119200);
2597 :
2598 8 : parameter[DG_5TE].push_back(4.23000000);
2599 8 : parameter[DG_5TE].push_back(0.00064900);
2600 8 : parameter[DG_5TE].push_back(0.92110500);
2601 8 : parameter[DG_5TE].push_back(0.08031500);
2602 8 : parameter[DG_5TE].push_back(-0.38997000);
2603 8 : parameter[DG_5TE].push_back(0.12401200);
2604 8 : parameter[DG_5TE].push_back(-0.01118100);
2605 :
2606 8 : parameter[DG_TE3].push_back(2.87400000);
2607 8 : parameter[DG_TE3].push_back(0.00182000);
2608 8 : parameter[DG_TE3].push_back(12.41507000);
2609 8 : parameter[DG_TE3].push_back(-7.47384800);
2610 8 : parameter[DG_TE3].push_back(-2.11864700);
2611 8 : parameter[DG_TE3].push_back(2.50112600);
2612 8 : parameter[DG_TE3].push_back(-0.48652200);
2613 :
2614 8 : parameter[DG_TE5].push_back(8.03600000);
2615 8 : parameter[DG_TE5].push_back(0.00676400);
2616 8 : parameter[DG_TE5].push_back(4.65989200);
2617 8 : parameter[DG_TE5].push_back(0.78482500);
2618 8 : parameter[DG_TE5].push_back(-6.86460600);
2619 8 : parameter[DG_TE5].push_back(4.11675400);
2620 8 : parameter[DG_TE5].push_back(-0.72249100);
2621 :
2622 8 : parameter[DT_BB1].push_back(32.88500000);
2623 8 : parameter[DT_BB1].push_back(0.08220100);
2624 8 : parameter[DT_BB1].push_back(-7.33006800);
2625 8 : parameter[DT_BB1].push_back(2.16636500);
2626 8 : parameter[DT_BB1].push_back(-3.53465700);
2627 8 : parameter[DT_BB1].push_back(2.31447600);
2628 8 : parameter[DT_BB1].push_back(-0.39445400);
2629 :
2630 8 : parameter[DT_BB2].push_back(3.80600000);
2631 8 : parameter[DT_BB2].push_back(-0.10723000);
2632 8 : parameter[DT_BB2].push_back(9.56675000);
2633 8 : parameter[DT_BB2].push_back(-6.20236100);
2634 8 : parameter[DT_BB2].push_back(-0.49550400);
2635 8 : parameter[DT_BB2].push_back(1.14300600);
2636 8 : parameter[DT_BB2].push_back(-0.21420000);
2637 :
2638 8 : parameter[DT_BB3].push_back(-1.35600000);
2639 8 : parameter[DT_BB3].push_back(0.56737900);
2640 8 : parameter[DT_BB3].push_back(6.76595400);
2641 8 : parameter[DT_BB3].push_back(4.08976100);
2642 8 : parameter[DT_BB3].push_back(-9.61512500);
2643 8 : parameter[DT_BB3].push_back(4.40975100);
2644 8 : parameter[DT_BB3].push_back(-0.64239800);
2645 :
2646 8 : parameter[DT_SC1].push_back(5.95100000);
2647 8 : parameter[DT_SC1].push_back(-0.02926500);
2648 8 : parameter[DT_SC1].push_back(2.59630300);
2649 8 : parameter[DT_SC1].push_back(-0.56152200);
2650 8 : parameter[DT_SC1].push_back(-1.56532600);
2651 8 : parameter[DT_SC1].push_back(0.89322800);
2652 8 : parameter[DT_SC1].push_back(-0.14142900);
2653 :
2654 8 : parameter[DT_SC2].push_back(10.90100000);
2655 8 : parameter[DT_SC2].push_back(0.02183400);
2656 8 : parameter[DT_SC2].push_back(0.19463000);
2657 8 : parameter[DT_SC2].push_back(0.72393000);
2658 8 : parameter[DT_SC2].push_back(-1.93199500);
2659 8 : parameter[DT_SC2].push_back(0.96856300);
2660 8 : parameter[DT_SC2].push_back(-0.14512600);
2661 :
2662 8 : parameter[DT_SC3].push_back(4.31400000);
2663 8 : parameter[DT_SC3].push_back(-0.07745600);
2664 8 : parameter[DT_SC3].push_back(12.49820300);
2665 8 : parameter[DT_SC3].push_back(-7.64994200);
2666 8 : parameter[DT_SC3].push_back(-3.00359600);
2667 8 : parameter[DT_SC3].push_back(3.26263300);
2668 8 : parameter[DT_SC3].push_back(-0.64498600);
2669 :
2670 8 : parameter[DT_3TE].push_back(4.23000000);
2671 8 : parameter[DT_3TE].push_back(0.00062000);
2672 8 : parameter[DT_3TE].push_back(0.92141100);
2673 8 : parameter[DT_3TE].push_back(0.08030900);
2674 8 : parameter[DT_3TE].push_back(-0.39021500);
2675 8 : parameter[DT_3TE].push_back(0.12414000);
2676 8 : parameter[DT_3TE].push_back(-0.01120100);
2677 :
2678 8 : parameter[DT_5TE].push_back(4.23000000);
2679 8 : parameter[DT_5TE].push_back(0.00063700);
2680 8 : parameter[DT_5TE].push_back(0.92130800);
2681 8 : parameter[DT_5TE].push_back(0.08026900);
2682 8 : parameter[DT_5TE].push_back(-0.39007500);
2683 8 : parameter[DT_5TE].push_back(0.12406600);
2684 8 : parameter[DT_5TE].push_back(-0.01118800);
2685 :
2686 8 : parameter[DT_TE3].push_back(2.87400000);
2687 8 : parameter[DT_TE3].push_back(-0.00251200);
2688 8 : parameter[DT_TE3].push_back(12.43576400);
2689 8 : parameter[DT_TE3].push_back(-7.55343800);
2690 8 : parameter[DT_TE3].push_back(-2.07363500);
2691 8 : parameter[DT_TE3].push_back(2.51279300);
2692 8 : parameter[DT_TE3].push_back(-0.49437100);
2693 :
2694 8 : parameter[DT_TE5].push_back(8.03600000);
2695 8 : parameter[DT_TE5].push_back(0.00119900);
2696 8 : parameter[DT_TE5].push_back(4.91762300);
2697 8 : parameter[DT_TE5].push_back(0.65637000);
2698 8 : parameter[DT_TE5].push_back(-7.23392500);
2699 8 : parameter[DT_TE5].push_back(4.44636600);
2700 8 : parameter[DT_TE5].push_back(-0.79467800);
2701 :
2702 8 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
2703 8 : if( moldat ) {
2704 8400 : for(unsigned i=0; i<atoms.size(); ++i) {
2705 8392 : std::string Aname = moldat->getAtomName(atoms[i]);
2706 8392 : std::string Rname = moldat->getResidueName(atoms[i]);
2707 8392 : if(Rname=="ALA") {
2708 72 : if(Aname=="BB") {
2709 72 : atoi[i]=ALA_BB;
2710 0 : } else error("Atom name not known: "+Aname);
2711 8320 : } else if(Rname=="ARG") {
2712 420 : if(Aname=="BB") {
2713 140 : atoi[i]=ARG_BB;
2714 280 : } else if(Aname=="SC1") {
2715 140 : atoi[i]=ARG_SC1;
2716 140 : } else if(Aname=="SC2") {
2717 140 : atoi[i]=ARG_SC2;
2718 0 : } else error("Atom name not known: "+Aname);
2719 7900 : } else if(Rname=="ASN") {
2720 240 : if(Aname=="BB") {
2721 120 : atoi[i]=ASN_BB;
2722 120 : } else if(Aname=="SC1") {
2723 120 : atoi[i]=ASN_SC1;
2724 0 : } else error("Atom name not known: "+Aname);
2725 7660 : } else if(Rname=="ASP") {
2726 368 : if(Aname=="BB") {
2727 184 : atoi[i]=ASP_BB;
2728 184 : } else if(Aname=="SC1") {
2729 184 : atoi[i]=ASP_SC1;
2730 0 : } else error("Atom name not known: "+Aname);
2731 7292 : } else if(Rname=="CYS") {
2732 16 : if(Aname=="BB") {
2733 8 : atoi[i]=CYS_BB;
2734 8 : } else if(Aname=="SC1") {
2735 8 : atoi[i]=CYS_SC1;
2736 0 : } else error("Atom name not known: "+Aname);
2737 7276 : } else if(Rname=="GLN") {
2738 224 : if(Aname=="BB") {
2739 112 : atoi[i]=GLN_BB;
2740 112 : } else if(Aname=="SC1") {
2741 112 : atoi[i]=GLN_SC1;
2742 0 : } else error("Atom name not known: "+Aname);
2743 7052 : } else if(Rname=="GLU") {
2744 480 : if(Aname=="BB") {
2745 240 : atoi[i]=GLU_BB;
2746 240 : } else if(Aname=="SC1") {
2747 240 : atoi[i]=GLU_SC1;
2748 0 : } else error("Atom name not known: "+Aname);
2749 6572 : } else if(Rname=="GLY") {
2750 116 : if(Aname=="BB") {
2751 116 : atoi[i]=GLY_BB;
2752 0 : } else error("Atom name not known: "+Aname);
2753 6456 : } else if(Rname=="HIS") {
2754 576 : if(Aname=="BB") {
2755 144 : atoi[i]=HIS_BB;
2756 432 : } else if(Aname=="SC1") {
2757 144 : atoi[i]=HIS_SC1;
2758 288 : } else if(Aname=="SC2") {
2759 144 : atoi[i]=HIS_SC2;
2760 144 : } else if(Aname=="SC3") {
2761 144 : atoi[i]=HIS_SC3;
2762 0 : } else error("Atom name not known: "+Aname);
2763 5880 : } else if(Rname=="ILE") {
2764 584 : if(Aname=="BB") {
2765 292 : atoi[i]=ILE_BB;
2766 292 : } else if(Aname=="SC1") {
2767 292 : atoi[i]=ILE_SC1;
2768 0 : } else error("Atom name not known: "+Aname);
2769 5296 : } else if(Rname=="LEU") {
2770 448 : if(Aname=="BB") {
2771 224 : atoi[i]=LEU_BB;
2772 224 : } else if(Aname=="SC1") {
2773 224 : atoi[i]=LEU_SC1;
2774 0 : } else error("Atom name not known: "+Aname);
2775 4848 : } else if(Rname=="LYS") {
2776 792 : if(Aname=="BB") {
2777 264 : atoi[i]=LYS_BB;
2778 528 : } else if(Aname=="SC1") {
2779 264 : atoi[i]=LYS_SC1;
2780 264 : } else if(Aname=="SC2") {
2781 264 : atoi[i]=LYS_SC2;
2782 0 : } else error("Atom name not known: "+Aname);
2783 4056 : } else if(Rname=="MET") {
2784 80 : if(Aname=="BB") {
2785 40 : atoi[i]=MET_BB;
2786 40 : } else if(Aname=="SC1") {
2787 40 : atoi[i]=MET_SC1;
2788 0 : } else error("Atom name not known: "+Aname);
2789 3976 : } else if(Rname=="PHE") {
2790 512 : if(Aname=="BB") {
2791 128 : atoi[i]=PHE_BB;
2792 384 : } else if(Aname=="SC1") {
2793 128 : atoi[i]=PHE_SC1;
2794 256 : } else if(Aname=="SC2") {
2795 128 : atoi[i]=PHE_SC2;
2796 128 : } else if(Aname=="SC3") {
2797 128 : atoi[i]=PHE_SC3;
2798 0 : } else error("Atom name not known: "+Aname);
2799 3464 : } else if(Rname=="PRO") {
2800 128 : if(Aname=="BB") {
2801 64 : atoi[i]=PRO_BB;
2802 64 : } else if(Aname=="SC1") {
2803 64 : atoi[i]=PRO_SC1;
2804 0 : } else error("Atom name not known: "+Aname);
2805 3336 : } else if(Rname=="SER") {
2806 248 : if(Aname=="BB") {
2807 124 : atoi[i]=SER_BB;
2808 124 : } else if(Aname=="SC1") {
2809 124 : atoi[i]=SER_SC1;
2810 0 : } else error("Atom name not known: "+Aname);
2811 3088 : } else if(Rname=="THR") {
2812 288 : if(Aname=="BB") {
2813 144 : atoi[i]=THR_BB;
2814 144 : } else if(Aname=="SC1") {
2815 144 : atoi[i]=THR_SC1;
2816 0 : } else error("Atom name not known: "+Aname);
2817 2800 : } else if(Rname=="TRP") {
2818 0 : if(Aname=="BB") {
2819 0 : atoi[i]=TRP_BB;
2820 0 : } else if(Aname=="SC1") {
2821 0 : atoi[i]=TRP_SC1;
2822 0 : } else if(Aname=="SC2") {
2823 0 : atoi[i]=TRP_SC2;
2824 0 : } else if(Aname=="SC3") {
2825 0 : atoi[i]=TRP_SC3;
2826 0 : } else if(Aname=="SC4") {
2827 0 : atoi[i]=TRP_SC4;
2828 0 : } else error("Atom name not known: "+Aname);
2829 2800 : } else if(Rname=="TYR") {
2830 544 : if(Aname=="BB") {
2831 136 : atoi[i]=TYR_BB;
2832 408 : } else if(Aname=="SC1") {
2833 136 : atoi[i]=TYR_SC1;
2834 272 : } else if(Aname=="SC2") {
2835 136 : atoi[i]=TYR_SC2;
2836 136 : } else if(Aname=="SC3") {
2837 136 : atoi[i]=TYR_SC3;
2838 0 : } else error("Atom name not known: "+Aname);
2839 2256 : } else if(Rname=="VAL") {
2840 288 : if(Aname=="BB") {
2841 144 : atoi[i]=VAL_BB;
2842 144 : } else if(Aname=="SC1") {
2843 144 : atoi[i]=VAL_SC1;
2844 0 : } else error("Atom name not known: "+Aname);
2845 1968 : } else if(Rname==" A") {
2846 0 : if(Aname=="BB1") {
2847 0 : atoi[i]=A_BB1;
2848 0 : } else if(Aname=="BB2") {
2849 0 : atoi[i]=A_BB2;
2850 0 : } else if(Aname=="BB3") {
2851 0 : atoi[i]=A_BB3;
2852 0 : } else if(Aname=="SC1") {
2853 0 : atoi[i]=A_SC1;
2854 0 : } else if(Aname=="SC2") {
2855 0 : atoi[i]=A_SC2;
2856 0 : } else if(Aname=="SC3") {
2857 0 : atoi[i]=A_SC3;
2858 0 : } else if(Aname=="SC4") {
2859 0 : atoi[i]=A_SC4;
2860 0 : } else if(Aname=="3TE") {
2861 0 : atoi[i]=A_3TE;
2862 0 : } else if(Aname=="5TE") {
2863 0 : atoi[i]=A_5TE;
2864 0 : } else if(Aname=="TE3") {
2865 0 : atoi[i]=A_TE3;
2866 0 : } else if(Aname=="TE5") {
2867 0 : atoi[i]=A_TE5;
2868 0 : } else error("Atom name not known: "+Aname);
2869 1968 : } else if(Rname==" C") {
2870 0 : if(Aname=="BB1") {
2871 0 : atoi[i]=C_BB1;
2872 0 : } else if(Aname=="BB2") {
2873 0 : atoi[i]=C_BB2;
2874 0 : } else if(Aname=="BB3") {
2875 0 : atoi[i]=C_BB3;
2876 0 : } else if(Aname=="SC1") {
2877 0 : atoi[i]=C_SC1;
2878 0 : } else if(Aname=="SC2") {
2879 0 : atoi[i]=C_SC2;
2880 0 : } else if(Aname=="SC3") {
2881 0 : atoi[i]=C_SC3;
2882 0 : } else if(Aname=="3TE") {
2883 0 : atoi[i]=C_3TE;
2884 0 : } else if(Aname=="5TE") {
2885 0 : atoi[i]=C_5TE;
2886 0 : } else if(Aname=="TE3") {
2887 0 : atoi[i]=C_TE3;
2888 0 : } else if(Aname=="TE5") {
2889 0 : atoi[i]=C_TE5;
2890 0 : } else error("Atom name not known: "+Aname);
2891 1968 : } else if(Rname==" G") {
2892 0 : if(Aname=="BB1") {
2893 0 : atoi[i]=G_BB1;
2894 0 : } else if(Aname=="BB2") {
2895 0 : atoi[i]=G_BB2;
2896 0 : } else if(Aname=="BB3") {
2897 0 : atoi[i]=G_BB3;
2898 0 : } else if(Aname=="SC1") {
2899 0 : atoi[i]=G_SC1;
2900 0 : } else if(Aname=="SC2") {
2901 0 : atoi[i]=G_SC2;
2902 0 : } else if(Aname=="SC3") {
2903 0 : atoi[i]=G_SC3;
2904 0 : } else if(Aname=="SC4") {
2905 0 : atoi[i]=G_SC4;
2906 0 : } else if(Aname=="3TE") {
2907 0 : atoi[i]=G_3TE;
2908 0 : } else if(Aname=="5TE") {
2909 0 : atoi[i]=G_5TE;
2910 0 : } else if(Aname=="TE3") {
2911 0 : atoi[i]=G_TE3;
2912 0 : } else if(Aname=="TE5") {
2913 0 : atoi[i]=G_TE5;
2914 0 : } else error("Atom name not known: "+Aname);
2915 1968 : } else if(Rname==" U") {
2916 0 : if(Aname=="BB1") {
2917 0 : atoi[i]=U_BB1;
2918 0 : } else if(Aname=="BB2") {
2919 0 : atoi[i]=U_BB2;
2920 0 : } else if(Aname=="BB3") {
2921 0 : atoi[i]=U_BB3;
2922 0 : } else if(Aname=="SC1") {
2923 0 : atoi[i]=U_SC1;
2924 0 : } else if(Aname=="SC2") {
2925 0 : atoi[i]=U_SC2;
2926 0 : } else if(Aname=="SC3") {
2927 0 : atoi[i]=U_SC3;
2928 0 : } else if(Aname=="3TE") {
2929 0 : atoi[i]=U_3TE;
2930 0 : } else if(Aname=="5TE") {
2931 0 : atoi[i]=U_5TE;
2932 0 : } else if(Aname=="TE3") {
2933 0 : atoi[i]=U_TE3;
2934 0 : } else if(Aname=="TE5") {
2935 0 : atoi[i]=U_TE5;
2936 0 : } else error("Atom name not known: "+Aname);
2937 1968 : } else if(Rname==" DA") {
2938 696 : if(Aname=="BB1") {
2939 96 : atoi[i]=DA_BB1;
2940 600 : } else if(Aname=="BB2") {
2941 96 : atoi[i]=DA_BB2;
2942 504 : } else if(Aname=="BB3") {
2943 96 : atoi[i]=DA_BB3;
2944 408 : } else if(Aname=="SC1") {
2945 100 : atoi[i]=DA_SC1;
2946 308 : } else if(Aname=="SC2") {
2947 100 : atoi[i]=DA_SC2;
2948 208 : } else if(Aname=="SC3") {
2949 100 : atoi[i]=DA_SC3;
2950 108 : } else if(Aname=="SC4") {
2951 100 : atoi[i]=DA_SC4;
2952 8 : } else if(Aname=="3TE") {
2953 0 : atoi[i]=DA_3TE;
2954 8 : } else if(Aname=="5TE") {
2955 0 : atoi[i]=DA_5TE;
2956 8 : } else if(Aname=="TE3") {
2957 4 : atoi[i]=DA_TE3;
2958 4 : } else if(Aname=="TE5") {
2959 4 : atoi[i]=DA_TE5;
2960 0 : } else error("Atom name not known: "+Aname);
2961 1272 : } else if(Rname==" DC") {
2962 312 : if(Aname=="BB1") {
2963 52 : atoi[i]=DC_BB1;
2964 260 : } else if(Aname=="BB2") {
2965 52 : atoi[i]=DC_BB2;
2966 208 : } else if(Aname=="BB3") {
2967 52 : atoi[i]=DC_BB3;
2968 156 : } else if(Aname=="SC1") {
2969 52 : atoi[i]=DC_SC1;
2970 104 : } else if(Aname=="SC2") {
2971 52 : atoi[i]=DC_SC2;
2972 52 : } else if(Aname=="SC3") {
2973 52 : atoi[i]=DC_SC3;
2974 0 : } else if(Aname=="3TE") {
2975 0 : atoi[i]=DC_3TE;
2976 0 : } else if(Aname=="5TE") {
2977 0 : atoi[i]=DC_5TE;
2978 0 : } else if(Aname=="TE3") {
2979 0 : atoi[i]=DC_TE3;
2980 0 : } else if(Aname=="TE5") {
2981 0 : atoi[i]=DC_TE5;
2982 0 : } else error("Atom name not known: "+Aname);
2983 960 : } else if(Rname==" DG") {
2984 364 : if(Aname=="BB1") {
2985 52 : atoi[i]=DG_BB1;
2986 312 : } else if(Aname=="BB2") {
2987 52 : atoi[i]=DG_BB2;
2988 260 : } else if(Aname=="BB3") {
2989 52 : atoi[i]=DG_BB3;
2990 208 : } else if(Aname=="SC1") {
2991 52 : atoi[i]=DG_SC1;
2992 156 : } else if(Aname=="SC2") {
2993 52 : atoi[i]=DG_SC2;
2994 104 : } else if(Aname=="SC3") {
2995 52 : atoi[i]=DG_SC3;
2996 52 : } else if(Aname=="SC4") {
2997 52 : atoi[i]=DG_SC4;
2998 0 : } else if(Aname=="3TE") {
2999 0 : atoi[i]=DG_3TE;
3000 0 : } else if(Aname=="5TE") {
3001 0 : atoi[i]=DG_5TE;
3002 0 : } else if(Aname=="TE3") {
3003 0 : atoi[i]=DG_TE3;
3004 0 : } else if(Aname=="TE5") {
3005 0 : atoi[i]=DG_TE5;
3006 0 : } else error("Atom name not known: "+Aname);
3007 596 : } else if(Rname==" DT") {
3008 596 : if(Aname=="BB1") {
3009 96 : atoi[i]=DT_BB1;
3010 500 : } else if(Aname=="BB2") {
3011 96 : atoi[i]=DT_BB2;
3012 404 : } else if(Aname=="BB3") {
3013 96 : atoi[i]=DT_BB3;
3014 308 : } else if(Aname=="SC1") {
3015 100 : atoi[i]=DT_SC1;
3016 208 : } else if(Aname=="SC2") {
3017 100 : atoi[i]=DT_SC2;
3018 108 : } else if(Aname=="SC3") {
3019 100 : atoi[i]=DT_SC3;
3020 8 : } else if(Aname=="3TE") {
3021 0 : atoi[i]=DT_3TE;
3022 8 : } else if(Aname=="5TE") {
3023 0 : atoi[i]=DT_5TE;
3024 8 : } else if(Aname=="TE3") {
3025 4 : atoi[i]=DT_TE3;
3026 4 : } else if(Aname=="TE5") {
3027 4 : atoi[i]=DT_TE5;
3028 0 : } else error("Atom name not known: "+Aname);
3029 0 : } else error("Residue not known: "+Rname);
3030 : }
3031 : } else {
3032 0 : error("MOLINFO DATA not found\n");
3033 : }
3034 8 : }
3035 :
3036 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)
3037 : {
3038 :
3039 10 : parameter_solv[TRP].push_back(60737.60249988003);
3040 10 : parameter_solv[TRP].push_back(-77.75716755173752);
3041 10 : parameter_solv[TRP].push_back(-205962.98557711052);
3042 10 : parameter_solv[TRP].push_back(-62013.46984155453);
3043 10 : parameter_solv[TRP].push_back(680710.7592231638);
3044 10 : parameter_solv[TRP].push_back(-681336.8777362367);
3045 10 : parameter_solv[TRP].push_back(211473.65530642506);
3046 :
3047 10 : parameter_solv[TYR].push_back(46250.80359987982);
3048 10 : parameter_solv[TYR].push_back(-45.8287864681578);
3049 10 : parameter_solv[TYR].push_back(-143872.91752817619);
3050 10 : parameter_solv[TYR].push_back(-39049.68736409533);
3051 10 : parameter_solv[TYR].push_back(441321.71874090104);
3052 10 : parameter_solv[TYR].push_back(-434478.0972346327);
3053 10 : parameter_solv[TYR].push_back(133179.3694641212);
3054 :
3055 10 : parameter_solv[PHE].push_back(42407.164900118914);
3056 10 : parameter_solv[PHE].push_back(-159.1980754191431);
3057 10 : parameter_solv[PHE].push_back(-123847.86192757386);
3058 10 : parameter_solv[PHE].push_back(-41797.69041575073);
3059 10 : parameter_solv[PHE].push_back(380283.7035277073);
3060 10 : parameter_solv[PHE].push_back(-361432.67247521743);
3061 10 : parameter_solv[PHE].push_back(107750.64978068044);
3062 :
3063 10 : parameter_solv[HIP].push_back(24473.47360011923);
3064 10 : parameter_solv[HIP].push_back(-111.64156672747428);
3065 10 : parameter_solv[HIP].push_back(-65826.16993707925);
3066 10 : parameter_solv[HIP].push_back(-23305.91329798928);
3067 10 : parameter_solv[HIP].push_back(194795.11911635034);
3068 10 : parameter_solv[HIP].push_back(-180454.49458095312);
3069 10 : parameter_solv[HIP].push_back(52699.374196745615);
3070 :
3071 10 : parameter_solv[ARG].push_back(34106.70239988039);
3072 10 : parameter_solv[ARG].push_back(152.7472727640246);
3073 10 : parameter_solv[ARG].push_back(-117086.49392248681);
3074 10 : parameter_solv[ARG].push_back(-19664.229479267167);
3075 10 : parameter_solv[ARG].push_back(364454.0909203641);
3076 10 : parameter_solv[ARG].push_back(-382075.8018312776);
3077 10 : parameter_solv[ARG].push_back(122775.75036605193);
3078 :
3079 10 : parameter_solv[LYS].push_back(32292.090000118922);
3080 10 : parameter_solv[LYS].push_back(-111.97371180593888);
3081 10 : parameter_solv[LYS].push_back(-91953.10997619898);
3082 10 : parameter_solv[LYS].push_back(-30690.807047993283);
3083 10 : parameter_solv[LYS].push_back(282092.40760143084);
3084 10 : parameter_solv[LYS].push_back(-269503.2592457489);
3085 10 : parameter_solv[LYS].push_back(80777.81552915688);
3086 :
3087 10 : parameter_solv[CYS].push_back(11352.902500119093);
3088 10 : parameter_solv[CYS].push_back(-45.5226331859686);
3089 10 : parameter_solv[CYS].push_back(-20925.085562607524);
3090 10 : parameter_solv[CYS].push_back(-5662.685408989286);
3091 10 : parameter_solv[CYS].push_back(38559.10376731146);
3092 10 : parameter_solv[CYS].push_back(-27885.23426006181);
3093 10 : parameter_solv[CYS].push_back(6280.15058191397);
3094 :
3095 10 : parameter_solv[CYX].push_back(10281.960000119348);
3096 10 : parameter_solv[CYX].push_back(-42.315998754511);
3097 10 : parameter_solv[CYX].push_back(-19328.174487327480);
3098 10 : parameter_solv[CYX].push_back(-5523.191775626829);
3099 10 : parameter_solv[CYX].push_back(38185.463172673335);
3100 10 : parameter_solv[CYX].push_back(-28940.174693042034);
3101 10 : parameter_solv[CYX].push_back(6925.390014187676);
3102 :
3103 10 : parameter_solv[ASP].push_back(13511.73760011933);
3104 10 : parameter_solv[ASP].push_back(-59.929111107656595);
3105 10 : parameter_solv[ASP].push_back(-25849.869639655575);
3106 10 : parameter_solv[ASP].push_back(-7541.669448872824);
3107 10 : parameter_solv[ASP].push_back(50760.92045144903);
3108 10 : parameter_solv[ASP].push_back(-37677.87583269734);
3109 10 : parameter_solv[ASP].push_back(8745.7056219399);
3110 :
3111 10 : parameter_solv[GLU].push_back(20443.280400119456);
3112 10 : parameter_solv[GLU].push_back(-113.77561814283207);
3113 10 : parameter_solv[GLU].push_back(-45587.79314626863);
3114 10 : parameter_solv[GLU].push_back(-16187.556837331254);
3115 10 : parameter_solv[GLU].push_back(112609.65830609271);
3116 10 : parameter_solv[GLU].push_back(-93362.05323205091);
3117 10 : parameter_solv[GLU].push_back(24519.557866124724);
3118 :
3119 10 : parameter_solv[ILE].push_back(27858.948100119596);
3120 10 : parameter_solv[ILE].push_back(-159.27355145839834);
3121 10 : parameter_solv[ILE].push_back(-61571.43463039565);
3122 10 : parameter_solv[ILE].push_back(-21324.879474559468);
3123 10 : parameter_solv[ILE].push_back(144070.7572894681);
3124 10 : parameter_solv[ILE].push_back(-115021.81959095894);
3125 10 : parameter_solv[ILE].push_back(28939.085108838968);
3126 :
3127 10 : parameter_solv[LEU].push_back(27858.948100119596);
3128 10 : parameter_solv[LEU].push_back(-165.61892007509647);
3129 10 : parameter_solv[LEU].push_back(-62564.568746500125);
3130 10 : parameter_solv[LEU].push_back(-22465.332149768525);
3131 10 : parameter_solv[LEU].push_back(151616.79489291538);
3132 10 : parameter_solv[LEU].push_back(-122905.6119395393);
3133 10 : parameter_solv[LEU].push_back(31436.664377885514);
3134 :
3135 10 : parameter_solv[MET].push_back(25609.60090011981);
3136 10 : parameter_solv[MET].push_back(-135.38857843066708);
3137 10 : parameter_solv[MET].push_back(-67771.01108177133);
3138 10 : parameter_solv[MET].push_back(-25228.934337676077);
3139 10 : parameter_solv[MET].push_back(199649.95030712147);
3140 10 : parameter_solv[MET].push_back(-182251.94895101967);
3141 10 : parameter_solv[MET].push_back(52502.88444247481);
3142 :
3143 10 : parameter_solv[ASN].push_back(14376.010000119095);
3144 10 : parameter_solv[ASN].push_back(-67.65579048748472);
3145 10 : parameter_solv[ASN].push_back(-28302.87809850141);
3146 10 : parameter_solv[ASN].push_back(-8577.439830985548);
3147 10 : parameter_solv[ASN].push_back(57532.879075695324);
3148 10 : parameter_solv[ASN].push_back(-43261.79286366774);
3149 10 : parameter_solv[ASN].push_back(10186.448634149085);
3150 :
3151 10 : parameter_solv[PRO].push_back(16866.21690011944);
3152 10 : parameter_solv[PRO].push_back(-70.84327801054884);
3153 10 : parameter_solv[PRO].push_back(-31465.84064925844);
3154 10 : parameter_solv[PRO].push_back(-8653.3693368317);
3155 10 : parameter_solv[PRO].push_back(58032.28250733714);
3156 10 : parameter_solv[PRO].push_back(-41521.01146771431);
3157 10 : parameter_solv[PRO].push_back(9184.530596102064);
3158 :
3159 10 : parameter_solv[GLN].push_back(21503.289600119);
3160 10 : parameter_solv[GLN].push_back(-121.30164008960246);
3161 10 : parameter_solv[GLN].push_back(-50468.580981118175);
3162 10 : parameter_solv[GLN].push_back(-18462.49098408308);
3163 10 : parameter_solv[GLN].push_back(132718.44904081387);
3164 10 : parameter_solv[GLN].push_back(-113787.22666510186);
3165 10 : parameter_solv[GLN].push_back(30920.348610969988);
3166 :
3167 10 : parameter_solv[SER].push_back(9181.472400119354);
3168 10 : parameter_solv[SER].push_back(-28.77519915767741);
3169 10 : parameter_solv[SER].push_back(-15205.543144104717);
3170 10 : parameter_solv[SER].push_back(-3377.782176346411);
3171 10 : parameter_solv[SER].push_back(23345.555771001076);
3172 10 : parameter_solv[SER].push_back(-15312.694356014094);
3173 10 : parameter_solv[SER].push_back(3013.8428466148);
3174 :
3175 10 : parameter_solv[THR].push_back(15020.953600119403);
3176 10 : parameter_solv[THR].push_back(-61.91004832631006);
3177 10 : parameter_solv[THR].push_back(-27814.537889259853);
3178 10 : parameter_solv[THR].push_back(-7532.227289701552);
3179 10 : parameter_solv[THR].push_back(50586.30566118166);
3180 10 : parameter_solv[THR].push_back(-35943.866131120165);
3181 10 : parameter_solv[THR].push_back(7880.093558764326);
3182 :
3183 10 : parameter_solv[VAL].push_back(19647.628900119355);
3184 10 : parameter_solv[VAL].push_back(-89.04983250107853);
3185 10 : parameter_solv[VAL].push_back(-38050.09958470928);
3186 10 : parameter_solv[VAL].push_back(-10921.427112288537);
3187 10 : parameter_solv[VAL].push_back(72774.32322962297);
3188 10 : parameter_solv[VAL].push_back(-52689.060152305225);
3189 10 : parameter_solv[VAL].push_back(11806.492503632868);
3190 :
3191 10 : parameter_solv[ALA].push_back(7515.156100119276);
3192 10 : parameter_solv[ALA].push_back(-20.226381685697746);
3193 10 : parameter_solv[ALA].push_back(-11761.841094237716);
3194 10 : parameter_solv[ALA].push_back(-2341.4929468980367);
3195 10 : parameter_solv[ALA].push_back(16545.385777961936);
3196 10 : parameter_solv[ALA].push_back(-10397.175253025776);
3197 10 : parameter_solv[ALA].push_back(1921.5264606725107);
3198 :
3199 10 : parameter_solv[GLY].push_back(3594.002500119159);
3200 10 : parameter_solv[GLY].push_back(-6.910836154887606);
3201 10 : parameter_solv[GLY].push_back(-4937.354220666574);
3202 10 : parameter_solv[GLY].push_back(-785.4549468992149);
3203 10 : parameter_solv[GLY].push_back(5852.854429532936);
3204 10 : parameter_solv[GLY].push_back(-3391.2927115487832);
3205 10 : parameter_solv[GLY].push_back(552.3280571490722);
3206 :
3207 10 : parameter_solv[HIS].push_back(22888.664100119073);
3208 10 : parameter_solv[HIS].push_back(-133.86265270962434);
3209 10 : parameter_solv[HIS].push_back(-57533.51591635819);
3210 10 : parameter_solv[HIS].push_back(-21767.293192014684);
3211 10 : parameter_solv[HIS].push_back(161255.14120001195);
3212 10 : parameter_solv[HIS].push_back(-142176.64081149307);
3213 10 : parameter_solv[HIS].push_back(39642.61185646193);
3214 :
3215 10 : parameter_mix[TRP].push_back(48294.0117571196);
3216 10 : parameter_mix[TRP].push_back(-205.45879626487798);
3217 10 : parameter_mix[TRP].push_back(-148816.1858118254);
3218 10 : parameter_mix[TRP].push_back(-54968.030079609875);
3219 10 : parameter_mix[TRP].push_back(491793.79967057955);
3220 10 : parameter_mix[TRP].push_back(-476312.9117969879);
3221 10 : parameter_mix[TRP].push_back(144159.96165644142);
3222 :
3223 10 : parameter_mix[TYR].push_back(36984.20240312081);
3224 10 : parameter_mix[TYR].push_back(-83.86380083812203);
3225 10 : parameter_mix[TYR].push_back(-108820.52211887162);
3226 10 : parameter_mix[TYR].push_back(-33934.69818901515);
3227 10 : parameter_mix[TYR].push_back(341504.736372253);
3228 10 : parameter_mix[TYR].push_back(-334008.1748614056);
3229 10 : parameter_mix[TYR].push_back(102033.08077851454);
3230 :
3231 10 : parameter_mix[PHE].push_back(32119.469231338233);
3232 10 : parameter_mix[PHE].push_back(-172.96940450568917);
3233 10 : parameter_mix[PHE].push_back(-85831.4326887122);
3234 10 : parameter_mix[PHE].push_back(-33193.32405438845);
3235 10 : parameter_mix[PHE].push_back(262940.64471909316);
3236 10 : parameter_mix[PHE].push_back(-243540.06898907054);
3237 10 : parameter_mix[PHE].push_back(71084.54387480798);
3238 :
3239 10 : parameter_mix[HIP].push_back(22833.36414923898);
3240 10 : parameter_mix[HIP].push_back(-134.0493955562186);
3241 10 : parameter_mix[HIP].push_back(-55325.55607328898);
3242 10 : parameter_mix[HIP].push_back(-21898.314938881984);
3243 10 : parameter_mix[HIP].push_back(159995.6912885654);
3244 10 : parameter_mix[HIP].push_back(-142968.19796084083);
3245 10 : parameter_mix[HIP].push_back(40417.44581470003);
3246 :
3247 10 : parameter_mix[ARG].push_back(31385.401600920715);
3248 10 : parameter_mix[ARG].push_back(36.114094042884254);
3249 10 : parameter_mix[ARG].push_back(-103730.44467490204);
3250 10 : parameter_mix[ARG].push_back(-27036.249157905615);
3251 10 : parameter_mix[ARG].push_back(347011.0339314942);
3252 10 : parameter_mix[ARG].push_back(-358879.9736802336);
3253 10 : parameter_mix[ARG].push_back(114432.18361399164);
3254 :
3255 10 : parameter_mix[LYS].push_back(25511.35812671878);
3256 10 : parameter_mix[LYS].push_back(-130.4381491986372);
3257 10 : parameter_mix[LYS].push_back(-69258.61236879184);
3258 10 : parameter_mix[LYS].push_back(-27066.36783798707);
3259 10 : parameter_mix[LYS].push_back(220092.65231165203);
3260 10 : parameter_mix[LYS].push_back(-207794.5056092443);
3261 10 : parameter_mix[LYS].push_back(61665.57004630315);
3262 :
3263 10 : parameter_mix[CYS].push_back(11505.517261618916);
3264 10 : parameter_mix[CYS].push_back(-33.60468076978334);
3265 10 : parameter_mix[CYS].push_back(-18328.882710004465);
3266 10 : parameter_mix[CYS].push_back(-3956.9113649567626);
3267 10 : parameter_mix[CYS].push_back(27546.35146501212);
3268 10 : parameter_mix[CYS].push_back(-18024.826330595406);
3269 10 : parameter_mix[CYS].push_back(3551.2207387570024);
3270 :
3271 10 : parameter_mix[CYX].push_back(10746.617793719070);
3272 10 : parameter_mix[CYX].push_back(-37.082746200650);
3273 10 : parameter_mix[CYX].push_back(-17871.552278655203);
3274 10 : parameter_mix[CYX].push_back(-4512.203184574789);
3275 10 : parameter_mix[CYX].push_back(30605.726711712588);
3276 10 : parameter_mix[CYX].push_back(-21530.684072275839);
3277 10 : parameter_mix[CYX].push_back(4694.601090758420);
3278 :
3279 10 : parameter_mix[ASP].push_back(13713.858501879382);
3280 10 : parameter_mix[ASP].push_back(-51.33286241257164);
3281 10 : parameter_mix[ASP].push_back(-23807.8549764091);
3282 10 : parameter_mix[ASP].push_back(-6153.667315935503);
3283 10 : parameter_mix[ASP].push_back(41296.118377286424);
3284 10 : parameter_mix[ASP].push_back(-28740.28391184026);
3285 10 : parameter_mix[ASP].push_back(6132.671533319127);
3286 :
3287 10 : parameter_mix[GLU].push_back(19156.03660739947);
3288 10 : parameter_mix[GLU].push_back(-110.90600703589246);
3289 10 : parameter_mix[GLU].push_back(-40319.3351514524);
3290 10 : parameter_mix[GLU].push_back(-14679.813393816446);
3291 10 : parameter_mix[GLU].push_back(96769.28565573556);
3292 10 : parameter_mix[GLU].push_back(-77909.09315520026);
3293 10 : parameter_mix[GLU].push_back(19770.047062759568);
3294 :
3295 10 : parameter_mix[ILE].push_back(20693.06215917923);
3296 10 : parameter_mix[ILE].push_back(-102.87208880594848);
3297 10 : parameter_mix[ILE].push_back(-41080.44036311675);
3298 10 : parameter_mix[ILE].push_back(-12874.439649378206);
3299 10 : parameter_mix[ILE].push_back(84947.33147117581);
3300 10 : parameter_mix[ILE].push_back(-63779.07871450237);
3301 10 : parameter_mix[ILE].push_back(14938.919981690511);
3302 :
3303 10 : parameter_mix[LEU].push_back(20693.062159179233);
3304 10 : parameter_mix[LEU].push_back(-114.09539845409269);
3305 10 : parameter_mix[LEU].push_back(-42417.3431074524);
3306 10 : parameter_mix[LEU].push_back(-14393.801090829746);
3307 10 : parameter_mix[LEU].push_back(93640.48403643962);
3308 10 : parameter_mix[LEU].push_back(-71990.10354816525);
3309 10 : parameter_mix[LEU].push_back(17299.01082057651);
3310 :
3311 10 : parameter_mix[MET].push_back(22400.800002738917);
3312 10 : parameter_mix[MET].push_back(-138.14469221559762);
3313 10 : parameter_mix[MET].push_back(-53013.97694299946);
3314 10 : parameter_mix[MET].push_back(-21079.899452619244);
3315 10 : parameter_mix[MET].push_back(148607.1089339919);
3316 10 : parameter_mix[MET].push_back(-129827.63962878387);
3317 10 : parameter_mix[MET].push_back(35882.3297822684);
3318 :
3319 10 : parameter_mix[ASN].push_back(14384.287416519475);
3320 10 : parameter_mix[ASN].push_back(-55.24976731179147);
3321 10 : parameter_mix[ASN].push_back(-25372.978199926372);
3322 10 : parameter_mix[ASN].push_back(-6646.452004616925);
3323 10 : parameter_mix[ASN].push_back(44594.5027556148);
3324 10 : parameter_mix[ASN].push_back(-31202.511764907107);
3325 10 : parameter_mix[ASN].push_back(6703.764135873442);
3326 :
3327 10 : parameter_mix[PRO].push_back(13503.797145659117);
3328 10 : parameter_mix[PRO].push_back(-38.58316011847087);
3329 10 : parameter_mix[PRO].push_back(-21446.17847324053);
3330 10 : parameter_mix[PRO].push_back(-4480.55896170459);
3331 10 : parameter_mix[PRO].push_back(31274.287350083254);
3332 10 : parameter_mix[PRO].push_back(-19984.249229169505);
3333 10 : parameter_mix[PRO].push_back(3782.272312712745);
3334 :
3335 10 : parameter_mix[GLN].push_back(19938.23724683901);
3336 10 : parameter_mix[GLN].push_back(-121.24884503048865);
3337 10 : parameter_mix[GLN].push_back(-43928.589472297834);
3338 10 : parameter_mix[GLN].push_back(-16805.069757865473);
3339 10 : parameter_mix[GLN].push_back(112831.61348476357);
3340 10 : parameter_mix[GLN].push_back(-93979.08819184235);
3341 10 : parameter_mix[GLN].push_back(24741.563493163732);
3342 :
3343 10 : parameter_mix[SER].push_back(8813.67020471935);
3344 10 : parameter_mix[SER].push_back(-18.291615317790175);
3345 10 : parameter_mix[SER].push_back(-12585.074732466266);
3346 10 : parameter_mix[SER].push_back(-2064.454891600786);
3347 10 : parameter_mix[SER].push_back(15273.905065790364);
3348 10 : parameter_mix[SER].push_back(-8813.056005263466);
3349 10 : parameter_mix[SER].push_back(1404.9812302289881);
3350 :
3351 10 : parameter_mix[THR].push_back(13233.997179639062);
3352 10 : parameter_mix[THR].push_back(-39.40454157416847);
3353 10 : parameter_mix[THR].push_back(-21430.58717233547);
3354 10 : parameter_mix[THR].push_back(-4566.332853710876);
3355 10 : parameter_mix[THR].push_back(31717.497780073558);
3356 10 : parameter_mix[THR].push_back(-20299.614304281313);
3357 10 : parameter_mix[THR].push_back(3837.207224537505);
3358 :
3359 10 : parameter_mix[VAL].push_back(15135.438016299158);
3360 10 : parameter_mix[VAL].push_back(-51.415141550353205);
3361 10 : parameter_mix[VAL].push_back(-25859.078442379723);
3362 10 : parameter_mix[VAL].push_back(-6007.697291593915);
3363 10 : parameter_mix[VAL].push_back(40997.969600345634);
3364 10 : parameter_mix[VAL].push_back(-27036.257386814148);
3365 10 : parameter_mix[VAL].push_back(5328.922363811635);
3366 :
3367 10 : parameter_mix[ALA].push_back(6586.942863819189);
3368 10 : parameter_mix[ALA].push_back(-10.96713559950907);
3369 10 : parameter_mix[ALA].push_back(-8758.836131731925);
3370 10 : parameter_mix[ALA].push_back(-1223.1723720922605);
3371 10 : parameter_mix[ALA].push_back(9475.182453543037);
3372 10 : parameter_mix[ALA].push_back(-5124.611191433804);
3373 10 : parameter_mix[ALA].push_back(721.7625962949869);
3374 :
3375 10 : parameter_mix[GLY].push_back(3596.0718542192762);
3376 10 : parameter_mix[GLY].push_back(-4.079285964028122);
3377 10 : parameter_mix[GLY].push_back(-4089.4217504382686);
3378 10 : parameter_mix[GLY].push_back(-450.9650932154967);
3379 10 : parameter_mix[GLY].push_back(3737.026778223427);
3380 10 : parameter_mix[GLY].push_back(-1862.9856575810572);
3381 10 : parameter_mix[GLY].push_back(222.97288276257262);
3382 :
3383 10 : parameter_mix[HIS].push_back(21779.124723299232);
3384 10 : parameter_mix[HIS].push_back(-131.4603421188538);
3385 10 : parameter_mix[HIS].push_back(-49068.74667421681);
3386 10 : parameter_mix[HIS].push_back(-18685.909496392127);
3387 10 : parameter_mix[HIS].push_back(127724.60792384286);
3388 10 : parameter_mix[HIS].push_back(-107419.22159440348);
3389 10 : parameter_mix[HIS].push_back(28577.228634530744);
3390 :
3391 10 : parameter_vac[TRP].push_back(9599.949107368187);
3392 10 : parameter_vac[TRP].push_back(-66.35331786175249);
3393 10 : parameter_vac[TRP].push_back(-26311.640290970638);
3394 10 : parameter_vac[TRP].push_back(-11577.314600529338);
3395 10 : parameter_vac[TRP].push_back(85847.52554160352);
3396 10 : parameter_vac[TRP].push_back(-79417.17065742958);
3397 10 : parameter_vac[TRP].push_back(23090.348430572863);
3398 :
3399 10 : parameter_vac[TYR].push_back(7393.553846412945);
3400 10 : parameter_vac[TYR].push_back(-27.51954035778316);
3401 10 : parameter_vac[TYR].push_back(-20329.10485615286);
3402 10 : parameter_vac[TYR].push_back(-7444.276340508767);
3403 10 : parameter_vac[TYR].push_back(66343.22315132803);
3404 10 : parameter_vac[TYR].push_back(-64470.58721639446);
3405 10 : parameter_vac[TYR].push_back(19614.63563898146);
3406 :
3407 10 : parameter_vac[PHE].push_back(6081.874997705279);
3408 10 : parameter_vac[PHE].push_back(-40.474695969500104);
3409 10 : parameter_vac[PHE].push_back(-14354.627390498901);
3410 10 : parameter_vac[PHE].push_back(-6156.69750315959);
3411 10 : parameter_vac[PHE].push_back(42580.84239395237);
3412 10 : parameter_vac[PHE].push_back(-37704.09749809582);
3413 10 : parameter_vac[PHE].push_back(10543.005717478625);
3414 :
3415 10 : parameter_vac[HIP].push_back(5325.791987063724);
3416 10 : parameter_vac[HIP].push_back(-35.512112257530156);
3417 10 : parameter_vac[HIP].push_back(-11488.443296477566);
3418 10 : parameter_vac[HIP].push_back(-4916.724935318093);
3419 10 : parameter_vac[HIP].push_back(32134.338675979947);
3420 10 : parameter_vac[HIP].push_back(-27388.387595464188);
3421 10 : parameter_vac[HIP].push_back(7359.899986748838);
3422 :
3423 10 : parameter_vac[ARG].push_back(7220.306892248294);
3424 10 : parameter_vac[ARG].push_back(-20.65912886190997);
3425 10 : parameter_vac[ARG].push_back(-22700.70129646048);
3426 10 : parameter_vac[ARG].push_back(-8696.901551172636);
3427 10 : parameter_vac[ARG].push_back(83641.36257312517);
3428 10 : parameter_vac[ARG].push_back(-85237.33676336925);
3429 10 : parameter_vac[ARG].push_back(26899.162688310953);
3430 :
3431 10 : parameter_vac[LYS].push_back(5038.613120729022);
3432 10 : parameter_vac[LYS].push_back(-34.08366887546492);
3433 10 : parameter_vac[LYS].push_back(-12812.921120433106);
3434 10 : parameter_vac[LYS].push_back(-5843.761329082788);
3435 10 : parameter_vac[LYS].push_back(42419.08427856609);
3436 10 : parameter_vac[LYS].push_back(-39460.49038159249);
3437 10 : parameter_vac[LYS].push_back(11542.320830663035);
3438 :
3439 10 : parameter_vac[CYS].push_back(2915.0458981763995);
3440 10 : parameter_vac[CYS].push_back(-5.380571839804511);
3441 10 : parameter_vac[CYS].push_back(-3865.366285883624);
3442 10 : parameter_vac[CYS].push_back(-602.3275271136284);
3443 10 : parameter_vac[CYS].push_back(4524.133086072617);
3444 10 : parameter_vac[CYS].push_back(-2537.87137720241);
3445 10 : parameter_vac[CYS].push_back(381.52870758240016);
3446 :
3447 10 : parameter_vac[CYX].push_back(2808.068549348085);
3448 10 : parameter_vac[CYX].push_back(-7.372260063948);
3449 10 : parameter_vac[CYX].push_back(-4017.492317531980);
3450 10 : parameter_vac[CYX].push_back(-840.151815748375);
3451 10 : parameter_vac[CYX].push_back(5800.074437790741);
3452 10 : parameter_vac[CYX].push_back(-3637.868824045027);
3453 10 : parameter_vac[CYX].push_back(659.528934122407);
3454 :
3455 10 : parameter_vac[ASP].push_back(3479.750728224898);
3456 10 : parameter_vac[ASP].push_back(-10.33897891836596);
3457 10 : parameter_vac[ASP].push_back(-5382.628188436401);
3458 10 : parameter_vac[ASP].push_back(-1183.8060939576694);
3459 10 : parameter_vac[ASP].push_back(8100.082378727997);
3460 10 : parameter_vac[ASP].push_back(-5162.630696148773);
3461 10 : parameter_vac[ASP].push_back(958.993022379732);
3462 :
3463 10 : parameter_vac[GLU].push_back(4487.461543955491);
3464 10 : parameter_vac[GLU].push_back(-26.671865751817936);
3465 10 : parameter_vac[GLU].push_back(-8829.738168429001);
3466 10 : parameter_vac[GLU].push_back(-3297.668395415257);
3467 10 : parameter_vac[GLU].push_back(20686.457747123466);
3468 10 : parameter_vac[GLU].push_back(-16030.814134196151);
3469 10 : parameter_vac[GLU].push_back(3858.4457728083275);
3470 :
3471 10 : parameter_vac[ILE].push_back(3842.5968201937776);
3472 10 : parameter_vac[ILE].push_back(-13.848165050578492);
3473 10 : parameter_vac[ILE].push_back(-6480.062699452774);
3474 10 : parameter_vac[ILE].push_back(-1636.3888925440413);
3475 10 : parameter_vac[ILE].push_back(10967.333210698738);
3476 10 : parameter_vac[ILE].push_back(-7483.704914714421);
3477 10 : parameter_vac[ILE].push_back(1548.5696047594895);
3478 :
3479 10 : parameter_vac[LEU].push_back(3842.5968201937785);
3480 10 : parameter_vac[LEU].push_back(-16.2745108270949);
3481 10 : parameter_vac[LEU].push_back(-6807.110269770606);
3482 10 : parameter_vac[LEU].push_back(-1926.6303434106014);
3483 10 : parameter_vac[LEU].push_back(12577.952756390941);
3484 10 : parameter_vac[LEU].push_back(-8829.40489330961);
3485 10 : parameter_vac[LEU].push_back(1882.919316016889);
3486 :
3487 10 : parameter_vac[MET].push_back(4898.512892967389);
3488 10 : parameter_vac[MET].push_back(-30.588244886468207);
3489 10 : parameter_vac[MET].push_back(-10159.093665859045);
3490 10 : parameter_vac[MET].push_back(-4025.0261508449653);
3491 10 : parameter_vac[MET].push_back(26007.394369425827);
3492 10 : parameter_vac[MET].push_back(-21199.218680206573);
3493 10 : parameter_vac[MET].push_back(5423.004225853842);
3494 :
3495 10 : parameter_vac[ASN].push_back(3598.1423998115492);
3496 10 : parameter_vac[ASN].push_back(-10.357995638888545);
3497 10 : parameter_vac[ASN].push_back(-5565.603011562138);
3498 10 : parameter_vac[ASN].push_back(-1190.3294930971967);
3499 10 : parameter_vac[ASN].push_back(8227.920711951123);
3500 10 : parameter_vac[ASN].push_back(-5222.61541118056);
3501 10 : parameter_vac[ASN].push_back(968.593406702772);
3502 :
3503 10 : parameter_vac[PRO].push_back(2702.925890807494);
3504 10 : parameter_vac[PRO].push_back(-4.11690159421177);
3505 10 : parameter_vac[PRO].push_back(-3395.325331307625);
3506 10 : parameter_vac[PRO].push_back(-458.95242128002894);
3507 10 : parameter_vac[PRO].push_back(3584.3640448715823);
3508 10 : parameter_vac[PRO].push_back(-1921.4140769384692);
3509 10 : parameter_vac[PRO].push_back(267.08577848319516);
3510 :
3511 10 : parameter_vac[GLN].push_back(4621.773132292556);
3512 10 : parameter_vac[GLN].push_back(-29.511778489038818);
3513 10 : parameter_vac[GLN].push_back(-9486.077450010192);
3514 10 : parameter_vac[GLN].push_back(-3768.5756897489828);
3515 10 : parameter_vac[GLN].push_back(23828.07111260487);
3516 10 : parameter_vac[GLN].push_back(-19110.205836780202);
3517 10 : parameter_vac[GLN].push_back(4791.718204894083);
3518 :
3519 10 : parameter_vac[SER].push_back(2115.1504654043965);
3520 10 : parameter_vac[SER].push_back(-2.4158378234251234);
3521 10 : parameter_vac[SER].push_back(-2488.1131972903822);
3522 10 : parameter_vac[SER].push_back(-263.64072945387693);
3523 10 : parameter_vac[SER].push_back(2251.376687850687);
3524 10 : parameter_vac[SER].push_back(-1066.0790768852626);
3525 10 : parameter_vac[SER].push_back(105.5155397911316);
3526 :
3527 10 : parameter_vac[THR].push_back(2914.9061707158835);
3528 10 : parameter_vac[THR].push_back(-5.032844592364407);
3529 10 : parameter_vac[THR].push_back(-3903.2546253886653);
3530 10 : parameter_vac[THR].push_back(-559.4734271244915);
3531 10 : parameter_vac[THR].push_back(4315.044828297787);
3532 10 : parameter_vac[THR].push_back(-2331.211908177365);
3533 10 : parameter_vac[THR].push_back(323.76849758109853);
3534 :
3535 10 : parameter_vac[VAL].push_back(2914.8744247581953);
3536 10 : parameter_vac[VAL].push_back(-5.847217106105881);
3537 10 : parameter_vac[VAL].push_back(-4096.370479502377);
3538 10 : parameter_vac[VAL].push_back(-655.2917606620404);
3539 10 : parameter_vac[VAL].push_back(4888.77261250007);
3540 10 : parameter_vac[VAL].push_back(-2765.7552774385167);
3541 10 : parameter_vac[VAL].push_back(421.9081598033515);
3542 :
3543 10 : parameter_vac[ALA].push_back(1443.3438146824446);
3544 10 : parameter_vac[ALA].push_back(-1.1234573178567506);
3545 10 : parameter_vac[ALA].push_back(-1492.4547663363514);
3546 10 : parameter_vac[ALA].push_back(-121.47935619968672);
3547 10 : parameter_vac[ALA].push_back(1139.689871538201);
3548 10 : parameter_vac[ALA].push_back(-483.8336547914466);
3549 10 : parameter_vac[ALA].push_back(32.48231950404626);
3550 :
3551 10 : parameter_vac[GLY].push_back(899.5356000422925);
3552 10 : parameter_vac[GLY].push_back(-0.5200880084066986);
3553 10 : parameter_vac[GLY].push_back(-787.5892053280859);
3554 10 : parameter_vac[GLY].push_back(-56.07596224884467);
3555 10 : parameter_vac[GLY].push_back(546.4212287680981);
3556 10 : parameter_vac[GLY].push_back(-222.2667666932616);
3557 10 : parameter_vac[GLY].push_back(12.474587265791476);
3558 :
3559 10 : parameter_vac[HIS].push_back(5180.842705000207);
3560 10 : parameter_vac[HIS].push_back(-29.578973475252766);
3561 10 : parameter_vac[HIS].push_back(-10323.417251934066);
3562 10 : parameter_vac[HIS].push_back(-3788.977215582307);
3563 10 : parameter_vac[HIS].push_back(24427.720792289427);
3564 10 : parameter_vac[HIS].push_back(-19307.35836837878);
3565 10 : parameter_vac[HIS].push_back(4780.831414992477);
3566 :
3567 : // NUCLEIC ACIDS
3568 10 : parameter_solv[BB_PO3].push_back(1464.5929001192262);
3569 10 : parameter_solv[BB_PO3].push_back(-2.316908934494931);
3570 10 : parameter_solv[BB_PO3].push_back(-1882.4844584696532);
3571 10 : parameter_solv[BB_PO3].push_back(-258.8660305554736);
3572 10 : parameter_solv[BB_PO3].push_back(2007.5216385943972);
3573 10 : parameter_solv[BB_PO3].push_back(-1087.6423562424877);
3574 10 : parameter_solv[BB_PO3].push_back(154.89236486681165);
3575 :
3576 10 : parameter_solv[BB_PO2].push_back(575.5201001192197);
3577 10 : parameter_solv[BB_PO2].push_back(-0.6126595489733868);
3578 10 : parameter_solv[BB_PO2].push_back(-623.3371092254897);
3579 10 : parameter_solv[BB_PO2].push_back(-68.05795957022156);
3580 10 : parameter_solv[BB_PO2].push_back(561.8052621243662);
3581 10 : parameter_solv[BB_PO2].push_back(-283.39573309540344);
3582 10 : parameter_solv[BB_PO2].push_back(35.55001698010027);
3583 :
3584 10 : parameter_solv[BB_DNA].push_back(21211.009600118316);
3585 10 : parameter_solv[BB_DNA].push_back(-90.18805990529991);
3586 10 : parameter_solv[BB_DNA].push_back(-39731.1337351215);
3587 10 : parameter_solv[BB_DNA].push_back(-10920.373563712878);
3588 10 : parameter_solv[BB_DNA].push_back(72882.21702424977);
3589 10 : parameter_solv[BB_DNA].push_back(-51747.487078112754);
3590 10 : parameter_solv[BB_DNA].push_back(11308.67842901876);
3591 :
3592 10 : parameter_solv[BB_DNA_5].push_back(22737.624100119025);
3593 10 : parameter_solv[BB_DNA_5].push_back(-102.72714886664163);
3594 10 : parameter_solv[BB_DNA_5].push_back(-43685.329677789705);
3595 10 : parameter_solv[BB_DNA_5].push_back(-12564.259374093454);
3596 10 : parameter_solv[BB_DNA_5].push_back(83454.87540484876);
3597 10 : parameter_solv[BB_DNA_5].push_back(-60367.15652138888);
3598 10 : parameter_solv[BB_DNA_5].push_back(13507.33372986899);
3599 :
3600 10 : parameter_solv[BB_DNA_3].push_back(22737.62410011902);
3601 10 : parameter_solv[BB_DNA_3].push_back(-101.57816684452263);
3602 10 : parameter_solv[BB_DNA_3].push_back(-43488.53670557616);
3603 10 : parameter_solv[BB_DNA_3].push_back(-12345.056184958417);
3604 10 : parameter_solv[BB_DNA_3].push_back(81963.5236411489);
3605 10 : parameter_solv[BB_DNA_3].push_back(-58791.59443618196);
3606 10 : parameter_solv[BB_DNA_3].push_back(13003.199362335576);
3607 :
3608 10 : parameter_solv[BB_RNA].push_back(23953.752900120977);
3609 10 : parameter_solv[BB_RNA].push_back(-117.35779348824401);
3610 10 : parameter_solv[BB_RNA].push_back(-47644.41735332837);
3611 10 : parameter_solv[BB_RNA].push_back(-14641.556643789863);
3612 10 : parameter_solv[BB_RNA].push_back(96893.48627050382);
3613 10 : parameter_solv[BB_RNA].push_back(-72249.62534169314);
3614 10 : parameter_solv[BB_RNA].push_back(16792.05552105538);
3615 :
3616 10 : parameter_solv[BB_RNA_5].push_back(25574.406400119024);
3617 10 : parameter_solv[BB_RNA_5].push_back(-131.99642772933734);
3618 10 : parameter_solv[BB_RNA_5].push_back(-52136.51404531249);
3619 10 : parameter_solv[BB_RNA_5].push_back(-16682.14273917604);
3620 10 : parameter_solv[BB_RNA_5].push_back(110278.019216394);
3621 10 : parameter_solv[BB_RNA_5].push_back(-83715.92027818545);
3622 10 : parameter_solv[BB_RNA_5].push_back(19875.891337706045);
3623 :
3624 10 : parameter_solv[BB_RNA_3].push_back(25574.406400119024);
3625 10 : parameter_solv[BB_RNA_3].push_back(-127.96875237036166);
3626 10 : parameter_solv[BB_RNA_3].push_back(-51407.183917584385);
3627 10 : parameter_solv[BB_RNA_3].push_back(-15922.900669975606);
3628 10 : parameter_solv[BB_RNA_3].push_back(105078.58889106264);
3629 10 : parameter_solv[BB_RNA_3].push_back(-78289.16276190648);
3630 10 : parameter_solv[BB_RNA_3].push_back(18156.83214344118);
3631 :
3632 10 : parameter_solv[BASE_A].push_back(13282.562500119211);
3633 10 : parameter_solv[BASE_A].push_back(-76.45124168404048);
3634 10 : parameter_solv[BASE_A].push_back(-28376.06994108963);
3635 10 : parameter_solv[BASE_A].push_back(-9972.910773722022);
3636 10 : parameter_solv[BASE_A].push_back(65873.86341939073);
3637 10 : parameter_solv[BASE_A].push_back(-52064.33492910885);
3638 10 : parameter_solv[BASE_A].push_back(12931.608989412513);
3639 :
3640 10 : parameter_solv[BASE_C].push_back(10600.76160011891);
3641 10 : parameter_solv[BASE_C].push_back(-49.1670871249108);
3642 10 : parameter_solv[BASE_C].push_back(-20239.818742072875);
3643 10 : parameter_solv[BASE_C].push_back(-6020.278780090207);
3644 10 : parameter_solv[BASE_C].push_back(39632.13288981881);
3645 10 : parameter_solv[BASE_C].push_back(-28954.779736165576);
3646 10 : parameter_solv[BASE_C].push_back(6551.541109526305);
3647 :
3648 10 : parameter_solv[BASE_G].push_back(15470.384400119934);
3649 10 : parameter_solv[BASE_G].push_back(-93.8013620200972);
3650 10 : parameter_solv[BASE_G].push_back(-36188.29687013545);
3651 10 : parameter_solv[BASE_G].push_back(-13717.685098209471);
3652 10 : parameter_solv[BASE_G].push_back(95658.18473657136);
3653 10 : parameter_solv[BASE_G].push_back(-81262.37811451119);
3654 10 : parameter_solv[BASE_G].push_back(21841.903930943085);
3655 :
3656 10 : parameter_solv[BASE_T].push_back(17210.81610011936);
3657 10 : parameter_solv[BASE_T].push_back(-93.10189802920208);
3658 10 : parameter_solv[BASE_T].push_back(-36466.51927689957);
3659 10 : parameter_solv[BASE_T].push_back(-12425.55615716932);
3660 10 : parameter_solv[BASE_T].push_back(83847.427808925);
3661 10 : parameter_solv[BASE_T].push_back(-66735.64997846584);
3662 10 : parameter_solv[BASE_T].push_back(16757.3463987507);
3663 :
3664 10 : parameter_solv[BASE_U].push_back(10909.802500119395);
3665 10 : parameter_solv[BASE_U].push_back(-46.17712672768298);
3666 10 : parameter_solv[BASE_U].push_back(-20149.67695512526);
3667 10 : parameter_solv[BASE_U].push_back(-5590.242961204435);
3668 10 : parameter_solv[BASE_U].push_back(37169.2740983132);
3669 10 : parameter_solv[BASE_U].push_back(-26475.631627167604);
3670 10 : parameter_solv[BASE_U].push_back(5808.201015156168);
3671 :
3672 10 : parameter_mix[BB_PO3].push_back(3061.4050527391964);
3673 10 : parameter_mix[BB_PO3].push_back(-2.022452986623699);
3674 10 : parameter_mix[BB_PO3].push_back(-2998.2603666141363);
3675 10 : parameter_mix[BB_PO3].push_back(-218.44256405859076);
3676 10 : parameter_mix[BB_PO3].push_back(2113.3633950628328);
3677 10 : parameter_mix[BB_PO3].push_back(-868.4021757095805);
3678 10 : parameter_mix[BB_PO3].push_back(52.19052064107954);
3679 :
3680 10 : parameter_mix[BB_PO2].push_back(1487.2888381188868);
3681 10 : parameter_mix[BB_PO2].push_back(-0.6155376265599789);
3682 10 : parameter_mix[BB_PO2].push_back(-1181.5076027691764);
3683 10 : parameter_mix[BB_PO2].push_back(-66.25027450710594);
3684 10 : parameter_mix[BB_PO2].push_back(697.0421991965113);
3685 10 : parameter_mix[BB_PO2].push_back(-261.8559466354847);
3686 10 : parameter_mix[BB_PO2].push_back(9.974337082362194);
3687 :
3688 10 : parameter_mix[BB_DNA].push_back(17766.29474499878);
3689 10 : parameter_mix[BB_DNA].push_back(-48.97330188566253);
3690 10 : parameter_mix[BB_DNA].push_back(-28199.563596327207);
3691 10 : parameter_mix[BB_DNA].push_back(-5623.82085602494);
3692 10 : parameter_mix[BB_DNA].push_back(39646.22954828498);
3693 10 : parameter_mix[BB_DNA].push_back(-24658.81157651943);
3694 10 : parameter_mix[BB_DNA].push_back(4453.73906293146);
3695 :
3696 10 : parameter_mix[BB_DNA_5].push_back(18696.09744203927);
3697 10 : parameter_mix[BB_DNA_5].push_back(-56.29408880833802);
3698 10 : parameter_mix[BB_DNA_5].push_back(-30486.108599707608);
3699 10 : parameter_mix[BB_DNA_5].push_back(-6524.195857141158);
3700 10 : parameter_mix[BB_DNA_5].push_back(45280.80142686446);
3701 10 : parameter_mix[BB_DNA_5].push_back(-29007.98616567993);
3702 10 : parameter_mix[BB_DNA_5].push_back(5488.566965501818);
3703 :
3704 10 : parameter_mix[BB_DNA_3].push_back(18696.097442039274);
3705 10 : parameter_mix[BB_DNA_3].push_back(-55.5645003501971);
3706 10 : parameter_mix[BB_DNA_3].push_back(-30422.262113654506);
3707 10 : parameter_mix[BB_DNA_3].push_back(-6409.659659309089);
3708 10 : parameter_mix[BB_DNA_3].push_back(44605.76043515699);
3709 10 : parameter_mix[BB_DNA_3].push_back(-28295.62152988411);
3710 10 : parameter_mix[BB_DNA_3].push_back(5262.5765863484);
3711 :
3712 10 : parameter_mix[BB_RNA].push_back(21356.177105457366);
3713 10 : parameter_mix[BB_RNA].push_back(-76.73490647754872);
3714 10 : parameter_mix[BB_RNA].push_back(-36845.234814782816);
3715 10 : parameter_mix[BB_RNA].push_back(-9066.559625582728);
3716 10 : parameter_mix[BB_RNA].push_back(61167.998793390485);
3717 10 : parameter_mix[BB_RNA].push_back(-41467.23384423218);
3718 10 : parameter_mix[BB_RNA].push_back(8518.937793863257);
3719 :
3720 10 : parameter_mix[BB_RNA_5].push_back(22386.63276427916);
3721 10 : parameter_mix[BB_RNA_5].push_back(-85.70426456933487);
3722 10 : parameter_mix[BB_RNA_5].push_back(-39490.50298502025);
3723 10 : parameter_mix[BB_RNA_5].push_back(-10223.702594972712);
3724 10 : parameter_mix[BB_RNA_5].push_back(68450.60459618448);
3725 10 : parameter_mix[BB_RNA_5].push_back(-47409.91098159006);
3726 10 : parameter_mix[BB_RNA_5].push_back(10031.136138513202);
3727 :
3728 10 : parameter_mix[BB_RNA_3].push_back(22386.63276427916);
3729 10 : parameter_mix[BB_RNA_3].push_back(-81.93760812351479);
3730 10 : parameter_mix[BB_RNA_3].push_back(-39031.70571520093);
3731 10 : parameter_mix[BB_RNA_3].push_back(-9666.316086142708);
3732 10 : parameter_mix[BB_RNA_3].push_back(65120.07128126262);
3733 10 : parameter_mix[BB_RNA_3].push_back(-44110.13603681317);
3734 10 : parameter_mix[BB_RNA_3].push_back(9036.76498256983);
3735 :
3736 10 : parameter_mix[BASE_A].push_back(15897.31116611889);
3737 10 : parameter_mix[BASE_A].push_back(-67.86385832953485);
3738 10 : parameter_mix[BASE_A].push_back(-28851.754660951636);
3739 10 : parameter_mix[BASE_A].push_back(-8144.431687170413);
3740 10 : parameter_mix[BASE_A].push_back(53606.39082954489);
3741 10 : parameter_mix[BASE_A].push_back(-38083.51243782253);
3742 10 : parameter_mix[BASE_A].push_back(8293.47107993253);
3743 :
3744 10 : parameter_mix[BASE_C].push_back(11733.2828871599);
3745 10 : parameter_mix[BASE_C].push_back(-38.76775400274115);
3746 10 : parameter_mix[BASE_C].push_back(-19318.84666423464);
3747 10 : parameter_mix[BASE_C].push_back(-4507.915522704176);
3748 10 : parameter_mix[BASE_C].push_back(30576.57671286052);
3749 10 : parameter_mix[BASE_C].push_back(-20132.46696910844);
3750 10 : parameter_mix[BASE_C].push_back(3947.8727087996162);
3751 :
3752 10 : parameter_mix[BASE_G].push_back(19146.612417237808);
3753 10 : parameter_mix[BASE_G].push_back(-102.37046638004914);
3754 10 : parameter_mix[BASE_G].push_back(-38718.96478190546);
3755 10 : parameter_mix[BASE_G].push_back(-13238.106081860074);
3756 10 : parameter_mix[BASE_G].push_back(87309.07460288722);
3757 10 : parameter_mix[BASE_G].push_back(-68364.82442984737);
3758 10 : parameter_mix[BASE_G].push_back(16815.362401369);
3759 :
3760 10 : parameter_mix[BASE_T].push_back(17050.440260819163);
3761 10 : parameter_mix[BASE_T].push_back(-76.33750600643376);
3762 10 : parameter_mix[BASE_T].push_back(-31849.539096715005);
3763 10 : parameter_mix[BASE_T].push_back(-9484.498992751434);
3764 10 : parameter_mix[BASE_T].push_back(62881.895771680494);
3765 10 : parameter_mix[BASE_T].push_back(-46531.948557759024);
3766 10 : parameter_mix[BASE_T].push_back(10734.196329884822);
3767 :
3768 10 : parameter_mix[BASE_U].push_back(11904.095265219023);
3769 10 : parameter_mix[BASE_U].push_back(-34.67511054915295);
3770 10 : parameter_mix[BASE_U].push_back(-18842.275003104005);
3771 10 : parameter_mix[BASE_U].push_back(-3993.1174764890684);
3772 10 : parameter_mix[BASE_U].push_back(27663.625106762345);
3773 10 : parameter_mix[BASE_U].push_back(-17577.387831701515);
3774 10 : parameter_mix[BASE_U].push_back(3273.183903219142);
3775 :
3776 10 : parameter_vac[BB_PO3].push_back(1599.7962466063982);
3777 10 : parameter_vac[BB_PO3].push_back(-0.2734304923675441);
3778 10 : parameter_vac[BB_PO3].push_back(-1023.9448073303214);
3779 10 : parameter_vac[BB_PO3].push_back(-28.78655166266909);
3780 10 : parameter_vac[BB_PO3].push_back(426.4382937268249);
3781 10 : parameter_vac[BB_PO3].push_back(-109.57771615730755);
3782 10 : parameter_vac[BB_PO3].push_back(-10.244595559424265);
3783 :
3784 10 : parameter_vac[BB_PO2].push_back(960.8822037291127);
3785 10 : parameter_vac[BB_PO2].push_back(-0.09312135742159174);
3786 10 : parameter_vac[BB_PO2].push_back(-469.39643497461844);
3787 10 : parameter_vac[BB_PO2].push_back(-9.779346709041985);
3788 10 : parameter_vac[BB_PO2].push_back(162.1581550003227);
3789 10 : parameter_vac[BB_PO2].push_back(-37.06686233305618);
3790 10 : parameter_vac[BB_PO2].push_back(-4.695586672655664);
3791 :
3792 10 : parameter_vac[BB_DNA].push_back(3720.2522996838984);
3793 10 : parameter_vac[BB_DNA].push_back(-5.4229642176938);
3794 10 : parameter_vac[BB_DNA].push_back(-4800.897672711981);
3795 10 : parameter_vac[BB_DNA].push_back(-597.2274673070993);
3796 10 : parameter_vac[BB_DNA].push_back(4825.908840953665);
3797 10 : parameter_vac[BB_DNA].push_back(-2451.397454446564);
3798 10 : parameter_vac[BB_DNA].push_back(294.93071756645685);
3799 :
3800 10 : parameter_vac[BB_DNA_5].push_back(3843.234214262163);
3801 10 : parameter_vac[BB_DNA_5].push_back(-6.423078416284452);
3802 10 : parameter_vac[BB_DNA_5].push_back(-5112.1216386963115);
3803 10 : parameter_vac[BB_DNA_5].push_back(-713.8373583426668);
3804 10 : parameter_vac[BB_DNA_5].push_back(5547.545382516269);
3805 10 : parameter_vac[BB_DNA_5].push_back(-2973.5659871174225);
3806 10 : parameter_vac[BB_DNA_5].push_back(407.2789106630427);
3807 :
3808 10 : parameter_vac[BB_DNA_3].push_back(3843.234214262163);
3809 10 : parameter_vac[BB_DNA_3].push_back(-6.268636561475645);
3810 10 : parameter_vac[BB_DNA_3].push_back(-5103.192931218086);
3811 10 : parameter_vac[BB_DNA_3].push_back(-693.8705734390547);
3812 10 : parameter_vac[BB_DNA_3].push_back(5443.979645097035);
3813 10 : parameter_vac[BB_DNA_3].push_back(-2871.4337477324893);
3814 10 : parameter_vac[BB_DNA_3].push_back(377.3062915349831);
3815 :
3816 10 : parameter_vac[BB_RNA].push_back(4760.071443398374);
3817 10 : parameter_vac[BB_RNA].push_back(-11.0990475402486);
3818 10 : parameter_vac[BB_RNA].push_back(-6934.713566418421);
3819 10 : parameter_vac[BB_RNA].push_back(-1256.5202524085096);
3820 10 : parameter_vac[BB_RNA].push_back(9024.962587066922);
3821 10 : parameter_vac[BB_RNA].push_back(-5386.842667932241);
3822 10 : parameter_vac[BB_RNA].push_back(907.42947751372);
3823 :
3824 10 : parameter_vac[BB_RNA_5].push_back(4899.051406033406);
3825 10 : parameter_vac[BB_RNA_5].push_back(-12.279240472628238);
3826 10 : parameter_vac[BB_RNA_5].push_back(-7276.273570813667);
3827 10 : parameter_vac[BB_RNA_5].push_back(-1400.9520839250868);
3828 10 : parameter_vac[BB_RNA_5].push_back(9912.215823228895);
3829 10 : parameter_vac[BB_RNA_5].push_back(-6079.2565270404075);
3830 10 : parameter_vac[BB_RNA_5].push_back(1073.53428175472);
3831 :
3832 10 : parameter_vac[BB_RNA_3].push_back(4899.051406033406);
3833 10 : parameter_vac[BB_RNA_3].push_back(-11.642804195148194);
3834 10 : parameter_vac[BB_RNA_3].push_back(-7213.774619570996);
3835 10 : parameter_vac[BB_RNA_3].push_back(-1317.4463949342964);
3836 10 : parameter_vac[BB_RNA_3].push_back(9450.928929264686);
3837 10 : parameter_vac[BB_RNA_3].push_back(-5643.856117200917);
3838 10 : parameter_vac[BB_RNA_3].push_back(949.4698817407918);
3839 :
3840 10 : parameter_vac[BASE_A].push_back(4756.697028810353);
3841 10 : parameter_vac[BASE_A].push_back(-12.158940746852812);
3842 10 : parameter_vac[BASE_A].push_back(-7106.473423744205);
3843 10 : parameter_vac[BASE_A].push_back(-1376.295184173137);
3844 10 : parameter_vac[BASE_A].push_back(9747.132255557788);
3845 10 : parameter_vac[BASE_A].push_back(-5900.026637038756);
3846 10 : parameter_vac[BASE_A].push_back(1004.6226388342955);
3847 :
3848 10 : parameter_vac[BASE_C].push_back(3246.698975674651);
3849 10 : parameter_vac[BASE_C].push_back(-6.125036521218687);
3850 10 : parameter_vac[BASE_C].push_back(-4280.666521437201);
3851 10 : parameter_vac[BASE_C].push_back(-684.0183580843932);
3852 10 : parameter_vac[BASE_C].push_back(5077.062889522692);
3853 10 : parameter_vac[BASE_C].push_back(-2870.3239317750963);
3854 10 : parameter_vac[BASE_C].push_back(434.51551177863547);
3855 :
3856 10 : parameter_vac[BASE_G].push_back(5924.105658596052);
3857 10 : parameter_vac[BASE_G].push_back(-23.097956587232552);
3858 10 : parameter_vac[BASE_G].push_back(-10149.526301285418);
3859 10 : parameter_vac[BASE_G].push_back(-2752.9166169522528);
3860 10 : parameter_vac[BASE_G].push_back(18239.32985385683);
3861 10 : parameter_vac[BASE_G].push_back(-12749.277858800957);
3862 10 : parameter_vac[BASE_G].push_back(2715.354663787367);
3863 :
3864 10 : parameter_vac[BASE_T].push_back(4222.889713694404);
3865 10 : parameter_vac[BASE_T].push_back(-12.15861456306705);
3866 10 : parameter_vac[BASE_T].push_back(-6395.50289789404);
3867 10 : parameter_vac[BASE_T].push_back(-1421.3942549301012);
3868 10 : parameter_vac[BASE_T].push_back(9757.061008720135);
3869 10 : parameter_vac[BASE_T].push_back(-6399.630933839126);
3870 10 : parameter_vac[BASE_T].push_back(1258.9874225605438);
3871 :
3872 10 : parameter_vac[BASE_U].push_back(3247.251361465539);
3873 10 : parameter_vac[BASE_U].push_back(-5.211020853261115);
3874 10 : parameter_vac[BASE_U].push_back(-4125.165310360279);
3875 10 : parameter_vac[BASE_U].push_back(-575.1860235473902);
3876 10 : parameter_vac[BASE_U].push_back(4457.6562621371495);
3877 10 : parameter_vac[BASE_U].push_back(-2368.7250146912766);
3878 10 : parameter_vac[BASE_U].push_back(313.23997718445014);
3879 :
3880 35262 : for(unsigned i=0; i<atoms.size(); ++i) {
3881 35252 : std::string Aname = pdb.getAtomName(atoms[i]);
3882 35252 : std::string Rname = pdb.getResidueName(atoms[i]);
3883 35252 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
3884 35252 : if(Rname=="ALA") {
3885 1790 : atoi[residue_atom[i]]=ALA;
3886 33462 : } else if(Rname=="ARG") {
3887 2160 : atoi[residue_atom[i]]=ARG;
3888 31302 : } else if(Rname=="ASN") {
3889 1800 : atoi[residue_atom[i]]=ASN;
3890 29502 : } else if(Rname=="ASP") {
3891 1560 : atoi[residue_atom[i]]=ASP;
3892 27942 : } else if(Rname=="CYS") {
3893 120 : atoi[residue_atom[i]]=CYS;
3894 27822 : } else if(Rname=="CYX") {
3895 0 : atoi[residue_atom[i]]=CYX;
3896 27822 : } else if(Rname=="GLN") {
3897 2584 : atoi[residue_atom[i]]=GLN;
3898 25238 : } else if(Rname=="GLU") {
3899 1190 : atoi[residue_atom[i]]=GLU;
3900 24048 : } else if(Rname=="GLY") {
3901 1548 : atoi[residue_atom[i]]=GLY;
3902 22500 : } else if(Rname=="HIS") {
3903 0 : atoi[residue_atom[i]]=HIS;
3904 22500 : } else if(Rname=="HID") {
3905 0 : atoi[residue_atom[i]]=HIS;
3906 22500 : } else if(Rname=="HIE") {
3907 360 : atoi[residue_atom[i]]=HIS;
3908 22140 : } else if(Rname=="HIP") {
3909 0 : atoi[residue_atom[i]]=HIP;
3910 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
3911 22140 : } else if(Rname=="HSD") {
3912 0 : atoi[residue_atom[i]]=HIS;
3913 22140 : } else if(Rname=="HSE") {
3914 0 : atoi[residue_atom[i]]=HIS;
3915 22140 : } else if(Rname=="HSP") {
3916 0 : atoi[residue_atom[i]]=HIP;
3917 22140 : } else if(Rname=="ILE") {
3918 2160 : atoi[residue_atom[i]]=ILE;
3919 19980 : } else if(Rname=="LEU") {
3920 3800 : atoi[residue_atom[i]]=LEU;
3921 16180 : } else if(Rname=="LYS") {
3922 2600 : atoi[residue_atom[i]]=LYS;
3923 13580 : } else if(Rname=="MET") {
3924 1368 : atoi[residue_atom[i]]=MET;
3925 12212 : } else if(Rname=="PHE") {
3926 2520 : atoi[residue_atom[i]]=PHE;
3927 9692 : } else if(Rname=="PRO") {
3928 1870 : atoi[residue_atom[i]]=PRO;
3929 7822 : } else if(Rname=="SER") {
3930 1272 : atoi[residue_atom[i]]=SER;
3931 6550 : } else if(Rname=="THR") {
3932 1204 : atoi[residue_atom[i]]=THR;
3933 5346 : } else if(Rname=="TRP") {
3934 0 : atoi[residue_atom[i]]=TRP;
3935 5346 : } else if(Rname=="TYR") {
3936 1320 : atoi[residue_atom[i]]=TYR;
3937 4026 : } else if(Rname=="VAL") {
3938 2656 : atoi[residue_atom[i]]=VAL;
3939 : }
3940 : // NUCLEIC ACIDS
3941 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
3942 : // RNA - G
3943 1370 : else if(Rname=="G") {
3944 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
3945 0 : Aname=="O1P" || Aname=="O2P" ) {
3946 0 : atoi [residue_atom[i]]=BB_PO2;
3947 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3948 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3949 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3950 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3951 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
3952 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
3953 0 : atoi[residue_atom[i]]=BB_RNA;
3954 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3955 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3956 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3957 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3958 0 : atoi[residue_atom[i]]=BASE_G;
3959 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3960 : // RNA - G3
3961 1370 : } else if(Rname=="G3") {
3962 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3963 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3964 0 : atoi [residue_atom[i]]=BB_PO2;
3965 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3966 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3967 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3968 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3969 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
3970 0 : Aname=="H5'2" || Aname=="HO'2" ) {
3971 0 : atoi[residue_atom[i]]=BB_RNA_3;
3972 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3973 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3974 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3975 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3976 0 : atoi[residue_atom[i]]=BASE_G;
3977 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3978 : // RNA - G5
3979 1370 : } else if(Rname=="G5") {
3980 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3981 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3982 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3983 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
3984 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
3985 0 : Aname=="H2'1" || Aname=="H5T" ) {
3986 0 : atoi[residue_atom[i]]=BB_RNA_5;
3987 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3988 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3989 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3990 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3991 0 : atoi[residue_atom[i]]=BASE_G;
3992 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3993 : // RNA - GT
3994 1370 : } else if(Rname=="GT") {
3995 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3996 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
3997 0 : atoi [residue_atom[i]]=BB_PO3;
3998 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3999 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4000 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4001 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4002 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4003 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4004 0 : atoi[residue_atom[i]]=BB_RNA;
4005 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4006 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4007 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4008 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4009 0 : atoi[residue_atom[i]]=BASE_G;
4010 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4011 : // RNA - U
4012 1370 : } else if(Rname=="U") {
4013 4218 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4014 2166 : Aname=="O1P" || Aname=="O2P" ) {
4015 114 : atoi [residue_atom[i]]=BB_PO2;
4016 3724 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4017 3116 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4018 2508 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4019 1938 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4020 1748 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4021 2280 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4022 608 : atoi[residue_atom[i]]=BB_RNA;
4023 1292 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4024 684 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4025 532 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4026 418 : atoi[residue_atom[i]]=BASE_U;
4027 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4028 : // RNA - U3
4029 230 : } else if(Rname=="U3") {
4030 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4031 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4032 6 : atoi [residue_atom[i]]=BB_PO2;
4033 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4034 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4035 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4036 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4037 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4038 78 : Aname=="H5'2" || Aname=="HO'2" ) {
4039 34 : atoi[residue_atom[i]]=BB_RNA_3;
4040 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4041 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4042 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4043 22 : atoi[residue_atom[i]]=BASE_U;
4044 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4045 : // RNA - U5
4046 168 : } else if(Rname=="U5") {
4047 612 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4048 516 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4049 420 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4050 324 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4051 264 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4052 234 : Aname=="H2'1" || Aname=="H5T" ) {
4053 102 : atoi[residue_atom[i]]=BB_RNA_5;
4054 204 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4055 108 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4056 84 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4057 66 : atoi[residue_atom[i]]=BASE_U;
4058 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4059 : // RNA - UT
4060 0 : } else if(Rname=="UT") {
4061 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4062 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4063 0 : atoi [residue_atom[i]]=BB_PO3;
4064 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4065 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4066 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4067 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4068 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4069 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4070 0 : atoi[residue_atom[i]]=BB_RNA;
4071 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4072 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4073 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
4074 0 : atoi[residue_atom[i]]=BASE_U;
4075 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4076 : // RNA - A
4077 0 : } else if(Rname=="A") {
4078 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4079 0 : Aname=="O1P" || Aname=="O2P" ) {
4080 0 : atoi [residue_atom[i]]=BB_PO2;
4081 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4082 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4083 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4084 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4085 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4086 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4087 0 : atoi[residue_atom[i]]=BB_RNA;
4088 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4089 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4090 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4091 0 : Aname=="H61" || Aname=="H62" ) {
4092 0 : atoi[residue_atom[i]]=BASE_A;
4093 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4094 : // RNA - A3
4095 0 : } else if(Rname=="A3") {
4096 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4097 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4098 0 : atoi [residue_atom[i]]=BB_PO2;
4099 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4100 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4101 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4102 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4103 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4104 0 : Aname=="H5'2" || Aname=="HO'2" ) {
4105 0 : atoi[residue_atom[i]]=BB_RNA_3;
4106 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4107 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4108 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4109 0 : Aname=="H61" || Aname=="H62" ) {
4110 0 : atoi[residue_atom[i]]=BASE_A;
4111 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4112 : // RNA - A5
4113 0 : } else if(Rname=="A5") {
4114 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4115 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4116 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4117 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4118 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4119 0 : Aname=="H2'1" || Aname=="H5T" ) {
4120 0 : atoi[residue_atom[i]]=BB_RNA_5;
4121 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4122 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4123 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4124 0 : Aname=="H61" || Aname=="H62" ) {
4125 0 : atoi[residue_atom[i]]=BASE_A;
4126 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4127 : // RNA - AT
4128 0 : } else if(Rname=="AT") {
4129 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4130 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4131 0 : atoi [residue_atom[i]]=BB_PO3;
4132 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4133 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4134 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4135 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4136 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4137 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4138 0 : atoi[residue_atom[i]]=BB_RNA;
4139 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4140 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4141 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4142 0 : Aname=="H61" || Aname=="H62" ) {
4143 0 : atoi[residue_atom[i]]=BASE_A;
4144 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4145 : // RNA - C
4146 0 : } else if(Rname=="C") {
4147 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4148 0 : Aname=="O1P" || Aname=="O2P" ) {
4149 0 : atoi [residue_atom[i]]=BB_PO2;
4150 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4151 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4152 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4153 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4154 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4155 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4156 0 : atoi[residue_atom[i]]=BB_RNA;
4157 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4158 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4159 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4160 0 : atoi[residue_atom[i]]=BASE_C;
4161 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4162 : // RNA - C3
4163 0 : } else if(Rname=="C3") {
4164 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4165 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4166 0 : atoi [residue_atom[i]]=BB_PO2;
4167 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4168 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4169 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4170 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4171 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
4172 0 : Aname=="H5'2" || Aname=="HO'2" ) {
4173 0 : atoi[residue_atom[i]]=BB_RNA_3;
4174 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4175 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4176 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4177 0 : atoi[residue_atom[i]]=BASE_C;
4178 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4179 : // RNA - C5
4180 0 : } else if(Rname=="C5") {
4181 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4182 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4183 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4184 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
4185 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
4186 0 : Aname=="H2'1" || Aname=="H5T" ) {
4187 0 : atoi[residue_atom[i]]=BB_RNA_5;
4188 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4189 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4190 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4191 0 : atoi[residue_atom[i]]=BASE_C;
4192 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4193 : // RNA - CT
4194 0 : } else if(Rname=="CT") {
4195 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4196 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4197 0 : atoi [residue_atom[i]]=BB_PO3;
4198 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4199 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
4200 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
4201 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
4202 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
4203 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
4204 0 : atoi[residue_atom[i]]=BB_RNA;
4205 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4206 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4207 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4208 0 : atoi[residue_atom[i]]=BASE_C;
4209 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4210 : // DNA - G
4211 0 : } else if(Rname=="DG") {
4212 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4213 0 : Aname=="O1P" || Aname=="O2P" ) {
4214 0 : atoi [residue_atom[i]]=BB_PO2;
4215 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4216 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4217 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4218 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4219 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4220 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4221 0 : atoi[residue_atom[i]]=BB_DNA;
4222 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4223 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4224 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4225 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4226 0 : atoi[residue_atom[i]]=BASE_G;
4227 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4228 : // DNA - G3
4229 0 : } else if(Rname=="DG3") {
4230 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4231 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4232 0 : atoi [residue_atom[i]]=BB_PO2;
4233 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4234 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4235 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4236 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4237 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4238 : Aname=="H3T" ) {
4239 0 : atoi[residue_atom[i]]=BB_DNA_3;
4240 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4241 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4242 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4243 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4244 0 : atoi[residue_atom[i]]=BASE_G;
4245 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4246 : // DNA - G5
4247 0 : } else if(Rname=="DG5") {
4248 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4249 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4250 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4251 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4252 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4253 : Aname=="H5T" ) {
4254 0 : atoi[residue_atom[i]]=BB_DNA_5;
4255 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4256 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4257 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4258 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4259 0 : atoi[residue_atom[i]]=BASE_G;
4260 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4261 : // DNA - GT
4262 0 : } else if(Rname=="DGT") {
4263 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4264 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4265 0 : atoi [residue_atom[i]]=BB_PO3;
4266 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4267 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4268 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4269 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4270 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4271 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4272 0 : atoi[residue_atom[i]]=BB_DNA;
4273 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4274 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4275 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4276 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4277 0 : atoi[residue_atom[i]]=BASE_G;
4278 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4279 : // DNA - T
4280 0 : } else if(Rname=="DT") {
4281 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4282 0 : Aname=="O1P" || Aname=="O2P" ) {
4283 0 : atoi [residue_atom[i]]=BB_PO2;
4284 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4285 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4286 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4287 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4288 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4289 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4290 0 : atoi[residue_atom[i]]=BB_DNA;
4291 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4292 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4293 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4294 0 : Aname=="H72" || Aname=="H73" ) {
4295 0 : atoi[residue_atom[i]]=BASE_T;
4296 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4297 : // DNA - T3
4298 0 : } else if(Rname=="DT3") {
4299 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4300 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4301 0 : atoi [residue_atom[i]]=BB_PO2;
4302 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4303 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4304 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4305 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4306 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4307 : Aname=="H3T" ) {
4308 0 : atoi[residue_atom[i]]=BB_DNA_3;
4309 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4310 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4311 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4312 0 : Aname=="H72" || Aname=="H73" ) {
4313 0 : atoi[residue_atom[i]]=BASE_T;
4314 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4315 : // DNA - T5
4316 0 : } else if(Rname=="DT5") {
4317 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4318 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4319 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4320 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4321 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4322 : Aname=="H5T" ) {
4323 0 : atoi[residue_atom[i]]=BB_DNA_5;
4324 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4325 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4326 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4327 0 : Aname=="H72" || Aname=="H73" ) {
4328 0 : atoi[residue_atom[i]]=BASE_T;
4329 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4330 : // DNA - TT
4331 0 : } else if(Rname=="DTT") {
4332 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4333 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4334 0 : atoi [residue_atom[i]]=BB_PO3;
4335 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4336 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4337 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4338 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4339 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4340 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4341 0 : atoi[residue_atom[i]]=BB_DNA;
4342 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4343 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4344 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4345 0 : Aname=="H72" || Aname=="H73" ) {
4346 0 : atoi[residue_atom[i]]=BASE_T;
4347 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4348 : // DNA - A
4349 0 : } else if(Rname=="DA") {
4350 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4351 0 : Aname=="O1P" || Aname=="O2P" ) {
4352 0 : atoi [residue_atom[i]]=BB_PO2;
4353 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4354 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4355 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4356 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4357 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4358 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4359 0 : atoi[residue_atom[i]]=BB_DNA;
4360 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4361 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4362 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4363 0 : Aname=="H61" || Aname=="H62" ) {
4364 0 : atoi[residue_atom[i]]=BASE_A;
4365 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4366 : // DNA - A3
4367 0 : } else if(Rname=="DA3") {
4368 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4369 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4370 0 : atoi [residue_atom[i]]=BB_PO2;
4371 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4372 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4373 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4374 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4375 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4376 : Aname=="H3T" ) {
4377 0 : atoi[residue_atom[i]]=BB_DNA_3;
4378 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4379 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4380 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4381 0 : Aname=="H61" || Aname=="H62" ) {
4382 0 : atoi[residue_atom[i]]=BASE_A;
4383 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4384 : // DNA - A5
4385 0 : } else if(Rname=="DA5") {
4386 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4387 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4388 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4389 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4390 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4391 : Aname=="H5T" ) {
4392 0 : atoi[residue_atom[i]]=BB_DNA_5;
4393 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4394 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4395 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4396 0 : Aname=="H61" || Aname=="H62" ) {
4397 0 : atoi[residue_atom[i]]=BASE_A;
4398 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4399 : // DNA - AT
4400 0 : } else if(Rname=="DAT") {
4401 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4402 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4403 0 : atoi [residue_atom[i]]=BB_PO3;
4404 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4405 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4406 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4407 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4408 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4409 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4410 0 : atoi[residue_atom[i]]=BB_DNA;
4411 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4412 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4413 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4414 0 : Aname=="H61" || Aname=="H62" ) {
4415 0 : atoi[residue_atom[i]]=BASE_A;
4416 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4417 : // DNA - C
4418 0 : } else if(Rname=="DC") {
4419 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
4420 0 : Aname=="O1P" || Aname=="O2P" ) {
4421 0 : atoi [residue_atom[i]]=BB_PO2;
4422 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4423 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4424 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4425 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4426 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4427 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4428 0 : atoi[residue_atom[i]]=BB_DNA;
4429 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4430 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4431 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4432 0 : atoi[residue_atom[i]]=BASE_C;
4433 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4434 : // DNA - C3
4435 0 : } else if(Rname=="DC3") {
4436 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4437 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4438 0 : atoi [residue_atom[i]]=BB_PO2;
4439 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4440 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4441 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4442 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4443 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4444 : Aname=="H3T" ) {
4445 0 : atoi[residue_atom[i]]=BB_DNA_3;
4446 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4447 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4448 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4449 0 : atoi[residue_atom[i]]=BASE_C;
4450 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4451 : // DNA - C5
4452 0 : } else if(Rname=="DC5") {
4453 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4454 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4455 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4456 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4457 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4458 : Aname=="H5T" ) {
4459 0 : atoi[residue_atom[i]]=BB_DNA_5;
4460 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4461 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4462 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4463 0 : atoi[residue_atom[i]]=BASE_C;
4464 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4465 : // DNA - CT
4466 0 : } else if(Rname=="DCT") {
4467 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4468 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
4469 0 : atoi [residue_atom[i]]=BB_PO3;
4470 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4471 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4472 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4473 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4474 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4475 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4476 0 : atoi[residue_atom[i]]=BB_DNA;
4477 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4478 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4479 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4480 0 : atoi[residue_atom[i]]=BASE_C;
4481 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4482 0 : } else error("Residue not known: "+Rname);
4483 : }
4484 10 : }
4485 :
4486 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)
4487 : {
4488 6 : parameter_solv_H[TRP].push_back(60737.60249988011);
4489 6 : parameter_solv_H[TRP].push_back(-77.77344118516487);
4490 6 : parameter_solv_H[TRP].push_back(-205962.80436572764);
4491 6 : parameter_solv_H[TRP].push_back(-62014.18523271781);
4492 6 : parameter_solv_H[TRP].push_back(680712.0512548896);
4493 6 : parameter_solv_H[TRP].push_back(-681337.967312983);
4494 6 : parameter_solv_H[TRP].push_back(211474.00338118695);
4495 :
4496 6 : parameter_solv_H[TYR].push_back(46250.803599880084);
4497 6 : parameter_solv_H[TYR].push_back(-45.827646837514614);
4498 6 : parameter_solv_H[TYR].push_back(-143872.94597686914);
4499 6 : parameter_solv_H[TYR].push_back(-39049.51580628132);
4500 6 : parameter_solv_H[TYR].push_back(441321.31246635393);
4501 6 : parameter_solv_H[TYR].push_back(-434477.6826175059);
4502 6 : parameter_solv_H[TYR].push_back(133179.21673104732);
4503 :
4504 6 : parameter_solv_H[PHE].push_back(42407.164900118914);
4505 6 : parameter_solv_H[PHE].push_back(-159.20054549009086);
4506 6 : parameter_solv_H[PHE].push_back(-123847.83591352346);
4507 6 : parameter_solv_H[PHE].push_back(-41797.78884558073);
4508 6 : parameter_solv_H[PHE].push_back(380283.87543872406);
4509 6 : parameter_solv_H[PHE].push_back(-361432.81356389285);
4510 6 : parameter_solv_H[PHE].push_back(107750.69385054041);
4511 :
4512 6 : parameter_solv_H[HIP].push_back(24473.473600119047);
4513 6 : parameter_solv_H[HIP].push_back(-111.6412807124612);
4514 6 : parameter_solv_H[HIP].push_back(-65826.17293437096);
4515 6 : parameter_solv_H[HIP].push_back(-23305.902022201855);
4516 6 : parameter_solv_H[HIP].push_back(194795.09953510275);
4517 6 : parameter_solv_H[HIP].push_back(-180454.47859494278);
4518 6 : parameter_solv_H[HIP].push_back(52699.36922660704);
4519 :
4520 6 : parameter_solv_H[ARG].push_back(34106.70239988039);
4521 6 : parameter_solv_H[ARG].push_back(152.74468231268114);
4522 6 : parameter_solv_H[ARG].push_back(-117086.46040369231);
4523 6 : parameter_solv_H[ARG].push_back(-19664.37512726012);
4524 6 : parameter_solv_H[ARG].push_back(364454.3721646173);
4525 6 : parameter_solv_H[ARG].push_back(-382076.05102190404);
4526 6 : parameter_solv_H[ARG].push_back(122775.83306003918);
4527 :
4528 6 : parameter_solv_H[LYS].push_back(32292.09000011877);
4529 6 : parameter_solv_H[LYS].push_back(-111.97888350941923);
4530 6 : parameter_solv_H[LYS].push_back(-91953.05212591762);
4531 6 : parameter_solv_H[LYS].push_back(-30691.03615444628);
4532 6 : parameter_solv_H[LYS].push_back(282092.82233263896);
4533 6 : parameter_solv_H[LYS].push_back(-269503.6095978623);
4534 6 : parameter_solv_H[LYS].push_back(80777.92760273012);
4535 :
4536 6 : parameter_solv_H[CYS].push_back(11352.902500119093);
4537 6 : parameter_solv_H[CYS].push_back(-45.52255488723637);
4538 6 : parameter_solv_H[CYS].push_back(-20925.086525675117);
4539 6 : parameter_solv_H[CYS].push_back(-5662.681335644281);
4540 6 : parameter_solv_H[CYS].push_back(38559.09602816144);
4541 6 : parameter_solv_H[CYS].push_back(-27885.22747486708);
4542 6 : parameter_solv_H[CYS].push_back(6280.148346561226);
4543 :
4544 6 : parameter_solv_H[CYX].push_back(10281.960000119348);
4545 6 : parameter_solv_H[CYX].push_back(-42.315998754511);
4546 6 : parameter_solv_H[CYX].push_back(-19328.174487327480);
4547 6 : parameter_solv_H[CYX].push_back(-5523.191775626829);
4548 6 : parameter_solv_H[CYX].push_back(38185.463172673335);
4549 6 : parameter_solv_H[CYX].push_back(-28940.174693042034);
4550 6 : parameter_solv_H[CYX].push_back(6925.390014187676);
4551 :
4552 6 : parameter_solv_H[ASP].push_back(13511.73760011933);
4553 6 : parameter_solv_H[ASP].push_back(-59.92934247210642);
4554 6 : parameter_solv_H[ASP].push_back(-25849.867077822244);
4555 6 : parameter_solv_H[ASP].push_back(-7541.679510407563);
4556 6 : parameter_solv_H[ASP].push_back(50760.93853987092);
4557 6 : parameter_solv_H[ASP].push_back(-37677.89102528413);
4558 6 : parameter_solv_H[ASP].push_back(8745.710458140105);
4559 :
4560 6 : parameter_solv_H[GLU].push_back(20443.280400119456);
4561 6 : parameter_solv_H[GLU].push_back(-113.77513581661388);
4562 6 : parameter_solv_H[GLU].push_back(-45587.79863958479);
4563 6 : parameter_solv_H[GLU].push_back(-16187.534798976243);
4564 6 : parameter_solv_H[GLU].push_back(112609.61802147207);
4565 6 : parameter_solv_H[GLU].push_back(-93362.01894077536);
4566 6 : parameter_solv_H[GLU].push_back(24519.546829431332);
4567 :
4568 6 : parameter_solv_H[ILE].push_back(27858.948100119596);
4569 6 : parameter_solv_H[ILE].push_back(-159.27394962770595);
4570 6 : parameter_solv_H[ILE].push_back(-61571.43025249802);
4571 6 : parameter_solv_H[ILE].push_back(-21324.89659912433);
4572 6 : parameter_solv_H[ILE].push_back(144070.7880009225);
4573 6 : parameter_solv_H[ILE].push_back(-115021.84534734003);
4574 6 : parameter_solv_H[ILE].push_back(28939.093300284097);
4575 :
4576 6 : parameter_solv_H[LEU].push_back(27858.948100119596);
4577 6 : parameter_solv_H[LEU].push_back(-165.61872365361);
4578 6 : parameter_solv_H[LEU].push_back(-62564.5706162518);
4579 6 : parameter_solv_H[LEU].push_back(-22465.325666767214);
4580 6 : parameter_solv_H[LEU].push_back(151616.7844050042);
4581 6 : parameter_solv_H[LEU].push_back(-122905.60389771541);
4582 6 : parameter_solv_H[LEU].push_back(31436.66201442061);
4583 :
4584 6 : parameter_solv_H[MET].push_back(25609.60090011981);
4585 6 : parameter_solv_H[MET].push_back(-135.38816369794569);
4586 6 : parameter_solv_H[MET].push_back(-67771.01548433342);
4587 6 : parameter_solv_H[MET].push_back(-25228.91756660071);
4588 6 : parameter_solv_H[MET].push_back(199649.92084565928);
4589 6 : parameter_solv_H[MET].push_back(-182251.9246506795);
4590 6 : parameter_solv_H[MET].push_back(52502.876819125115);
4591 :
4592 6 : parameter_solv_H[ASN].push_back(14376.010000119095);
4593 6 : parameter_solv_H[ASN].push_back(-67.65587848183215);
4594 6 : parameter_solv_H[ASN].push_back(-28302.877059425664);
4595 6 : parameter_solv_H[ASN].push_back(-8577.444107282141);
4596 6 : parameter_solv_H[ASN].push_back(57532.88704197217);
4597 6 : parameter_solv_H[ASN].push_back(-43261.79974462857);
4598 6 : parameter_solv_H[ASN].push_back(10186.450874679671);
4599 :
4600 6 : parameter_solv_H[PRO].push_back(16866.21690011944);
4601 6 : parameter_solv_H[PRO].push_back(-70.84312112734995);
4602 6 : parameter_solv_H[PRO].push_back(-31465.8423531932);
4603 6 : parameter_solv_H[PRO].push_back(-8653.362744540535);
4604 6 : parameter_solv_H[PRO].push_back(58032.27079924916);
4605 6 : parameter_solv_H[PRO].push_back(-41521.001733021694);
4606 6 : parameter_solv_H[PRO].push_back(9184.527523759205);
4607 :
4608 6 : parameter_solv_H[GLN].push_back(21503.289600119);
4609 6 : parameter_solv_H[GLN].push_back(-121.3012777474678);
4610 6 : parameter_solv_H[GLN].push_back(-50468.58503443957);
4611 6 : parameter_solv_H[GLN].push_back(-18462.47495329696);
4612 6 : parameter_solv_H[GLN].push_back(132718.42007501892);
4613 6 : parameter_solv_H[GLN].push_back(-113787.20224345029);
4614 6 : parameter_solv_H[GLN].push_back(30920.340813688686);
4615 :
4616 6 : parameter_solv_H[SER].push_back(9181.47240011935);
4617 6 : parameter_solv_H[SER].push_back(-28.775273124392083);
4618 6 : parameter_solv_H[SER].push_back(-15205.54229808512);
4619 6 : parameter_solv_H[SER].push_back(-3377.785599913673);
4620 6 : parameter_solv_H[SER].push_back(23345.562090489493);
4621 6 : parameter_solv_H[SER].push_back(-15312.699787471944);
4622 6 : parameter_solv_H[SER].push_back(3013.844610647712);
4623 :
4624 6 : parameter_solv_H[THR].push_back(15020.953600119403);
4625 6 : parameter_solv_H[THR].push_back(-61.909951810375105);
4626 6 : parameter_solv_H[THR].push_back(-27814.538986050964);
4627 6 : parameter_solv_H[THR].push_back(-7532.222992514079);
4628 6 : parameter_solv_H[THR].push_back(50586.29804970814);
4629 6 : parameter_solv_H[THR].push_back(-35943.85986777198);
4630 6 : parameter_solv_H[THR].push_back(7880.091610023207);
4631 :
4632 6 : parameter_solv_H[VAL].push_back(19647.628900119355);
4633 6 : parameter_solv_H[VAL].push_back(-89.04968136833762);
4634 6 : parameter_solv_H[VAL].push_back(-38050.10118919102);
4635 6 : parameter_solv_H[VAL].push_back(-10921.421066774372);
4636 6 : parameter_solv_H[VAL].push_back(72774.31277743122);
4637 6 : parameter_solv_H[VAL].push_back(-52689.05168504517);
4638 6 : parameter_solv_H[VAL].push_back(11806.48989635518);
4639 :
4640 6 : parameter_solv_H[ALA].push_back(7515.156100119273);
4641 6 : parameter_solv_H[ALA].push_back(-20.226317591188526);
4642 6 : parameter_solv_H[ALA].push_back(-11761.841775007797);
4643 6 : parameter_solv_H[ALA].push_back(-2341.4903622033885);
4644 6 : parameter_solv_H[ALA].push_back(16545.381259883452);
4645 6 : parameter_solv_H[ALA].push_back(-10397.171546969075);
4646 6 : parameter_solv_H[ALA].push_back(1921.5253045340198);
4647 :
4648 6 : parameter_solv_H[GLY].push_back(3594.002500119159);
4649 6 : parameter_solv_H[GLY].push_back(-6.910832388009796);
4650 6 : parameter_solv_H[GLY].push_back(-4937.3542895091905);
4651 6 : parameter_solv_H[GLY].push_back(-785.4545979203357);
4652 6 : parameter_solv_H[GLY].push_back(5852.853693316741);
4653 6 : parameter_solv_H[GLY].push_back(-3391.2920205126734);
4654 6 : parameter_solv_H[GLY].push_back(552.3278183161507);
4655 :
4656 6 : parameter_solv_H[HIS].push_back(22888.664100119073);
4657 6 : parameter_solv_H[HIS].push_back(-133.86281863999585);
4658 6 : parameter_solv_H[HIS].push_back(-57533.51412287858);
4659 6 : parameter_solv_H[HIS].push_back(-21767.300111408193);
4660 6 : parameter_solv_H[HIS].push_back(161255.15347073504);
4661 6 : parameter_solv_H[HIS].push_back(-142176.65100718598);
4662 6 : parameter_solv_H[HIS].push_back(39642.61507384587);
4663 :
4664 6 : parameter_mix_H[TRP].push_back(2974.6515001192306);
4665 6 : parameter_mix_H[TRP].push_back(-18.361939022074825);
4666 6 : parameter_mix_H[TRP].push_back(-7284.637435770752);
4667 6 : parameter_mix_H[TRP].push_back(-2945.7969900381895);
4668 6 : parameter_mix_H[TRP].push_back(21235.01878657283);
4669 6 : parameter_mix_H[TRP].push_back(-18909.7406035548);
4670 6 : parameter_mix_H[TRP].push_back(5324.324204245179);
4671 :
4672 6 : parameter_mix_H[TYR].push_back(2029.7362801192114);
4673 6 : parameter_mix_H[TYR].push_back(-6.983186065527884);
4674 6 : parameter_mix_H[TYR].push_back(-5041.996113037476);
4675 6 : parameter_mix_H[TYR].push_back(-1744.5213085724158);
4676 6 : parameter_mix_H[TYR].push_back(15329.420227814338);
4677 6 : parameter_mix_H[TYR].push_back(-14648.322529889958);
4678 6 : parameter_mix_H[TYR].push_back(4405.608657083287);
4679 :
4680 6 : parameter_mix_H[PHE].push_back(1704.6885401192117);
4681 6 : parameter_mix_H[PHE].push_back(-10.077274979133408);
4682 6 : parameter_mix_H[PHE].push_back(-3769.440088334303);
4683 6 : parameter_mix_H[PHE].push_back(-1574.6255694551546);
4684 6 : parameter_mix_H[PHE].push_back(10996.32497868798);
4685 6 : parameter_mix_H[PHE].push_back(-9840.68281283696);
4686 6 : parameter_mix_H[PHE].push_back(2792.098605716682);
4687 :
4688 6 : parameter_mix_H[HIP].push_back(1376.0462401192394);
4689 6 : parameter_mix_H[HIP].push_back(-8.576320475413144);
4690 6 : parameter_mix_H[HIP].push_back(-2796.8327726392167);
4691 6 : parameter_mix_H[HIP].push_back(-1165.0473128576);
4692 6 : parameter_mix_H[HIP].push_back(7495.063650365717);
4693 6 : parameter_mix_H[HIP].push_back(-6331.20422098132);
4694 6 : parameter_mix_H[HIP].push_back(1692.637366093312);
4695 :
4696 6 : parameter_mix_H[ARG].push_back(1280.940480119178);
4697 6 : parameter_mix_H[ARG].push_back(-7.411214928783748);
4698 6 : parameter_mix_H[ARG].push_back(-3747.6200569785033);
4699 6 : parameter_mix_H[ARG].push_back(-1766.5282176004569);
4700 6 : parameter_mix_H[ARG].push_back(14307.817638456267);
4701 6 : parameter_mix_H[ARG].push_back(-14297.104122885643);
4702 6 : parameter_mix_H[ARG].push_back(4450.526244207772);
4703 :
4704 6 : parameter_mix_H[LYS].push_back(570.7272001192143);
4705 6 : parameter_mix_H[LYS].push_back(-5.371742288956095);
4706 6 : parameter_mix_H[LYS].push_back(-1255.9868267793006);
4707 6 : parameter_mix_H[LYS].push_back(-748.3071074443138);
4708 6 : parameter_mix_H[LYS].push_back(4534.824932304509);
4709 6 : parameter_mix_H[LYS].push_back(-4125.307867230812);
4710 6 : parameter_mix_H[LYS].push_back(1178.781491068295);
4711 :
4712 6 : parameter_mix_H[CYS].push_back(410.21750011921864);
4713 6 : parameter_mix_H[CYS].push_back(-0.7655651758449595);
4714 6 : parameter_mix_H[CYS].push_back(-523.8897033718782);
4715 6 : parameter_mix_H[CYS].push_back(-89.88478273744425);
4716 6 : parameter_mix_H[CYS].push_back(655.3313542467919);
4717 6 : parameter_mix_H[CYS].push_back(-407.87897719750896);
4718 6 : parameter_mix_H[CYS].push_back(76.50541508448237);
4719 :
4720 6 : parameter_mix_H[CYX].push_back(466.237200119199);
4721 6 : parameter_mix_H[CYX].push_back(-1.302082362010);
4722 6 : parameter_mix_H[CYX].push_back(-667.565738985901);
4723 6 : parameter_mix_H[CYX].push_back(-159.506437978088);
4724 6 : parameter_mix_H[CYX].push_back(1085.648159448292);
4725 6 : parameter_mix_H[CYX].push_back(-767.622943338598);
4726 6 : parameter_mix_H[CYX].push_back(170.157274620163);
4727 :
4728 6 : parameter_mix_H[ASP].push_back(893.6531201192147);
4729 6 : parameter_mix_H[ASP].push_back(-3.0756255172248874);
4730 6 : parameter_mix_H[ASP].push_back(-1453.1760425275006);
4731 6 : parameter_mix_H[ASP].push_back(-365.0424824614137);
4732 6 : parameter_mix_H[ASP].push_back(2443.570600976796);
4733 6 : parameter_mix_H[ASP].push_back(-1679.8996339740277);
4734 6 : parameter_mix_H[ASP].push_back(352.33054461512455);
4735 :
4736 6 : parameter_mix_H[GLU].push_back(1075.4955601191884);
4737 6 : parameter_mix_H[GLU].push_back(-6.917429973203965);
4738 6 : parameter_mix_H[GLU].push_back(-2262.861870389347);
4739 6 : parameter_mix_H[GLU].push_back(-909.8078514527992);
4740 6 : parameter_mix_H[GLU].push_back(5841.923857549836);
4741 6 : parameter_mix_H[GLU].push_back(-4784.620969556751);
4742 6 : parameter_mix_H[GLU].push_back(1230.873134652953);
4743 :
4744 6 : parameter_mix_H[ILE].push_back(466.0127201192081);
4745 6 : parameter_mix_H[ILE].push_back(-0.9323443258150218);
4746 6 : parameter_mix_H[ILE].push_back(-576.7178005955719);
4747 6 : parameter_mix_H[ILE].push_back(-103.03003361062478);
4748 6 : parameter_mix_H[ILE].push_back(706.4269951176641);
4749 6 : parameter_mix_H[ILE].push_back(-420.4412859632717);
4750 6 : parameter_mix_H[ILE].push_back(71.53175726608731);
4751 :
4752 6 : parameter_mix_H[LEU].push_back(466.0127201192081);
4753 6 : parameter_mix_H[LEU].push_back(-1.9793605752606065);
4754 6 : parameter_mix_H[LEU].push_back(-718.3988478701591);
4755 6 : parameter_mix_H[LEU].push_back(-227.36409339012113);
4756 6 : parameter_mix_H[LEU].push_back(1389.2058254917304);
4757 6 : parameter_mix_H[LEU].push_back(-990.0033118748643);
4758 6 : parameter_mix_H[LEU].push_back(213.15736815883042);
4759 :
4760 6 : parameter_mix_H[MET].push_back(562.9855401192196);
4761 6 : parameter_mix_H[MET].push_back(-3.7994094933771643);
4762 6 : parameter_mix_H[MET].push_back(-1139.6331862451661);
4763 6 : parameter_mix_H[MET].push_back(-516.6313269725724);
4764 6 : parameter_mix_H[MET].push_back(3268.957245190869);
4765 6 : parameter_mix_H[MET].push_back(-2809.178864807947);
4766 6 : parameter_mix_H[MET].push_back(761.4832732100416);
4767 :
4768 6 : parameter_mix_H[ASN].push_back(828.7488001191887);
4769 6 : parameter_mix_H[ASN].push_back(-2.1275493073799625);
4770 6 : parameter_mix_H[ASN].push_back(-1222.248291388804);
4771 6 : parameter_mix_H[ASN].push_back(-238.94210659613537);
4772 6 : parameter_mix_H[ASN].push_back(1660.8322402171973);
4773 6 : parameter_mix_H[ASN].push_back(-1008.7934996077323);
4774 6 : parameter_mix_H[ASN].push_back(173.6082238625797);
4775 :
4776 6 : parameter_mix_H[PRO].push_back(578.4409801192146);
4777 6 : parameter_mix_H[PRO].push_back(-0.5379505780909722);
4778 6 : parameter_mix_H[PRO].push_back(-648.146493857212);
4779 6 : parameter_mix_H[PRO].push_back(-56.67223895342921);
4780 6 : parameter_mix_H[PRO].push_back(509.88860586987437);
4781 6 : parameter_mix_H[PRO].push_back(-214.57871784725265);
4782 6 : parameter_mix_H[PRO].push_back(11.99659463759968);
4783 :
4784 6 : parameter_mix_H[GLN].push_back(989.2334401191976);
4785 6 : parameter_mix_H[GLN].push_back(-6.307760694331967);
4786 6 : parameter_mix_H[GLN].push_back(-1971.7067150503622);
4787 6 : parameter_mix_H[GLN].push_back(-791.333088386235);
4788 6 : parameter_mix_H[GLN].push_back(4900.009768434847);
4789 6 : parameter_mix_H[GLN].push_back(-3909.7740976374153);
4790 6 : parameter_mix_H[GLN].push_back(975.4952613244343);
4791 :
4792 6 : parameter_mix_H[SER].push_back(426.39900011920196);
4793 6 : parameter_mix_H[SER].push_back(-0.42304498358319664);
4794 6 : parameter_mix_H[SER].push_back(-484.2066027682147);
4795 6 : parameter_mix_H[SER].push_back(-45.38968988754228);
4796 6 : parameter_mix_H[SER].push_back(401.3420977115044);
4797 6 : parameter_mix_H[SER].push_back(-178.0861461692512);
4798 6 : parameter_mix_H[SER].push_back(13.540349238730284);
4799 :
4800 6 : parameter_mix_H[THR].push_back(525.0470401191992);
4801 6 : parameter_mix_H[THR].push_back(-0.7419102811534484);
4802 6 : parameter_mix_H[THR].push_back(-652.7134808154495);
4803 6 : parameter_mix_H[THR].push_back(-80.39481224407903);
4804 6 : parameter_mix_H[THR].push_back(641.5487902728123);
4805 6 : parameter_mix_H[THR].push_back(-320.4227667104819);
4806 6 : parameter_mix_H[THR].push_back(36.03558531183942);
4807 :
4808 6 : parameter_mix_H[VAL].push_back(414.6228601192123);
4809 6 : parameter_mix_H[VAL].push_back(-0.35889335250521337);
4810 6 : parameter_mix_H[VAL].push_back(-453.11631644097474);
4811 6 : parameter_mix_H[VAL].push_back(-36.402101097644284);
4812 6 : parameter_mix_H[VAL].push_back(336.24049431626804);
4813 6 : parameter_mix_H[VAL].push_back(-127.42235327515239);
4814 6 : parameter_mix_H[VAL].push_back(0.8013280923923705);
4815 :
4816 6 : parameter_mix_H[ALA].push_back(285.21010011920816);
4817 6 : parameter_mix_H[ALA].push_back(-0.1573012439142169);
4818 6 : parameter_mix_H[ALA].push_back(-282.8945838800694);
4819 6 : parameter_mix_H[ALA].push_back(-16.32030056827785);
4820 6 : parameter_mix_H[ALA].push_back(178.065895049598);
4821 6 : parameter_mix_H[ALA].push_back(-60.27423229179658);
4822 6 : parameter_mix_H[ALA].push_back(-1.4695219304131588);
4823 :
4824 6 : parameter_mix_H[GLY].push_back(207.18720011920414);
4825 6 : parameter_mix_H[GLY].push_back(-0.1036587134183235);
4826 6 : parameter_mix_H[GLY].push_back(-185.70794948240638);
4827 6 : parameter_mix_H[GLY].push_back(-11.008101039836257);
4828 6 : parameter_mix_H[GLY].push_back(115.30600405624061);
4829 6 : parameter_mix_H[GLY].push_back(-42.46629718037158);
4830 6 : parameter_mix_H[GLY].push_back(0.9238928987070913);
4831 :
4832 6 : parameter_mix_H[HIS].push_back(1443.9117601192354);
4833 6 : parameter_mix_H[HIS].push_back(-7.478618745973115);
4834 6 : parameter_mix_H[HIS].push_back(-2715.0835155803215);
4835 6 : parameter_mix_H[HIS].push_back(-918.5243015382779);
4836 6 : parameter_mix_H[HIS].push_back(5821.6258431396);
4837 6 : parameter_mix_H[HIS].push_back(-4415.32722209556);
4838 6 : parameter_mix_H[HIS].push_back(1044.7044029209756);
4839 :
4840 6 : parameter_vac_H[TRP].push_back(36.42122511920832);
4841 6 : parameter_vac_H[TRP].push_back(-0.36925500341767903);
4842 6 : parameter_vac_H[TRP].push_back(-51.34228792835503);
4843 6 : parameter_vac_H[TRP].push_back(-34.10021080004831);
4844 6 : parameter_vac_H[TRP].push_back(132.647034983933);
4845 6 : parameter_vac_H[TRP].push_back(-82.89152328934257);
4846 6 : parameter_vac_H[TRP].push_back(13.029994092013231);
4847 :
4848 6 : parameter_vac_H[TYR].push_back(22.268961119209557);
4849 6 : parameter_vac_H[TYR].push_back(-0.1995573892347673);
4850 6 : parameter_vac_H[TYR].push_back(-36.54202179838511);
4851 6 : parameter_vac_H[TYR].push_back(-23.820801043096694);
4852 6 : parameter_vac_H[TYR].push_back(127.46799692275353);
4853 6 : parameter_vac_H[TYR].push_back(-107.63783234245744);
4854 6 : parameter_vac_H[TYR].push_back(28.180858902960775);
4855 :
4856 6 : parameter_vac_H[PHE].push_back(17.131321119209627);
4857 6 : parameter_vac_H[PHE].push_back(-0.15766725674246446);
4858 6 : parameter_vac_H[PHE].push_back(-19.19964432024534);
4859 6 : parameter_vac_H[PHE].push_back(-12.34326882843138);
4860 6 : parameter_vac_H[PHE].push_back(38.17216645824474);
4861 6 : parameter_vac_H[PHE].push_back(-11.245288857407298);
4862 6 : parameter_vac_H[PHE].push_back(-3.8114731300899343);
4863 :
4864 6 : parameter_vac_H[HIP].push_back(19.34240411920875);
4865 6 : parameter_vac_H[HIP].push_back(-0.13533410292592593);
4866 6 : parameter_vac_H[HIP].push_back(-25.924121027387276);
4867 6 : parameter_vac_H[HIP].push_back(-12.36586927492752);
4868 6 : parameter_vac_H[HIP].push_back(56.75268702111191);
4869 6 : parameter_vac_H[HIP].push_back(-31.126240293638094);
4870 6 : parameter_vac_H[HIP].push_back(2.749811579250848);
4871 :
4872 6 : parameter_vac_H[ARG].push_back(12.027024119209557);
4873 6 : parameter_vac_H[ARG].push_back(-0.41927538341868287);
4874 6 : parameter_vac_H[ARG].push_back(-22.137566939867042);
4875 6 : parameter_vac_H[ARG].push_back(-43.22615008762667);
4876 6 : parameter_vac_H[ARG].push_back(165.77466655520323);
4877 6 : parameter_vac_H[ARG].push_back(-140.68664871425898);
4878 6 : parameter_vac_H[ARG].push_back(36.67401195170306);
4879 :
4880 6 : parameter_vac_H[LYS].push_back(2.5217441192093717);
4881 6 : parameter_vac_H[LYS].push_back(-0.0032825476242835413);
4882 6 : parameter_vac_H[LYS].push_back(14.019071697737793);
4883 6 : parameter_vac_H[LYS].push_back(7.8634074595069245);
4884 6 : parameter_vac_H[LYS].push_back(-82.44639716451474);
4885 6 : parameter_vac_H[LYS].push_back(94.32937851921197);
4886 6 : parameter_vac_H[LYS].push_back(-32.324473823417);
4887 :
4888 6 : parameter_vac_H[CYS].push_back(3.705624880856525);
4889 6 : parameter_vac_H[CYS].push_back(0.005214780840206113);
4890 6 : parameter_vac_H[CYS].push_back(1.25680902661715);
4891 6 : parameter_vac_H[CYS].push_back(0.5779209425501814);
4892 6 : parameter_vac_H[CYS].push_back(-3.716408071089366);
4893 6 : parameter_vac_H[CYS].push_back(2.3947518943233117);
4894 6 : parameter_vac_H[CYS].push_back(-0.40204949737133333);
4895 :
4896 6 : parameter_vac_H[CYX].push_back(5.285401118868);
4897 6 : parameter_vac_H[CYX].push_back(-0.006119528779);
4898 6 : parameter_vac_H[CYX].push_back(-3.091212256902);
4899 6 : parameter_vac_H[CYX].push_back(-0.679948780910);
4900 6 : parameter_vac_H[CYX].push_back(4.495837313271);
4901 6 : parameter_vac_H[CYX].push_back(-2.827133444940);
4902 6 : parameter_vac_H[CYX].push_back(0.494583310914);
4903 :
4904 6 : parameter_vac_H[ASP].push_back(14.776336119209605);
4905 6 : parameter_vac_H[ASP].push_back(-0.037351220316916435);
4906 6 : parameter_vac_H[ASP].push_back(-18.556358387626286);
4907 6 : parameter_vac_H[ASP].push_back(-4.1737354794552886);
4908 6 : parameter_vac_H[ASP].push_back(28.424721213037405);
4909 6 : parameter_vac_H[ASP].push_back(-17.51389895324883);
4910 6 : parameter_vac_H[ASP].push_back(2.9729111724708597);
4911 :
4912 6 : parameter_vac_H[GLU].push_back(14.145121119208973);
4913 6 : parameter_vac_H[GLU].push_back(-0.11468766098213011);
4914 6 : parameter_vac_H[GLU].push_back(-26.272637652294613);
4915 6 : parameter_vac_H[GLU].push_back(-13.769758826440151);
4916 6 : parameter_vac_H[GLU].push_back(80.4575683578491);
4917 6 : parameter_vac_H[GLU].push_back(-64.19346347075);
4918 6 : parameter_vac_H[GLU].push_back(15.545440117656236);
4919 :
4920 6 : parameter_vac_H[ILE].push_back(1.9488158808808775);
4921 6 : parameter_vac_H[ILE].push_back(0.05873132133874459);
4922 6 : parameter_vac_H[ILE].push_back(12.032778845884135);
4923 6 : parameter_vac_H[ILE].push_back(7.148416980612881);
4924 6 : parameter_vac_H[ILE].push_back(-41.87377843832961);
4925 6 : parameter_vac_H[ILE].push_back(33.96120749582283);
4926 6 : parameter_vac_H[ILE].push_back(-8.362535852631256);
4927 :
4928 6 : parameter_vac_H[LEU].push_back(1.9488158808977816);
4929 6 : parameter_vac_H[LEU].push_back(0.0778305500414777);
4930 6 : parameter_vac_H[LEU].push_back(12.333370614594);
4931 6 : parameter_vac_H[LEU].push_back(9.449427967560764);
4932 6 : parameter_vac_H[LEU].push_back(-52.65457680603262);
4933 6 : parameter_vac_H[LEU].push_back(44.681877289399615);
4934 6 : parameter_vac_H[LEU].push_back(-11.460498338671227);
4935 :
4936 6 : parameter_vac_H[MET].push_back(3.0940808808117652);
4937 6 : parameter_vac_H[MET].push_back(0.04903755678213222);
4938 6 : parameter_vac_H[MET].push_back(8.981927022922049);
4939 6 : parameter_vac_H[MET].push_back(8.654862771879014);
4940 6 : parameter_vac_H[MET].push_back(-57.09889409156816);
4941 6 : parameter_vac_H[MET].push_back(58.87704775164829);
4942 6 : parameter_vac_H[MET].push_back(-18.60431990258862);
4943 :
4944 6 : parameter_vac_H[ASN].push_back(11.943936119209074);
4945 6 : parameter_vac_H[ASN].push_back(-0.0005000836239497835);
4946 6 : parameter_vac_H[ASN].push_back(-9.581236453763157);
4947 6 : parameter_vac_H[ASN].push_back(0.16244025786232308);
4948 6 : parameter_vac_H[ASN].push_back(2.9276580099749574);
4949 6 : parameter_vac_H[ASN].push_back(2.133535783835143);
4950 6 : parameter_vac_H[ASN].push_back(-1.5709968820975018);
4951 :
4952 6 : parameter_vac_H[PRO].push_back(4.9595288808229245);
4953 6 : parameter_vac_H[PRO].push_back(0.017853932680793515);
4954 6 : parameter_vac_H[PRO].push_back(4.5421559293101605);
4955 6 : parameter_vac_H[PRO].push_back(2.008455612787203);
4956 6 : parameter_vac_H[PRO].push_back(-12.444117841318494);
4957 6 : parameter_vac_H[PRO].push_back(8.511723688836447);
4958 6 : parameter_vac_H[PRO].push_back(-1.6337543903496765);
4959 :
4960 6 : parameter_vac_H[GLN].push_back(11.377129119208574);
4961 6 : parameter_vac_H[GLN].push_back(-0.0674805307761209);
4962 6 : parameter_vac_H[GLN].push_back(-16.56692720411458);
4963 6 : parameter_vac_H[GLN].push_back(-6.477707440126834);
4964 6 : parameter_vac_H[GLN].push_back(34.78232259512621);
4965 6 : parameter_vac_H[GLN].push_back(-19.450886909938312);
4966 6 : parameter_vac_H[GLN].push_back(1.944286925108988);
4967 :
4968 6 : parameter_vac_H[SER].push_back(4.95062488096605);
4969 6 : parameter_vac_H[SER].push_back(0.004676435440506079);
4970 6 : parameter_vac_H[SER].push_back(-0.1896653085608564);
4971 6 : parameter_vac_H[SER].push_back(0.5142284931977218);
4972 6 : parameter_vac_H[SER].push_back(-2.8946087252759893);
4973 6 : parameter_vac_H[SER].push_back(2.1031239401634836);
4974 6 : parameter_vac_H[SER].push_back(-0.38226443516361713);
4975 :
4976 6 : parameter_vac_H[THR].push_back(4.588163880808971);
4977 6 : parameter_vac_H[THR].push_back(0.018587905993982613);
4978 6 : parameter_vac_H[THR].push_back(3.5289861308270214);
4979 6 : parameter_vac_H[THR].push_back(2.0780583604591567);
4980 6 : parameter_vac_H[THR].push_back(-12.3802007068414);
4981 6 : parameter_vac_H[THR].push_back(8.720986674116094);
4982 6 : parameter_vac_H[THR].push_back(-1.683256475122275);
4983 :
4984 6 : parameter_vac_H[VAL].push_back(2.187440880853519);
4985 6 : parameter_vac_H[VAL].push_back(0.028351524826584255);
4986 6 : parameter_vac_H[VAL].push_back(8.36584512491955);
4987 6 : parameter_vac_H[VAL].push_back(3.1686206615123926);
4988 6 : parameter_vac_H[VAL].push_back(-19.81959917770108);
4989 6 : parameter_vac_H[VAL].push_back(13.293003038570571);
4990 6 : parameter_vac_H[VAL].push_back(-2.4595257726774125);
4991 :
4992 6 : parameter_vac_H[ALA].push_back(2.7060248808167935);
4993 6 : parameter_vac_H[ALA].push_back(0.004618897267213416);
4994 6 : parameter_vac_H[ALA].push_back(2.4990261487383947);
4995 6 : parameter_vac_H[ALA].push_back(0.49579332664340864);
4996 6 : parameter_vac_H[ALA].push_back(-3.850400071630347);
4997 6 : parameter_vac_H[ALA].push_back(1.9501161562030942);
4998 6 : parameter_vac_H[ALA].push_back(-0.18332582719788362);
4999 :
5000 6 : parameter_vac_H[GLY].push_back(2.985983880876256);
5001 6 : parameter_vac_H[GLY].push_back(0.0005033131808079042);
5002 6 : parameter_vac_H[GLY].push_back(-0.42250170279962684);
5003 6 : parameter_vac_H[GLY].push_back(0.05620517453257455);
5004 6 : parameter_vac_H[GLY].push_back(-0.16801962822020733);
5005 6 : parameter_vac_H[GLY].push_back(0.23635459648780555);
5006 6 : parameter_vac_H[GLY].push_back(-0.06585244715658795);
5007 :
5008 6 : parameter_vac_H[HIS].push_back(22.77198411920933);
5009 6 : parameter_vac_H[HIS].push_back(-0.06607491006655417);
5010 6 : parameter_vac_H[HIS].push_back(-27.277710268717247);
5011 6 : parameter_vac_H[HIS].push_back(-5.674444390934355);
5012 6 : parameter_vac_H[HIS].push_back(33.4059567406171);
5013 6 : parameter_vac_H[HIS].push_back(-11.60826210271092);
5014 6 : parameter_vac_H[HIS].push_back(-1.7359607560773076);
5015 :
5016 : // NUCLEIC ACIDS
5017 :
5018 : // BB_PO2-BB_PO3 H and D parameters are identical as there is no H or D in the bead.
5019 6 : parameter_solv_H[BB_PO3].push_back(1464.5929001192262);
5020 6 : parameter_solv_H[BB_PO3].push_back(-2.316908934494931);
5021 6 : parameter_solv_H[BB_PO3].push_back(-1882.4844584696532);
5022 6 : parameter_solv_H[BB_PO3].push_back(-258.8660305554736);
5023 6 : parameter_solv_H[BB_PO3].push_back(2007.5216385943972);
5024 6 : parameter_solv_H[BB_PO3].push_back(-1087.6423562424877);
5025 6 : parameter_solv_H[BB_PO3].push_back(154.89236486681165);
5026 :
5027 6 : parameter_solv_H[BB_PO2].push_back(575.5201001192197);
5028 6 : parameter_solv_H[BB_PO2].push_back(-0.6126595489733864);
5029 6 : parameter_solv_H[BB_PO2].push_back(-623.3371092254899);
5030 6 : parameter_solv_H[BB_PO2].push_back(-68.05795957022144);
5031 6 : parameter_solv_H[BB_PO2].push_back(561.8052621243661);
5032 6 : parameter_solv_H[BB_PO2].push_back(-283.39573309540276);
5033 6 : parameter_solv_H[BB_PO2].push_back(35.550016980100295);
5034 :
5035 6 : parameter_solv_H[BB_DNA].push_back(21211.009600118316);
5036 6 : parameter_solv_H[BB_DNA].push_back(-90.18805990529991);
5037 6 : parameter_solv_H[BB_DNA].push_back(-39731.13373512149);
5038 6 : parameter_solv_H[BB_DNA].push_back(-10920.373563712872);
5039 6 : parameter_solv_H[BB_DNA].push_back(72882.21702424981);
5040 6 : parameter_solv_H[BB_DNA].push_back(-51747.487078112776);
5041 6 : parameter_solv_H[BB_DNA].push_back(11308.678429018755);
5042 :
5043 6 : parameter_solv_H[BB_DNA_5].push_back(22737.624100119025);
5044 6 : parameter_solv_H[BB_DNA_5].push_back(-102.72714886664161);
5045 6 : parameter_solv_H[BB_DNA_5].push_back(-43685.329677789734);
5046 6 : parameter_solv_H[BB_DNA_5].push_back(-12564.25937409345);
5047 6 : parameter_solv_H[BB_DNA_5].push_back(83454.87540484878);
5048 6 : parameter_solv_H[BB_DNA_5].push_back(-60367.15652138887);
5049 6 : parameter_solv_H[BB_DNA_5].push_back(13507.333729868991);
5050 :
5051 6 : parameter_solv_H[BB_DNA_3].push_back(22737.62410011902);
5052 6 : parameter_solv_H[BB_DNA_3].push_back(-101.57816684452251);
5053 6 : parameter_solv_H[BB_DNA_3].push_back(-43488.536705576145);
5054 6 : parameter_solv_H[BB_DNA_3].push_back(-12345.056184958425);
5055 6 : parameter_solv_H[BB_DNA_3].push_back(81963.52364114887);
5056 6 : parameter_solv_H[BB_DNA_3].push_back(-58791.59443618196);
5057 6 : parameter_solv_H[BB_DNA_3].push_back(13003.199362335583);
5058 :
5059 6 : parameter_solv_H[BB_RNA].push_back(23953.752900120977);
5060 6 : parameter_solv_H[BB_RNA].push_back(-117.35779348824417);
5061 6 : parameter_solv_H[BB_RNA].push_back(-47644.41735332843);
5062 6 : parameter_solv_H[BB_RNA].push_back(-14641.556643789861);
5063 6 : parameter_solv_H[BB_RNA].push_back(96893.48627050371);
5064 6 : parameter_solv_H[BB_RNA].push_back(-72249.62534169303);
5065 6 : parameter_solv_H[BB_RNA].push_back(16792.055521055358);
5066 :
5067 6 : parameter_solv_H[BB_RNA_5].push_back(25574.406400119024);
5068 6 : parameter_solv_H[BB_RNA_5].push_back(-131.99642772933734);
5069 6 : parameter_solv_H[BB_RNA_5].push_back(-52136.51404531251);
5070 6 : parameter_solv_H[BB_RNA_5].push_back(-16682.14273917604);
5071 6 : parameter_solv_H[BB_RNA_5].push_back(110278.01921639398);
5072 6 : parameter_solv_H[BB_RNA_5].push_back(-83715.92027818544);
5073 6 : parameter_solv_H[BB_RNA_5].push_back(19875.89133770605);
5074 :
5075 6 : parameter_solv_H[BB_RNA_3].push_back(25574.406400119027);
5076 6 : parameter_solv_H[BB_RNA_3].push_back(-127.96875237036166);
5077 6 : parameter_solv_H[BB_RNA_3].push_back(-51407.18391758439);
5078 6 : parameter_solv_H[BB_RNA_3].push_back(-15922.900669975606);
5079 6 : parameter_solv_H[BB_RNA_3].push_back(105078.5888910626);
5080 6 : parameter_solv_H[BB_RNA_3].push_back(-78289.16276190645);
5081 6 : parameter_solv_H[BB_RNA_3].push_back(18156.832143441192);
5082 :
5083 6 : parameter_solv_H[BASE_A].push_back(13282.562500119211);
5084 6 : parameter_solv_H[BASE_A].push_back(-76.45124168404048);
5085 6 : parameter_solv_H[BASE_A].push_back(-28376.06994108963);
5086 6 : parameter_solv_H[BASE_A].push_back(-9972.910773722022);
5087 6 : parameter_solv_H[BASE_A].push_back(65873.86341939073);
5088 6 : parameter_solv_H[BASE_A].push_back(-52064.33492910885);
5089 6 : parameter_solv_H[BASE_A].push_back(12931.608989412513);
5090 :
5091 6 : parameter_solv_H[BASE_C].push_back(10600.76160011891);
5092 6 : parameter_solv_H[BASE_C].push_back(-49.1670871249108);
5093 6 : parameter_solv_H[BASE_C].push_back(-20239.818742072875);
5094 6 : parameter_solv_H[BASE_C].push_back(-6020.278780090207);
5095 6 : parameter_solv_H[BASE_C].push_back(39632.13288981881);
5096 6 : parameter_solv_H[BASE_C].push_back(-28954.779736165576);
5097 6 : parameter_solv_H[BASE_C].push_back(6551.541109526305);
5098 :
5099 6 : parameter_solv_H[BASE_G].push_back(15470.384400119934);
5100 6 : parameter_solv_H[BASE_G].push_back(-93.8013620200972);
5101 6 : parameter_solv_H[BASE_G].push_back(-36188.29687013545);
5102 6 : parameter_solv_H[BASE_G].push_back(-13717.685098209471);
5103 6 : parameter_solv_H[BASE_G].push_back(95658.18473657136);
5104 6 : parameter_solv_H[BASE_G].push_back(-81262.37811451119);
5105 6 : parameter_solv_H[BASE_G].push_back(21841.903930943085);
5106 :
5107 6 : parameter_solv_H[BASE_T].push_back(17210.81610011936);
5108 6 : parameter_solv_H[BASE_T].push_back(-93.10189802920208);
5109 6 : parameter_solv_H[BASE_T].push_back(-36466.51927689957);
5110 6 : parameter_solv_H[BASE_T].push_back(-12425.55615716932);
5111 6 : parameter_solv_H[BASE_T].push_back(83847.427808925);
5112 6 : parameter_solv_H[BASE_T].push_back(-66735.64997846584);
5113 6 : parameter_solv_H[BASE_T].push_back(16757.3463987507);
5114 :
5115 6 : parameter_solv_H[BASE_U].push_back(10909.802500119395);
5116 6 : parameter_solv_H[BASE_U].push_back(-46.17712672768298);
5117 6 : parameter_solv_H[BASE_U].push_back(-20149.67695512526);
5118 6 : parameter_solv_H[BASE_U].push_back(-5590.242961204435);
5119 6 : parameter_solv_H[BASE_U].push_back(37169.2740983132);
5120 6 : parameter_solv_H[BASE_U].push_back(-26475.631627167604);
5121 6 : parameter_solv_H[BASE_U].push_back(5808.201015156168);
5122 :
5123 6 : parameter_mix_H[BB_PO3].push_back(143.5890401192106);
5124 6 : parameter_mix_H[BB_PO3].push_back(-0.0679405156108208);
5125 6 : parameter_mix_H[BB_PO3].push_back(-131.78648321068806);
5126 6 : parameter_mix_H[BB_PO3].push_back(-7.222980065241985);
5127 6 : parameter_mix_H[BB_PO3].push_back(79.67309464590994);
5128 6 : parameter_mix_H[BB_PO3].push_back(-27.950095608460042);
5129 6 : parameter_mix_H[BB_PO3].push_back(0.12790403369995257);
5130 :
5131 6 : parameter_mix_H[BB_PO2].push_back(80.12660011920252);
5132 6 : parameter_mix_H[BB_PO2].push_back(-0.0278885551982023);
5133 6 : parameter_mix_H[BB_PO2].push_back(-60.532194918222984);
5134 6 : parameter_mix_H[BB_PO2].push_back(-2.976882903409687);
5135 6 : parameter_mix_H[BB_PO2].push_back(33.30645116638125);
5136 6 : parameter_mix_H[BB_PO2].push_back(-11.601573219761374);
5137 6 : parameter_mix_H[BB_PO2].push_back(0.12551046492022422);
5138 :
5139 6 : parameter_mix_H[BB_DNA].push_back(712.7621601191935);
5140 6 : parameter_mix_H[BB_DNA].push_back(-0.3228709821198571);
5141 6 : parameter_mix_H[BB_DNA].push_back(-784.5118228559945);
5142 6 : parameter_mix_H[BB_DNA].push_back(-27.196125702249613);
5143 6 : parameter_mix_H[BB_DNA].push_back(410.0185035102729);
5144 6 : parameter_mix_H[BB_DNA].push_back(-54.453513369320355);
5145 6 : parameter_mix_H[BB_DNA].push_back(-44.85506789237683);
5146 :
5147 6 : parameter_mix_H[BB_DNA_5].push_back(625.175339965785);
5148 6 : parameter_mix_H[BB_DNA_5].push_back(0.2691706617748245);
5149 6 : parameter_mix_H[BB_DNA_5].push_back(-582.8721350420001);
5150 6 : parameter_mix_H[BB_DNA_5].push_back(46.512408351374326);
5151 6 : parameter_mix_H[BB_DNA_5].push_back(-58.93886949899108);
5152 6 : parameter_mix_H[BB_DNA_5].push_back(307.29720336085046);
5153 6 : parameter_mix_H[BB_DNA_5].push_back(-131.71996309259953);
5154 :
5155 6 : parameter_mix_H[BB_DNA_3].push_back(625.1753399401266);
5156 6 : parameter_mix_H[BB_DNA_3].push_back(0.08763234414546289);
5157 6 : parameter_mix_H[BB_DNA_3].push_back(-606.8067575087485);
5158 6 : parameter_mix_H[BB_DNA_3].push_back(20.84427254872218);
5159 6 : parameter_mix_H[BB_DNA_3].push_back(92.53523123608991);
5160 6 : parameter_mix_H[BB_DNA_3].push_back(162.04688035654937);
5161 6 : parameter_mix_H[BB_DNA_3].push_back(-89.13571774638052);
5162 :
5163 6 : parameter_mix_H[BB_RNA].push_back(936.9775801191857);
5164 6 : parameter_mix_H[BB_RNA].push_back(-1.3233686929680253);
5165 6 : parameter_mix_H[BB_RNA].push_back(-1212.1627155263773);
5166 6 : parameter_mix_H[BB_RNA].push_back(-141.35324744384351);
5167 6 : parameter_mix_H[BB_RNA].push_back(1155.8281658363026);
5168 6 : parameter_mix_H[BB_RNA].push_back(-548.9340055857343);
5169 6 : parameter_mix_H[BB_RNA].push_back(50.81734777881503);
5170 :
5171 6 : parameter_mix_H[BB_RNA_5].push_back(848.5355201165631);
5172 6 : parameter_mix_H[BB_RNA_5].push_back(-0.49570338490120175);
5173 6 : parameter_mix_H[BB_RNA_5].push_back(-976.1033073783973);
5174 6 : parameter_mix_H[BB_RNA_5].push_back(-32.943532187986605);
5175 6 : parameter_mix_H[BB_RNA_5].push_back(475.66177061923884);
5176 6 : parameter_mix_H[BB_RNA_5].push_back(17.51955845824258);
5177 6 : parameter_mix_H[BB_RNA_5].push_back(-96.74451972314769);
5178 :
5179 6 : parameter_mix_H[BB_RNA_3].push_back(848.5355201192122);
5180 6 : parameter_mix_H[BB_RNA_3].push_back(-0.8301109354355396);
5181 6 : parameter_mix_H[BB_RNA_3].push_back(-1019.9524389785406);
5182 6 : parameter_mix_H[BB_RNA_3].push_back(-84.1388451424885);
5183 6 : parameter_mix_H[BB_RNA_3].push_back(787.1277245040931);
5184 6 : parameter_mix_H[BB_RNA_3].push_back(-294.67807432795627);
5185 6 : parameter_mix_H[BB_RNA_3].push_back(-1.3214626461251089);
5186 :
5187 6 : parameter_mix_H[BASE_A].push_back(1504.9345001191857);
5188 6 : parameter_mix_H[BASE_A].push_back(-3.5306888452552663);
5189 6 : parameter_mix_H[BASE_A].push_back(-2234.3933572775572);
5190 6 : parameter_mix_H[BASE_A].push_back(-380.0255208494757);
5191 6 : parameter_mix_H[BASE_A].push_back(2726.27802432048);
5192 6 : parameter_mix_H[BASE_A].push_back(-1490.8825754968443);
5193 6 : parameter_mix_H[BASE_A].push_back(199.7501110740159);
5194 :
5195 6 : parameter_mix_H[BASE_C].push_back(939.8188801192172);
5196 6 : parameter_mix_H[BASE_C].push_back(-1.489638186262854);
5197 6 : parameter_mix_H[BASE_C].push_back(-1244.5515798554075);
5198 6 : parameter_mix_H[BASE_C].push_back(-161.3972705672055);
5199 6 : parameter_mix_H[BASE_C].push_back(1276.3568466722545);
5200 6 : parameter_mix_H[BASE_C].push_back(-643.3057776225742);
5201 6 : parameter_mix_H[BASE_C].push_back(72.75963113826273);
5202 :
5203 6 : parameter_mix_H[BASE_G].push_back(1768.434840119199);
5204 6 : parameter_mix_H[BASE_G].push_back(-6.505347007077434);
5205 6 : parameter_mix_H[BASE_G].push_back(-2919.3856777898427);
5206 6 : parameter_mix_H[BASE_G].push_back(-701.2456464463938);
5207 6 : parameter_mix_H[BASE_G].push_back(4464.594230284102);
5208 6 : parameter_mix_H[BASE_G].push_back(-2733.138521295608);
5209 6 : parameter_mix_H[BASE_G].push_back(458.1177706235891);
5210 :
5211 6 : parameter_mix_H[BASE_T].push_back(1179.3981001192033);
5212 6 : parameter_mix_H[BASE_T].push_back(-3.2037849252756527);
5213 6 : parameter_mix_H[BASE_T].push_back(-1821.255498763799);
5214 6 : parameter_mix_H[BASE_T].push_back(-371.01993266441303);
5215 6 : parameter_mix_H[BASE_T].push_back(2604.074226688971);
5216 6 : parameter_mix_H[BASE_T].push_back(-1648.1965787713084);
5217 6 : parameter_mix_H[BASE_T].push_back(307.2962186436368);
5218 :
5219 6 : parameter_mix_H[BASE_U].push_back(956.3442001192266);
5220 6 : parameter_mix_H[BASE_U].push_back(-1.724458000760567);
5221 6 : parameter_mix_H[BASE_U].push_back(-1287.9746970192687);
5222 6 : parameter_mix_H[BASE_U].push_back(-192.74748379510373);
5223 6 : parameter_mix_H[BASE_U].push_back(1459.0789258833893);
5224 6 : parameter_mix_H[BASE_U].push_back(-810.0763075080915);
5225 6 : parameter_mix_H[BASE_U].push_back(119.81810290248339);
5226 :
5227 6 : parameter_vac_H[BB_PO3].push_back(3.519375907888525);
5228 6 : parameter_vac_H[BB_PO3].push_back(7.742660056553524e-05);
5229 6 : parameter_vac_H[BB_PO3].push_back(-1.3856562746347367);
5230 6 : parameter_vac_H[BB_PO3].push_back(0.00821183249969174);
5231 6 : parameter_vac_H[BB_PO3].push_back(0.21213096729728745);
5232 6 : parameter_vac_H[BB_PO3].push_back(0.032592855104331325);
5233 6 : parameter_vac_H[BB_PO3].push_back(-0.02236149538438434);
5234 :
5235 6 : parameter_vac_H[BB_PO2].push_back(2.7889001116093275);
5236 6 : parameter_vac_H[BB_PO2].push_back(-0.00011178884266113128);
5237 6 : parameter_vac_H[BB_PO2].push_back(-1.1702605818380667);
5238 6 : parameter_vac_H[BB_PO2].push_back(-0.011278044036819933);
5239 6 : parameter_vac_H[BB_PO2].push_back(0.3214006584089025);
5240 6 : parameter_vac_H[BB_PO2].push_back(-0.04097165983591666);
5241 6 : parameter_vac_H[BB_PO2].push_back(-0.017525098100539722);
5242 :
5243 6 : parameter_vac_H[BB_DNA].push_back(5.987809026456476);
5244 6 : parameter_vac_H[BB_DNA].push_back(9.945454528827912e-05);
5245 6 : parameter_vac_H[BB_DNA].push_back(-1.1884708569330031);
5246 6 : parameter_vac_H[BB_DNA].push_back(-0.007457733256362841);
5247 6 : parameter_vac_H[BB_DNA].push_back(0.05666858781418339);
5248 6 : parameter_vac_H[BB_DNA].push_back(-0.15158797629971757);
5249 6 : parameter_vac_H[BB_DNA].push_back(0.11642340861329734);
5250 :
5251 6 : parameter_vac_H[BB_DNA_5].push_back(4.297328944539055);
5252 6 : parameter_vac_H[BB_DNA_5].push_back(0.0014793971885106831);
5253 6 : parameter_vac_H[BB_DNA_5].push_back(1.3961088365255605);
5254 6 : parameter_vac_H[BB_DNA_5].push_back(0.08974639858979384);
5255 6 : parameter_vac_H[BB_DNA_5].push_back(-1.5198099705167643);
5256 6 : parameter_vac_H[BB_DNA_5].push_back(-0.12127122359433733);
5257 6 : parameter_vac_H[BB_DNA_5].push_back(0.4134601046223601);
5258 :
5259 6 : parameter_vac_H[BB_DNA_3].push_back(4.297328886488132);
5260 6 : parameter_vac_H[BB_DNA_3].push_back(0.0041802954281271905);
5261 6 : parameter_vac_H[BB_DNA_3].push_back(1.6065462295705266);
5262 6 : parameter_vac_H[BB_DNA_3].push_back(0.4399805535688805);
5263 6 : parameter_vac_H[BB_DNA_3].push_back(-3.3806711791929804);
5264 6 : parameter_vac_H[BB_DNA_3].push_back(1.6729551563628675);
5265 6 : parameter_vac_H[BB_DNA_3].push_back(-0.10911063067909885);
5266 :
5267 6 : parameter_vac_H[BB_RNA].push_back(9.162728984394093);
5268 6 : parameter_vac_H[BB_RNA].push_back(0.00019952321584579868);
5269 6 : parameter_vac_H[BB_RNA].push_back(-4.744748946331966);
5270 6 : parameter_vac_H[BB_RNA].push_back(0.025106563403946364);
5271 6 : parameter_vac_H[BB_RNA].push_back(1.2302956694109803);
5272 6 : parameter_vac_H[BB_RNA].push_back(0.12359062278096915);
5273 6 : parameter_vac_H[BB_RNA].push_back(-0.1725633367685285);
5274 :
5275 6 : parameter_vac_H[BB_RNA_5].push_back(7.038408898671503);
5276 6 : parameter_vac_H[BB_RNA_5].push_back(0.005106788424920148);
5277 6 : parameter_vac_H[BB_RNA_5].push_back(-0.8981588221803118);
5278 6 : parameter_vac_H[BB_RNA_5].push_back(0.4922588155214312);
5279 6 : parameter_vac_H[BB_RNA_5].push_back(-2.6667853454023644);
5280 6 : parameter_vac_H[BB_RNA_5].push_back(1.533316567240718);
5281 6 : parameter_vac_H[BB_RNA_5].push_back(-0.07199604869737707);
5282 :
5283 6 : parameter_vac_H[BB_RNA_3].push_back(7.038408892621863);
5284 6 : parameter_vac_H[BB_RNA_3].push_back(0.002993083907266898);
5285 6 : parameter_vac_H[BB_RNA_3].push_back(-1.3626596831098492);
5286 6 : parameter_vac_H[BB_RNA_3].push_back(0.3138856961130113);
5287 6 : parameter_vac_H[BB_RNA_3].push_back(-1.684185014289391);
5288 6 : parameter_vac_H[BB_RNA_3].push_back(1.1862168720864616);
5289 6 : parameter_vac_H[BB_RNA_3].push_back(-0.1443894172417523);
5290 :
5291 6 : parameter_vac_H[BASE_A].push_back(42.62784088079008);
5292 6 : parameter_vac_H[BASE_A].push_back(0.02302908536431516);
5293 6 : parameter_vac_H[BASE_A].push_back(-33.22707177297222);
5294 6 : parameter_vac_H[BASE_A].push_back(2.6853748424439834);
5295 6 : parameter_vac_H[BASE_A].push_back(-1.6632902891624768);
5296 6 : parameter_vac_H[BASE_A].push_back(11.905766349515268);
5297 6 : parameter_vac_H[BASE_A].push_back(-4.547083454788805);
5298 :
5299 6 : parameter_vac_H[BASE_C].push_back(20.83009588079022);
5300 6 : parameter_vac_H[BASE_C].push_back(0.017055822321768378);
5301 6 : parameter_vac_H[BASE_C].push_back(-8.349634734370916);
5302 6 : parameter_vac_H[BASE_C].push_back(1.9324634367723073);
5303 6 : parameter_vac_H[BASE_C].push_back(-8.435199734060882);
5304 6 : parameter_vac_H[BASE_C].push_back(8.272798368731268);
5305 6 : parameter_vac_H[BASE_C].push_back(-1.986671440757263);
5306 :
5307 6 : parameter_vac_H[BASE_G].push_back(50.53788088079374);
5308 6 : parameter_vac_H[BASE_G].push_back(0.024035597617780367);
5309 6 : parameter_vac_H[BASE_G].push_back(-47.94916639302998);
5310 6 : parameter_vac_H[BASE_G].push_back(3.143375731466498);
5311 6 : parameter_vac_H[BASE_G].push_back(4.297009866708155);
5312 6 : parameter_vac_H[BASE_G].push_back(15.855448505050578);
5313 6 : parameter_vac_H[BASE_G].push_back(-7.827484135873966);
5314 :
5315 6 : parameter_vac_H[BASE_T].push_back(20.20502488079069);
5316 6 : parameter_vac_H[BASE_T].push_back(0.033659966153300002);
5317 6 : parameter_vac_H[BASE_T].push_back(-6.057999187718758);
5318 6 : parameter_vac_H[BASE_T].push_back(4.146969282504351);
5319 6 : parameter_vac_H[BASE_T].push_back(-20.664315319574357);
5320 6 : parameter_vac_H[BASE_T].push_back(19.982178623201648);
5321 6 : parameter_vac_H[BASE_T].push_back(-5.440921587349456);
5322 :
5323 6 : parameter_vac_H[BASE_U].push_back(20.958084119209754);
5324 6 : parameter_vac_H[BASE_U].push_back(-0.005164660707148803);
5325 6 : parameter_vac_H[BASE_U].push_back(-14.53831312442302);
5326 6 : parameter_vac_H[BASE_U].push_back(-0.5276995756310442);
5327 6 : parameter_vac_H[BASE_U].push_back(7.060900707522138);
5328 6 : parameter_vac_H[BASE_U].push_back(-1.8988408480951036);
5329 6 : parameter_vac_H[BASE_U].push_back(-0.215000567681094);
5330 :
5331 21340 : for(unsigned i=0; i<atoms.size(); ++i) {
5332 21334 : std::string Aname = pdb.getAtomName(atoms[i]);
5333 21334 : std::string Rname = pdb.getResidueName(atoms[i]);
5334 21334 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
5335 21334 : if(Rname=="ALA") {
5336 1078 : atoi[residue_atom[i]]=ALA;
5337 20256 : } else if(Rname=="ARG") {
5338 1296 : atoi[residue_atom[i]]=ARG;
5339 18960 : } else if(Rname=="ASN") {
5340 1080 : atoi[residue_atom[i]]=ASN;
5341 17880 : } else if(Rname=="ASP") {
5342 936 : atoi[residue_atom[i]]=ASP;
5343 16944 : } else if(Rname=="CYS") {
5344 72 : atoi[residue_atom[i]]=CYS;
5345 16872 : } else if(Rname=="CYX") {
5346 0 : atoi[residue_atom[i]]=CYX;
5347 16872 : } else if(Rname=="GLN") {
5348 1558 : atoi[residue_atom[i]]=GLN;
5349 15314 : } else if(Rname=="GLU") {
5350 714 : atoi[residue_atom[i]]=GLU;
5351 14600 : } else if(Rname=="GLY") {
5352 936 : atoi[residue_atom[i]]=GLY;
5353 13664 : } else if(Rname=="HIS") {
5354 0 : atoi[residue_atom[i]]=HIS;
5355 13664 : } else if(Rname=="HID") {
5356 0 : atoi[residue_atom[i]]=HIS;
5357 13664 : } else if(Rname=="HIE") {
5358 216 : atoi[residue_atom[i]]=HIS;
5359 13448 : } else if(Rname=="HIP") {
5360 0 : atoi[residue_atom[i]]=HIP;
5361 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
5362 13448 : } else if(Rname=="HSD") {
5363 0 : atoi[residue_atom[i]]=HIS;
5364 13448 : } else if(Rname=="HSE") {
5365 0 : atoi[residue_atom[i]]=HIS;
5366 13448 : } else if(Rname=="HSP") {
5367 0 : atoi[residue_atom[i]]=HIP;
5368 13448 : } else if(Rname=="ILE") {
5369 1296 : atoi[residue_atom[i]]=ILE;
5370 12152 : } else if(Rname=="LEU") {
5371 2280 : atoi[residue_atom[i]]=LEU;
5372 9872 : } else if(Rname=="LYS") {
5373 1560 : atoi[residue_atom[i]]=LYS;
5374 8312 : } else if(Rname=="MET") {
5375 836 : atoi[residue_atom[i]]=MET;
5376 7476 : } else if(Rname=="PHE") {
5377 1512 : atoi[residue_atom[i]]=PHE;
5378 5964 : } else if(Rname=="PRO") {
5379 1122 : atoi[residue_atom[i]]=PRO;
5380 4842 : } else if(Rname=="SER") {
5381 768 : atoi[residue_atom[i]]=SER;
5382 4074 : } else if(Rname=="THR") {
5383 728 : atoi[residue_atom[i]]=THR;
5384 3346 : } else if(Rname=="TRP") {
5385 0 : atoi[residue_atom[i]]=TRP;
5386 3346 : } else if(Rname=="TYR") {
5387 792 : atoi[residue_atom[i]]=TYR;
5388 2554 : } else if(Rname=="VAL") {
5389 1600 : atoi[residue_atom[i]]=VAL;
5390 : }
5391 : // NUCLEIC ACIDS
5392 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
5393 : // RNA - G
5394 954 : else if(Rname=="G") {
5395 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5396 0 : Aname=="O1P" || Aname=="O2P" ) {
5397 0 : atoi [residue_atom[i]]=BB_PO2;
5398 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5399 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5400 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5401 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5402 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5403 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5404 0 : atoi[residue_atom[i]]=BB_RNA;
5405 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5406 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5407 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5408 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5409 0 : atoi[residue_atom[i]]=BASE_G;
5410 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5411 : // RNA - G3
5412 954 : } else if(Rname=="G3") {
5413 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5414 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5415 0 : atoi [residue_atom[i]]=BB_PO2;
5416 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5417 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5418 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5419 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5420 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5421 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5422 0 : atoi[residue_atom[i]]=BB_RNA_3;
5423 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5424 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5425 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5426 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5427 0 : atoi[residue_atom[i]]=BASE_G;
5428 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5429 : // RNA - G5
5430 954 : } else if(Rname=="G5") {
5431 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5432 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5433 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5434 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5435 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5436 0 : Aname=="H2'1" || Aname=="H5T" ) {
5437 0 : atoi[residue_atom[i]]=BB_RNA_5;
5438 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5439 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5440 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5441 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5442 0 : atoi[residue_atom[i]]=BASE_G;
5443 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5444 : // RNA - GT
5445 954 : } else if(Rname=="GT") {
5446 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5447 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5448 0 : atoi [residue_atom[i]]=BB_PO3;
5449 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5450 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5451 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5452 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5453 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5454 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5455 0 : atoi[residue_atom[i]]=BB_RNA;
5456 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5457 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5458 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5459 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5460 0 : atoi[residue_atom[i]]=BASE_G;
5461 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5462 : // RNA - U
5463 954 : } else if(Rname=="U") {
5464 2886 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5465 1482 : Aname=="O1P" || Aname=="O2P" ) {
5466 78 : atoi [residue_atom[i]]=BB_PO2;
5467 2548 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5468 2132 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5469 1716 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5470 1326 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5471 1196 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5472 1560 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5473 416 : atoi[residue_atom[i]]=BB_RNA;
5474 884 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5475 468 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5476 364 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5477 286 : atoi[residue_atom[i]]=BASE_U;
5478 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5479 : // RNA - U3
5480 174 : } else if(Rname=="U3") {
5481 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5482 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5483 6 : atoi [residue_atom[i]]=BB_PO2;
5484 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5485 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5486 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5487 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5488 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5489 78 : Aname=="H5'2" || Aname=="HO'2" ) {
5490 34 : atoi[residue_atom[i]]=BB_RNA_3;
5491 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5492 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5493 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5494 22 : atoi[residue_atom[i]]=BASE_U;
5495 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5496 : // RNA - U5
5497 112 : } else if(Rname=="U5") {
5498 408 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5499 344 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5500 280 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5501 216 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5502 176 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5503 156 : Aname=="H2'1" || Aname=="H5T" ) {
5504 68 : atoi[residue_atom[i]]=BB_RNA_5;
5505 136 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5506 72 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5507 56 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5508 44 : atoi[residue_atom[i]]=BASE_U;
5509 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5510 : // RNA - UT
5511 0 : } else if(Rname=="UT") {
5512 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5513 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5514 0 : atoi [residue_atom[i]]=BB_PO3;
5515 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5516 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5517 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5518 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5519 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5520 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5521 0 : atoi[residue_atom[i]]=BB_RNA;
5522 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5523 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5524 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5525 0 : atoi[residue_atom[i]]=BASE_U;
5526 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5527 : // RNA - A
5528 0 : } else if(Rname=="A") {
5529 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5530 0 : Aname=="O1P" || Aname=="O2P" ) {
5531 0 : atoi [residue_atom[i]]=BB_PO2;
5532 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5533 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5534 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5535 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5536 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5537 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5538 0 : atoi[residue_atom[i]]=BB_RNA;
5539 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5540 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5541 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5542 0 : Aname=="H61" || Aname=="H62" ) {
5543 0 : atoi[residue_atom[i]]=BASE_A;
5544 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5545 : // RNA - A3
5546 0 : } else if(Rname=="A3") {
5547 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5548 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5549 0 : atoi [residue_atom[i]]=BB_PO2;
5550 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5551 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5552 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5553 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5554 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5555 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5556 0 : atoi[residue_atom[i]]=BB_RNA_3;
5557 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5558 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5559 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5560 0 : Aname=="H61" || Aname=="H62" ) {
5561 0 : atoi[residue_atom[i]]=BASE_A;
5562 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5563 : // RNA - A5
5564 0 : } else if(Rname=="A5") {
5565 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5566 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5567 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5568 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5569 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5570 0 : Aname=="H2'1" || Aname=="H5T" ) {
5571 0 : atoi[residue_atom[i]]=BB_RNA_5;
5572 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5573 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5574 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5575 0 : Aname=="H61" || Aname=="H62" ) {
5576 0 : atoi[residue_atom[i]]=BASE_A;
5577 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5578 : // RNA - AT
5579 0 : } else if(Rname=="AT") {
5580 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5581 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5582 0 : atoi [residue_atom[i]]=BB_PO3;
5583 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5584 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5585 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5586 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5587 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5588 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5589 0 : atoi[residue_atom[i]]=BB_RNA;
5590 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5591 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5592 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5593 0 : Aname=="H61" || Aname=="H62" ) {
5594 0 : atoi[residue_atom[i]]=BASE_A;
5595 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5596 : // RNA - C
5597 0 : } else if(Rname=="C") {
5598 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5599 0 : Aname=="O1P" || Aname=="O2P" ) {
5600 0 : atoi [residue_atom[i]]=BB_PO2;
5601 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5602 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5603 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5604 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5605 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5606 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5607 0 : atoi[residue_atom[i]]=BB_RNA;
5608 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5609 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5610 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5611 0 : atoi[residue_atom[i]]=BASE_C;
5612 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5613 : // RNA - C3
5614 0 : } else if(Rname=="C3") {
5615 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5616 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5617 0 : atoi [residue_atom[i]]=BB_PO2;
5618 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5619 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5620 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5621 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5622 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5623 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5624 0 : atoi[residue_atom[i]]=BB_RNA_3;
5625 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5626 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5627 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5628 0 : atoi[residue_atom[i]]=BASE_C;
5629 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5630 : // RNA - C5
5631 0 : } else if(Rname=="C5") {
5632 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5633 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5634 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5635 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5636 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5637 0 : Aname=="H2'1" || Aname=="H5T" ) {
5638 0 : atoi[residue_atom[i]]=BB_RNA_5;
5639 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5640 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5641 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5642 0 : atoi[residue_atom[i]]=BASE_C;
5643 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5644 : // RNA - CT
5645 0 : } else if(Rname=="CT") {
5646 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5647 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5648 0 : atoi [residue_atom[i]]=BB_PO3;
5649 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5650 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5651 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5652 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5653 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5654 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5655 0 : atoi[residue_atom[i]]=BB_RNA;
5656 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5657 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5658 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5659 0 : atoi[residue_atom[i]]=BASE_C;
5660 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5661 : // DNA - G
5662 0 : } else if(Rname=="DG") {
5663 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5664 0 : Aname=="O1P" || Aname=="O2P" ) {
5665 0 : atoi [residue_atom[i]]=BB_PO2;
5666 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5667 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5668 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5669 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5670 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5671 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5672 0 : atoi[residue_atom[i]]=BB_DNA;
5673 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5674 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5675 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5676 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5677 0 : atoi[residue_atom[i]]=BASE_G;
5678 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5679 : // DNA - G3
5680 0 : } else if(Rname=="DG3") {
5681 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5682 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5683 0 : atoi [residue_atom[i]]=BB_PO2;
5684 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5685 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5686 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5687 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5688 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5689 : Aname=="H3T" ) {
5690 0 : atoi[residue_atom[i]]=BB_DNA_3;
5691 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5692 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5693 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5694 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5695 0 : atoi[residue_atom[i]]=BASE_G;
5696 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5697 : // DNA - G5
5698 0 : } else if(Rname=="DG5") {
5699 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5700 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5701 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5702 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5703 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5704 : Aname=="H5T" ) {
5705 0 : atoi[residue_atom[i]]=BB_DNA_5;
5706 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5707 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5708 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5709 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5710 0 : atoi[residue_atom[i]]=BASE_G;
5711 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5712 : // DNA - GT
5713 0 : } else if(Rname=="DGT") {
5714 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5715 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5716 0 : atoi [residue_atom[i]]=BB_PO3;
5717 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5718 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5719 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5720 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5721 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5722 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5723 0 : atoi[residue_atom[i]]=BB_DNA;
5724 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5725 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5726 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5727 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5728 0 : atoi[residue_atom[i]]=BASE_G;
5729 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5730 : // DNA - T
5731 0 : } else if(Rname=="DT") {
5732 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5733 0 : Aname=="O1P" || Aname=="O2P" ) {
5734 0 : atoi [residue_atom[i]]=BB_PO2;
5735 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5736 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5737 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5738 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5739 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5740 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5741 0 : atoi[residue_atom[i]]=BB_DNA;
5742 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5743 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5744 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5745 0 : Aname=="H72" || Aname=="H73" ) {
5746 0 : atoi[residue_atom[i]]=BASE_T;
5747 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5748 : // DNA - T3
5749 0 : } else if(Rname=="DT3") {
5750 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5751 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5752 0 : atoi [residue_atom[i]]=BB_PO2;
5753 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5754 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5755 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5756 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5757 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5758 : Aname=="H3T" ) {
5759 0 : atoi[residue_atom[i]]=BB_DNA_3;
5760 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5761 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5762 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5763 0 : Aname=="H72" || Aname=="H73" ) {
5764 0 : atoi[residue_atom[i]]=BASE_T;
5765 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5766 : // DNA - T5
5767 0 : } else if(Rname=="DT5") {
5768 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5769 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5770 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5771 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5772 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5773 : Aname=="H5T" ) {
5774 0 : atoi[residue_atom[i]]=BB_DNA_5;
5775 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5776 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5777 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5778 0 : Aname=="H72" || Aname=="H73" ) {
5779 0 : atoi[residue_atom[i]]=BASE_T;
5780 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5781 : // DNA - TT
5782 0 : } else if(Rname=="DTT") {
5783 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5784 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5785 0 : atoi [residue_atom[i]]=BB_PO3;
5786 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5787 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5788 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5789 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5790 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5791 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5792 0 : atoi[residue_atom[i]]=BB_DNA;
5793 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5794 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5795 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5796 0 : Aname=="H72" || Aname=="H73" ) {
5797 0 : atoi[residue_atom[i]]=BASE_T;
5798 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5799 : // DNA - A
5800 0 : } else if(Rname=="DA") {
5801 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5802 0 : Aname=="O1P" || Aname=="O2P" ) {
5803 0 : atoi [residue_atom[i]]=BB_PO2;
5804 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5805 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5806 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5807 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5808 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5809 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5810 0 : atoi[residue_atom[i]]=BB_DNA;
5811 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5812 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5813 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5814 0 : Aname=="H61" || Aname=="H62" ) {
5815 0 : atoi[residue_atom[i]]=BASE_A;
5816 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5817 : // DNA - A3
5818 0 : } else if(Rname=="DA3") {
5819 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5820 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5821 0 : atoi [residue_atom[i]]=BB_PO2;
5822 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5823 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5824 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5825 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5826 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5827 : Aname=="H3T" ) {
5828 0 : atoi[residue_atom[i]]=BB_DNA_3;
5829 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5830 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5831 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5832 0 : Aname=="H61" || Aname=="H62" ) {
5833 0 : atoi[residue_atom[i]]=BASE_A;
5834 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5835 : // DNA - A5
5836 0 : } else if(Rname=="DA5") {
5837 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5838 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5839 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5840 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5841 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5842 : Aname=="H5T" ) {
5843 0 : atoi[residue_atom[i]]=BB_DNA_5;
5844 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5845 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5846 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5847 0 : Aname=="H61" || Aname=="H62" ) {
5848 0 : atoi[residue_atom[i]]=BASE_A;
5849 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5850 : // DNA - AT
5851 0 : } else if(Rname=="DAT") {
5852 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5853 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5854 0 : atoi [residue_atom[i]]=BB_PO3;
5855 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5856 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5857 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5858 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5859 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5860 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5861 0 : atoi[residue_atom[i]]=BB_DNA;
5862 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5863 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5864 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5865 0 : Aname=="H61" || Aname=="H62" ) {
5866 0 : atoi[residue_atom[i]]=BASE_A;
5867 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5868 : // DNA - C
5869 0 : } else if(Rname=="DC") {
5870 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
5871 0 : Aname=="O1P" || Aname=="O2P" ) {
5872 0 : atoi [residue_atom[i]]=BB_PO2;
5873 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5874 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5875 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5876 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5877 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5878 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5879 0 : atoi[residue_atom[i]]=BB_DNA;
5880 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5881 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5882 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5883 0 : atoi[residue_atom[i]]=BASE_C;
5884 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5885 : // DNA - C3
5886 0 : } else if(Rname=="DC3") {
5887 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5888 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5889 0 : atoi [residue_atom[i]]=BB_PO2;
5890 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5891 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5892 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5893 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5894 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5895 : Aname=="H3T" ) {
5896 0 : atoi[residue_atom[i]]=BB_DNA_3;
5897 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5898 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5899 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5900 0 : atoi[residue_atom[i]]=BASE_C;
5901 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5902 : // DNA - C5
5903 0 : } else if(Rname=="DC5") {
5904 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5905 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5906 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5907 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5908 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5909 : Aname=="H5T" ) {
5910 0 : atoi[residue_atom[i]]=BB_DNA_5;
5911 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5912 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5913 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5914 0 : atoi[residue_atom[i]]=BASE_C;
5915 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5916 : // DNA - CT
5917 0 : } else if(Rname=="DCT") {
5918 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5919 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
5920 0 : atoi [residue_atom[i]]=BB_PO3;
5921 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5922 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5923 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5924 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5925 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5926 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5927 0 : atoi[residue_atom[i]]=BB_DNA;
5928 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5929 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5930 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5931 0 : atoi[residue_atom[i]]=BASE_C;
5932 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5933 0 : } else error("Residue not known: "+Rname);
5934 : }
5935 6 : }
5936 :
5937 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)
5938 : { // 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.
5939 6 : parameter_mix_D[TRP].push_back(8105.740500119327);
5940 6 : parameter_mix_D[TRP].push_back(-41.785616935469804);
5941 6 : parameter_mix_D[TRP].push_back(-25456.92790554363);
5942 6 : parameter_mix_D[TRP].push_back(-10058.20599969184);
5943 6 : parameter_mix_D[TRP].push_back(86171.76479108425);
5944 6 : parameter_mix_D[TRP].push_back(-83227.63139882773);
5945 6 : parameter_mix_D[TRP].push_back(25121.390436258724);
5946 :
5947 6 : parameter_mix_D[TYR].push_back(6059.530560118732);
5948 6 : parameter_mix_D[TYR].push_back(-24.522695525705736);
5949 6 : parameter_mix_D[TYR].push_back(-17180.858815360847);
5950 6 : parameter_mix_D[TYR].push_back(-5990.1358528219325);
5951 6 : parameter_mix_D[TYR].push_back(52936.46126637543);
5952 6 : parameter_mix_D[TYR].push_back(-50150.0042622683);
5953 6 : parameter_mix_D[TYR].push_back(14914.553672440441);
5954 :
5955 6 : parameter_mix_D[PHE].push_back(5563.404880119222);
5956 6 : parameter_mix_D[PHE].push_back(-33.609784645922794);
5957 6 : parameter_mix_D[PHE].push_back(-14576.935030777448);
5958 6 : parameter_mix_D[PHE].push_back(-5759.170105553782);
5959 6 : parameter_mix_D[PHE].push_back(43316.895956549866);
5960 6 : parameter_mix_D[PHE].push_back(-39106.58694570862);
5961 6 : parameter_mix_D[PHE].push_back(11143.375742877468);
5962 :
5963 6 : parameter_mix_D[HIP].push_back(3981.7108801192553);
5964 6 : parameter_mix_D[HIP].push_back(-23.788371565946427);
5965 6 : parameter_mix_D[HIP].push_back(-9471.73953776056);
5966 6 : parameter_mix_D[HIP].push_back(-3690.3981577198365);
5967 6 : parameter_mix_D[HIP].push_back(26365.958584217453);
5968 6 : parameter_mix_D[HIP].push_back(-23067.58974902849);
5969 6 : parameter_mix_D[HIP].push_back(6390.507451097114);
5970 :
5971 6 : parameter_mix_D[ARG].push_back(6279.489359881259);
5972 6 : parameter_mix_D[ARG].push_back(1.2061878338083583);
5973 6 : parameter_mix_D[ARG].push_back(-20305.413937989913);
5974 6 : parameter_mix_D[ARG].push_back(-5621.666335222669);
5975 6 : parameter_mix_D[ARG].push_back(67341.96785520067);
5976 6 : parameter_mix_D[ARG].push_back(-68849.15464591733);
5977 6 : parameter_mix_D[ARG].push_back(21773.0630363882);
5978 :
5979 6 : parameter_mix_D[LYS].push_back(5434.487400119193);
5980 6 : parameter_mix_D[LYS].push_back(-29.32356328987909);
5981 6 : parameter_mix_D[LYS].push_back(-14363.66155749977);
5982 6 : parameter_mix_D[LYS].push_back(-5650.383128516514);
5983 6 : parameter_mix_D[LYS].push_back(44573.73888236887);
5984 6 : parameter_mix_D[LYS].push_back(-41515.980945300485);
5985 6 : parameter_mix_D[LYS].push_back(12181.965046747513);
5986 :
5987 6 : parameter_mix_D[CYS].push_back(1519.4030001192032);
5988 6 : parameter_mix_D[CYS].push_back(-3.564386334921097);
5989 6 : parameter_mix_D[CYS].push_back(-2275.813167459516);
5990 6 : parameter_mix_D[CYS].push_back(-409.54431591328125);
5991 6 : parameter_mix_D[CYS].push_back(2969.5412742839258);
5992 6 : parameter_mix_D[CYS].push_back(-1798.3157146799638);
5993 6 : parameter_mix_D[CYS].push_back(314.568167888235);
5994 :
5995 6 : parameter_mix_D[CYX].push_back(1310.696400119220);
5996 6 : parameter_mix_D[CYX].push_back(-2.919852579787);
5997 6 : parameter_mix_D[CYX].push_back(-1902.283026713150);
5998 6 : parameter_mix_D[CYX].push_back(-340.431267947190);
5999 6 : parameter_mix_D[CYX].push_back(2480.025274590502);
6000 6 : parameter_mix_D[CYX].push_back(-1529.188197179144);
6001 6 : parameter_mix_D[CYX].push_back(278.926068515295);
6002 :
6003 6 : parameter_mix_D[ASP].push_back(1861.6998401191709);
6004 6 : parameter_mix_D[ASP].push_back(-5.349780637260551);
6005 6 : parameter_mix_D[ASP].push_back(-2960.36741510377);
6006 6 : parameter_mix_D[ASP].push_back(-621.8270745040523);
6007 6 : parameter_mix_D[ASP].push_back(4334.798300452934);
6008 6 : parameter_mix_D[ASP].push_back(-2776.8560521554878);
6009 6 : parameter_mix_D[ASP].push_back(527.9777182094936);
6010 :
6011 6 : parameter_mix_D[GLU].push_back(2861.6017201192253);
6012 6 : parameter_mix_D[GLU].push_back(-13.146456903921809);
6013 6 : parameter_mix_D[GLU].push_back(-5393.408563875243);
6014 6 : parameter_mix_D[GLU].push_back(-1646.460570818364);
6015 6 : parameter_mix_D[GLU].push_back(10884.544923253858);
6016 6 : parameter_mix_D[GLU].push_back(-8159.923373048856);
6017 6 : parameter_mix_D[GLU].push_back(1914.545660397314);
6018 :
6019 6 : parameter_mix_D[ILE].push_back(4288.585540119189);
6020 6 : parameter_mix_D[ILE].push_back(-19.937215352880365);
6021 6 : parameter_mix_D[ILE].push_back(-8324.540144463375);
6022 6 : parameter_mix_D[ILE].push_back(-2431.835931316717);
6023 6 : parameter_mix_D[ILE].push_back(16079.9912986194);
6024 6 : parameter_mix_D[ILE].push_back(-11637.693060394462);
6025 6 : parameter_mix_D[ILE].push_back(2600.8258068480495);
6026 :
6027 6 : parameter_mix_D[LEU].push_back(4288.585540119186);
6028 6 : parameter_mix_D[LEU].push_back(-21.50343599461759);
6029 6 : parameter_mix_D[LEU].push_back(-8479.703435720274);
6030 6 : parameter_mix_D[LEU].push_back(-2647.8693829269596);
6031 6 : parameter_mix_D[LEU].push_back(17297.18115838578);
6032 6 : parameter_mix_D[LEU].push_back(-12826.972408323161);
6033 6 : parameter_mix_D[LEU].push_back(2953.1262521615645);
6034 :
6035 6 : parameter_mix_D[MET].push_back(3561.6276801191552);
6036 6 : parameter_mix_D[MET].push_back(-22.19323392975885);
6037 6 : parameter_mix_D[MET].push_back(-8348.33907053846);
6038 6 : parameter_mix_D[MET].push_back(-3323.053272414289);
6039 6 : parameter_mix_D[MET].push_back(23153.238909304255);
6040 6 : parameter_mix_D[MET].push_back(-20091.960440908682);
6041 6 : parameter_mix_D[MET].push_back(5518.759669687693);
6042 :
6043 6 : parameter_mix_D[ASN].push_back(2326.5396001192003);
6044 6 : parameter_mix_D[ASN].push_back(-8.634908921289112);
6045 6 : parameter_mix_D[ASN].push_back(-4057.4552636749636);
6046 6 : parameter_mix_D[ASN].push_back(-1032.743130124821);
6047 6 : parameter_mix_D[ASN].push_back(6957.141592429445);
6048 6 : parameter_mix_D[ASN].push_back(-4808.265318722317);
6049 6 : parameter_mix_D[ASN].push_back(1016.3944815533755);
6050 :
6051 6 : parameter_mix_D[PRO].push_back(2471.1663601191985);
6052 6 : parameter_mix_D[PRO].push_back(-6.360795284260088);
6053 6 : parameter_mix_D[PRO].push_back(-3825.4533158429153);
6054 6 : parameter_mix_D[PRO].push_back(-728.7164844824666);
6055 6 : parameter_mix_D[PRO].push_back(5195.036303827973);
6056 6 : parameter_mix_D[PRO].push_back(-3183.733716480742);
6057 6 : parameter_mix_D[PRO].push_back(563.2376162754107);
6058 :
6059 6 : parameter_mix_D[GLN].push_back(3431.669280119236);
6060 6 : parameter_mix_D[GLN].push_back(-19.412747205646166);
6061 6 : parameter_mix_D[GLN].push_back(-7298.017973002134);
6062 6 : parameter_mix_D[GLN].push_back(-2659.3014182337706);
6063 6 : parameter_mix_D[GLN].push_back(17890.76595805173);
6064 6 : parameter_mix_D[GLN].push_back(-14684.603067192957);
6065 6 : parameter_mix_D[GLN].push_back(3814.338335151394);
6066 :
6067 6 : parameter_mix_D[SER].push_back(1423.885200119192);
6068 6 : parameter_mix_D[SER].push_back(-2.586428606204385);
6069 6 : parameter_mix_D[SER].push_back(-1966.7369507188134);
6070 6 : parameter_mix_D[SER].push_back(-289.17277383434106);
6071 6 : parameter_mix_D[SER].push_back(2209.478296043199);
6072 6 : parameter_mix_D[SER].push_back(-1216.1521614944);
6073 6 : parameter_mix_D[SER].push_back(177.0615931546754);
6074 :
6075 6 : parameter_mix_D[THR].push_back(2311.2364801191825);
6076 6 : parameter_mix_D[THR].push_back(-6.258071321531929);
6077 6 : parameter_mix_D[THR].push_back(-3656.295629081312);
6078 6 : parameter_mix_D[THR].push_back(-716.4013890357804);
6079 6 : parameter_mix_D[THR].push_back(5071.656317108832);
6080 6 : parameter_mix_D[THR].push_back(-3125.8076789667816);
6081 6 : parameter_mix_D[THR].push_back(555.9775741081131);
6082 :
6083 6 : parameter_mix_D[VAL].push_back(3041.128320119224);
6084 6 : parameter_mix_D[VAL].push_back(-9.314034190716423);
6085 6 : parameter_mix_D[VAL].push_back(-5075.684780220629);
6086 6 : parameter_mix_D[VAL].push_back(-1070.7083380665008);
6087 6 : parameter_mix_D[VAL].push_back(7455.654515006894);
6088 6 : parameter_mix_D[VAL].push_back(-4701.19187164774);
6089 6 : parameter_mix_D[VAL].push_back(863.4906179388547);
6090 :
6091 6 : parameter_mix_D[ALA].push_back(1187.65300011922);
6092 6 : parameter_mix_D[ALA].push_back(-1.7011187932116822);
6093 6 : parameter_mix_D[ALA].push_back(-1521.0113615359212);
6094 6 : parameter_mix_D[ALA].push_back(-187.93745840575576);
6095 6 : parameter_mix_D[ALA].push_back(1514.6745873304449);
6096 6 : parameter_mix_D[ALA].push_back(-775.3890045113897);
6097 6 : parameter_mix_D[ALA].push_back(96.41428177656567);
6098 :
6099 6 : parameter_mix_D[GLY].push_back(581.6349001192067);
6100 6 : parameter_mix_D[GLY].push_back(-0.5877833598361395);
6101 6 : parameter_mix_D[GLY].push_back(-640.0421286186524);
6102 6 : parameter_mix_D[GLY].push_back(-64.58515074152534);
6103 6 : parameter_mix_D[GLY].push_back(551.9509853583185);
6104 6 : parameter_mix_D[GLY].push_back(-264.1522021146006);
6105 6 : parameter_mix_D[GLY].push_back(28.36986478439301);
6106 :
6107 6 : parameter_mix_D[HIS].push_back(3648.812220119277);
6108 6 : parameter_mix_D[HIS].push_back(-22.703075403555548);
6109 6 : parameter_mix_D[HIS].push_back(-8260.235189881098);
6110 6 : parameter_mix_D[HIS].push_back(-3190.3176569039265);
6111 6 : parameter_mix_D[HIS].push_back(21589.074332364213);
6112 6 : parameter_mix_D[HIS].push_back(-18108.640157613925);
6113 6 : parameter_mix_D[HIS].push_back(4801.237639634437);
6114 :
6115 6 : parameter_vac_D[TRP].push_back(270.43802511921314);
6116 6 : parameter_vac_D[TRP].push_back(-2.196022464340772);
6117 6 : parameter_vac_D[TRP].push_back(-780.9546710244318);
6118 6 : parameter_vac_D[TRP].push_back(-371.1573508312626);
6119 6 : parameter_vac_D[TRP].push_back(2668.7678731652445);
6120 6 : parameter_vac_D[TRP].push_back(-2478.2920954223678);
6121 6 : parameter_vac_D[TRP].push_back(722.3731624901676);
6122 :
6123 6 : parameter_vac_D[TYR].push_back(198.471744119211);
6124 6 : parameter_vac_D[TYR].push_back(-1.236792846228289);
6125 6 : parameter_vac_D[TYR].push_back(-508.0448711054671);
6126 6 : parameter_vac_D[TYR].push_back(-210.55908129481216);
6127 6 : parameter_vac_D[TYR].push_back(1558.3884734212413);
6128 6 : parameter_vac_D[TYR].push_back(-1418.36319255665);
6129 6 : parameter_vac_D[TYR].push_back(407.21567613893296);
6130 :
6131 6 : parameter_vac_D[PHE].push_back(182.46606411921402);
6132 6 : parameter_vac_D[PHE].push_back(-1.2708008333861447);
6133 6 : parameter_vac_D[PHE].push_back(-424.50905926426054);
6134 6 : parameter_vac_D[PHE].push_back(-177.97207825696387);
6135 6 : parameter_vac_D[PHE].push_back(1180.839971941918);
6136 6 : parameter_vac_D[PHE].push_back(-1004.004765231886);
6137 6 : parameter_vac_D[PHE].push_back(269.34384064610344);
6138 :
6139 6 : parameter_vac_D[HIP].push_back(161.95107611920753);
6140 6 : parameter_vac_D[HIP].push_back(-0.9661246983835707);
6141 6 : parameter_vac_D[HIP].push_back(-332.04673226423995);
6142 6 : parameter_vac_D[HIP].push_back(-125.41755194926544);
6143 6 : parameter_vac_D[HIP].push_back(808.705672166199);
6144 6 : parameter_vac_D[HIP].push_back(-648.8340711218191);
6145 6 : parameter_vac_D[HIP].push_back(163.71251277400307);
6146 :
6147 6 : parameter_vac_D[ARG].push_back(289.0340011192071);
6148 6 : parameter_vac_D[ARG].push_back(-1.4195753436279361);
6149 6 : parameter_vac_D[ARG].push_back(-836.3864005546434);
6150 6 : parameter_vac_D[ARG].push_back(-346.7081039129904);
6151 6 : parameter_vac_D[ARG].push_back(2922.003491580559);
6152 6 : parameter_vac_D[ARG].push_back(-2864.816533173085);
6153 6 : parameter_vac_D[ARG].push_back(877.9525045072293);
6154 :
6155 6 : parameter_vac_D[LYS].push_back(228.64464111920753);
6156 6 : parameter_vac_D[LYS].push_back(-1.686580749083617);
6157 6 : parameter_vac_D[LYS].push_back(-544.8870548339771);
6158 6 : parameter_vac_D[LYS].push_back(-252.11087773186324);
6159 6 : parameter_vac_D[LYS].push_back(1693.784850493428);
6160 6 : parameter_vac_D[LYS].push_back(-1514.2375008160348);
6161 6 : parameter_vac_D[LYS].push_back(427.0713155512121);
6162 :
6163 6 : parameter_vac_D[CYS].push_back(50.836900116324315);
6164 6 : parameter_vac_D[CYS].push_back(-0.040204572899665315);
6165 6 : parameter_vac_D[CYS].push_back(-55.592868149339424);
6166 6 : parameter_vac_D[CYS].push_back(-4.341359624977117);
6167 6 : parameter_vac_D[CYS].push_back(41.55290573185214);
6168 6 : parameter_vac_D[CYS].push_back(-17.248208429078456);
6169 6 : parameter_vac_D[CYS].push_back(1.0736187172140528);
6170 :
6171 6 : parameter_vac_D[CYX].push_back(41.770369115535);
6172 6 : parameter_vac_D[CYX].push_back(-0.019277246931);
6173 6 : parameter_vac_D[CYX].push_back(-40.006821199463);
6174 6 : parameter_vac_D[CYX].push_back(-2.056736901533);
6175 6 : parameter_vac_D[CYX].push_back(23.707430747544);
6176 6 : parameter_vac_D[CYX].push_back(-8.010813092204);
6177 6 : parameter_vac_D[CYX].push_back(-0.023482540763);
6178 :
6179 6 : parameter_vac_D[ASP].push_back(64.12806411920792);
6180 6 : parameter_vac_D[ASP].push_back(-0.08245818875074411);
6181 6 : parameter_vac_D[ASP].push_back(-78.95500211069523);
6182 6 : parameter_vac_D[ASP].push_back(-9.030157332821238);
6183 6 : parameter_vac_D[ASP].push_back(74.72033164806712);
6184 6 : parameter_vac_D[ASP].push_back(-36.71042192737952);
6185 6 : parameter_vac_D[ASP].push_back(4.0989206257493676);
6186 :
6187 6 : parameter_vac_D[GLU].push_back(100.14004911920799);
6188 6 : parameter_vac_D[GLU].push_back(-0.28685123265362006);
6189 6 : parameter_vac_D[GLU].push_back(-152.44619103423773);
6190 6 : parameter_vac_D[GLU].push_back(-32.99432901288321);
6191 6 : parameter_vac_D[GLU].push_back(225.5853175183811);
6192 6 : parameter_vac_D[GLU].push_back(-144.8489352831419);
6193 6 : parameter_vac_D[GLU].push_back(27.49692658880534);
6194 :
6195 6 : parameter_vac_D[ILE].push_back(165.04540911921134);
6196 6 : parameter_vac_D[ILE].push_back(-0.5061553029227089);
6197 6 : parameter_vac_D[ILE].push_back(-275.1890586090823);
6198 6 : parameter_vac_D[ILE].push_back(-57.288063177375356);
6199 6 : parameter_vac_D[ILE].push_back(398.9780357099449);
6200 6 : parameter_vac_D[ILE].push_back(-245.42678814428692);
6201 6 : parameter_vac_D[ILE].push_back(42.72941025472001);
6202 :
6203 6 : parameter_vac_D[LEU].push_back(165.04540911921134);
6204 6 : parameter_vac_D[LEU].push_back(-0.580034983510499);
6205 6 : parameter_vac_D[LEU].push_back(-281.30910057877514);
6206 6 : parameter_vac_D[LEU].push_back(-66.19427345166183);
6207 6 : parameter_vac_D[LEU].push_back(445.19214155995115);
6208 6 : parameter_vac_D[LEU].push_back(-287.0653610399624);
6209 6 : parameter_vac_D[LEU].push_back(53.86626261066706);
6210 :
6211 6 : parameter_vac_D[MET].push_back(123.83238411920684);
6212 6 : parameter_vac_D[MET].push_back(-0.7698672022751385);
6213 6 : parameter_vac_D[MET].push_back(-251.2481622173618);
6214 6 : parameter_vac_D[MET].push_back(-100.67742019193848);
6215 6 : parameter_vac_D[MET].push_back(641.1563254731632);
6216 6 : parameter_vac_D[MET].push_back(-524.8742634212379);
6217 6 : parameter_vac_D[MET].push_back(135.36487813767542);
6218 :
6219 6 : parameter_vac_D[ASN].push_back(94.12880411921148);
6220 6 : parameter_vac_D[ASN].push_back(-0.22986194121078912);
6221 6 : parameter_vac_D[ASN].push_back(-138.78769705028003);
6222 6 : parameter_vac_D[ASN].push_back(-25.896846049402594);
6223 6 : parameter_vac_D[ASN].push_back(184.55609781654326);
6224 6 : parameter_vac_D[ASN].push_back(-110.14043851975404);
6225 6 : parameter_vac_D[ASN].push_back(18.388834098004153);
6226 :
6227 6 : parameter_vac_D[PRO].push_back(90.51619611920745);
6228 6 : parameter_vac_D[PRO].push_back(-0.0977238494110807);
6229 6 : parameter_vac_D[PRO].push_back(-109.43531311067846);
6230 6 : parameter_vac_D[PRO].push_back(-10.592981104983805);
6231 6 : parameter_vac_D[PRO].push_back(93.64863466237733);
6232 6 : parameter_vac_D[PRO].push_back(-42.348197720920865);
6233 6 : parameter_vac_D[PRO].push_back(3.5854078482704574);
6234 :
6235 6 : parameter_vac_D[GLN].push_back(136.91340111920806);
6236 6 : parameter_vac_D[GLN].push_back(-0.7259026842220699);
6237 6 : parameter_vac_D[GLN].push_back(-257.0347011897067);
6238 6 : parameter_vac_D[GLN].push_back(-89.99600255417684);
6239 6 : parameter_vac_D[GLN].push_back(570.3890595917421);
6240 6 : parameter_vac_D[GLN].push_back(-438.8977029769549);
6241 6 : parameter_vac_D[GLN].push_back(105.48846039376491);
6242 :
6243 6 : parameter_vac_D[SER].push_back(55.20490011583253);
6244 6 : parameter_vac_D[SER].push_back(-0.038078030710377984);
6245 6 : parameter_vac_D[SER].push_back(-58.79085960838952);
6246 6 : parameter_vac_D[SER].push_back(-4.067364063406562);
6247 6 : parameter_vac_D[SER].push_back(41.319899403658475);
6248 6 : parameter_vac_D[SER].push_back(-15.865682241288962);
6249 6 : parameter_vac_D[SER].push_back(0.5028409006168431);
6250 :
6251 6 : parameter_vac_D[THR].push_back(88.90604111920842);
6252 6 : parameter_vac_D[THR].push_back(-0.11566717587697625);
6253 6 : parameter_vac_D[THR].push_back(-114.4541243837681);
6254 6 : parameter_vac_D[THR].push_back(-12.541537413808342);
6255 6 : parameter_vac_D[THR].push_back(106.4974738790947);
6256 6 : parameter_vac_D[THR].push_back(-50.15009912825225);
6257 6 : parameter_vac_D[THR].push_back(4.719349514074467);
6258 :
6259 6 : parameter_vac_D[VAL].push_back(117.67910411920792);
6260 6 : parameter_vac_D[VAL].push_back(-0.18187311248567883);
6261 6 : parameter_vac_D[VAL].push_back(-162.8697844894754);
6262 6 : parameter_vac_D[VAL].push_back(-19.769248288711825);
6263 6 : parameter_vac_D[VAL].push_back(162.59270939168965);
6264 6 : parameter_vac_D[VAL].push_back(-79.37261506441627);
6265 6 : parameter_vac_D[VAL].push_back(8.230771959393175);
6266 :
6267 6 : parameter_vac_D[ALA].push_back(46.92250011448002);
6268 6 : parameter_vac_D[ALA].push_back(-0.020339064649444412);
6269 6 : parameter_vac_D[ALA].push_back(-44.41584945233503);
6270 6 : parameter_vac_D[ALA].push_back(-2.1483754537886113);
6271 6 : parameter_vac_D[ALA].push_back(25.713667829058785);
6272 6 : parameter_vac_D[ALA].push_back(-8.222782061575268);
6273 6 : parameter_vac_D[ALA].push_back(-0.2521732728817875);
6274 :
6275 6 : parameter_vac_D[GLY].push_back(23.532201119209795);
6276 6 : parameter_vac_D[GLY].push_back(-0.00628609590047614);
6277 6 : parameter_vac_D[GLY].push_back(-17.28421910139733);
6278 6 : parameter_vac_D[GLY].push_back(-0.6641226821159686);
6279 6 : parameter_vac_D[GLY].push_back(8.536119110048007);
6280 6 : parameter_vac_D[GLY].push_back(-2.5438638688361466);
6281 6 : parameter_vac_D[GLY].push_back(-0.11165675928832643);
6282 :
6283 6 : parameter_vac_D[HIS].push_back(145.41948111920982);
6284 6 : parameter_vac_D[HIS].push_back(-0.8548328183368781);
6285 6 : parameter_vac_D[HIS].push_back(-290.8653238004162);
6286 6 : parameter_vac_D[HIS].push_back(-107.85375269366395);
6287 6 : parameter_vac_D[HIS].push_back(685.7025818759361);
6288 6 : parameter_vac_D[HIS].push_back(-538.2592043545858);
6289 6 : parameter_vac_D[HIS].push_back(132.17357375729733);
6290 :
6291 : // NUCLEIC ACIDS
6292 6 : parameter_mix_D[BB_PO3].push_back(223.2671801192072);
6293 6 : parameter_mix_D[BB_PO3].push_back(-0.14452515213607267);
6294 6 : parameter_mix_D[BB_PO3].push_back(-219.64134852678032);
6295 6 : parameter_mix_D[BB_PO3].push_back(-15.527993497328728);
6296 6 : parameter_mix_D[BB_PO3].push_back(153.27197635784856);
6297 6 : parameter_mix_D[BB_PO3].push_back(-61.17793915482464);
6298 6 : parameter_mix_D[BB_PO3].push_back(2.92608540200577);
6299 :
6300 6 : parameter_mix_D[BB_PO2].push_back(80.12660011920252);
6301 6 : parameter_mix_D[BB_PO2].push_back(-0.02788855519820236);
6302 6 : parameter_mix_D[BB_PO2].push_back(-60.53219491822279);
6303 6 : parameter_mix_D[BB_PO2].push_back(-2.9768829034096806);
6304 6 : parameter_mix_D[BB_PO2].push_back(33.30645116638123);
6305 6 : parameter_mix_D[BB_PO2].push_back(-11.601573219761375);
6306 6 : parameter_mix_D[BB_PO2].push_back(0.12551046492022438);
6307 :
6308 6 : parameter_mix_D[BB_DNA].push_back(2835.3195201193003);
6309 6 : parameter_mix_D[BB_DNA].push_back(-7.954301723608173);
6310 6 : parameter_mix_D[BB_DNA].push_back(-4509.325563460958);
6311 6 : parameter_mix_D[BB_DNA].push_back(-909.1870692311344);
6312 6 : parameter_mix_D[BB_DNA].push_back(6375.156903893768);
6313 6 : parameter_mix_D[BB_DNA].push_back(-3956.4787847570715);
6314 6 : parameter_mix_D[BB_DNA].push_back(708.9872879613656);
6315 :
6316 6 : parameter_mix_D[BB_DNA_5].push_back(3136.73358011921);
6317 6 : parameter_mix_D[BB_DNA_5].push_back(-10.023435855160427);
6318 6 : parameter_mix_D[BB_DNA_5].push_back(-5208.921666368173);
6319 6 : parameter_mix_D[BB_DNA_5].push_back(-1160.4403539440214);
6320 6 : parameter_mix_D[BB_DNA_5].push_back(7962.598421448727);
6321 6 : parameter_mix_D[BB_DNA_5].push_back(-5149.059857691847);
6322 6 : parameter_mix_D[BB_DNA_5].push_back(984.5217027570121);
6323 :
6324 6 : parameter_mix_D[BB_DNA_3].push_back(3136.73358011921);
6325 6 : parameter_mix_D[BB_DNA_3].push_back(-9.618834865806274);
6326 6 : parameter_mix_D[BB_DNA_3].push_back(-5164.249220443828);
6327 6 : parameter_mix_D[BB_DNA_3].push_back(-1103.2721475326382);
6328 6 : parameter_mix_D[BB_DNA_3].push_back(7633.46089052312);
6329 6 : parameter_mix_D[BB_DNA_3].push_back(-4826.171688395644);
6330 6 : parameter_mix_D[BB_DNA_3].push_back(888.1820863683546);
6331 :
6332 6 : parameter_mix_D[BB_RNA].push_back(3192.5955601188807);
6333 6 : parameter_mix_D[BB_RNA].push_back(-11.475781582628308);
6334 6 : parameter_mix_D[BB_RNA].push_back(-5486.264576931735);
6335 6 : parameter_mix_D[BB_RNA].push_back(-1344.2878288415961);
6336 6 : parameter_mix_D[BB_RNA].push_back(9035.26109892441);
6337 6 : parameter_mix_D[BB_RNA].push_back(-6068.471909763036);
6338 6 : parameter_mix_D[BB_RNA].push_back(1226.3696076463866);
6339 :
6340 6 : parameter_mix_D[BB_RNA_5].push_back(3512.1630401192215);
6341 6 : parameter_mix_D[BB_RNA_5].push_back(-14.191020069433975);
6342 6 : parameter_mix_D[BB_RNA_5].push_back(-6293.687102187508);
6343 6 : parameter_mix_D[BB_RNA_5].push_back(-1689.3688494490984);
6344 6 : parameter_mix_D[BB_RNA_5].push_back(11193.448566821942);
6345 6 : parameter_mix_D[BB_RNA_5].push_back(-7806.9064399949375);
6346 6 : parameter_mix_D[BB_RNA_5].push_back(1662.4594983069844);
6347 :
6348 6 : parameter_mix_D[BB_RNA_3].push_back(3512.1630401192215);
6349 6 : parameter_mix_D[BB_RNA_3].push_back(-12.978118135595812);
6350 6 : parameter_mix_D[BB_RNA_3].push_back(-6149.290195451877);
6351 6 : parameter_mix_D[BB_RNA_3].push_back(-1515.8309761505627);
6352 6 : parameter_mix_D[BB_RNA_3].push_back(10176.605450440278);
6353 6 : parameter_mix_D[BB_RNA_3].push_back(-6813.250569884159);
6354 6 : parameter_mix_D[BB_RNA_3].push_back(1366.823518955858);
6355 :
6356 6 : parameter_mix_D[BASE_A].push_back(2464.736500119229);
6357 6 : parameter_mix_D[BASE_A].push_back(-12.127452038444783);
6358 6 : parameter_mix_D[BASE_A].push_back(-4710.661256689607);
6359 6 : parameter_mix_D[BASE_A].push_back(-1462.6964141954452);
6360 6 : parameter_mix_D[BASE_A].push_back(9451.725575888277);
6361 6 : parameter_mix_D[BASE_A].push_back(-6883.018479948857);
6362 6 : parameter_mix_D[BASE_A].push_back(1540.1526599737797);
6363 :
6364 6 : parameter_mix_D[BASE_C].push_back(1797.2697601191685);
6365 6 : parameter_mix_D[BASE_C].push_back(-5.963855532295215);
6366 6 : parameter_mix_D[BASE_C].push_back(-2955.077717756034);
6367 6 : parameter_mix_D[BASE_C].push_back(-689.4543508746372);
6368 6 : parameter_mix_D[BASE_C].push_back(4665.914740532565);
6369 6 : parameter_mix_D[BASE_C].push_back(-3051.4605913706982);
6370 6 : parameter_mix_D[BASE_C].push_back(590.2201952719585);
6371 :
6372 6 : parameter_mix_D[BASE_G].push_back(2804.271480119049);
6373 6 : parameter_mix_D[BASE_G].push_back(-16.928072935469974);
6374 6 : parameter_mix_D[BASE_G].push_back(-5989.82519987899);
6375 6 : parameter_mix_D[BASE_G].push_back(-2275.490326521775);
6376 6 : parameter_mix_D[BASE_G].push_back(15007.832401865428);
6377 6 : parameter_mix_D[BASE_G].push_back(-12287.520690325606);
6378 6 : parameter_mix_D[BASE_G].push_back(3172.98306575258);
6379 :
6380 6 : parameter_mix_D[BASE_T].push_back(2545.0860001192113);
6381 6 : parameter_mix_D[BASE_T].push_back(-10.975141620541738);
6382 6 : parameter_mix_D[BASE_T].push_back(-4636.058358764447);
6383 6 : parameter_mix_D[BASE_T].push_back(-1340.3746388296138);
6384 6 : parameter_mix_D[BASE_T].push_back(8850.604320505428);
6385 6 : parameter_mix_D[BASE_T].push_back(-6421.852532013674);
6386 6 : parameter_mix_D[BASE_T].push_back(1443.371517335904);
6387 :
6388 6 : parameter_mix_D[BASE_U].push_back(1608.7389001192062);
6389 6 : parameter_mix_D[BASE_U].push_back(-3.9816849036181434);
6390 6 : parameter_mix_D[BASE_U].push_back(-2411.056432130769);
6391 6 : parameter_mix_D[BASE_U].push_back(-451.8236361945487);
6392 6 : parameter_mix_D[BASE_U].push_back(3220.4418252803644);
6393 6 : parameter_mix_D[BASE_U].push_back(-1944.2515577994325);
6394 6 : parameter_mix_D[BASE_U].push_back(332.9259542628691);
6395 :
6396 6 : parameter_vac_D[BB_PO3].push_back(8.508889119209273);
6397 6 : parameter_vac_D[BB_PO3].push_back(-0.0010408625482164885);
6398 6 : parameter_vac_D[BB_PO3].push_back(-5.656130990440752);
6399 6 : parameter_vac_D[BB_PO3].push_back(-0.10748040057053611);
6400 6 : parameter_vac_D[BB_PO3].push_back(2.1441246977168227);
6401 6 : parameter_vac_D[BB_PO3].push_back(-0.3967083127147655);
6402 6 : parameter_vac_D[BB_PO3].push_back(-0.10110003105909898);
6403 :
6404 6 : parameter_vac_D[BB_PO2].push_back(2.7889001116093284);
6405 6 : parameter_vac_D[BB_PO2].push_back(-0.00011178884266113128);
6406 6 : parameter_vac_D[BB_PO2].push_back(-1.1702605818380654);
6407 6 : parameter_vac_D[BB_PO2].push_back(-0.011278044036819927);
6408 6 : parameter_vac_D[BB_PO2].push_back(0.3214006584089024);
6409 6 : parameter_vac_D[BB_PO2].push_back(-0.04097165983591666);
6410 6 : parameter_vac_D[BB_PO2].push_back(-0.017525098100539684);
6411 :
6412 6 : parameter_vac_D[BB_DNA].push_back(94.75075611920529);
6413 6 : parameter_vac_D[BB_DNA].push_back(-0.13973533952241124);
6414 6 : parameter_vac_D[BB_DNA].push_back(-123.45402430039046);
6415 6 : parameter_vac_D[BB_DNA].push_back(-15.19494522082691);
6416 6 : parameter_vac_D[BB_DNA].push_back(123.34749914811465);
6417 6 : parameter_vac_D[BB_DNA].push_back(-61.038507985345504);
6418 6 : parameter_vac_D[BB_DNA].push_back(6.601587478585944);
6419 :
6420 6 : parameter_vac_D[BB_DNA_5].push_back(108.18080111920679);
6421 6 : parameter_vac_D[BB_DNA_5].push_back(-0.2055953690887981);
6422 6 : parameter_vac_D[BB_DNA_5].push_back(-150.7924892157235);
6423 6 : parameter_vac_D[BB_DNA_5].push_back(-22.700459516383198);
6424 6 : parameter_vac_D[BB_DNA_5].push_back(172.2599851655527);
6425 6 : parameter_vac_D[BB_DNA_5].push_back(-93.4983124807692);
6426 6 : parameter_vac_D[BB_DNA_5].push_back(12.867661230942868);
6427 :
6428 6 : parameter_vac_D[BB_DNA_3].push_back(108.18080111920537);
6429 6 : parameter_vac_D[BB_DNA_3].push_back(-0.18263717534168372);
6430 6 : parameter_vac_D[BB_DNA_3].push_back(-148.5918817744255);
6431 6 : parameter_vac_D[BB_DNA_3].push_back(-19.90799847398835);
6432 6 : parameter_vac_D[BB_DNA_3].push_back(157.55184203379557);
6433 6 : parameter_vac_D[BB_DNA_3].push_back(-80.28471270058103);
6434 6 : parameter_vac_D[BB_DNA_3].push_back(9.313712500298278);
6435 :
6436 6 : parameter_vac_D[BB_RNA].push_back(106.37859611922117);
6437 6 : parameter_vac_D[BB_RNA].push_back(-0.2380766148121975);
6438 6 : parameter_vac_D[BB_RNA].push_back(-153.74131338570024);
6439 6 : parameter_vac_D[BB_RNA].push_back(-26.415436217574932);
6440 6 : parameter_vac_D[BB_RNA].push_back(191.90585451112776);
6441 6 : parameter_vac_D[BB_RNA].push_back(-109.61737794316868);
6442 6 : parameter_vac_D[BB_RNA].push_back(16.663804191332204);
6443 :
6444 6 : parameter_vac_D[BB_RNA_5].push_back(120.58236111920618);
6445 6 : parameter_vac_D[BB_RNA_5].push_back(-0.340258533619014);
6446 6 : parameter_vac_D[BB_RNA_5].push_back(-186.08333929996334);
6447 6 : parameter_vac_D[BB_RNA_5].push_back(-38.493337147644795);
6448 6 : parameter_vac_D[BB_RNA_5].push_back(266.2262415641144);
6449 6 : parameter_vac_D[BB_RNA_5].push_back(-164.73088478359585);
6450 6 : parameter_vac_D[BB_RNA_5].push_back(29.07014157680879);
6451 :
6452 6 : parameter_vac_D[BB_RNA_3].push_back(120.5823611192099);
6453 6 : parameter_vac_D[BB_RNA_3].push_back(-0.274146129206928);
6454 6 : parameter_vac_D[BB_RNA_3].push_back(-179.24499182395388);
6455 6 : parameter_vac_D[BB_RNA_3].push_back(-30.315729372259426);
6456 6 : parameter_vac_D[BB_RNA_3].push_back(222.2645581367648);
6457 6 : parameter_vac_D[BB_RNA_3].push_back(-125.13581171514033);
6458 6 : parameter_vac_D[BB_RNA_3].push_back(18.350308154920107);
6459 :
6460 6 : parameter_vac_D[BASE_A].push_back(114.34024911921);
6461 6 : parameter_vac_D[BASE_A].push_back(-0.4136665918383359);
6462 6 : parameter_vac_D[BASE_A].push_back(-192.33138384655922);
6463 6 : parameter_vac_D[BASE_A].push_back(-46.74428306691412);
6464 6 : parameter_vac_D[BASE_A].push_back(312.9511030981905);
6465 6 : parameter_vac_D[BASE_A].push_back(-199.6349962647333);
6466 6 : parameter_vac_D[BASE_A].push_back(36.15938693202153);
6467 :
6468 6 : parameter_vac_D[BASE_C].push_back(76.17798411921166);
6469 6 : parameter_vac_D[BASE_C].push_back(-0.1444475142707445);
6470 6 : parameter_vac_D[BASE_C].push_back(-102.66873668949485);
6471 6 : parameter_vac_D[BASE_C].push_back(-15.813768367725821);
6472 6 : parameter_vac_D[BASE_C].push_back(119.63436338715553);
6473 6 : parameter_vac_D[BASE_C].push_back(-64.22251971660583);
6474 6 : parameter_vac_D[BASE_C].push_back(8.351952332828862);
6475 :
6476 6 : parameter_vac_D[BASE_G].push_back(127.08052911921965);
6477 6 : parameter_vac_D[BASE_G].push_back(-0.7137457014712297);
6478 6 : parameter_vac_D[BASE_G].push_back(-239.67686838772786);
6479 6 : parameter_vac_D[BASE_G].push_back(-88.53661981200943);
6480 6 : parameter_vac_D[BASE_G].push_back(556.7254485453866);
6481 6 : parameter_vac_D[BASE_G].push_back(-432.0234649577737);
6482 6 : parameter_vac_D[BASE_G].push_back(104.407200463848);
6483 :
6484 6 : parameter_vac_D[BASE_T].push_back(94.09000011920868);
6485 6 : parameter_vac_D[BASE_T].push_back(-0.27147149980458524);
6486 6 : parameter_vac_D[BASE_T].push_back(-143.65649702254174);
6487 6 : parameter_vac_D[BASE_T].push_back(-30.861235738371892);
6488 6 : parameter_vac_D[BASE_T].push_back(212.3643014774958);
6489 6 : parameter_vac_D[BASE_T].push_back(-133.06675501066275);
6490 6 : parameter_vac_D[BASE_T].push_back(23.951588200687073);
6491 :
6492 6 : parameter_vac_D[BASE_U].push_back(59.30540111665979);
6493 6 : parameter_vac_D[BASE_U].push_back(-0.06146929846591808);
6494 6 : parameter_vac_D[BASE_U].push_back(-67.43680950211682);
6495 6 : parameter_vac_D[BASE_U].push_back(-6.625289749170134);
6496 6 : parameter_vac_D[BASE_U].push_back(58.37012229348065);
6497 6 : parameter_vac_D[BASE_U].push_back(-26.23044613101723);
6498 6 : parameter_vac_D[BASE_U].push_back(2.061238351422343);
6499 :
6500 21340 : for(unsigned i=0; i<atoms.size(); ++i) {
6501 21334 : std::string Aname = pdb.getAtomName(atoms[i]);
6502 21334 : std::string Rname = pdb.getResidueName(atoms[i]);
6503 21334 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
6504 21334 : if(Rname=="ALA") {
6505 1078 : atoi[residue_atom[i]]=ALA;
6506 20256 : } else if(Rname=="ARG") {
6507 1296 : atoi[residue_atom[i]]=ARG;
6508 18960 : } else if(Rname=="ASN") {
6509 1080 : atoi[residue_atom[i]]=ASN;
6510 17880 : } else if(Rname=="ASP") {
6511 936 : atoi[residue_atom[i]]=ASP;
6512 16944 : } else if(Rname=="CYS") {
6513 72 : atoi[residue_atom[i]]=CYS;
6514 16872 : } else if(Rname=="CYX") {
6515 0 : atoi[residue_atom[i]]=CYX;
6516 16872 : } else if(Rname=="GLN") {
6517 1558 : atoi[residue_atom[i]]=GLN;
6518 15314 : } else if(Rname=="GLU") {
6519 714 : atoi[residue_atom[i]]=GLU;
6520 14600 : } else if(Rname=="GLY") {
6521 936 : atoi[residue_atom[i]]=GLY;
6522 13664 : } else if(Rname=="HIS") {
6523 0 : atoi[residue_atom[i]]=HIS;
6524 13664 : } else if(Rname=="HID") {
6525 0 : atoi[residue_atom[i]]=HIS;
6526 13664 : } else if(Rname=="HIE") {
6527 216 : atoi[residue_atom[i]]=HIS;
6528 13448 : } else if(Rname=="HIP") {
6529 0 : atoi[residue_atom[i]]=HIP;
6530 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
6531 13448 : } else if(Rname=="HSD") {
6532 0 : atoi[residue_atom[i]]=HIS;
6533 13448 : } else if(Rname=="HSE") {
6534 0 : atoi[residue_atom[i]]=HIS;
6535 13448 : } else if(Rname=="HSP") {
6536 0 : atoi[residue_atom[i]]=HIP;
6537 13448 : } else if(Rname=="ILE") {
6538 1296 : atoi[residue_atom[i]]=ILE;
6539 12152 : } else if(Rname=="LEU") {
6540 2280 : atoi[residue_atom[i]]=LEU;
6541 9872 : } else if(Rname=="LYS") {
6542 1560 : atoi[residue_atom[i]]=LYS;
6543 8312 : } else if(Rname=="MET") {
6544 836 : atoi[residue_atom[i]]=MET;
6545 7476 : } else if(Rname=="PHE") {
6546 1512 : atoi[residue_atom[i]]=PHE;
6547 5964 : } else if(Rname=="PRO") {
6548 1122 : atoi[residue_atom[i]]=PRO;
6549 4842 : } else if(Rname=="SER") {
6550 768 : atoi[residue_atom[i]]=SER;
6551 4074 : } else if(Rname=="THR") {
6552 728 : atoi[residue_atom[i]]=THR;
6553 3346 : } else if(Rname=="TRP") {
6554 0 : atoi[residue_atom[i]]=TRP;
6555 3346 : } else if(Rname=="TYR") {
6556 792 : atoi[residue_atom[i]]=TYR;
6557 2554 : } else if(Rname=="VAL") {
6558 1600 : atoi[residue_atom[i]]=VAL;
6559 : }
6560 : // NUCLEIC ACIDS
6561 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
6562 : // RNA - G
6563 954 : else if(Rname=="G") {
6564 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6565 0 : Aname=="O1P" || Aname=="O2P" ) {
6566 0 : atoi [residue_atom[i]]=BB_PO2;
6567 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6568 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6569 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6570 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6571 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6572 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6573 0 : atoi[residue_atom[i]]=BB_RNA;
6574 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6575 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6576 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6577 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6578 0 : atoi[residue_atom[i]]=BASE_G;
6579 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6580 : // RNA - G3
6581 954 : } else if(Rname=="G3") {
6582 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6583 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6584 0 : atoi [residue_atom[i]]=BB_PO2;
6585 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6586 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6587 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6588 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6589 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6590 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6591 0 : atoi[residue_atom[i]]=BB_RNA_3;
6592 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6593 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6594 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6595 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6596 0 : atoi[residue_atom[i]]=BASE_G;
6597 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6598 : // RNA - G5
6599 954 : } else if(Rname=="G5") {
6600 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6601 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6602 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6603 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6604 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6605 0 : Aname=="H2'1" || Aname=="H5T" ) {
6606 0 : atoi[residue_atom[i]]=BB_RNA_5;
6607 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6608 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6609 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6610 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6611 0 : atoi[residue_atom[i]]=BASE_G;
6612 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6613 : // RNA - GT
6614 954 : } else if(Rname=="GT") {
6615 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6616 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6617 0 : atoi [residue_atom[i]]=BB_PO3;
6618 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6619 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6620 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6621 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6622 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6623 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6624 0 : atoi[residue_atom[i]]=BB_RNA;
6625 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6626 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6627 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6628 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6629 0 : atoi[residue_atom[i]]=BASE_G;
6630 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6631 : // RNA - U
6632 954 : } else if(Rname=="U") {
6633 2886 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6634 1482 : Aname=="O1P" || Aname=="O2P" ) {
6635 78 : atoi [residue_atom[i]]=BB_PO2;
6636 2548 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6637 2132 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6638 1716 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6639 1326 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6640 1196 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6641 1560 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6642 416 : atoi[residue_atom[i]]=BB_RNA;
6643 884 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6644 468 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6645 364 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6646 286 : atoi[residue_atom[i]]=BASE_U;
6647 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6648 : // RNA - U3
6649 174 : } else if(Rname=="U3") {
6650 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6651 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6652 6 : atoi [residue_atom[i]]=BB_PO2;
6653 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6654 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6655 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6656 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6657 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6658 78 : Aname=="H5'2" || Aname=="HO'2" ) {
6659 34 : atoi[residue_atom[i]]=BB_RNA_3;
6660 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6661 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6662 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6663 22 : atoi[residue_atom[i]]=BASE_U;
6664 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6665 : // RNA - U5
6666 112 : } else if(Rname=="U5") {
6667 408 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6668 344 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6669 280 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6670 216 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6671 176 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6672 156 : Aname=="H2'1" || Aname=="H5T" ) {
6673 68 : atoi[residue_atom[i]]=BB_RNA_5;
6674 136 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6675 72 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6676 56 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6677 44 : atoi[residue_atom[i]]=BASE_U;
6678 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6679 : // RNA - UT
6680 0 : } else if(Rname=="UT") {
6681 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6682 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6683 0 : atoi [residue_atom[i]]=BB_PO3;
6684 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6685 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6686 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6687 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6688 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6689 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6690 0 : atoi[residue_atom[i]]=BB_RNA;
6691 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6692 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6693 0 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6694 0 : atoi[residue_atom[i]]=BASE_U;
6695 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6696 : // RNA - A
6697 0 : } else if(Rname=="A") {
6698 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6699 0 : Aname=="O1P" || Aname=="O2P" ) {
6700 0 : atoi [residue_atom[i]]=BB_PO2;
6701 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6702 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6703 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6704 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6705 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6706 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6707 0 : atoi[residue_atom[i]]=BB_RNA;
6708 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6709 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6710 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6711 0 : Aname=="H61" || Aname=="H62" ) {
6712 0 : atoi[residue_atom[i]]=BASE_A;
6713 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6714 : // RNA - A3
6715 0 : } else if(Rname=="A3") {
6716 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6717 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6718 0 : atoi [residue_atom[i]]=BB_PO2;
6719 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6720 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6721 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6722 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6723 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6724 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6725 0 : atoi[residue_atom[i]]=BB_RNA_3;
6726 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6727 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6728 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6729 0 : Aname=="H61" || Aname=="H62" ) {
6730 0 : atoi[residue_atom[i]]=BASE_A;
6731 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6732 : // RNA - A5
6733 0 : } else if(Rname=="A5") {
6734 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6735 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6736 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6737 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6738 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6739 0 : Aname=="H2'1" || Aname=="H5T" ) {
6740 0 : atoi[residue_atom[i]]=BB_RNA_5;
6741 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6742 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6743 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6744 0 : Aname=="H61" || Aname=="H62" ) {
6745 0 : atoi[residue_atom[i]]=BASE_A;
6746 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6747 : // RNA - AT
6748 0 : } else if(Rname=="AT") {
6749 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6750 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6751 0 : atoi [residue_atom[i]]=BB_PO3;
6752 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6753 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6754 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6755 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6756 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6757 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6758 0 : atoi[residue_atom[i]]=BB_RNA;
6759 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6760 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6761 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6762 0 : Aname=="H61" || Aname=="H62" ) {
6763 0 : atoi[residue_atom[i]]=BASE_A;
6764 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6765 : // RNA - C
6766 0 : } else if(Rname=="C") {
6767 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6768 0 : Aname=="O1P" || Aname=="O2P" ) {
6769 0 : atoi [residue_atom[i]]=BB_PO2;
6770 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6771 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6772 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6773 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6774 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6775 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6776 0 : atoi[residue_atom[i]]=BB_RNA;
6777 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6778 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6779 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6780 0 : atoi[residue_atom[i]]=BASE_C;
6781 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6782 : // RNA - C3
6783 0 : } else if(Rname=="C3") {
6784 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6785 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6786 0 : atoi [residue_atom[i]]=BB_PO2;
6787 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6788 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6789 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6790 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6791 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6792 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6793 0 : atoi[residue_atom[i]]=BB_RNA_3;
6794 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6795 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6796 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6797 0 : atoi[residue_atom[i]]=BASE_C;
6798 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6799 : // RNA - C5
6800 0 : } else if(Rname=="C5") {
6801 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6802 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6803 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6804 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6805 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6806 0 : Aname=="H2'1" || Aname=="H5T" ) {
6807 0 : atoi[residue_atom[i]]=BB_RNA_5;
6808 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6809 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6810 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6811 0 : atoi[residue_atom[i]]=BASE_C;
6812 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6813 : // RNA - CT
6814 0 : } else if(Rname=="CT") {
6815 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6816 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6817 0 : atoi [residue_atom[i]]=BB_PO3;
6818 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6819 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6820 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6821 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6822 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6823 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6824 0 : atoi[residue_atom[i]]=BB_RNA;
6825 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6826 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6827 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6828 0 : atoi[residue_atom[i]]=BASE_C;
6829 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6830 : // DNA - G
6831 0 : } else if(Rname=="DG") {
6832 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6833 0 : Aname=="O1P" || Aname=="O2P" ) {
6834 0 : atoi [residue_atom[i]]=BB_PO2;
6835 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6836 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6837 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6838 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6839 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6840 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6841 0 : atoi[residue_atom[i]]=BB_DNA;
6842 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6843 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6844 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6845 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6846 0 : atoi[residue_atom[i]]=BASE_G;
6847 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6848 : // DNA - G3
6849 0 : } else if(Rname=="DG3") {
6850 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6851 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6852 0 : atoi [residue_atom[i]]=BB_PO2;
6853 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6854 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6855 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6856 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6857 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6858 : Aname=="H3T" ) {
6859 0 : atoi[residue_atom[i]]=BB_DNA_3;
6860 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6861 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6862 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6863 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6864 0 : atoi[residue_atom[i]]=BASE_G;
6865 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6866 : // DNA - G5
6867 0 : } else if(Rname=="DG5") {
6868 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6869 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6870 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6871 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6872 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6873 : Aname=="H5T" ) {
6874 0 : atoi[residue_atom[i]]=BB_DNA_5;
6875 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6876 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6877 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6878 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6879 0 : atoi[residue_atom[i]]=BASE_G;
6880 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6881 : // DNA - GT
6882 0 : } else if(Rname=="DGT") {
6883 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6884 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6885 0 : atoi [residue_atom[i]]=BB_PO3;
6886 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6887 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6888 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6889 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6890 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6891 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6892 0 : atoi[residue_atom[i]]=BB_DNA;
6893 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6894 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6895 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6896 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6897 0 : atoi[residue_atom[i]]=BASE_G;
6898 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6899 : // DNA - T
6900 0 : } else if(Rname=="DT") {
6901 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6902 0 : Aname=="O1P" || Aname=="O2P" ) {
6903 0 : atoi [residue_atom[i]]=BB_PO2;
6904 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6905 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6906 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6907 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6908 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6909 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6910 0 : atoi[residue_atom[i]]=BB_DNA;
6911 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6912 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6913 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6914 0 : Aname=="H72" || Aname=="H73" ) {
6915 0 : atoi[residue_atom[i]]=BASE_T;
6916 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6917 : // DNA - T3
6918 0 : } else if(Rname=="DT3") {
6919 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6920 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6921 0 : atoi [residue_atom[i]]=BB_PO2;
6922 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6923 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6924 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6925 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6926 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6927 : Aname=="H3T" ) {
6928 0 : atoi[residue_atom[i]]=BB_DNA_3;
6929 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6930 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6931 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6932 0 : Aname=="H72" || Aname=="H73" ) {
6933 0 : atoi[residue_atom[i]]=BASE_T;
6934 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6935 : // DNA - T5
6936 0 : } else if(Rname=="DT5") {
6937 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6938 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6939 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6940 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6941 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6942 : Aname=="H5T" ) {
6943 0 : atoi[residue_atom[i]]=BB_DNA_5;
6944 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6945 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6946 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6947 0 : Aname=="H72" || Aname=="H73" ) {
6948 0 : atoi[residue_atom[i]]=BASE_T;
6949 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6950 : // DNA - TT
6951 0 : } else if(Rname=="DTT") {
6952 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6953 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
6954 0 : atoi [residue_atom[i]]=BB_PO3;
6955 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6956 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6957 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6958 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6959 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6960 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6961 0 : atoi[residue_atom[i]]=BB_DNA;
6962 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6963 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6964 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6965 0 : Aname=="H72" || Aname=="H73" ) {
6966 0 : atoi[residue_atom[i]]=BASE_T;
6967 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6968 : // DNA - A
6969 0 : } else if(Rname=="DA") {
6970 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
6971 0 : Aname=="O1P" || Aname=="O2P" ) {
6972 0 : atoi [residue_atom[i]]=BB_PO2;
6973 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6974 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6975 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6976 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6977 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6978 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6979 0 : atoi[residue_atom[i]]=BB_DNA;
6980 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6981 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6982 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6983 0 : Aname=="H61" || Aname=="H62" ) {
6984 0 : atoi[residue_atom[i]]=BASE_A;
6985 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6986 : // DNA - A3
6987 0 : } else if(Rname=="DA3") {
6988 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6989 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6990 0 : atoi [residue_atom[i]]=BB_PO2;
6991 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6992 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6993 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6994 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6995 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6996 : Aname=="H3T" ) {
6997 0 : atoi[residue_atom[i]]=BB_DNA_3;
6998 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6999 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7000 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7001 0 : Aname=="H61" || Aname=="H62" ) {
7002 0 : atoi[residue_atom[i]]=BASE_A;
7003 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7004 : // DNA - A5
7005 0 : } else if(Rname=="DA5") {
7006 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7007 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7008 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7009 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7010 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7011 : Aname=="H5T" ) {
7012 0 : atoi[residue_atom[i]]=BB_DNA_5;
7013 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7014 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7015 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7016 0 : Aname=="H61" || Aname=="H62" ) {
7017 0 : atoi[residue_atom[i]]=BASE_A;
7018 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7019 : // DNA - AT
7020 0 : } else if(Rname=="DAT") {
7021 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7022 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7023 0 : atoi [residue_atom[i]]=BB_PO3;
7024 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7025 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7026 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7027 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7028 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7029 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7030 0 : atoi[residue_atom[i]]=BB_DNA;
7031 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
7032 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
7033 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
7034 0 : Aname=="H61" || Aname=="H62" ) {
7035 0 : atoi[residue_atom[i]]=BASE_A;
7036 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7037 : // DNA - C
7038 0 : } else if(Rname=="DC") {
7039 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="HP" ||
7040 0 : Aname=="O1P" || Aname=="O2P" ) {
7041 0 : atoi [residue_atom[i]]=BB_PO2;
7042 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7043 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7044 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7045 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7046 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7047 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7048 0 : atoi[residue_atom[i]]=BB_DNA;
7049 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7050 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7051 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7052 0 : atoi[residue_atom[i]]=BASE_C;
7053 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7054 : // DNA - C3
7055 0 : } else if(Rname=="DC3") {
7056 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7057 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
7058 0 : atoi [residue_atom[i]]=BB_PO2;
7059 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7060 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7061 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7062 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
7063 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7064 : Aname=="H3T" ) {
7065 0 : atoi[residue_atom[i]]=BB_DNA_3;
7066 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7067 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7068 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7069 0 : atoi[residue_atom[i]]=BASE_C;
7070 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7071 : // DNA - C5
7072 0 : } else if(Rname=="DC5") {
7073 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7074 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7075 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7076 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7077 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
7078 : Aname=="H5T" ) {
7079 0 : atoi[residue_atom[i]]=BB_DNA_5;
7080 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7081 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7082 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7083 0 : atoi[residue_atom[i]]=BASE_C;
7084 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7085 : // DNA - CT
7086 0 : } else if(Rname=="DCT") {
7087 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
7088 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" || Aname=="HOP3" ) {
7089 0 : atoi [residue_atom[i]]=BB_PO3;
7090 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
7091 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
7092 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
7093 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
7094 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
7095 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
7096 0 : atoi[residue_atom[i]]=BB_DNA;
7097 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
7098 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
7099 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
7100 0 : atoi[residue_atom[i]]=BASE_C;
7101 0 : } else error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
7102 0 : } else error("Residue not known: "+Rname);
7103 : }
7104 6 : }
7105 :
7106 8 : double SAXS::calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho)
7107 : {
7108 : std::map<std::string, unsigned> AA_map;
7109 8 : AA_map["H"] = H;
7110 8 : AA_map["C"] = C;
7111 8 : AA_map["N"] = N;
7112 8 : AA_map["O"] = O;
7113 8 : AA_map["P"] = P;
7114 8 : AA_map["S"] = S;
7115 :
7116 : std::vector<std::vector<double> > param_a;
7117 : std::vector<std::vector<double> > param_b;
7118 : std::vector<double> param_c;
7119 : std::vector<double> param_v;
7120 :
7121 8 : param_a.resize(NTT, std::vector<double>(5));
7122 8 : param_b.resize(NTT, std::vector<double>(5));
7123 8 : param_c.resize(NTT);
7124 8 : param_v.resize(NTT);
7125 :
7126 8 : param_a[H][0] = 0.493002; param_b[H][0] = 10.5109; param_c[H] = 0.003038;
7127 8 : param_a[H][1] = 0.322912; param_b[H][1] = 26.1257; param_v[H] = 5.15;
7128 8 : param_a[H][2] = 0.140191; param_b[H][2] = 3.14236;
7129 8 : param_a[H][3] = 0.040810; param_b[H][3] = 57.7997;
7130 8 : param_a[H][4] = 0.0; param_b[H][4] = 1.0;
7131 :
7132 8 : param_a[C][0] = 2.31000; param_b[C][0] = 20.8439; param_c[C] = 0.215600;
7133 8 : param_a[C][1] = 1.02000; param_b[C][1] = 10.2075; param_v[C] = 16.44;
7134 8 : param_a[C][2] = 1.58860; param_b[C][2] = 0.56870;
7135 8 : param_a[C][3] = 0.86500; param_b[C][3] = 51.6512;
7136 8 : param_a[C][4] = 0.0; param_b[C][4] = 1.0;
7137 :
7138 8 : param_a[N][0] = 12.2126; param_b[N][0] = 0.00570; param_c[N] = -11.529;
7139 8 : param_a[N][1] = 3.13220; param_b[N][1] = 9.89330; param_v[N] = 2.49;
7140 8 : param_a[N][2] = 2.01250; param_b[N][2] = 28.9975;
7141 8 : param_a[N][3] = 1.16630; param_b[N][3] = 0.58260;
7142 8 : param_a[N][4] = 0.0; param_b[N][4] = 1.0;
7143 :
7144 8 : param_a[O][0] = 3.04850; param_b[O][0] = 13.2771; param_c[O] = 0.250800 ;
7145 8 : param_a[O][1] = 2.28680; param_b[O][1] = 5.70110; param_v[O] = 9.13;
7146 8 : param_a[O][2] = 1.54630; param_b[O][2] = 0.32390;
7147 8 : param_a[O][3] = 0.86700; param_b[O][3] = 32.9089;
7148 8 : param_a[O][4] = 0.0; param_b[O][4] = 1.0;
7149 :
7150 8 : param_a[P][0] = 6.43450; param_b[P][0] = 1.90670; param_c[P] = 1.11490;
7151 8 : param_a[P][1] = 4.17910; param_b[P][1] = 27.1570; param_v[P] = 5.73;
7152 8 : param_a[P][2] = 1.78000; param_b[P][2] = 0.52600;
7153 8 : param_a[P][3] = 1.49080; param_b[P][3] = 68.1645;
7154 8 : param_a[P][4] = 0.0; param_b[P][4] = 1.0;
7155 :
7156 8 : param_a[S][0] = 6.90530; param_b[S][0] = 1.46790; param_c[S] = 0.866900;
7157 8 : param_a[S][1] = 5.20340; param_b[S][1] = 22.2151; param_v[S] = 19.86;
7158 8 : param_a[S][2] = 1.43790; param_b[S][2] = 0.25360;
7159 8 : param_a[S][3] = 1.58630; param_b[S][3] = 56.1720;
7160 8 : param_a[S][4] = 0.0; param_b[S][4] = 1.0;
7161 :
7162 8 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
7163 :
7164 : double Iq0=0.;
7165 8 : if( moldat ) {
7166 : // cycle over the atom types
7167 56 : for(unsigned i=0; i<NTT; ++i) {
7168 48 : const double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
7169 : // cycle over q
7170 480 : for(unsigned k=0; k<q_list.size(); ++k) {
7171 432 : const double q = q_list[k];
7172 432 : const double s = q / (4. * M_PI);
7173 432 : FF_tmp[k][i] = param_c[i];
7174 : // SUM [a_i * EXP( - b_i * (q/4pi)^2 )] Waasmaier and Kirfel (1995)
7175 2160 : for(unsigned j=0; j<4; ++j) {
7176 1728 : FF_tmp[k][i] += param_a[i][j]*std::exp(-param_b[i][j]*s*s);
7177 : }
7178 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
7179 432 : FF_tmp[k][i] -= rho*param_v[i]*std::exp(-volr*q*q);
7180 : }
7181 : }
7182 : // cycle over the atoms to assign the atom type and calculate I0
7183 28382 : for(unsigned i=0; i<atoms.size(); ++i) {
7184 : // get atom name
7185 28374 : std::string name = moldat->getAtomName(atoms[i]);
7186 : char type;
7187 : // get atom type
7188 28374 : char first = name.at(0);
7189 : // GOLDEN RULE: type is first letter, if not a number
7190 28374 : if (!isdigit(first)) {
7191 : type = first;
7192 : // otherwise is the second
7193 : } else {
7194 0 : type = name.at(1);
7195 : }
7196 28374 : std::string type_s = std::string(1,type);
7197 28374 : if(AA_map.find(type_s) != AA_map.end()) {
7198 28374 : const unsigned index=AA_map[type_s];
7199 28374 : atoi[i] = AA_map[type_s];
7200 141870 : for(unsigned j=0; j<4; ++j) Iq0 += param_a[index][j];
7201 28374 : Iq0 = Iq0 -rho*param_v[index] + param_c[index];
7202 : } else {
7203 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
7204 : }
7205 : }
7206 : } else {
7207 0 : error("MOLINFO DATA not found\n");
7208 : }
7209 8 : if(absolute) Iq0 = 1;
7210 :
7211 8 : return Iq0;
7212 8 : }
7213 :
7214 4 : double SAXS::calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc)
7215 : {
7216 : std::map<std::string, unsigned> AA_map;
7217 4 : AA_map["H"] = H;
7218 4 : AA_map["C"] = C;
7219 4 : AA_map["N"] = N;
7220 4 : AA_map["O"] = O;
7221 4 : AA_map["P"] = P;
7222 4 : AA_map["S"] = S;
7223 :
7224 : std::vector<double> param_b;
7225 : std::vector<double> param_v;
7226 :
7227 4 : param_b.resize(NTT);
7228 4 : param_v.resize(NTT);
7229 :
7230 4 : param_b[H] = -0.374; param_v[H] = 5.15;
7231 : // param_b[D] = 0.667;
7232 4 : param_b[C] = 0.665; param_v[C] = 16.44;
7233 4 : param_b[N] = 0.94; param_v[N] = 2.49;
7234 4 : param_b[O] = 0.580; param_v[O] = 9.13;
7235 4 : param_b[P] = 0.51; param_v[P] = 5.73;
7236 4 : param_b[S] = 0.28; param_v[S] = 19.86;
7237 :
7238 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)
7239 :
7240 4 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
7241 :
7242 : double Iq0=0.;
7243 4 : if( moldat ) {
7244 : // cycle over the atom types
7245 28 : for(unsigned i=0; i<NTT; ++i) {
7246 24 : double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
7247 : // cycle over q
7248 240 : for(unsigned k=0; k<q_list.size(); ++k) {
7249 216 : const double q = q_list[k];
7250 216 : FF_tmp[k][i] = param_b[i];
7251 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
7252 216 : FF_tmp[k][i] -= solv_sc_length*rho*param_v[i]*std::exp(-volr*q*q);
7253 : }
7254 : }
7255 : // cycle over the atoms to assign the atom type and calculate I0
7256 13922 : for(unsigned i=0; i<atoms.size(); ++i) {
7257 : // get atom name
7258 13918 : std::string name = moldat->getAtomName(atoms[i]);
7259 : char type;
7260 : // get atom type
7261 13918 : char first = name.at(0);
7262 : // GOLDEN RULE: type is first letter, if not a number
7263 13918 : if (!isdigit(first)) {
7264 : type = first;
7265 : // otherwise is the second
7266 : } else {
7267 0 : type = name.at(1);
7268 : }
7269 13918 : std::string type_s = std::string(1,type);
7270 13918 : if(AA_map.find(type_s) != AA_map.end()) {
7271 13918 : const unsigned index=AA_map[type_s];
7272 13918 : atoi[i] = AA_map[type_s];
7273 13918 : Iq0 += param_b[index]-solv_sc_length*rho*param_v[index];
7274 : } else {
7275 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
7276 : }
7277 : }
7278 : } else {
7279 0 : error("MOLINFO DATA not found\n");
7280 : }
7281 4 : if(absolute) Iq0 = 1;
7282 :
7283 4 : return Iq0;
7284 : }
7285 :
7286 16 : std::map<std::string, std::vector<double> > SAXS::setupLCPOparam() {
7287 : std::map<std::string, std::vector<double> > lcpomap;
7288 :
7289 : // We arbitrarily set OC1/OT1 as the charged oxygen.
7290 :
7291 16 : lcpomap["ALA_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7292 16 : lcpomap["ALA_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7293 16 : lcpomap["ALA_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7294 16 : lcpomap["ALA_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7295 16 : lcpomap["ALA_CB"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7296 16 : lcpomap["ALA_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7297 16 : lcpomap["ALA_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7298 16 : lcpomap["ALA_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7299 16 : lcpomap["ALA_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7300 16 : lcpomap["ALA_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7301 :
7302 16 : lcpomap["ASP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7303 16 : lcpomap["ASP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7304 16 : lcpomap["ASP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7305 16 : lcpomap["ASP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7306 16 : lcpomap["ASP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7307 16 : lcpomap["ASP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7308 16 : lcpomap["ASP_OD1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7309 16 : lcpomap["ASP_OD2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7310 16 : lcpomap["ASP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7311 16 : lcpomap["ASP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7312 16 : lcpomap["ASP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7313 16 : lcpomap["ASP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7314 16 : lcpomap["ASP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7315 :
7316 16 : lcpomap["ASN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7317 16 : lcpomap["ASN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7318 16 : lcpomap["ASN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7319 16 : lcpomap["ASN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7320 16 : lcpomap["ASN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7321 16 : lcpomap["ASN_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7322 16 : lcpomap["ASN_OD1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7323 16 : lcpomap["ASN_ND2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7324 16 : lcpomap["ASN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7325 16 : lcpomap["ASN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7326 16 : lcpomap["ASN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7327 16 : lcpomap["ASN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7328 16 : lcpomap["ASN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7329 :
7330 16 : lcpomap["ARG_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7331 16 : lcpomap["ARG_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7332 16 : lcpomap["ARG_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7333 16 : lcpomap["ARG_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7334 16 : lcpomap["ARG_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7335 16 : lcpomap["ARG_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7336 16 : lcpomap["ARG_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7337 16 : lcpomap["ARG_NE"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7338 16 : lcpomap["ARG_NH1"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7339 16 : lcpomap["ARG_NH2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7340 16 : lcpomap["ARG_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7341 16 : lcpomap["ARG_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7342 16 : lcpomap["ARG_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7343 16 : lcpomap["ARG_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7344 16 : lcpomap["ARG_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7345 16 : lcpomap["ARG_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7346 :
7347 16 : lcpomap["CYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7348 16 : lcpomap["CYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7349 16 : lcpomap["CYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7350 16 : lcpomap["CYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7351 16 : lcpomap["CYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7352 16 : lcpomap["CYS_SG"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7353 16 : lcpomap["CYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7354 16 : lcpomap["CYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7355 16 : lcpomap["CYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7356 16 : lcpomap["CYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7357 16 : lcpomap["CYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7358 :
7359 16 : lcpomap["CYX_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7360 16 : lcpomap["CYX_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7361 16 : lcpomap["CYX_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7362 16 : lcpomap["CYX_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7363 16 : lcpomap["CYX_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7364 16 : lcpomap["CYX_SG"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7365 16 : lcpomap["CYX_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7366 16 : lcpomap["CYX_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7367 16 : lcpomap["CYX_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7368 16 : lcpomap["CYX_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7369 16 : lcpomap["CYX_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7370 :
7371 16 : lcpomap["GLU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7372 16 : lcpomap["GLU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7373 16 : lcpomap["GLU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7374 16 : lcpomap["GLU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7375 16 : lcpomap["GLU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7376 16 : lcpomap["GLU_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7377 16 : lcpomap["GLU_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7378 16 : lcpomap["GLU_OE1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7379 16 : lcpomap["GLU_OE2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7380 16 : lcpomap["GLU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7381 16 : lcpomap["GLU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7382 16 : lcpomap["GLU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7383 16 : lcpomap["GLU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7384 16 : lcpomap["GLU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7385 :
7386 16 : lcpomap["GLN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7387 16 : lcpomap["GLN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7388 16 : lcpomap["GLN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7389 16 : lcpomap["GLN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7390 16 : lcpomap["GLN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7391 16 : lcpomap["GLN_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7392 16 : lcpomap["GLN_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7393 16 : lcpomap["GLN_OE1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7394 16 : lcpomap["GLN_NE2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7395 16 : lcpomap["GLN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7396 16 : lcpomap["GLN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7397 16 : lcpomap["GLN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7398 16 : lcpomap["GLN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7399 16 : lcpomap["GLN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7400 :
7401 16 : lcpomap["GLY_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7402 16 : lcpomap["GLY_CA"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7403 16 : lcpomap["GLY_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7404 16 : lcpomap["GLY_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7405 16 : lcpomap["GLY_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7406 16 : lcpomap["GLY_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7407 16 : lcpomap["GLY_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7408 16 : lcpomap["GLY_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7409 16 : lcpomap["GLY_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7410 :
7411 16 : lcpomap["HIS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7412 16 : lcpomap["HIS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7413 16 : lcpomap["HIS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7414 16 : lcpomap["HIS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7415 16 : lcpomap["HIS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7416 16 : lcpomap["HIS_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7417 16 : lcpomap["HIS_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7418 16 : lcpomap["HIS_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7419 16 : lcpomap["HIS_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7420 16 : lcpomap["HIS_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7421 16 : lcpomap["HIS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7422 16 : lcpomap["HIS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7423 16 : lcpomap["HIS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7424 :
7425 16 : lcpomap["HIE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7426 16 : lcpomap["HIE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7427 16 : lcpomap["HIE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7428 16 : lcpomap["HIE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7429 16 : lcpomap["HIE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7430 16 : lcpomap["HIE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7431 16 : lcpomap["HIE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7432 16 : lcpomap["HIE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7433 16 : lcpomap["HIE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7434 16 : lcpomap["HIE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7435 16 : lcpomap["HIE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7436 16 : lcpomap["HIE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7437 16 : lcpomap["HIE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7438 :
7439 16 : lcpomap["HSE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7440 16 : lcpomap["HSE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7441 16 : lcpomap["HSE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7442 16 : lcpomap["HSE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7443 16 : lcpomap["HSE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7444 16 : lcpomap["HSE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7445 16 : lcpomap["HSE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7446 16 : lcpomap["HSE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7447 16 : lcpomap["HSE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7448 16 : lcpomap["HSE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7449 16 : lcpomap["HSE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7450 16 : lcpomap["HSE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7451 16 : lcpomap["HSE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7452 :
7453 16 : lcpomap["HID_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7454 16 : lcpomap["HID_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7455 16 : lcpomap["HID_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7456 16 : lcpomap["HID_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7457 16 : lcpomap["HID_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7458 16 : lcpomap["HID_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7459 16 : lcpomap["HID_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7460 16 : lcpomap["HID_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7461 16 : lcpomap["HID_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7462 16 : lcpomap["HID_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7463 16 : lcpomap["HID_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7464 16 : lcpomap["HID_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7465 16 : lcpomap["HID_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7466 :
7467 16 : lcpomap["HSD_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7468 16 : lcpomap["HSD_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7469 16 : lcpomap["HSD_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7470 16 : lcpomap["HSD_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7471 16 : lcpomap["HSD_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7472 16 : lcpomap["HSD_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7473 16 : lcpomap["HSD_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7474 16 : lcpomap["HSD_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7475 16 : lcpomap["HSD_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7476 16 : lcpomap["HSD_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7477 16 : lcpomap["HSD_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7478 16 : lcpomap["HSD_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7479 16 : lcpomap["HSD_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7480 :
7481 16 : lcpomap["HIP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7482 16 : lcpomap["HIP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7483 16 : lcpomap["HIP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7484 16 : lcpomap["HIP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7485 16 : lcpomap["HIP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7486 16 : lcpomap["HIP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7487 16 : lcpomap["HIP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7488 16 : lcpomap["HIP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7489 16 : lcpomap["HIP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7490 16 : lcpomap["HIP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7491 16 : lcpomap["HIP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7492 16 : lcpomap["HIP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7493 16 : lcpomap["HIP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7494 :
7495 16 : lcpomap["HSP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7496 16 : lcpomap["HSP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7497 16 : lcpomap["HSP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7498 16 : lcpomap["HSP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7499 16 : lcpomap["HSP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7500 16 : lcpomap["HSP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7501 16 : lcpomap["HSP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7502 16 : lcpomap["HSP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7503 16 : lcpomap["HSP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7504 16 : lcpomap["HSP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7505 16 : lcpomap["HSP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7506 16 : lcpomap["HSP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7507 16 : lcpomap["HSP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7508 :
7509 16 : lcpomap["ILE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7510 16 : lcpomap["ILE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7511 16 : lcpomap["ILE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7512 16 : lcpomap["ILE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7513 16 : lcpomap["ILE_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7514 16 : lcpomap["ILE_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7515 16 : lcpomap["ILE_CG1"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7516 16 : lcpomap["ILE_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7517 16 : lcpomap["ILE_CD"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7518 16 : lcpomap["ILE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7519 16 : lcpomap["ILE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7520 16 : lcpomap["ILE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7521 16 : lcpomap["ILE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7522 16 : lcpomap["ILE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7523 :
7524 16 : lcpomap["LEU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7525 16 : lcpomap["LEU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7526 16 : lcpomap["LEU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7527 16 : lcpomap["LEU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7528 16 : lcpomap["LEU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7529 16 : lcpomap["LEU_CG"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7530 16 : lcpomap["LEU_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7531 16 : lcpomap["LEU_CD2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7532 16 : lcpomap["LEU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7533 16 : lcpomap["LEU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7534 16 : lcpomap["LEU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7535 16 : lcpomap["LEU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7536 16 : lcpomap["LEU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7537 :
7538 16 : lcpomap["LYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7539 16 : lcpomap["LYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7540 16 : lcpomap["LYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7541 16 : lcpomap["LYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7542 16 : lcpomap["LYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7543 16 : lcpomap["LYS_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7544 16 : lcpomap["LYS_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7545 16 : lcpomap["LYS_CE"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7546 16 : lcpomap["LYS_NZ"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7547 16 : lcpomap["LYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7548 16 : lcpomap["LYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7549 16 : lcpomap["LYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7550 16 : lcpomap["LYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7551 16 : lcpomap["LYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7552 :
7553 16 : lcpomap["MET_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7554 16 : lcpomap["MET_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7555 16 : lcpomap["MET_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7556 16 : lcpomap["MET_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7557 16 : lcpomap["MET_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7558 16 : lcpomap["MET_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7559 16 : lcpomap["MET_SD"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7560 16 : lcpomap["MET_CE"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7561 16 : lcpomap["MET_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7562 16 : lcpomap["MET_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7563 16 : lcpomap["MET_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7564 16 : lcpomap["MET_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7565 16 : lcpomap["MET_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7566 :
7567 16 : lcpomap["PHE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7568 16 : lcpomap["PHE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7569 16 : lcpomap["PHE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7570 16 : lcpomap["PHE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7571 16 : lcpomap["PHE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7572 16 : lcpomap["PHE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7573 16 : lcpomap["PHE_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7574 16 : lcpomap["PHE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7575 16 : lcpomap["PHE_CZ"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7576 16 : lcpomap["PHE_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7577 16 : lcpomap["PHE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7578 16 : lcpomap["PHE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7579 16 : lcpomap["PHE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7580 16 : lcpomap["PHE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7581 16 : lcpomap["PHE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7582 16 : lcpomap["PHE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7583 :
7584 16 : lcpomap["PRO_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7585 16 : lcpomap["PRO_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7586 16 : lcpomap["PRO_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7587 16 : lcpomap["PRO_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7588 16 : lcpomap["PRO_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7589 16 : lcpomap["PRO_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7590 16 : lcpomap["PRO_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7591 16 : lcpomap["PRO_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7592 16 : lcpomap["PRO_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7593 16 : lcpomap["PRO_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7594 16 : lcpomap["PRO_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7595 16 : lcpomap["PRO_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7596 :
7597 16 : lcpomap["SER_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7598 16 : lcpomap["SER_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7599 16 : lcpomap["SER_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7600 16 : lcpomap["SER_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7601 16 : lcpomap["SER_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7602 16 : lcpomap["SER_OG"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7603 16 : lcpomap["SER_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7604 16 : lcpomap["SER_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7605 16 : lcpomap["SER_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7606 16 : lcpomap["SER_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7607 16 : lcpomap["SER_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7608 :
7609 16 : lcpomap["THR_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7610 16 : lcpomap["THR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7611 16 : lcpomap["THR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7612 16 : lcpomap["THR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7613 16 : lcpomap["THR_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7614 16 : lcpomap["THR_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7615 16 : lcpomap["THR_OG1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7616 16 : lcpomap["THR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7617 16 : lcpomap["THR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7618 16 : lcpomap["THR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7619 16 : lcpomap["THR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7620 16 : lcpomap["THR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7621 :
7622 16 : lcpomap["TRP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7623 16 : lcpomap["TRP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7624 16 : lcpomap["TRP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7625 16 : lcpomap["TRP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7626 16 : lcpomap["TRP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7627 16 : lcpomap["TRP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7628 16 : lcpomap["TRP_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7629 16 : lcpomap["TRP_NE1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7630 16 : lcpomap["TRP_CE2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7631 16 : lcpomap["TRP_CZ2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7632 16 : lcpomap["TRP_CH2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7633 16 : lcpomap["TRP_CZ3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7634 16 : lcpomap["TRP_CE3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7635 16 : lcpomap["TRP_CD2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7636 16 : lcpomap["TRP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7637 16 : lcpomap["TRP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7638 16 : lcpomap["TRP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7639 16 : lcpomap["TRP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7640 16 : lcpomap["TRP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7641 :
7642 16 : lcpomap["TYR_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
7643 16 : lcpomap["TYR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7644 16 : lcpomap["TYR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7645 16 : lcpomap["TYR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7646 16 : lcpomap["TYR_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7647 16 : lcpomap["TYR_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7648 16 : lcpomap["TYR_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7649 16 : lcpomap["TYR_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7650 16 : lcpomap["TYR_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7651 16 : lcpomap["TYR_OH"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7652 16 : lcpomap["TYR_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7653 16 : lcpomap["TYR_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7654 16 : lcpomap["TYR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7655 16 : lcpomap["TYR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7656 16 : lcpomap["TYR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7657 16 : lcpomap["TYR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7658 16 : lcpomap["TYR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7659 :
7660 16 : lcpomap["VAL_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
7661 16 : lcpomap["VAL_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7662 16 : lcpomap["VAL_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7663 16 : lcpomap["VAL_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7664 16 : lcpomap["VAL_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7665 16 : lcpomap["VAL_CG1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7666 16 : lcpomap["VAL_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7667 16 : lcpomap["VAL_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7668 16 : lcpomap["VAL_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7669 16 : lcpomap["VAL_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7670 16 : lcpomap["VAL_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7671 16 : lcpomap["VAL_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7672 :
7673 : // nucleic acids - WARNING: ONLY AMBER (OL3-rna/OL15-dna) FORMAT
7674 :
7675 16 : lcpomap["A3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7676 16 : lcpomap["A3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7677 16 : lcpomap["A3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7678 16 : lcpomap["A3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7679 16 : lcpomap["A3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7680 16 : lcpomap["A3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7681 16 : lcpomap["A3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7682 16 : lcpomap["A3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7683 16 : lcpomap["A3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7684 16 : lcpomap["A3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7685 16 : lcpomap["A3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7686 16 : lcpomap["A3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7687 16 : lcpomap["A3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7688 16 : lcpomap["A3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7689 16 : lcpomap["A3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7690 16 : lcpomap["A3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7691 16 : lcpomap["A3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7692 16 : lcpomap["A3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7693 16 : lcpomap["A3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7694 16 : lcpomap["A3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7695 16 : lcpomap["A3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7696 16 : lcpomap["A3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7697 16 : lcpomap["A3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7698 16 : lcpomap["A3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7699 16 : lcpomap["A3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7700 16 : lcpomap["A3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7701 :
7702 16 : lcpomap["A5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7703 16 : lcpomap["A5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7704 16 : lcpomap["A5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7705 16 : lcpomap["A5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7706 16 : lcpomap["A5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7707 16 : lcpomap["A5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7708 16 : lcpomap["A5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7709 16 : lcpomap["A5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7710 16 : lcpomap["A5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7711 16 : lcpomap["A5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7712 16 : lcpomap["A5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7713 16 : lcpomap["A5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7714 16 : lcpomap["A5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7715 16 : lcpomap["A5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7716 16 : lcpomap["A5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7717 16 : lcpomap["A5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7718 16 : lcpomap["A5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7719 16 : lcpomap["A5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7720 16 : lcpomap["A5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7721 16 : lcpomap["A5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7722 16 : lcpomap["A5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7723 16 : lcpomap["A5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7724 16 : lcpomap["A5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7725 16 : lcpomap["A5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7726 :
7727 16 : lcpomap["AT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7728 16 : lcpomap["AT_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7729 16 : lcpomap["AT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7730 16 : lcpomap["AT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7731 16 : lcpomap["AT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7732 16 : lcpomap["AT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7733 16 : lcpomap["AT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7734 16 : lcpomap["AT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7735 16 : lcpomap["AT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7736 16 : lcpomap["AT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7737 16 : lcpomap["AT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7738 16 : lcpomap["AT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7739 16 : lcpomap["AT_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7740 16 : lcpomap["AT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7741 16 : lcpomap["AT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7742 16 : lcpomap["AT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7743 16 : lcpomap["AT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7744 16 : lcpomap["AT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7745 16 : lcpomap["AT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7746 16 : lcpomap["AT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7747 16 : lcpomap["AT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7748 16 : lcpomap["AT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7749 16 : lcpomap["AT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7750 16 : lcpomap["AT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7751 16 : lcpomap["AT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7752 16 : lcpomap["AT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7753 :
7754 16 : lcpomap["A_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7755 16 : lcpomap["A_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7756 16 : lcpomap["A_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7757 16 : lcpomap["A_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7758 16 : lcpomap["A_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7759 16 : lcpomap["A_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7760 16 : lcpomap["A_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7761 16 : lcpomap["A_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7762 16 : lcpomap["A_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7763 16 : lcpomap["A_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7764 16 : lcpomap["A_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7765 16 : lcpomap["A_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7766 16 : lcpomap["A_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7767 16 : lcpomap["A_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7768 16 : lcpomap["A_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7769 16 : lcpomap["A_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7770 16 : lcpomap["A_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7771 16 : lcpomap["A_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7772 16 : lcpomap["A_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7773 16 : lcpomap["A_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7774 16 : lcpomap["A_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7775 16 : lcpomap["A_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7776 16 : lcpomap["A_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7777 16 : lcpomap["A_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7778 16 : lcpomap["A_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7779 16 : lcpomap["A_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7780 :
7781 16 : lcpomap["C3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7782 16 : lcpomap["C3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7783 16 : lcpomap["C3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7784 16 : lcpomap["C3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7785 16 : lcpomap["C3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7786 16 : lcpomap["C3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7787 16 : lcpomap["C3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7788 16 : lcpomap["C3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7789 16 : lcpomap["C3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7790 16 : lcpomap["C3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7791 16 : lcpomap["C3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7792 16 : lcpomap["C3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7793 16 : lcpomap["C3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7794 16 : lcpomap["C3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7795 16 : lcpomap["C3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7796 16 : lcpomap["C3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7797 16 : lcpomap["C3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7798 16 : lcpomap["C3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7799 16 : lcpomap["C3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7800 16 : lcpomap["C3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7801 16 : lcpomap["C3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7802 16 : lcpomap["C3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7803 16 : lcpomap["C3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7804 16 : lcpomap["C3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7805 :
7806 16 : lcpomap["C5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7807 16 : lcpomap["C5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7808 16 : lcpomap["C5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7809 16 : lcpomap["C5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7810 16 : lcpomap["C5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7811 16 : lcpomap["C5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7812 16 : lcpomap["C5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7813 16 : lcpomap["C5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7814 16 : lcpomap["C5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7815 16 : lcpomap["C5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7816 16 : lcpomap["C5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7817 16 : lcpomap["C5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7818 16 : lcpomap["C5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7819 16 : lcpomap["C5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7820 16 : lcpomap["C5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7821 16 : lcpomap["C5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7822 16 : lcpomap["C5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7823 16 : lcpomap["C5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7824 16 : lcpomap["C5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7825 16 : lcpomap["C5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7826 16 : lcpomap["C5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7827 16 : lcpomap["C5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7828 :
7829 16 : lcpomap["CT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7830 16 : lcpomap["CT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7831 16 : lcpomap["CT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7832 16 : lcpomap["CT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7833 16 : lcpomap["CT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7834 16 : lcpomap["CT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7835 16 : lcpomap["CT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7836 16 : lcpomap["CT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7837 16 : lcpomap["CT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7838 16 : lcpomap["CT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7839 16 : lcpomap["CT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7840 16 : lcpomap["CT_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7841 16 : lcpomap["CT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7842 16 : lcpomap["CT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7843 16 : lcpomap["CT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7844 16 : lcpomap["CT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7845 16 : lcpomap["CT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7846 16 : lcpomap["CT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7847 16 : lcpomap["CT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7848 16 : lcpomap["CT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7849 16 : lcpomap["CT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7850 16 : lcpomap["CT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7851 16 : lcpomap["CT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7852 16 : lcpomap["CT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7853 :
7854 16 : lcpomap["C_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7855 16 : lcpomap["C_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7856 16 : lcpomap["C_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7857 16 : lcpomap["C_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7858 16 : lcpomap["C_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7859 16 : lcpomap["C_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7860 16 : lcpomap["C_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7861 16 : lcpomap["C_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7862 16 : lcpomap["C_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7863 16 : lcpomap["C_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7864 16 : lcpomap["C_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7865 16 : lcpomap["C_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7866 16 : lcpomap["C_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7867 16 : lcpomap["C_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7868 16 : lcpomap["C_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7869 16 : lcpomap["C_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7870 16 : lcpomap["C_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7871 16 : lcpomap["C_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7872 16 : lcpomap["C_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7873 16 : lcpomap["C_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7874 16 : lcpomap["C_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7875 16 : lcpomap["C_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7876 16 : lcpomap["C_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7877 16 : lcpomap["C_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7878 :
7879 16 : lcpomap["DA3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7880 16 : lcpomap["DA3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7881 16 : lcpomap["DA3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7882 16 : lcpomap["DA3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7883 16 : lcpomap["DA3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7884 16 : lcpomap["DA3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7885 16 : lcpomap["DA3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7886 16 : lcpomap["DA3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7887 16 : lcpomap["DA3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7888 16 : lcpomap["DA3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7889 16 : lcpomap["DA3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7890 16 : lcpomap["DA3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7891 16 : lcpomap["DA3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7892 16 : lcpomap["DA3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7893 16 : lcpomap["DA3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7894 16 : lcpomap["DA3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7895 16 : lcpomap["DA3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7896 16 : lcpomap["DA3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7897 16 : lcpomap["DA3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7898 16 : lcpomap["DA3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7899 16 : lcpomap["DA3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7900 16 : lcpomap["DA3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7901 16 : lcpomap["DA3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7902 16 : lcpomap["DA3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7903 16 : lcpomap["DA3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7904 :
7905 16 : lcpomap["DA5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7906 16 : lcpomap["DA5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7907 16 : lcpomap["DA5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7908 16 : lcpomap["DA5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7909 16 : lcpomap["DA5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7910 16 : lcpomap["DA5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7911 16 : lcpomap["DA5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7912 16 : lcpomap["DA5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7913 16 : lcpomap["DA5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7914 16 : lcpomap["DA5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7915 16 : lcpomap["DA5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7916 16 : lcpomap["DA5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7917 16 : lcpomap["DA5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7918 16 : lcpomap["DA5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7919 16 : lcpomap["DA5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7920 16 : lcpomap["DA5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7921 16 : lcpomap["DA5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7922 16 : lcpomap["DA5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7923 16 : lcpomap["DA5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7924 16 : lcpomap["DA5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7925 16 : lcpomap["DA5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7926 16 : lcpomap["DA5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7927 16 : lcpomap["DA5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7928 :
7929 16 : lcpomap["DAT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7930 16 : lcpomap["DAT_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7931 16 : lcpomap["DAT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7932 16 : lcpomap["DAT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7933 16 : lcpomap["DAT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7934 16 : lcpomap["DAT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7935 16 : lcpomap["DAT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7936 16 : lcpomap["DAT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7937 16 : lcpomap["DAT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7938 16 : lcpomap["DAT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7939 16 : lcpomap["DAT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7940 16 : lcpomap["DAT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7941 16 : lcpomap["DAT_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7942 16 : lcpomap["DAT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7943 16 : lcpomap["DAT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7944 16 : lcpomap["DAT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7945 16 : lcpomap["DAT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7946 16 : lcpomap["DAT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7947 16 : lcpomap["DAT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7948 16 : lcpomap["DAT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7949 16 : lcpomap["DAT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7950 16 : lcpomap["DAT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7951 16 : lcpomap["DAT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7952 16 : lcpomap["DAT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7953 16 : lcpomap["DAT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7954 :
7955 16 : lcpomap["DA_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7956 16 : lcpomap["DA_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7957 16 : lcpomap["DA_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7958 16 : lcpomap["DA_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7959 16 : lcpomap["DA_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7960 16 : lcpomap["DA_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7961 16 : lcpomap["DA_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7962 16 : lcpomap["DA_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7963 16 : lcpomap["DA_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7964 16 : lcpomap["DA_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7965 16 : lcpomap["DA_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7966 16 : lcpomap["DA_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7967 16 : lcpomap["DA_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7968 16 : lcpomap["DA_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7969 16 : lcpomap["DA_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7970 16 : lcpomap["DA_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7971 16 : lcpomap["DA_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7972 16 : lcpomap["DA_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7973 16 : lcpomap["DA_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7974 16 : lcpomap["DA_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7975 16 : lcpomap["DA_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7976 16 : lcpomap["DA_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7977 16 : lcpomap["DA_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7978 16 : lcpomap["DA_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7979 16 : lcpomap["DA_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7980 :
7981 16 : lcpomap["DC3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7982 16 : lcpomap["DC3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7983 16 : lcpomap["DC3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7984 16 : lcpomap["DC3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7985 16 : lcpomap["DC3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7986 16 : lcpomap["DC3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7987 16 : lcpomap["DC3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7988 16 : lcpomap["DC3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7989 16 : lcpomap["DC3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7990 16 : lcpomap["DC3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7991 16 : lcpomap["DC3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7992 16 : lcpomap["DC3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7993 16 : lcpomap["DC3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7994 16 : lcpomap["DC3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7995 16 : lcpomap["DC3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7996 16 : lcpomap["DC3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7997 16 : lcpomap["DC3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7998 16 : lcpomap["DC3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7999 16 : lcpomap["DC3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8000 16 : lcpomap["DC3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8001 16 : lcpomap["DC3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8002 16 : lcpomap["DC3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8003 16 : lcpomap["DC3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8004 :
8005 16 : lcpomap["DC5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8006 16 : lcpomap["DC5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8007 16 : lcpomap["DC5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8008 16 : lcpomap["DC5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8009 16 : lcpomap["DC5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8010 16 : lcpomap["DC5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8011 16 : lcpomap["DC5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8012 16 : lcpomap["DC5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8013 16 : lcpomap["DC5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8014 16 : lcpomap["DC5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8015 16 : lcpomap["DC5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8016 16 : lcpomap["DC5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8017 16 : lcpomap["DC5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8018 16 : lcpomap["DC5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8019 16 : lcpomap["DC5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8020 16 : lcpomap["DC5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8021 16 : lcpomap["DC5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8022 16 : lcpomap["DC5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8023 16 : lcpomap["DC5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8024 16 : lcpomap["DC5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8025 16 : lcpomap["DC5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8026 :
8027 16 : lcpomap["DCT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8028 16 : lcpomap["DCT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8029 16 : lcpomap["DCT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8030 16 : lcpomap["DCT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8031 16 : lcpomap["DCT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
8032 16 : lcpomap["DCT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8033 16 : lcpomap["DCT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8034 16 : lcpomap["DCT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8035 16 : lcpomap["DCT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8036 16 : lcpomap["DCT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
8037 16 : lcpomap["DCT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8038 16 : lcpomap["DCT_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8039 16 : lcpomap["DCT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8040 16 : lcpomap["DCT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8041 16 : lcpomap["DCT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8042 16 : lcpomap["DCT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8043 16 : lcpomap["DCT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8044 16 : lcpomap["DCT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8045 16 : lcpomap["DCT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8046 16 : lcpomap["DCT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8047 16 : lcpomap["DCT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8048 16 : lcpomap["DCT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8049 16 : lcpomap["DCT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8050 :
8051 16 : lcpomap["DC_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8052 16 : lcpomap["DC_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8053 16 : lcpomap["DC_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8054 16 : lcpomap["DC_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8055 16 : lcpomap["DC_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8056 16 : lcpomap["DC_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8057 16 : lcpomap["DC_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8058 16 : lcpomap["DC_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8059 16 : lcpomap["DC_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8060 16 : lcpomap["DC_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8061 16 : lcpomap["DC_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8062 16 : lcpomap["DC_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8063 16 : lcpomap["DC_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8064 16 : lcpomap["DC_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8065 16 : lcpomap["DC_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8066 16 : lcpomap["DC_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8067 16 : lcpomap["DC_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8068 16 : lcpomap["DC_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8069 16 : lcpomap["DC_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8070 16 : lcpomap["DC_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8071 16 : lcpomap["DC_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8072 16 : lcpomap["DC_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8073 16 : lcpomap["DC_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8074 :
8075 16 : lcpomap["DG3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8076 16 : lcpomap["DG3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8077 16 : lcpomap["DG3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8078 16 : lcpomap["DG3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8079 16 : lcpomap["DG3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8080 16 : lcpomap["DG3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8081 16 : lcpomap["DG3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8082 16 : lcpomap["DG3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8083 16 : lcpomap["DG3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8084 16 : lcpomap["DG3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8085 16 : lcpomap["DG3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8086 16 : lcpomap["DG3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8087 16 : lcpomap["DG3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8088 16 : lcpomap["DG3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8089 16 : lcpomap["DG3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8090 16 : lcpomap["DG3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8091 16 : lcpomap["DG3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8092 16 : lcpomap["DG3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8093 16 : lcpomap["DG3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8094 16 : lcpomap["DG3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8095 16 : lcpomap["DG3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8096 16 : lcpomap["DG3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8097 16 : lcpomap["DG3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8098 16 : lcpomap["DG3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8099 16 : lcpomap["DG3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8100 16 : lcpomap["DG3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8101 :
8102 16 : lcpomap["DG5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8103 16 : lcpomap["DG5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8104 16 : lcpomap["DG5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8105 16 : lcpomap["DG5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8106 16 : lcpomap["DG5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8107 16 : lcpomap["DG5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8108 16 : lcpomap["DG5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8109 16 : lcpomap["DG5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8110 16 : lcpomap["DG5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8111 16 : lcpomap["DG5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8112 16 : lcpomap["DG5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8113 16 : lcpomap["DG5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8114 16 : lcpomap["DG5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8115 16 : lcpomap["DG5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8116 16 : lcpomap["DG5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8117 16 : lcpomap["DG5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8118 16 : lcpomap["DG5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8119 16 : lcpomap["DG5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8120 16 : lcpomap["DG5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8121 16 : lcpomap["DG5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8122 16 : lcpomap["DG5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8123 16 : lcpomap["DG5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8124 16 : lcpomap["DG5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8125 16 : lcpomap["DG5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8126 :
8127 16 : lcpomap["DGT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8128 16 : lcpomap["DGT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8129 16 : lcpomap["DGT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8130 16 : lcpomap["DGT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8131 16 : lcpomap["DGT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8132 16 : lcpomap["DGT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8133 16 : lcpomap["DGT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8134 16 : lcpomap["DGT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8135 16 : lcpomap["DGT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8136 16 : lcpomap["DGT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8137 16 : lcpomap["DGT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8138 16 : lcpomap["DGT_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8139 16 : lcpomap["DGT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8140 16 : lcpomap["DGT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8141 16 : lcpomap["DGT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8142 16 : lcpomap["DGT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8143 16 : lcpomap["DGT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8144 16 : lcpomap["DGT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8145 16 : lcpomap["DGT_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8146 16 : lcpomap["DGT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8147 16 : lcpomap["DGT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8148 16 : lcpomap["DGT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8149 16 : lcpomap["DGT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8150 16 : lcpomap["DGT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8151 16 : lcpomap["DGT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8152 16 : lcpomap["DGT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8153 :
8154 16 : lcpomap["DG_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8155 16 : lcpomap["DG_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8156 16 : lcpomap["DG_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8157 16 : lcpomap["DG_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8158 16 : lcpomap["DG_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8159 16 : lcpomap["DG_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8160 16 : lcpomap["DG_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8161 16 : lcpomap["DG_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8162 16 : lcpomap["DG_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8163 16 : lcpomap["DG_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8164 16 : lcpomap["DG_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8165 16 : lcpomap["DG_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8166 16 : lcpomap["DG_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8167 16 : lcpomap["DG_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8168 16 : lcpomap["DG_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8169 16 : lcpomap["DG_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8170 16 : lcpomap["DG_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8171 16 : lcpomap["DG_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8172 16 : lcpomap["DG_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8173 16 : lcpomap["DG_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8174 16 : lcpomap["DG_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8175 16 : lcpomap["DG_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8176 16 : lcpomap["DG_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8177 16 : lcpomap["DG_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8178 16 : lcpomap["DG_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8179 16 : lcpomap["DG_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8180 :
8181 16 : lcpomap["DT3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8182 16 : lcpomap["DT3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8183 16 : lcpomap["DT3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8184 16 : lcpomap["DT3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8185 16 : lcpomap["DT3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8186 16 : lcpomap["DT3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8187 16 : lcpomap["DT3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8188 16 : lcpomap["DT3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8189 16 : lcpomap["DT3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8190 16 : lcpomap["DT3_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8191 16 : lcpomap["DT3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8192 16 : lcpomap["DT3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8193 16 : lcpomap["DT3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8194 16 : lcpomap["DT3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8195 16 : lcpomap["DT3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8196 16 : lcpomap["DT3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8197 16 : lcpomap["DT3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8198 16 : lcpomap["DT3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8199 16 : lcpomap["DT3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8200 16 : lcpomap["DT3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8201 16 : lcpomap["DT3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8202 16 : lcpomap["DT3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8203 16 : lcpomap["DT3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8204 16 : lcpomap["DT3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8205 :
8206 16 : lcpomap["DT5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8207 16 : lcpomap["DT5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8208 16 : lcpomap["DT5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8209 16 : lcpomap["DT5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8210 16 : lcpomap["DT5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8211 16 : lcpomap["DT5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8212 16 : lcpomap["DT5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8213 16 : lcpomap["DT5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8214 16 : lcpomap["DT5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8215 16 : lcpomap["DT5_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8216 16 : lcpomap["DT5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8217 16 : lcpomap["DT5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8218 16 : lcpomap["DT5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8219 16 : lcpomap["DT5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8220 16 : lcpomap["DT5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8221 16 : lcpomap["DT5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8222 16 : lcpomap["DT5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8223 16 : lcpomap["DT5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8224 16 : lcpomap["DT5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8225 16 : lcpomap["DT5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8226 16 : lcpomap["DT5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8227 16 : lcpomap["DT5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8228 :
8229 16 : lcpomap["DTT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8230 16 : lcpomap["DTT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8231 16 : lcpomap["DTT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8232 16 : lcpomap["DTT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8233 16 : lcpomap["DTT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8234 16 : lcpomap["DTT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8235 16 : lcpomap["DTT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8236 16 : lcpomap["DTT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8237 16 : lcpomap["DTT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8238 16 : lcpomap["DTT_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8239 16 : lcpomap["DTT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8240 16 : lcpomap["DTT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8241 16 : lcpomap["DTT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8242 16 : lcpomap["DTT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8243 16 : lcpomap["DTT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8244 16 : lcpomap["DTT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8245 16 : lcpomap["DTT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8246 16 : lcpomap["DTT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8247 16 : lcpomap["DTT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8248 16 : lcpomap["DTT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8249 16 : lcpomap["DTT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8250 16 : lcpomap["DTT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8251 16 : lcpomap["DTT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8252 16 : lcpomap["DTT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8253 :
8254 16 : lcpomap["DT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8255 16 : lcpomap["DT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8256 16 : lcpomap["DT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8257 16 : lcpomap["DT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8258 16 : lcpomap["DT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8259 16 : lcpomap["DT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8260 16 : lcpomap["DT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8261 16 : lcpomap["DT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8262 16 : lcpomap["DT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8263 16 : lcpomap["DT_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
8264 16 : lcpomap["DT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8265 16 : lcpomap["DT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8266 16 : lcpomap["DT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8267 16 : lcpomap["DT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8268 16 : lcpomap["DT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8269 16 : lcpomap["DT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8270 16 : lcpomap["DT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8271 16 : lcpomap["DT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8272 16 : lcpomap["DT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8273 16 : lcpomap["DT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8274 16 : lcpomap["DT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8275 16 : lcpomap["DT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8276 16 : lcpomap["DT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8277 16 : lcpomap["DT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8278 :
8279 16 : lcpomap["G3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8280 16 : lcpomap["G3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8281 16 : lcpomap["G3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8282 16 : lcpomap["G3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8283 16 : lcpomap["G3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8284 16 : lcpomap["G3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8285 16 : lcpomap["G3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8286 16 : lcpomap["G3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8287 16 : lcpomap["G3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8288 16 : lcpomap["G3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8289 16 : lcpomap["G3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8290 16 : lcpomap["G3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8291 16 : lcpomap["G3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8292 16 : lcpomap["G3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8293 16 : lcpomap["G3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8294 16 : lcpomap["G3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8295 16 : lcpomap["G3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8296 16 : lcpomap["G3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8297 16 : lcpomap["G3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8298 16 : lcpomap["G3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8299 16 : lcpomap["G3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8300 16 : lcpomap["G3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8301 16 : lcpomap["G3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8302 16 : lcpomap["G3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8303 16 : lcpomap["G3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8304 16 : lcpomap["G3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8305 16 : lcpomap["G3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8306 :
8307 16 : lcpomap["G5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8308 16 : lcpomap["G5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8309 16 : lcpomap["G5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8310 16 : lcpomap["G5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8311 16 : lcpomap["G5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8312 16 : lcpomap["G5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8313 16 : lcpomap["G5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8314 16 : lcpomap["G5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8315 16 : lcpomap["G5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8316 16 : lcpomap["G5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8317 16 : lcpomap["G5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8318 16 : lcpomap["G5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8319 16 : lcpomap["G5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8320 16 : lcpomap["G5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8321 16 : lcpomap["G5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8322 16 : lcpomap["G5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8323 16 : lcpomap["G5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8324 16 : lcpomap["G5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8325 16 : lcpomap["G5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8326 16 : lcpomap["G5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8327 16 : lcpomap["G5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8328 16 : lcpomap["G5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8329 16 : lcpomap["G5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8330 16 : lcpomap["G5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8331 16 : lcpomap["G5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8332 :
8333 16 : lcpomap["GT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8334 16 : lcpomap["GT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8335 16 : lcpomap["GT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8336 16 : lcpomap["GT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8337 16 : lcpomap["GT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8338 16 : lcpomap["GT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8339 16 : lcpomap["GT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8340 16 : lcpomap["GT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8341 16 : lcpomap["GT_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8342 16 : lcpomap["GT_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8343 16 : lcpomap["GT_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8344 16 : lcpomap["GT_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8345 16 : lcpomap["GT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8346 16 : lcpomap["GT_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8347 16 : lcpomap["GT_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8348 16 : lcpomap["GT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8349 16 : lcpomap["GT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8350 16 : lcpomap["GT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8351 16 : lcpomap["GT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8352 16 : lcpomap["GT_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8353 16 : lcpomap["GT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8354 16 : lcpomap["GT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8355 16 : lcpomap["GT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8356 16 : lcpomap["GT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8357 16 : lcpomap["GT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8358 16 : lcpomap["GT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8359 16 : lcpomap["GT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8360 :
8361 16 : lcpomap["G_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8362 16 : lcpomap["G_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8363 16 : lcpomap["G_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8364 16 : lcpomap["G_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8365 16 : lcpomap["G_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8366 16 : lcpomap["G_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8367 16 : lcpomap["G_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8368 16 : lcpomap["G_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8369 16 : lcpomap["G_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8370 16 : lcpomap["G_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8371 16 : lcpomap["G_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8372 16 : lcpomap["G_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
8373 16 : lcpomap["G_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8374 16 : lcpomap["G_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8375 16 : lcpomap["G_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8376 16 : lcpomap["G_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8377 16 : lcpomap["G_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8378 16 : lcpomap["G_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8379 16 : lcpomap["G_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8380 16 : lcpomap["G_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8381 16 : lcpomap["G_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8382 16 : lcpomap["G_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8383 16 : lcpomap["G_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8384 16 : lcpomap["G_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8385 16 : lcpomap["G_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8386 16 : lcpomap["G_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8387 16 : lcpomap["G_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8388 :
8389 16 : lcpomap["U3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8390 16 : lcpomap["U3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8391 16 : lcpomap["U3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8392 16 : lcpomap["U3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8393 16 : lcpomap["U3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8394 16 : lcpomap["U3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8395 16 : lcpomap["U3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8396 16 : lcpomap["U3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8397 16 : lcpomap["U3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8398 16 : lcpomap["U3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8399 16 : lcpomap["U3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8400 16 : lcpomap["U3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8401 16 : lcpomap["U3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8402 16 : lcpomap["U3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8403 16 : lcpomap["U3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8404 16 : lcpomap["U3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8405 16 : lcpomap["U3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8406 16 : lcpomap["U3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8407 16 : lcpomap["U3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8408 16 : lcpomap["U3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8409 16 : lcpomap["U3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8410 16 : lcpomap["U3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8411 16 : lcpomap["U3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8412 16 : lcpomap["U3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8413 :
8414 16 : lcpomap["U5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8415 16 : lcpomap["U5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8416 16 : lcpomap["U5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8417 16 : lcpomap["U5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8418 16 : lcpomap["U5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8419 16 : lcpomap["U5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8420 16 : lcpomap["U5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8421 16 : lcpomap["U5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8422 16 : lcpomap["U5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8423 16 : lcpomap["U5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8424 16 : lcpomap["U5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8425 16 : lcpomap["U5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8426 16 : lcpomap["U5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8427 16 : lcpomap["U5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8428 16 : lcpomap["U5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8429 16 : lcpomap["U5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8430 16 : lcpomap["U5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8431 16 : lcpomap["U5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8432 16 : lcpomap["U5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8433 16 : lcpomap["U5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8434 16 : lcpomap["U5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8435 16 : lcpomap["U5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8436 :
8437 16 : lcpomap["UT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8438 16 : lcpomap["UT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8439 16 : lcpomap["UT_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8440 16 : lcpomap["UT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8441 16 : lcpomap["UT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8442 16 : lcpomap["UT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8443 16 : lcpomap["UT_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8444 16 : lcpomap["UT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8445 16 : lcpomap["UT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8446 16 : lcpomap["UT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8447 16 : lcpomap["UT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8448 16 : lcpomap["UT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8449 16 : lcpomap["UT_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8450 16 : lcpomap["UT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8451 16 : lcpomap["UT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8452 16 : lcpomap["UT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8453 16 : lcpomap["UT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8454 16 : lcpomap["UT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8455 16 : lcpomap["UT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8456 16 : lcpomap["UT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8457 16 : lcpomap["UT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8458 16 : lcpomap["UT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8459 16 : lcpomap["UT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8460 16 : lcpomap["UT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8461 :
8462 16 : lcpomap["U_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8463 16 : lcpomap["U_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8464 16 : lcpomap["U_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8465 16 : lcpomap["U_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8466 16 : lcpomap["U_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
8467 16 : lcpomap["U_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
8468 16 : lcpomap["U_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8469 16 : lcpomap["U_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
8470 16 : lcpomap["U_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
8471 16 : lcpomap["U_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
8472 16 : lcpomap["U_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
8473 16 : lcpomap["U_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8474 16 : lcpomap["U_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8475 16 : lcpomap["U_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8476 16 : lcpomap["U_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
8477 16 : lcpomap["U_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8478 16 : lcpomap["U_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
8479 16 : lcpomap["U_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8480 16 : lcpomap["U_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8481 16 : lcpomap["U_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8482 16 : lcpomap["U_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
8483 16 : lcpomap["U_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8484 16 : lcpomap["U_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
8485 16 : lcpomap["U_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
8486 :
8487 16 : return lcpomap;
8488 : }
8489 :
8490 : // assigns LCPO parameters to each atom reading from database
8491 16 : void SAXS::readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms)
8492 : {
8493 16 : std::map<std::string, std::vector<double> > lcpomap = setupLCPOparam();
8494 :
8495 56602 : for(unsigned i=0; i<natoms; ++i)
8496 : {
8497 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'))) {
8498 26526 : std::string identifier = AtomResidueName[1][i]+"_"+AtomResidueName[0][i];
8499 26526 : std::vector<double> LCPOparamVector = lcpomap.at(identifier);
8500 : double rs = 0.14;
8501 26526 : LCPOparam[i].push_back(LCPOparamVector[0]+rs*10.);
8502 26526 : LCPOparam[i].push_back(LCPOparamVector[1]);
8503 26526 : LCPOparam[i].push_back(LCPOparamVector[2]);
8504 26526 : LCPOparam[i].push_back(LCPOparamVector[3]);
8505 26526 : LCPOparam[i].push_back(LCPOparamVector[4]);
8506 : }
8507 : }
8508 :
8509 56602 : for(unsigned i=0; i<natoms; ++i) {
8510 56586 : if (LCPOparam[i].size()==0 ) {
8511 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')) {
8512 0 : std::cout << "Could not find LCPO paramaters for atom " << AtomResidueName[0][i] << " of residue " << AtomResidueName[1][i] << std::endl;
8513 0 : error ("missing LCPO parameters\n");
8514 : }
8515 : }
8516 : }
8517 :
8518 16 : if (AtomResidueName[0][0] == "N") {
8519 16 : LCPOparam[0][1] = 7.3511e-01;
8520 16 : LCPOparam[0][2] = -2.2116e-01;
8521 16 : LCPOparam[0][3] = -8.9148e-04;
8522 16 : LCPOparam[0][4] = 2.5230e-04;
8523 : }
8524 :
8525 16 : if (AtomResidueName[0][natoms-1] == "O") {
8526 0 : LCPOparam[natoms-1][1] = 8.8857e-01;
8527 0 : LCPOparam[natoms-1][2] = -3.3421e-01;
8528 0 : LCPOparam[natoms-1][3] = -1.8683e-03;
8529 0 : LCPOparam[natoms-1][4] = 4.9372e-04;
8530 : }
8531 16 : }
8532 :
8533 4 : void SAXS::resolution_function()
8534 : {
8535 4 : const unsigned numq = q_list.size();
8536 :
8537 : // only OpenMP because numq might be smaller than the number of ranks
8538 4 : #pragma omp parallel for num_threads(OpenMP::getNumThreads())
8539 : for (unsigned i=0; i<numq; i++) {
8540 : double qi = q_list[i];
8541 : double dq = 6*sigma_res[i]/(Nj-1);
8542 : double sigma_sq = sigma_res[i]*sigma_res[i];
8543 : double qstart = qi - 3*sigma_res[i];
8544 : for (unsigned j=0; j<Nj; j++) {
8545 : double qj = qstart + j*dq;
8546 : double I0exp = i0e(qj*qi/sigma_sq);
8547 :
8548 : qj_list[i][j] = qj;
8549 : Rij[i][j] = (qj/sigma_sq)*std::exp(-0.5*(qj - qi)*(qj - qi)/sigma_sq)*I0exp;
8550 : }
8551 : }
8552 4 : }
8553 :
8554 : // i0e function from cephes
8555 : // compute I0(x) * exp (-x), with I0 being the modified Bessel function
8556 : // of first kind and zeroth order.
8557 660 : inline double SAXS::i0e(double x)
8558 : {
8559 : double y = 0.0;
8560 :
8561 660 : if (x < 0)
8562 0 : x = -x;
8563 660 : if (x <= 8.0) {
8564 0 : y = (x/2.0) - 2.0;
8565 0 : return chbevl(y, A);
8566 : }
8567 :
8568 660 : return chbevl(32.0/x - 2.0, B) / sqrt(x);
8569 : }
8570 :
8571 660 : double SAXS::chbevl(double x, const std::vector<double> &coeffs)
8572 : {
8573 : double b0, b1, b2;
8574 660 : unsigned n = coeffs.size();
8575 :
8576 660 : b0 = coeffs[0];
8577 : b1 = 0.0;
8578 : b2 = 0.0;
8579 :
8580 16500 : for (unsigned i = 1; i < n; i++) {
8581 : b2 = b1;
8582 : b1 = b0;
8583 15840 : b0 = x * b1 - b2 + coeffs[i];
8584 : }
8585 660 : return 0.5 * (b0 - b2);
8586 : }
8587 :
8588 134310 : inline double SAXS::interpolation(std::vector<SplineCoeffs> &coeffs, double x)
8589 : {
8590 : unsigned s = 0;
8591 1002034 : while ((x >= q_list[s+1]) && (s+1 < q_list.size()-1)) s++;
8592 :
8593 134310 : double dx = x - coeffs[s].x;
8594 134310 : return coeffs[s].a + coeffs[s].b*dx + coeffs[s].c*dx*dx + coeffs[s].d*dx*dx*dx;
8595 : }
8596 :
8597 : // natural bc cubic spline implementation from the Wikipedia algorithm
8598 : // modified from https://stackoverflow.com/a/19216702/3254658
8599 814 : std::vector<SAXS::SplineCoeffs> SAXS::spline_coeffs(std::vector<double> &x, std::vector<double> &y)
8600 : {
8601 814 : unsigned n = x.size()-1;
8602 : std::vector<double> a;
8603 814 : a.insert(a.begin(), y.begin(), y.end());
8604 814 : std::vector<double> b(n);
8605 814 : std::vector<double> d(n);
8606 : std::vector<double> h;
8607 :
8608 12210 : for(unsigned i=0; i<n; i++)
8609 11396 : h.push_back(x[i+1]-x[i]);
8610 :
8611 : std::vector<double> alpha;
8612 814 : alpha.push_back(0);
8613 11396 : for(unsigned i=1; i<n; i++)
8614 10582 : alpha.push_back( 3*(a[i+1]-a[i])/h[i] - 3*(a[i]-a[i-1])/h[i-1] );
8615 :
8616 814 : std::vector<double> c(n+1);
8617 814 : std::vector<double> l(n+1);
8618 814 : std::vector<double> mu(n+1);
8619 814 : std::vector<double> z(n+1);
8620 814 : l[0] = 1;
8621 814 : mu[0] = 0;
8622 814 : z[0] = 0;
8623 :
8624 11396 : for(unsigned i=1; i<n; i++) {
8625 10582 : l[i] = 2 *(x[i+1]-x[i-1])-h[i-1]*mu[i-1];
8626 10582 : mu[i] = h[i]/l[i];
8627 10582 : z[i] = (alpha[i]-h[i-1]*z[i-1])/l[i];
8628 : }
8629 :
8630 814 : l[n] = 1;
8631 814 : z[n] = 0;
8632 814 : c[n] = 0;
8633 :
8634 12210 : for(int j=n-1; j>=0; j--) {
8635 11396 : c[j] = z[j] - mu[j] * c[j+1];
8636 11396 : b[j] = (a[j+1]-a[j])/h[j]-h[j]*(c[j+1]+2*c[j])/3;
8637 11396 : d[j] = (c[j+1]-c[j])/3/h[j];
8638 : }
8639 :
8640 814 : std::vector<SplineCoeffs> output_set(n);
8641 12210 : for(unsigned i=0; i<n; i++) {
8642 11396 : output_set[i].a = a[i];
8643 11396 : output_set[i].b = b[i];
8644 11396 : output_set[i].c = c[i];
8645 11396 : output_set[i].d = d[i];
8646 11396 : output_set[i].x = x[i];
8647 : }
8648 :
8649 814 : return output_set;
8650 : }
8651 :
8652 :
8653 : }//namespace isdb
8654 : }//namespace PLMD
|