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 : */
29 :
30 : #include "MetainferenceBase.h"
31 : #include "core/ActionRegister.h"
32 : #include "core/ActionSet.h"
33 : #include "core/GenericMolInfo.h"
34 : #include "tools/MolDataClass.h"
35 : #include "tools/Communicator.h"
36 : #include "tools/Pbc.h"
37 : #include "tools/PDB.h"
38 :
39 : #include <map>
40 : #include <iterator>
41 : #include <iostream>
42 : #include <algorithm>
43 : #include <cctype>
44 :
45 : #ifdef __PLUMED_HAS_ARRAYFIRE
46 : #include <arrayfire.h>
47 : #include <af/util.h>
48 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
49 : #include <cuda_runtime.h>
50 : #include <cublas_v2.h>
51 : #include <af/cuda.h>
52 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
53 : #include <af/opencl.h>
54 : #endif
55 : #endif
56 :
57 : #ifndef M_PI
58 : #define M_PI 3.14159265358979323846
59 : #endif
60 :
61 : namespace PLMD {
62 : namespace isdb {
63 :
64 : //+PLUMEDOC ISDB_COLVAR SAXS
65 : /*
66 : Calculates SAXS intensity.
67 :
68 : SAXS intensities are calculated for a set of scattering vectors using QVALUE keywords numbered from 1.
69 : Form factors can be assigned either by polynomial expansion of any order by using the PARAMETERS keywords, or
70 : automatically matched to atoms using the ATOMISTIC flag by reading a PDB file. Alternatively to the atomistic
71 : representation, two types of coarse-grained mapping are available:
72 : - MARTINI.
73 : - ONEBEAD.
74 :
75 : Whether for PARAMETERS, ATOMISTIC, and ONEBEAD the user must provide an all-atom PDB file via MOLINFO before the
76 : SAXS instruction. MARTINI requires a mapping scheme consisting of a PDB file that contains both the all-atom
77 : and MARTINI representations, and a bead position file (e.g., bead1: CENTER ATOMS=1,5,7,11,12 WEIGHTS=14,12,12,
78 : 12,16).
79 :
80 : ONEBEAD scheme consists in a single-bead per amino acid residue or three-bead for nucleic acid residue (one for
81 : the phosphate group, one for the pentose sugar, one for the nucleobase). PLUMED creates a virtual bead on which
82 : the SAXS calculations are performed, centred on the COM of all atoms belonging to the bead. It is possible to
83 : account for the contribution of the solvation layer to the SAXS intensity by adding a correction term for the
84 : solvent accessible beads only: the form factors of the amino acids / phosphate groups / pentose sugars /
85 : nucleobases with a SASA (computed via LCPO algorithm) greater than a threshold are corrected according to an
86 : electron density term. Both the surface cut-off threshold and the electron density term can be set by the user
87 : with the SASA_CUTOFF and SOLVATION_CORRECTION keywords. Moreover, SASA stride calculation can be modified using
88 : SOLVATION_STRIDE, which is set to 100 steps by default.
89 : ONEBEAD requires an additional PDB file to perform mapping conversion, which must be provided via TEMPLATE
90 : keyword. This PDB file should only include the atoms for which the SAXS intensity will be computed.
91 : The AMBER OL3 (RNA) and OL15 (DNA) naming is required for nucleic acids.
92 : Two additional bead types are available for DNA and RNA besides phosphate group, pentose sugar, and nucleobase:
93 : - 5'-end pentose sugar capped with an hydroxyl moiety at C5' (the residue name in the PDB must be followed by
94 : "5", e.g., DC5 or C5 for cytosine in DNA and RNA, respectively);
95 : - 3'-end pentose sugar capped with an hydroxyl moiety at C3' (the residue name in the PDB must be followed by
96 : "3", e.g., DC3 or C3 for cytosine in DNA and RNA, respectively).
97 :
98 : Experimental reference intensities can be added using the EXPINT keywords. All these values must be normalised
99 : to the SAXS intensity at q = 0. To facilitate this operation, the SCALE_EXPINT keyword can be used to provide
100 : the intensity at q = 0. Each EXPINT is divided by SCALE_EXPINT.
101 : The maximum QVALUE for ONEBEAD is set to 0.3 inverse angstroms.
102 : The solvent density, that by default is set to 0.334 electrons per cubic angstrom (bulk water), can be modified
103 : using the SOLVDENS keyword.
104 :
105 : By default SAXS is calculated using Debye on CPU, by adding the GPU flag it is possible to solve the equation on
106 : a GPU if the ARRAYFIRE libraries are installed and correctly linked.
107 : \ref METAINFERENCE can be activated using DOSCORE and the other relevant keywords.
108 :
109 : \par Examples
110 : in the following example the SAXS intensities are calculated using single-bead per residue approximation, with a
111 : SASA threshold of 1 square nanometer and a solvation term of 0.04. Each experimental intensity is divided by
112 : 1.4002, which is the corresponding theoretical intensity value at q = 0. The form factors are selected according
113 : to the PDB file specified by TEMPLATE keyword.
114 :
115 : \plumedfile
116 : MOLINFO STRUCTURE=template_AA.pdb
117 :
118 : SAXS ...
119 : LABEL=SAXS
120 : ATOMS=1-355
121 : ONEBEAD
122 : TEMPLATE=template_AA.pdb
123 : SOLVDENS=0.334
124 : SOLVATION_CORRECTION=0.04
125 : SOLVATION_STRIDE=1
126 : SASA_CUTOFF=1.0
127 : SCALE_EXPINT=1.4002
128 : QVALUE1=0.03 EXPINT1=1.0902
129 : QVALUE2=0.06 EXPINT2=0.790632
130 : QVALUE3=0.09 EXPINT3=0.453808
131 : QVALUE4=0.12 EXPINT4=0.254737
132 : QVALUE5=0.15 EXPINT5=0.154928
133 : QVALUE6=0.18 EXPINT6=0.0921503
134 : QVALUE7=0.21 EXPINT7=0.052633
135 : QVALUE8=0.24 EXPINT8=0.0276557
136 : QVALUE9=0.27 EXPINT9=0.0122775
137 : QVALUE10=0.30 EXPINT10=0.00880634
138 : ... SAXS
139 :
140 : PRINT ARG=(SAXS\.q-.*),(SAXS\.exp-.*) FILE=saxsdata STRIDE=1
141 :
142 : \endplumedfile
143 :
144 : */
145 : //+ENDPLUMEDOC
146 :
147 : //+PLUMEDOC ISDB_COLVAR SANS
148 : /*
149 : Calculates SANS intensity.
150 :
151 : SANS intensities are calculated for a set of scattering vectors using QVALUE keywords numbered from 1.
152 : Form factors are automatically assigned to atoms using the ATOMISTIC flag by reading a PDB file or, alternatively,
153 : a ONEBEAD coarse-grained implementation is available.
154 :
155 : Both for ATOMISTIC and ONEBEAD the user must provide an all-atom PDB file via MOLINFO before the SANS instruction.
156 :
157 : ONEBEAD scheme consists in a single-bead per amino acid residue or three-bead for nucleic acid residue (one for
158 : the phosphate group, one for the pentose sugar, one for the nucleobase). PLUMED creates a virtual bead on which
159 : the SANS calculations are performed, centred on the COM of all atoms belonging to the bead. It is possible to
160 : account for the contribution of the solvation layer to the SAXS intensity by adding a correction term for the
161 : solvent accessible beads only: the form factors of the amino acids / phosphate groups / pentose sugars /
162 : nucleobases with a SASA (computed via LCPO algorithm) greater than a threshold are corrected according to an
163 : electron density term. Both the surface cut-off threshold and the electron density term can be set by the user
164 : with the SASA_CUTOFF and SOLVATION_CORRECTION keywords. Moreover, SASA stride calculation can be modified using
165 : SOLVATION_STRIDE, which is set to 100 steps by default. The deuteration of the solvent-exposed residues is chosen
166 : with a probability equal to the deuterium concentration in the buffer. The deuterated residues are updated with a
167 : stride equal to SOLVATION_STRIDE. The fraction of deuterated water can be set with DEUTER_CONC, the default value
168 : is 0.
169 : ONEBEAD requires an additional PDB file to perform mapping conversion, which must be provided via TEMPLATE
170 : keyword. This PDB file should only include the atoms for which the SANS intensity will be computed.
171 : The AMBER OL3 (RNA) and OL15 (DNA) naming is required for nucleic acids.
172 : Two additional bead types are available for DNA and RNA besides phosphate group, pentose sugar, and nucleobase:
173 : - 5'-end pentose sugar capped with an hydroxyl moiety at C5' (the residue name in the PDB must be followed by "5",
174 : e.g., DC5 or C5 for cytosine in DNA and RNA, respectively);
175 : - 3'-end pentose sugar capped with an hydroxyl moiety at C3' (the residue name in the PDB must be followed by "3",
176 : e.g., DC3 or C3 for cytosine in DNA and RNA, respectively).
177 :
178 : PLEASE NOTE: at the moment, we DO NOT explicitly take into account deuterated residues in the ATOMISTIC
179 : representation, but we correct the solvent contribution via the DEUTER_CONC keyword.
180 :
181 : Experimental reference intensities can be added using the EXPINT keywords. All these values must be normalised
182 : to the SANS intensity at q = 0. To facilitate this operation, the SCALE_EXPINT keyword can be used to provide
183 : the intensity at q = 0. Each EXPINT is divided by SCALE_EXPINT.
184 : The maximum QVALUE for ONEBEAD is set to 0.3 inverse angstroms.
185 : The solvent density, that by default is set to 0.334 electrons per cubic angstrom (bulk water), can be modified
186 : using the SOLVDENS keyword.
187 :
188 : By default SANS is calculated using Debye on CPU, by adding the GPU flag it is possible to solve the equation on a
189 : GPU if the ARRAYFIRE libraries are installed and correctly linked.
190 : \ref METAINFERENCE can be activated using DOSCORE and the other relevant keywords.
191 :
192 : \par Examples
193 : in the following example the SANS intensities are calculated at atomistic resolution. The form factors are assigned
194 : according to the PDB file specified in the MOLINFO. Each experimental intensity is divided by 1.4002, which is the
195 : corresponding theoretical intensity value at q = 0. The deuterated water fraction is set to 48%.
196 :
197 : \plumedfile
198 : MOLINFO STRUCTURE=template_AA.pdb
199 :
200 : SANS ...
201 : LABEL=SANS
202 : ATOMS=1-355
203 : ATOMISTIC
204 : SCALE_EXPINT=1.4002
205 : DEUTER_CONC=0.48
206 : QVALUE1=0.03 EXPINT1=1.0902
207 : QVALUE2=0.06 EXPINT2=0.790632
208 : QVALUE3=0.09 EXPINT3=0.453808
209 : QVALUE4=0.12 EXPINT4=0.254737
210 : QVALUE5=0.15 EXPINT5=0.154928
211 : QVALUE6=0.18 EXPINT6=0.0921503
212 : QVALUE7=0.21 EXPINT7=0.052633
213 : QVALUE8=0.24 EXPINT8=0.0276557
214 : QVALUE9=0.27 EXPINT9=0.0122775
215 : QVALUE10=0.30 EXPINT10=0.00880634
216 : ... SANS
217 :
218 : PRINT ARG=(SANS\.q-.*),(SANS\.exp-.*) FILE=sansdata STRIDE=1
219 :
220 : \endplumedfile
221 :
222 : */
223 : //+ENDPLUMEDOC
224 :
225 : class SAXS :
226 : public MetainferenceBase {
227 : private:
228 : enum { H, C, N, O, P, S, NTT };
229 : enum { ALA_BB, ARG_BB, ARG_SC1, ARG_SC2, ASN_BB, ASN_SC1, ASP_BB, ASP_SC1, CYS_BB, CYS_SC1,
230 : GLN_BB, GLN_SC1, GLU_BB, GLU_SC1, GLY_BB, HIS_BB, HIS_SC1, HIS_SC2, HIS_SC3, ILE_BB,
231 : ILE_SC1, LEU_BB, LEU_SC1, LYS_BB, LYS_SC1, LYS_SC2, MET_BB, MET_SC1, PHE_BB, PHE_SC1,
232 : PHE_SC2, PHE_SC3, PRO_BB, PRO_SC1, SER_BB, SER_SC1, THR_BB, THR_SC1, TRP_BB, TRP_SC1,
233 : TRP_SC2, TRP_SC3, TRP_SC4, TYR_BB, TYR_SC1, TYR_SC2, TYR_SC3, VAL_BB, VAL_SC1, A_BB1,
234 : A_BB2, A_BB3, A_SC1, A_SC2, A_SC3, A_SC4, A_3TE, A_5TE, A_TE3, A_TE5, C_BB1, C_BB2,
235 : C_BB3, C_SC1, C_SC2, C_SC3, C_3TE, C_5TE, C_TE3, C_TE5, G_BB1, G_BB2, G_BB3, G_SC1,
236 : G_SC2, G_SC3, G_SC4, G_3TE, G_5TE, G_TE3, G_TE5, U_BB1, U_BB2, U_BB3, U_SC1, U_SC2,
237 : U_SC3, U_3TE, U_5TE, U_TE3, U_TE5, DA_BB1, DA_BB2, DA_BB3, DA_SC1, DA_SC2, DA_SC3,
238 : DA_SC4, DA_3TE, DA_5TE, DA_TE3, DA_TE5, DC_BB1, DC_BB2, DC_BB3, DC_SC1, DC_SC2, DC_SC3,
239 : DC_3TE, DC_5TE, DC_TE3, DC_TE5, DG_BB1, DG_BB2, DG_BB3, DG_SC1, DG_SC2, DG_SC3, DG_SC4,
240 : DG_3TE, DG_5TE, DG_TE3, DG_TE5, DT_BB1, DT_BB2, DT_BB3, DT_SC1, DT_SC2, DT_SC3, DT_3TE,
241 : DT_5TE, DT_TE3, DT_TE5, NMARTINI
242 : };
243 : enum { TRP, TYR, PHE, HIS, HIP, ARG, LYS, CYS, ASP, GLU, ILE, LEU, MET, ASN, PRO, GLN, SER, THR, VAL, ALA, GLY,
244 : BASE_A, BASE_C, BASE_T, BASE_G, BASE_U,
245 : BB_DNA, BB_DNA_5, BB_DNA_3,
246 : BB_RNA, BB_RNA_5, BB_RNA_3,
247 : BB_PO2,
248 : NONEBEAD
249 : };
250 : bool saxs;
251 : bool pbc;
252 : bool serial;
253 : bool gpu;
254 : bool onebead;
255 : bool isFirstStep;
256 : int deviceid;
257 : unsigned nres;
258 : std::vector<unsigned> atoi;
259 : std::vector<unsigned> atoms_per_bead;
260 : std::vector<double> atoms_masses;
261 : std::vector<double> q_list;
262 : std::vector<double> FF_rank;
263 : std::vector<std::vector<double> > FF_value_vacuum;
264 : std::vector<std::vector<double> > FF_value_solv;
265 : std::vector<std::vector<double> > FF_value_mixed;
266 : std::vector<std::vector<double> > FF_value;
267 : std::vector<std::vector<float> > FFf_value;
268 : // SANS:
269 : std::vector<std::vector<double> > FF_value_vacuum_H;
270 : std::vector<std::vector<double> > FF_value_solv_H;
271 : std::vector<std::vector<double> > FF_value_mixed_H;
272 : std::vector<std::vector<double> > FF_value_vacuum_D;
273 : std::vector<std::vector<double> > FF_value_mixed_D;
274 :
275 : std::vector<std::vector<double> > LCPOparam;
276 : std::vector<unsigned> residue_atom;
277 :
278 : double rho, rho_corr, sasa_cutoff;
279 : double deuter_conc;
280 : unsigned solv_stride;
281 : std::vector<double> Iq0_vac;
282 : std::vector<double> Iq0_solv;
283 : std::vector<double> Iq0_mix;
284 : double Iq0;
285 :
286 : // SANS:
287 : std::vector<double> Iq0_vac_H;
288 : std::vector<double> Iq0_solv_H;
289 : std::vector<double> Iq0_mix_H;
290 : std::vector<double> Iq0_vac_D;
291 : std::vector<double> Iq0_mix_D;
292 :
293 : void calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
294 : void calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv);
295 : void getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter);
296 : 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, std::vector<unsigned> residue_atom);
297 : unsigned getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms);
298 : double calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho);
299 : std::map<std::string, std::vector<double> > setupLCPOparam();
300 : void readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms);
301 : void calcNlist(std::vector<std::vector<int> > &Nlist);
302 : void sasa_calculate(std::vector<bool> &solv_res);
303 : // SANS:
304 : 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);
305 : 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);
306 : double calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc);
307 :
308 : public:
309 : static void registerKeywords( Keywords& keys );
310 : explicit SAXS(const ActionOptions&);
311 : void calculate() override;
312 : void update() override;
313 : };
314 :
315 13829 : PLUMED_REGISTER_ACTION(SAXS,"SAXS")
316 13797 : PLUMED_REGISTER_ACTION(SAXS,"SANS")
317 :
318 36 : void SAXS::registerKeywords(Keywords& keys) {
319 36 : componentsAreNotOptional(keys);
320 36 : MetainferenceBase::registerKeywords(keys);
321 72 : keys.addFlag("NOPBC",false,"ignore the periodic boundary conditions when calculating distances");
322 72 : keys.addFlag("SERIAL",false,"Perform the calculation in serial - for debug purpose");
323 72 : keys.add("compulsory","DEVICEID","-1","Identifier of the GPU to be used");
324 72 : keys.addFlag("GPU",false,"calculate SAXS using ARRAYFIRE on an accelerator device");
325 72 : keys.addFlag("ATOMISTIC",false,"calculate SAXS for an atomistic model");
326 72 : keys.addFlag("MARTINI",false,"calculate SAXS for a Martini model");
327 72 : keys.addFlag("ONEBEAD",false,"calculate SAXS for a single bead model");
328 72 : keys.add("compulsory","TEMPLATE","template.pdb","A PDB file is required for ONEBEAD mapping");
329 72 : keys.add("atoms","ATOMS","The atoms to be included in the calculation, e.g. the whole protein");
330 72 : keys.add("numbered","QVALUE","Selected scattering lengths in inverse angstroms are given as QVALUE1, QVALUE2, ...");
331 72 : 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");
332 72 : keys.add("compulsory","DEUTER_CONC","0.","Fraction of deuterated solvent");
333 72 : keys.add("compulsory","SOLVDENS","0.334","Density of the solvent to be used for the correction of atomistic form factors");
334 72 : keys.add("compulsory","SOLVATION_CORRECTION","0.0","Hydration layer electron density correction (ONEBEAD only)");
335 72 : keys.add("compulsory","SASA_CUTOFF","1.0","SASA value to consider a residue as exposed to the solvent (ONEBEAD only)");
336 72 : keys.add("numbered","EXPINT","Add an experimental value for each q value");
337 72 : keys.add("compulsory","SOLVATION_STRIDE","100","Number of steps between every new residues solvation estimation via LCPO (ONEBEAD only)");
338 72 : keys.add("compulsory","SCALE_EXPINT","1.0","Scaling value for experimental data normalization");
339 72 : keys.addOutputComponent("q","default","the # SAXS of q");
340 72 : keys.addOutputComponent("exp","EXPINT","the # experimental intensity");
341 36 : }
342 :
343 28 : SAXS::SAXS(const ActionOptions&ao):
344 : PLUMED_METAINF_INIT(ao),
345 28 : saxs(true),
346 28 : pbc(true),
347 28 : serial(false),
348 28 : gpu(false),
349 28 : onebead(false),
350 28 : isFirstStep(true),
351 28 : deviceid(-1) {
352 28 : if( getName().find("SAXS")!=std::string::npos) {
353 22 : saxs=true;
354 6 : } else if( getName().find("SANS")!=std::string::npos) {
355 6 : saxs=false;
356 : }
357 :
358 : std::vector<AtomNumber> atoms;
359 56 : parseAtomList("ATOMS",atoms);
360 28 : unsigned size = atoms.size();
361 :
362 28 : parseFlag("SERIAL",serial);
363 :
364 28 : bool nopbc=!pbc;
365 28 : parseFlag("NOPBC",nopbc);
366 28 : pbc=!nopbc;
367 28 : if(pbc) {
368 12 : log.printf(" using periodic boundary conditions\n");
369 : } else {
370 16 : log.printf(" without periodic boundary conditions\n");
371 : }
372 :
373 28 : parseFlag("GPU",gpu);
374 : #ifndef __PLUMED_HAS_ARRAYFIRE
375 28 : if(gpu) {
376 0 : error("To use the GPU mode PLUMED must be compiled with ARRAYFIRE");
377 : }
378 : #endif
379 :
380 28 : parse("DEVICEID",deviceid);
381 : #ifdef __PLUMED_HAS_ARRAYFIRE
382 : if(gpu&&comm.Get_rank()==0) {
383 : // if not set try to check the one set by the API
384 : if(deviceid==-1) {
385 : deviceid=plumed.getGpuDeviceId();
386 : }
387 : // if still not set use 0
388 : if(deviceid==-1) {
389 : deviceid=0;
390 : }
391 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
392 : af::setDevice(afcu::getNativeId(deviceid));
393 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
394 : af::setDevice(afcl::getNativeId(deviceid));
395 : #else
396 : af::setDevice(deviceid);
397 : #endif
398 : af::info();
399 : }
400 : #endif
401 :
402 28 : bool atomistic=false;
403 28 : parseFlag("ATOMISTIC",atomistic);
404 28 : if(atomistic) {
405 6 : log.printf(" using ATOMISTIC form factors\n");
406 : }
407 28 : bool martini=false;
408 28 : parseFlag("MARTINI",martini);
409 28 : if(martini) {
410 8 : log.printf(" using MARTINI form factors\n");
411 : }
412 28 : onebead=false;
413 28 : parseFlag("ONEBEAD",onebead);
414 28 : if(onebead) {
415 10 : log.printf(" using ONEBEAD form factors\n");
416 : }
417 :
418 28 : if(martini&&atomistic) {
419 0 : error("You cannot use MARTINI and ATOMISTIC at the same time");
420 : }
421 28 : if(martini&&onebead) {
422 0 : error("You cannot use MARTINI and ONEBEAD at the same time");
423 : }
424 28 : if(onebead&&atomistic) {
425 0 : error("You cannot use ONEBEAD and ATOMISTIC at the same time");
426 : }
427 28 : if((martini)&&(!saxs)) {
428 0 : error("MARTINI cannot be used with SANS");
429 : }
430 28 : if((!atomistic)&&(!martini)&&(!onebead)&&(!saxs)) {
431 0 : error("External PARAMETERS cannot be used with SANS");
432 : }
433 :
434 : unsigned ntarget=0;
435 : for(unsigned i=0;; ++i) {
436 : double t_list;
437 608 : if( !parseNumbered( "QVALUE", i+1, t_list) ) {
438 : break;
439 : }
440 276 : if(t_list<=0.) {
441 0 : error("QVALUE cannot be less or equal to zero!\n");
442 : }
443 276 : if(onebead&&t_list>0.3) {
444 0 : error("ONEBEAD mapping QVALUE must be smaller or equal to 0.3");
445 : }
446 276 : q_list.push_back(t_list);
447 276 : ntarget++;
448 276 : }
449 : const unsigned numq = ntarget;
450 :
451 304 : for(unsigned i=0; i<numq; ++i) {
452 276 : if(q_list[i]==0.) {
453 0 : error("it is not possible to set q=0\n");
454 : }
455 276 : if(i>0&&q_list[i]<q_list[i-1]) {
456 0 : error("QVALUE must be in ascending order");
457 : }
458 276 : log.printf(" my q: %lf \n",q_list[i]);
459 : }
460 :
461 28 : rho = 0.334;
462 28 : parse("SOLVDENS", rho);
463 28 : log.printf(" Solvent density: %lf\n", rho);
464 :
465 28 : double scale_expint=1.;
466 28 : parse("SCALE_EXPINT",scale_expint);
467 :
468 28 : double correction = 0.00;
469 28 : parse("SOLVATION_CORRECTION", correction);
470 28 : rho_corr=rho-correction;
471 28 : if(onebead) {
472 10 : log.printf(" Solvation density contribution: %lf\n", correction);
473 : }
474 28 : if((atomistic||martini)&&(rho_corr!=rho)) {
475 0 : log.printf(" Solvation density contribution is taken into account in ONEBEAD only\n");
476 : }
477 :
478 28 : solv_stride = 100;
479 28 : parse("SOLVATION_STRIDE", solv_stride);
480 28 : if(solv_stride < 1.) {
481 0 : error("SOLVATION_STRIDE must be greater than 0");
482 : }
483 28 : if(onebead&&(rho_corr!=rho)) {
484 8 : log.printf(" SASA calculation stride: %u\n", solv_stride);
485 : }
486 :
487 28 : sasa_cutoff = 1.0;
488 28 : parse("SASA_CUTOFF", sasa_cutoff);
489 28 : if(sasa_cutoff <= 0.) {
490 0 : error("SASA_CUTOFF must be greater than 0");
491 : }
492 :
493 28 : deuter_conc = 0.;
494 28 : parse("DEUTER_CONC", deuter_conc);
495 28 : if(deuter_conc < 0. || deuter_conc > 1.) {
496 0 : error("DEUTER_CONC must be in 0-1 range");
497 : }
498 28 : if ((atomistic||onebead)&&(!saxs)) {
499 6 : log.printf(" Solvent deuterium fraction: %lf/1.000000\n", deuter_conc);
500 : }
501 :
502 28 : PDB pdb;
503 28 : if(onebead) {
504 : std::string template_name;
505 10 : parse("TEMPLATE",template_name);
506 10 : log.printf(" Template for ONEBEAD mapping conversion: %s\n", template_name.c_str());
507 20 : if( !pdb.read(template_name,plumed.getAtoms().usingNaturalUnits(),1.) ) {
508 0 : plumed_merror("missing input file " + template_name);
509 : }
510 : }
511 :
512 : // Here we perform the preliminary mapping for onebead representation
513 28 : if(onebead) {
514 10 : LCPOparam.resize(size);
515 10 : nres = getOnebeadMapping(pdb, atoms);
516 10 : if(saxs) {
517 6 : Iq0_vac.resize(nres);
518 6 : Iq0_solv.resize(nres);
519 6 : Iq0_mix.resize(nres);
520 : } else { // SANS
521 4 : Iq0_vac_H.resize(nres);
522 4 : Iq0_solv_H.resize(nres);
523 4 : Iq0_mix_H.resize(nres);
524 4 : Iq0_vac_D.resize(nres);
525 4 : Iq0_mix_D.resize(nres);
526 : }
527 10 : atoi.resize(nres);
528 : } else {
529 18 : atoi.resize(size);
530 : }
531 :
532 28 : Iq0=0;
533 : std::vector<std::vector<long double> > FF_tmp;
534 : std::vector<std::vector<long double> > FF_tmp_vac;
535 : std::vector<std::vector<long double> > FF_tmp_mix;
536 : std::vector<std::vector<long double> > FF_tmp_solv;
537 : std::vector<std::vector<long double> > parameter;
538 : // SANS
539 : std::vector<std::vector<long double> > FF_tmp_vac_H;
540 : std::vector<std::vector<long double> > FF_tmp_mix_H;
541 : std::vector<std::vector<long double> > FF_tmp_solv_H;
542 : std::vector<std::vector<long double> > FF_tmp_vac_D;
543 : std::vector<std::vector<long double> > FF_tmp_mix_D;
544 : std::vector<std::vector<long double> > parameter_H;
545 : std::vector<std::vector<long double> > parameter_D;
546 :
547 28 : if(!atomistic&&!martini&&!onebead) {
548 : // read in parameter std::vector
549 4 : parameter.resize(size);
550 : ntarget=0;
551 36 : for(unsigned i=0; i<size; ++i) {
552 64 : if( !parseNumberedVector( "PARAMETERS", i+1, parameter[i]) ) {
553 : break;
554 : }
555 32 : ntarget++;
556 : }
557 4 : if( ntarget!=size ) {
558 0 : error("found wrong number of parameter std::vectors");
559 : }
560 4 : FF_tmp.resize(numq,std::vector<long double>(size));
561 36 : for(unsigned i=0; i<size; ++i) {
562 32 : atoi[i]=i;
563 128 : for(unsigned k=0; k<numq; ++k) {
564 480 : for(unsigned j=0; j<parameter[i].size(); ++j) {
565 384 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
566 : }
567 : }
568 : }
569 36 : for(unsigned i=0; i<size; ++i) {
570 32 : Iq0+=parameter[i][0];
571 : }
572 4 : Iq0 *= Iq0;
573 28 : } else if(onebead) {
574 10 : if(saxs) {
575 : // read in parameter std::vector
576 6 : FF_tmp_vac.resize(numq,std::vector<long double>(NONEBEAD));
577 6 : FF_tmp_mix.resize(numq,std::vector<long double>(NONEBEAD));
578 6 : FF_tmp_solv.resize(numq,std::vector<long double>(NONEBEAD));
579 6 : std::vector<std::vector<long double> > parameter_vac(NONEBEAD);
580 6 : std::vector<std::vector<long double> > parameter_mix(NONEBEAD);
581 6 : std::vector<std::vector<long double> > parameter_solv(NONEBEAD);
582 6 : getOnebeadparam(pdb, atoms, parameter_vac, parameter_mix, parameter_solv,residue_atom);
583 204 : for(unsigned i=0; i<NONEBEAD; ++i) {
584 1980 : for(unsigned k=0; k<numq; ++k) {
585 14256 : for(unsigned j=0; j<parameter_vac[i].size(); ++j) {
586 12474 : FF_tmp_vac[k][i]+= parameter_vac[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
587 : }
588 14256 : for(unsigned j=0; j<parameter_mix[i].size(); ++j) {
589 12474 : FF_tmp_mix[k][i]+= parameter_mix[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
590 : }
591 14256 : for(unsigned j=0; j<parameter_solv[i].size(); ++j) {
592 12474 : FF_tmp_solv[k][i]+= parameter_solv[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
593 : }
594 : }
595 : }
596 1294 : for(unsigned i=0; i<nres; ++i) {
597 1288 : Iq0_vac[i]=parameter_vac[atoi[i]][0];
598 1288 : Iq0_mix[i]=parameter_mix[atoi[i]][0];
599 1288 : Iq0_solv[i]=parameter_solv[atoi[i]][0];
600 : }
601 6 : } else { // SANS
602 : // read in parameter std::vector
603 4 : FF_tmp_vac_H.resize(numq,std::vector<long double>(NONEBEAD));
604 4 : FF_tmp_mix_H.resize(numq,std::vector<long double>(NONEBEAD));
605 4 : FF_tmp_solv_H.resize(numq,std::vector<long double>(NONEBEAD));
606 4 : FF_tmp_vac_D.resize(numq,std::vector<long double>(NONEBEAD));
607 4 : FF_tmp_mix_D.resize(numq,std::vector<long double>(NONEBEAD));
608 4 : std::vector<std::vector<long double> > parameter_vac_H(NONEBEAD);
609 4 : std::vector<std::vector<long double> > parameter_mix_H(NONEBEAD);
610 4 : std::vector<std::vector<long double> > parameter_solv_H(NONEBEAD);
611 4 : std::vector<std::vector<long double> > parameter_vac_D(NONEBEAD);
612 4 : std::vector<std::vector<long double> > parameter_mix_D(NONEBEAD);
613 4 : getOnebeadparam_sansH(pdb, atoms, parameter_vac_H, parameter_mix_H, parameter_solv_H);
614 4 : getOnebeadparam_sansD(pdb, atoms, parameter_vac_D, parameter_mix_D);
615 136 : for(unsigned i=0; i<NONEBEAD; ++i) {
616 1320 : for(unsigned k=0; k<numq; ++k) {
617 9504 : for(unsigned j=0; j<parameter_vac_H[i].size(); ++j) { // same number of parameters
618 8316 : FF_tmp_vac_H[k][i]+= parameter_vac_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
619 8316 : FF_tmp_vac_D[k][i]+= parameter_vac_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
620 : }
621 9504 : for(unsigned j=0; j<parameter_mix_H[i].size(); ++j) {
622 8316 : FF_tmp_mix_H[k][i]+= parameter_mix_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
623 8316 : FF_tmp_mix_D[k][i]+= parameter_mix_D[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
624 : }
625 9504 : for(unsigned j=0; j<parameter_solv_H[i].size(); ++j) {
626 8316 : FF_tmp_solv_H[k][i]+= parameter_solv_H[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
627 : }
628 : }
629 : }
630 880 : for(unsigned i=0; i<nres; ++i) {
631 876 : Iq0_vac_H[i]=parameter_vac_H[atoi[i]][0];
632 876 : Iq0_mix_H[i]=parameter_mix_H[atoi[i]][0];
633 876 : Iq0_solv_H[i]=parameter_solv_H[atoi[i]][0];
634 876 : Iq0_vac_D[i]=parameter_vac_D[atoi[i]][0];
635 876 : Iq0_mix_D[i]=parameter_mix_D[atoi[i]][0];
636 : }
637 4 : }
638 14 : } else if(martini) {
639 : // read in parameter std::vector
640 8 : FF_tmp.resize(numq,std::vector<long double>(NMARTINI));
641 8 : parameter.resize(NMARTINI);
642 8 : getMartiniFFparam(atoms, parameter);
643 1072 : for(unsigned i=0; i<NMARTINI; ++i) {
644 17024 : for(unsigned k=0; k<numq; ++k) {
645 127680 : for(unsigned j=0; j<parameter[i].size(); ++j) {
646 111720 : FF_tmp[k][i]+= parameter[i][j]*std::pow(static_cast<long double>(q_list[k]),j);
647 : }
648 : }
649 : }
650 8400 : for(unsigned i=0; i<size; ++i) {
651 8392 : Iq0+=parameter[atoi[i]][0];
652 : }
653 8 : Iq0 *= Iq0;
654 6 : } else if(atomistic) {
655 6 : FF_tmp.resize(numq,std::vector<long double>(NTT));
656 6 : if(saxs) {
657 4 : Iq0=calculateAFF(atoms, FF_tmp, rho);
658 : } else {
659 2 : Iq0=calculateAFFsans(atoms, FF_tmp, deuter_conc);
660 : }
661 6 : Iq0 *= Iq0;
662 : }
663 :
664 : std::vector<double> expint;
665 28 : expint.resize( numq );
666 : ntarget=0;
667 160 : for(unsigned i=0; i<numq; ++i) {
668 296 : if( !parseNumbered( "EXPINT", i+1, expint[i] ) ) {
669 : break;
670 : }
671 132 : ntarget++;
672 : }
673 160 : std::transform(expint.begin(), expint.begin() + ntarget, expint.begin(), [scale_expint](double x) {
674 132 : return x / scale_expint;
675 : });
676 : bool exp=false;
677 28 : if(ntarget!=numq && ntarget!=0) {
678 0 : error("found wrong number of EXPINT values");
679 : }
680 28 : if(ntarget==numq) {
681 : exp=true;
682 : }
683 28 : if(getDoScore()&&!exp) {
684 0 : error("with DOSCORE you need to set the EXPINT values");
685 : }
686 :
687 28 : if(!gpu) {
688 28 : FF_rank.resize(numq);
689 : unsigned n_atom_types;
690 28 : if(onebead) {
691 10 : FF_value.resize(nres,std::vector<double>(numq));
692 : n_atom_types=NONEBEAD;
693 10 : if(saxs) {
694 6 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
695 6 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
696 12 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
697 : } else {
698 4 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
699 4 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
700 4 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
701 4 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
702 8 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
703 : }
704 : } else {
705 36 : FF_value.resize(size,std::vector<double>(numq));
706 : }
707 304 : for(unsigned k=0; k<numq; ++k) {
708 276 : if(!onebead) {
709 316710 : for(unsigned i=0; i<size; ++i) {
710 316524 : FF_value[i][k] = static_cast<double>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
711 : }
712 316710 : for(unsigned i=0; i<size; ++i) {
713 316524 : FF_rank[k] += FF_value[i][k]*FF_value[i][k];
714 : }
715 : } else {
716 90 : if(saxs) {
717 1836 : for(unsigned i=0; i<n_atom_types; ++i) {
718 1782 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
719 1782 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
720 1782 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
721 : }
722 : } else { // SANS
723 1224 : for(unsigned i=0; i<n_atom_types; ++i) {
724 1188 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
725 1188 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
726 1188 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
727 1188 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
728 1188 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
729 : }
730 : }
731 : }
732 : }
733 : } else {
734 : unsigned n_atom_types;
735 0 : if(onebead) {
736 0 : FFf_value.resize(numq,std::vector<float>(nres));
737 : n_atom_types=NONEBEAD;
738 0 : if(saxs) {
739 0 : FF_value_vacuum.resize(n_atom_types,std::vector<double>(numq));
740 0 : FF_value_solv.resize(n_atom_types,std::vector<double>(numq));
741 0 : FF_value_mixed.resize(n_atom_types,std::vector<double>(numq));
742 : } else { // SANS
743 0 : FF_value_vacuum_H.resize(n_atom_types,std::vector<double>(numq));
744 0 : FF_value_solv_H.resize(n_atom_types,std::vector<double>(numq));
745 0 : FF_value_mixed_H.resize(n_atom_types,std::vector<double>(numq));
746 0 : FF_value_vacuum_D.resize(n_atom_types,std::vector<double>(numq));
747 0 : FF_value_mixed_D.resize(n_atom_types,std::vector<double>(numq));
748 : }
749 : } else {
750 0 : FFf_value.resize(numq,std::vector<float>(size));
751 : }
752 0 : for(unsigned k=0; k<numq; ++k) {
753 0 : if(!onebead) {
754 0 : for(unsigned i=0; i<size; ++i) {
755 0 : FFf_value[k][i] = static_cast<float>(FF_tmp[k][atoi[i]])/(std::sqrt(Iq0));
756 : }
757 : } else {
758 0 : if(saxs) {
759 0 : for(unsigned i=0; i<n_atom_types; ++i) {
760 0 : FF_value_vacuum[i][k] = static_cast<double>(FF_tmp_vac[k][i]);
761 0 : FF_value_mixed[i][k] = static_cast<double>(FF_tmp_mix[k][i]);
762 0 : FF_value_solv[i][k] = static_cast<double>(FF_tmp_solv[k][i]);
763 : }
764 : } else { // SANS
765 0 : for(unsigned i=0; i<n_atom_types; ++i) {
766 0 : FF_value_vacuum_H[i][k] = static_cast<double>(FF_tmp_vac_H[k][i]);
767 0 : FF_value_mixed_H[i][k] = static_cast<double>(FF_tmp_mix_H[k][i]);
768 0 : FF_value_solv_H[i][k] = static_cast<double>(FF_tmp_solv_H[k][i]);
769 0 : FF_value_vacuum_D[i][k] = static_cast<double>(FF_tmp_vac_D[k][i]);
770 0 : FF_value_mixed_D[i][k] = static_cast<double>(FF_tmp_mix_D[k][i]);
771 : }
772 : }
773 : }
774 : }
775 : }
776 :
777 28 : if(!getDoScore()) {
778 224 : for(unsigned i=0; i<numq; ++i) {
779 : std::string num;
780 204 : Tools::convert(i,num);
781 204 : addComponentWithDerivatives("q-"+num);
782 408 : componentIsNotPeriodic("q-"+num);
783 : }
784 20 : if(exp) {
785 64 : for(unsigned i=0; i<numq; ++i) {
786 : std::string num;
787 60 : Tools::convert(i,num);
788 60 : addComponent("exp-"+num);
789 60 : componentIsNotPeriodic("exp-"+num);
790 60 : Value* comp=getPntrToComponent("exp-"+num);
791 60 : comp->set(expint[i]);
792 : }
793 : }
794 : } else {
795 80 : for(unsigned i=0; i<numq; ++i) {
796 : std::string num;
797 72 : Tools::convert(i,num);
798 72 : addComponent("q-"+num);
799 144 : componentIsNotPeriodic("q-"+num);
800 : }
801 80 : for(unsigned i=0; i<numq; ++i) {
802 : std::string num;
803 72 : Tools::convert(i,num);
804 72 : addComponent("exp-"+num);
805 72 : componentIsNotPeriodic("exp-"+num);
806 72 : Value* comp=getPntrToComponent("exp-"+num);
807 72 : comp->set(expint[i]);
808 : }
809 : }
810 :
811 : // convert units to nm^-1
812 304 : for(unsigned i=0; i<numq; ++i) {
813 276 : q_list[i]=q_list[i]*10.0; // factor 10 to convert from A^-1 to nm^-1
814 : }
815 28 : log<<" Bibliography ";
816 28 : if(martini) {
817 16 : log<<plumed.cite("Niebling, Björling, Westenhoff, J Appl Crystallogr 47, 1190–1198 (2014).");
818 16 : log<<plumed.cite("Paissoni, Jussupow, Camilloni, J Appl Crystallogr 52, 394-402 (2019).");
819 : }
820 28 : if(atomistic) {
821 12 : log<<plumed.cite("Fraser, MacRae, Suzuki, J. Appl. Crystallogr., 11, 693–694 (1978).");
822 12 : log<<plumed.cite("Brown, Fox, Maslen, O'Keefe, Willis, International Tables for Crystallography C, 554–595 (International Union of Crystallography, 2006).");
823 : }
824 :
825 56 : log<< plumed.cite("Bonomi, Camilloni, Bioinformatics, 33, 3999 (2017)");
826 28 : log<<"\n";
827 :
828 28 : requestAtoms(atoms, false);
829 :
830 28 : if(getDoScore()) {
831 8 : setParameters(expint);
832 8 : Initialise(numq);
833 : }
834 28 : setDerivatives();
835 28 : checkRead();
836 56 : }
837 :
838 : // calculates SASA neighbor list
839 8 : void SAXS::calcNlist(std::vector<std::vector<int> > &Nlist) {
840 : unsigned natoms = getNumberOfAtoms();
841 28596 : for(unsigned i = 0; i < natoms; ++i) {
842 28588 : if (LCPOparam[i].size()>0) {
843 24279400 : for (unsigned j = 0; j < i; ++j) {
844 24266020 : if (LCPOparam[j].size()>0) {
845 11213664 : double Delta_ij_mod = modulo(delta(getPosition(i), getPosition(j)))*10.;
846 11213664 : double overlapD = LCPOparam[i][0]+LCPOparam[j][0];
847 11213664 : if(Delta_ij_mod < overlapD) {
848 259140 : Nlist.at(i).push_back(j);
849 259140 : Nlist.at(j).push_back(i);
850 : }
851 : }
852 : }
853 : }
854 : }
855 :
856 8 : }
857 :
858 : // calculates SASA according to LCPO algorithm
859 8 : void SAXS::sasa_calculate(std::vector<bool> &solv_res) {
860 : unsigned natoms = getNumberOfAtoms();
861 8 : std::vector<std::vector<int> > Nlist(natoms);
862 8 : calcNlist(Nlist);
863 8 : std::vector<double> sasares(nres, 0.);
864 28596 : for(unsigned i = 0; i < natoms; ++i) {
865 28588 : if(LCPOparam[i].size()>1) {
866 13380 : if(LCPOparam[i][1]>0.0) {
867 : double Aij = 0.0;
868 : double Aijk = 0.0;
869 : double Ajk = 0.0;
870 13380 : double ri = LCPOparam[i][0];
871 13380 : double S1 = 4.*M_PI*ri*ri;
872 531660 : for (unsigned j = 0; j < Nlist[i].size(); ++j) {
873 518280 : double d_ij = modulo(delta( getPosition(i), getPosition(Nlist[i][j]) ))*10.;
874 518280 : double rj = LCPOparam[Nlist[i][j]][0];
875 518280 : double Aijt = (2.*M_PI*ri*(ri-d_ij/2.-((ri*ri-rj*rj)/(2.*d_ij))));
876 : double Ajkt = 0.0;
877 22258568 : for (unsigned k = 0; k < Nlist[Nlist[i][j]].size(); ++k) {
878 21740288 : if (std::find (Nlist[i].begin(), Nlist[i].end(), Nlist[Nlist[i][j]][k]) != Nlist[i].end()) {
879 11186016 : double d_jk = modulo(delta( getPosition(Nlist[i][j]), getPosition(Nlist[Nlist[i][j]][k]) ))*10.;
880 11186016 : double rk = LCPOparam[Nlist[Nlist[i][j]][k]][0];
881 11186016 : double sjk = (2.*M_PI*rj*(rj-d_jk/2.-((rj*rj-rk*rk)/(2.*d_jk))));
882 11186016 : Ajkt += sjk;
883 : }
884 : }
885 518280 : Aijk += (Aijt * Ajkt);
886 518280 : Aij += Aijt;
887 518280 : Ajk += Ajkt;
888 : }
889 13380 : double sasai = (LCPOparam[i][1]*S1+LCPOparam[i][2]*Aij+LCPOparam[i][3]*Ajk+LCPOparam[i][4]*Aijk);
890 13380 : if (sasai > 0 ) {
891 10420 : sasares[residue_atom[i]] += sasai/100.;
892 : }
893 : }
894 : }
895 : }
896 1760 : for(unsigned i=0; i<nres; ++i) {
897 1752 : if(sasares[i]>sasa_cutoff) {
898 : solv_res[i] = 1;
899 : } else {
900 : solv_res[i] = 0;
901 : }
902 : }
903 8 : }
904 :
905 0 : void SAXS::calculate_gpu(std::vector<Vector> &pos, std::vector<Vector> &deriv) {
906 : #ifdef __PLUMED_HAS_ARRAYFIRE
907 : unsigned size;
908 : if(onebead) {
909 : size = nres;
910 : } else {
911 : size = getNumberOfAtoms();
912 : }
913 : const unsigned numq = q_list.size();
914 :
915 : std::vector<float> sum;
916 : sum.resize(numq);
917 :
918 : std::vector<float> dd;
919 : dd.resize(size*3*numq);
920 :
921 : // on gpu only the master rank run the calculation
922 : if(comm.Get_rank()==0) {
923 : std::vector<float> posi;
924 : posi.resize(3*size);
925 : #pragma omp parallel for num_threads(OpenMP::getNumThreads())
926 : for (unsigned i=0; i<size; ++i) {
927 : const Vector tmp = pos[i];
928 : posi[3*i] = static_cast<float>(tmp[0]);
929 : posi[3*i+1] = static_cast<float>(tmp[1]);
930 : posi[3*i+2] = static_cast<float>(tmp[2]);
931 : }
932 :
933 : // create array a and b containing atomic coordinates
934 : #ifdef __PLUMED_HAS_ARRAYFIRE_CUDA
935 : af::setDevice(afcu::getNativeId(deviceid));
936 : #elif __PLUMED_HAS_ARRAYFIRE_OCL
937 : af::setDevice(afcl::getNativeId(deviceid));
938 : #else
939 : af::setDevice(deviceid);
940 : #endif
941 : // 3,size,1,1
942 : af::array pos_a = af::array(3, size, &posi.front());
943 : // size,3,1,1
944 : pos_a = af::moddims(pos_a.T(), size, 3, 1);
945 : // size,3,1,1
946 : af::array pos_b = pos_a(af::span, af::span);
947 : // size,1,3,1
948 : pos_a = af::moddims(pos_a, size, 1, 3);
949 : // 1,size,3,1
950 : pos_b = af::moddims(pos_b, 1, size, 3);
951 :
952 : // size,size,3,1
953 : af::array pos_a_t = af::tile(pos_a, 1, size, 1);
954 : // size,size,3,1: for some reason we need this
955 : pos_a_t = af::moddims(pos_a_t, size, size, 3);
956 : // size,size,3,1
957 : af::array pos_b_t = af::tile(pos_b, size, 1, 1);
958 : // size,size,3,1: for some reason we need this
959 : pos_b_t = af::moddims(pos_b_t, size, size, 3);
960 : // size,size,3,1
961 : af::array xyz_dist = pos_a_t - pos_b_t;
962 : // size,size,1,1
963 : af::array square = af::sum(xyz_dist*xyz_dist,2);
964 : // size,size,1,1
965 : af::array dist_sqrt = af::sqrt(square);
966 : // replace the zero of square with one to avoid nan in the derivatives (the number does not matter because this are multiplied by zero)
967 : af::replace(square,!(af::iszero(square)),1.);
968 : // size,size,3,1
969 : xyz_dist = xyz_dist / af::tile(square, 1, 1, 3);
970 : // numq,1,1,1
971 : af::array sum_device = af::constant(0, numq, f32);
972 : // numq,size,3,1
973 : af::array deriv_device = af::constant(0, numq, size, 3, f32);
974 :
975 : for (unsigned k=0; k<numq; ++k) {
976 : // calculate FF matrix
977 : // size,1,1,1
978 : af::array AFF_value(size, &FFf_value[k].front());
979 : // size,size,1,1
980 : af::array FFdist_mod = af::tile(AFF_value(af::span), 1, size)*af::transpose(af::tile(AFF_value(af::span), 1, size));
981 :
982 : // get q
983 : const float qvalue = static_cast<float>(q_list[k]);
984 : // size,size,1,1
985 : af::array dist_q = qvalue*dist_sqrt;
986 : // size,size,1
987 : af::array dist_sin = af::sin(dist_q)/dist_q;
988 : af::replace(dist_sin,!(af::isNaN(dist_sin)),1.);
989 : // 1,1,1,1
990 : sum_device(k) = af::sum(af::flat(dist_sin)*af::flat(FFdist_mod));
991 :
992 : // size,size,1,1
993 : af::array tmp = FFdist_mod*(dist_sin - af::cos(dist_q));
994 : // size,size,3,1
995 : af::array dd_all = af::tile(tmp, 1, 1, 3)*xyz_dist;
996 : // it should become 1,size,3
997 : deriv_device(k, af::span, af::span) = af::sum(dd_all,0);
998 : }
999 :
1000 : // read out results
1001 : sum_device.host(&sum.front());
1002 :
1003 : deriv_device = af::reorder(deriv_device, 2, 1, 0);
1004 : deriv_device = af::flat(deriv_device);
1005 : deriv_device.host(&dd.front());
1006 : }
1007 :
1008 : comm.Bcast(dd, 0);
1009 : comm.Bcast(sum, 0);
1010 :
1011 : for(unsigned k=0; k<numq; ++k) {
1012 : std::string num;
1013 : Tools::convert(k,num);
1014 : Value* val=getPntrToComponent("q-"+num);
1015 : val->set(sum[k]);
1016 : if(getDoScore()) {
1017 : setCalcData(k, sum[k]);
1018 : }
1019 : for(unsigned i=0; i<size; ++i) {
1020 : const unsigned di = k*size*3+i*3;
1021 : deriv[k*size+i] = Vector(2.*dd[di+0],2.*dd[di+1],2.*dd[di+2]);
1022 : }
1023 : }
1024 : #endif
1025 0 : }
1026 :
1027 188 : void SAXS::calculate_cpu(std::vector<Vector> &pos, std::vector<Vector> &deriv) {
1028 : unsigned size;
1029 188 : if(onebead) {
1030 10 : size = nres;
1031 : } else {
1032 : size = getNumberOfAtoms();
1033 : }
1034 188 : const unsigned numq = q_list.size();
1035 :
1036 188 : unsigned stride = comm.Get_size();
1037 188 : unsigned rank = comm.Get_rank();
1038 188 : if(serial) {
1039 : stride = 1;
1040 : rank = 0;
1041 : }
1042 188 : std::vector<double> sum(numq,0);
1043 188 : unsigned nt=OpenMP::getNumThreads();
1044 188 : #pragma omp parallel num_threads(nt)
1045 : {
1046 : std::vector<Vector> omp_deriv(deriv.size());
1047 : std::vector<double> omp_sum(numq,0);
1048 : #pragma omp for nowait
1049 : for (unsigned i=rank; i<size-1; i+=stride) {
1050 : Vector posi = pos[i];
1051 : for (unsigned j=i+1; j<size ; ++j) {
1052 : Vector c_distances = delta(posi,pos[j]);
1053 : double m_distances = c_distances.modulo();
1054 : c_distances = c_distances/m_distances/m_distances;
1055 : for (unsigned k=0; k<numq; ++k) {
1056 : unsigned kdx=k*size;
1057 : double qdist = q_list[k]*m_distances;
1058 : double FFF = 2.*FF_value[i][k]*FF_value[j][k];
1059 : double tsq = std::sin(qdist)/qdist;
1060 : double tcq = std::cos(qdist);
1061 : double tmp = FFF*(tcq-tsq);
1062 : Vector dd = c_distances*tmp;
1063 : if(nt>1) {
1064 : omp_deriv[kdx+i] -=dd;
1065 : omp_deriv[kdx+j] +=dd;
1066 : omp_sum[k] += FFF*tsq;
1067 : } else {
1068 : deriv[kdx+i] -= dd;
1069 : deriv[kdx+j] += dd;
1070 : sum[k] += FFF*tsq;
1071 : }
1072 : }
1073 : }
1074 : }
1075 : #pragma omp critical
1076 : if(nt>1) {
1077 : for(unsigned i=0; i<deriv.size(); ++i) {
1078 : deriv[i]+=omp_deriv[i];
1079 : }
1080 : for(unsigned k=0; k<numq; ++k) {
1081 : sum[k]+=omp_sum[k];
1082 : }
1083 : }
1084 : }
1085 :
1086 188 : if(!serial) {
1087 186 : comm.Sum(&deriv[0][0], 3*deriv.size());
1088 186 : comm.Sum(&sum[0], numq);
1089 : }
1090 :
1091 1904 : for (unsigned k=0; k<numq; ++k) {
1092 1716 : sum[k]+=FF_rank[k];
1093 : std::string num;
1094 1716 : Tools::convert(k,num);
1095 1716 : Value* val=getPntrToComponent("q-"+num);
1096 1716 : val->set(sum[k]);
1097 1716 : if(getDoScore()) {
1098 1512 : setCalcData(k, sum[k]);
1099 : }
1100 : }
1101 188 : }
1102 :
1103 188 : void SAXS::calculate() {
1104 188 : if(pbc) {
1105 172 : makeWhole();
1106 : }
1107 :
1108 188 : const size_t size = getNumberOfAtoms();
1109 : const size_t numq = q_list.size();
1110 :
1111 : // these are the derivatives associated to the coarse graining
1112 188 : std::vector<Vector> aa_deriv(size);
1113 :
1114 : size_t beads_size = size;
1115 188 : if(onebead) {
1116 10 : beads_size = nres;
1117 : }
1118 : // these are the derivatives particle,q
1119 188 : std::vector<Vector> bd_deriv(numq*beads_size);
1120 :
1121 188 : std::vector<Vector> beads_pos(beads_size);
1122 188 : if(onebead) {
1123 2174 : for(unsigned resid=0; resid<nres; resid++) {
1124 : double sum_mass = 0.;
1125 2164 : Vector sum_pos = Vector(0,0,0);
1126 7693792 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1127 7691628 : if(residue_atom[atom_id] == resid) {
1128 35466 : aa_deriv[atom_id] = Vector(atoms_masses[atom_id],atoms_masses[atom_id],atoms_masses[atom_id]);
1129 35466 : sum_pos += atoms_masses[atom_id] * getPosition(atom_id); // getPosition(first_atom+atom_id)
1130 35466 : sum_mass += atoms_masses[atom_id];
1131 : }
1132 : }
1133 2164 : beads_pos[resid] = sum_pos/sum_mass;
1134 7693792 : for(unsigned atom_id=0; atom_id<size; atom_id++) {
1135 7691628 : if(residue_atom[atom_id] == resid) {
1136 35466 : aa_deriv[atom_id] /= sum_mass;
1137 : }
1138 : }
1139 : }
1140 : // SASA
1141 10 : std::vector<bool> solv_res(nres, 0);
1142 10 : if(saxs) {
1143 6 : if(getStep()%solv_stride == 0 || isFirstStep) {
1144 6 : isFirstStep = 0;
1145 6 : if(rho_corr!=rho) {
1146 4 : sasa_calculate(solv_res);
1147 : }
1148 6 : Iq0=0.;
1149 1294 : for(unsigned i=0; i<nres; ++i) {
1150 1288 : if(solv_res[i] == 1 ) {
1151 182 : Iq0 += std::sqrt((Iq0_vac[i]+(rho_corr*rho_corr)*Iq0_solv[i]-rho_corr*Iq0_mix[i]));
1152 : } else {
1153 1106 : Iq0 += std::sqrt((Iq0_vac[i]+(rho*rho)*Iq0_solv[i]-rho*Iq0_mix[i]));
1154 : }
1155 : }
1156 : // Form Factors
1157 60 : for(unsigned k=0; k<numq; ++k) {
1158 11646 : for(unsigned i=0; i<nres; ++i) {
1159 11592 : if(!gpu) {
1160 11592 : if(solv_res[i] == 0) { // buried
1161 9954 : 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;
1162 : } else { // surface
1163 1638 : 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;
1164 : }
1165 : } else {
1166 0 : if(solv_res[i] == 0) { // buried
1167 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);
1168 : } else { // surface
1169 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);
1170 : }
1171 : }
1172 : }
1173 : }
1174 6 : if(!gpu) {
1175 60 : for(unsigned k=0; k<numq; ++k) {
1176 54 : FF_rank[k]=0.;
1177 11646 : for(unsigned i=0; i<nres; ++i) {
1178 11592 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1179 : }
1180 : }
1181 : }
1182 : }
1183 : } else { // SANS
1184 4 : std::vector<bool> deut_res(nres, 0);
1185 4 : double solv_sc_length = 0.1*(0.580 + 2.*((1. - deuter_conc) * (-0.374) + deuter_conc * 0.667)); // per water electron (10 electrons)
1186 4 : double rho_sans = rho * solv_sc_length;
1187 4 : double rho_sans_corr = rho_corr * solv_sc_length;
1188 4 : if(getStep()%solv_stride == 0 || isFirstStep) {
1189 4 : isFirstStep = 0;
1190 4 : if(deuter_conc!=0.||rho != rho_corr) {
1191 4 : sasa_calculate(solv_res);
1192 : }
1193 4 : Iq0=0.;
1194 880 : for(unsigned i=0; i<nres; ++i) {
1195 876 : if(solv_res[i] == 1 ) {
1196 182 : if(rand()/RAND_MAX<deuter_conc) {
1197 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]));
1198 : deut_res[i] = 1;
1199 : } else {
1200 182 : 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]));
1201 : }
1202 : } else {
1203 694 : Iq0 += std::sqrt(std::fabs(Iq0_vac_H[i] + rho_sans*rho_sans*Iq0_solv_H[i] - rho_sans*Iq0_mix_H[i]));
1204 : }
1205 : }
1206 : // Form Factors
1207 40 : for(unsigned k=0; k<numq; ++k) {
1208 7920 : for(unsigned i=0; i<nres; ++i) {
1209 7884 : if(!gpu) {
1210 7884 : if(solv_res[i] == 0) { // hydrogen
1211 6246 : 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;
1212 : } else {
1213 1638 : if(deut_res[i] == 0) {
1214 1638 : 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;
1215 : } else {
1216 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;
1217 : }
1218 : }
1219 : } else {
1220 0 : if(solv_res[i] == 0) { // hydrogen
1221 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);
1222 : } else {
1223 0 : if(deut_res[i] == 0) {
1224 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);
1225 : } else {
1226 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);
1227 : }
1228 : }
1229 : }
1230 : }
1231 : }
1232 4 : if(!gpu) {
1233 40 : for(unsigned k=0; k<numq; ++k) {
1234 36 : FF_rank[k]=0.;
1235 7920 : for(unsigned i=0; i<nres; ++i) {
1236 7884 : FF_rank[k]+=FF_value[i][k]*FF_value[i][k];
1237 : }
1238 : }
1239 : }
1240 : }
1241 : }
1242 : // not ONEBEAD
1243 : } else {
1244 58814 : for(unsigned i=0; i<size; ++i) {
1245 58636 : beads_pos[i] = getPosition(i);
1246 : }
1247 356 : aa_deriv = std::vector<Vector>(size,(Vector(1,1,1)));
1248 : }
1249 :
1250 188 : if(gpu) {
1251 0 : calculate_gpu(beads_pos, bd_deriv);
1252 : } else {
1253 188 : calculate_cpu(beads_pos, bd_deriv);
1254 : }
1255 :
1256 188 : if(getDoScore()) {
1257 : /* Metainference */
1258 168 : double score = getScore();
1259 : setScore(score);
1260 : }
1261 :
1262 1904 : for (unsigned k=0; k<numq; ++k) {
1263 1716 : const unsigned kdx=k*beads_size;
1264 1716 : Tensor deriv_box;
1265 : Value* val;
1266 1716 : if(!getDoScore()) {
1267 : std::string num;
1268 204 : Tools::convert(k,num);
1269 204 : val=getPntrToComponent("q-"+num);
1270 :
1271 204 : if(onebead) {
1272 : unsigned atom_id=0;
1273 19566 : for(unsigned i=0; i<beads_size; ++i) {
1274 338670 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1275 319194 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1276 319194 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1277 319194 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1278 319194 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0], \
1279 319194 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1], \
1280 638388 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]) );
1281 319194 : atom_id++;
1282 : }
1283 : }
1284 : } else {
1285 295242 : for(unsigned i=0; i<beads_size; ++i) {
1286 295128 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0], \
1287 295128 : bd_deriv[kdx+i][1], \
1288 295128 : bd_deriv[kdx+i][2]) );
1289 590256 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0], \
1290 295128 : bd_deriv[kdx+i][1], \
1291 590256 : bd_deriv[kdx+i][2]) );
1292 : }
1293 : }
1294 : } else {
1295 1512 : val=getPntrToComponent("score");
1296 1512 : if(onebead) {
1297 : unsigned atom_id=0;
1298 0 : for(unsigned i=0; i<beads_size; ++i) {
1299 0 : for(unsigned j=0; j<atoms_per_bead[i]; ++j) {
1300 0 : setAtomsDerivatives(val, atom_id, Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1301 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1302 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1303 0 : deriv_box += Tensor(getPosition(atom_id),Vector(aa_deriv[atom_id][0]*bd_deriv[kdx+i][0]*getMetaDer(k),
1304 0 : aa_deriv[atom_id][1]*bd_deriv[kdx+i][1]*getMetaDer(k),
1305 0 : aa_deriv[atom_id][2]*bd_deriv[kdx+i][2]*getMetaDer(k)) );
1306 0 : atom_id++;
1307 : }
1308 : }
1309 : } else {
1310 450828 : for(unsigned i=0; i<beads_size; ++i) {
1311 449316 : setAtomsDerivatives(val, i, Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1312 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1313 449316 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1314 898632 : deriv_box += Tensor(getPosition(i),Vector(bd_deriv[kdx+i][0]*getMetaDer(k),
1315 449316 : bd_deriv[kdx+i][1]*getMetaDer(k),
1316 898632 : bd_deriv[kdx+i][2]*getMetaDer(k)) );
1317 : }
1318 : }
1319 : }
1320 1716 : setBoxDerivatives(val, -deriv_box);
1321 : }
1322 188 : }
1323 :
1324 188 : void SAXS::update() {
1325 : // write status file
1326 188 : if(getWstride()>0&& (getStep()%getWstride()==0 || getCPT()) ) {
1327 28 : writeStatus();
1328 : }
1329 188 : }
1330 :
1331 10 : unsigned SAXS::getOnebeadMapping(const PDB &pdb, const std::vector<AtomNumber> &atoms) {
1332 : std::vector<std::string> chains;
1333 10 : pdb.getChainNames( chains );
1334 : std::vector<std::vector<std::string> > AtomResidueName;
1335 :
1336 10 : atoms_masses.resize(atoms.size());
1337 10 : residue_atom.resize(atoms.size());
1338 :
1339 : // cycle over chains
1340 24 : for(unsigned i=0; i<chains.size(); ++i) {
1341 : unsigned start, end;
1342 : std::string errmsg;
1343 14 : pdb.getResidueRange(chains[i], start, end, errmsg);
1344 14 : AtomResidueName.resize(2);
1345 : // cycle over residues
1346 2110 : for(unsigned res=start; res<=end; res++) {
1347 2096 : std::string Rname = pdb.getResidueName(res, chains[i]);
1348 2096 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
1349 2096 : std::vector<AtomNumber> res_atoms = pdb.getAtomsInResidue(res, chains[i]);
1350 : unsigned first_time=1;
1351 : std::vector<std::vector<unsigned> > tmp_residue_atom;
1352 2096 : tmp_residue_atom.resize(3);
1353 : // cycle over atoms
1354 37562 : for(unsigned a=0; a<res_atoms.size(); a++) {
1355 : // operations shared among all beads
1356 35466 : std::string Aname=pdb.getAtomName(res_atoms[a]);
1357 35466 : AtomResidueName[0].push_back(Aname);
1358 35466 : AtomResidueName[1].push_back(Rname);
1359 : char type;
1360 35466 : char first = Aname.at(0);
1361 : // We assume that element symbol is first letter, if not a number
1362 35466 : if (!isdigit(first)) {
1363 : type = first;
1364 : // otherwise is the second
1365 : } else {
1366 0 : type = Aname.at(1);
1367 : }
1368 35466 : if (type == 'H') {
1369 18918 : atoms_masses[res_atoms[a].index()] = 1.008;
1370 : } else if(type == 'C') {
1371 10384 : atoms_masses[res_atoms[a].index()] = 12.011;
1372 : } else if(type == 'N') {
1373 2772 : atoms_masses[res_atoms[a].index()] = 14.007;
1374 : } else if(type == 'O') {
1375 3270 : atoms_masses[res_atoms[a].index()] = 15.999;
1376 : } else if(type == 'S') {
1377 90 : atoms_masses[res_atoms[a].index()] = 32.065;
1378 : } else if(type == 'P') {
1379 32 : atoms_masses[res_atoms[a].index()] = 30.974;
1380 : } else {
1381 0 : error("Unknown element in mass extraction\n");
1382 : }
1383 70932 : if(pdb.allowedResidue("protein",Rname)) {
1384 34390 : if(first_time) {
1385 2060 : atoms_per_bead.push_back(res_atoms.size());
1386 : first_time = 0;
1387 : }
1388 34390 : residue_atom[res_atoms[a].index()] = atoms_per_bead.size()-1;
1389 : } else {
1390 : // check for nucleic acids
1391 : // Pentose bead
1392 4840 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" || Aname=="O3'" ||
1393 3940 : Aname=="C3'" || Aname=="O2'" || Aname=="C2'" || Aname=="C1'" || Aname=="H5'" ||
1394 3076 : Aname=="H5''" || Aname=="H4'" || Aname=="H3'" || Aname=="H2'" || Aname=="H2''" ||
1395 2660 : Aname=="H2'2" || Aname=="H1'" || Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" ||
1396 3536 : Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ||
1397 : Aname=="H3T" ) {
1398 584 : tmp_residue_atom[0].push_back(res_atoms[a].index());
1399 : }
1400 : // Nucleobase bead
1401 2172 : else if(Aname=="N1" || Aname=="N2" || Aname=="N3" || Aname=="N4" || Aname=="N6" ||
1402 1884 : Aname=="N7" || Aname=="N9" || Aname=="C2" || Aname=="C4" || Aname=="C5" ||
1403 1272 : Aname=="C6" || Aname=="C7" || Aname=="C8" || Aname=="O2" || Aname=="O4" ||
1404 912 : Aname=="O6" || Aname=="H1" || Aname=="H2" || Aname=="H3" || Aname=="H5" ||
1405 480 : Aname=="H6" || Aname=="H8" || Aname=="H21" || Aname=="H22" || Aname=="H41" ||
1406 972 : Aname=="H42" || Aname=="H61" || Aname=="H62" || Aname=="H71" || Aname=="H72" ||
1407 : Aname=="H73" ) {
1408 396 : tmp_residue_atom[1].push_back(res_atoms[a].index());
1409 : }
1410 : // PO2 bead
1411 96 : else if(Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" || Aname=="O1P" ||
1412 96 : Aname=="O2P" || Aname=="O3P" ) {
1413 96 : tmp_residue_atom[2].push_back(res_atoms[a].index());
1414 : }
1415 : // error
1416 : else {
1417 0 : error("Atom name "+Aname+" cannot be indexed to any bead. Check the PDB.");
1418 : }
1419 : }
1420 : }
1421 4192 : if(!pdb.allowedResidue("protein",Rname)) {
1422 36 : atoms_per_bead.push_back(tmp_residue_atom[0].size());
1423 620 : for(unsigned tmp_i=0; tmp_i<tmp_residue_atom[0].size(); tmp_i++) {
1424 584 : residue_atom[tmp_residue_atom[0][tmp_i]]=atoms_per_bead.size()-1;
1425 : }
1426 36 : atoms_per_bead.push_back(tmp_residue_atom[1].size());
1427 432 : for(unsigned tmp_i=0; tmp_i<tmp_residue_atom[1].size(); tmp_i++) {
1428 396 : residue_atom[tmp_residue_atom[1][tmp_i]]=atoms_per_bead.size()-1;
1429 : }
1430 36 : if(tmp_residue_atom[2].size()>0) {
1431 32 : atoms_per_bead.push_back(tmp_residue_atom[2].size());
1432 128 : for(unsigned tmp_i=0; tmp_i<tmp_residue_atom[2].size(); tmp_i++) {
1433 96 : residue_atom[tmp_residue_atom[2][tmp_i]]=atoms_per_bead.size()-1;
1434 : }
1435 : }
1436 : }
1437 2096 : }
1438 : }
1439 10 : readLCPOparam(AtomResidueName, atoms.size());
1440 10 : return atoms_per_bead.size();
1441 10 : }
1442 :
1443 8 : void SAXS::getMartiniFFparam(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > ¶meter) {
1444 8 : parameter[ALA_BB].push_back(9.045);
1445 8 : parameter[ALA_BB].push_back(-0.098114);
1446 8 : parameter[ALA_BB].push_back(7.54281);
1447 8 : parameter[ALA_BB].push_back(-1.97438);
1448 8 : parameter[ALA_BB].push_back(-8.32689);
1449 8 : parameter[ALA_BB].push_back(6.09318);
1450 8 : parameter[ALA_BB].push_back(-1.18913);
1451 :
1452 8 : parameter[ARG_BB].push_back(10.729);
1453 8 : parameter[ARG_BB].push_back(-0.0392574);
1454 8 : parameter[ARG_BB].push_back(1.15382);
1455 8 : parameter[ARG_BB].push_back(-0.155999);
1456 8 : parameter[ARG_BB].push_back(-2.43619);
1457 8 : parameter[ARG_BB].push_back(1.72922);
1458 8 : parameter[ARG_BB].push_back(-0.33799);
1459 :
1460 8 : parameter[ARG_SC1].push_back(-2.796);
1461 8 : parameter[ARG_SC1].push_back(0.472403);
1462 8 : parameter[ARG_SC1].push_back(8.07424);
1463 8 : parameter[ARG_SC1].push_back(4.37299);
1464 8 : parameter[ARG_SC1].push_back(-10.7398);
1465 8 : parameter[ARG_SC1].push_back(4.95677);
1466 8 : parameter[ARG_SC1].push_back(-0.725797);
1467 :
1468 8 : parameter[ARG_SC2].push_back(15.396);
1469 8 : parameter[ARG_SC2].push_back(0.0636736);
1470 8 : parameter[ARG_SC2].push_back(-1.258);
1471 8 : parameter[ARG_SC2].push_back(1.93135);
1472 8 : parameter[ARG_SC2].push_back(-4.45031);
1473 8 : parameter[ARG_SC2].push_back(2.49356);
1474 8 : parameter[ARG_SC2].push_back(-0.410721);
1475 :
1476 8 : parameter[ASN_BB].push_back(10.738);
1477 8 : parameter[ASN_BB].push_back(-0.0402162);
1478 8 : parameter[ASN_BB].push_back(1.03007);
1479 8 : parameter[ASN_BB].push_back(-0.254174);
1480 8 : parameter[ASN_BB].push_back(-2.12015);
1481 8 : parameter[ASN_BB].push_back(1.55535);
1482 8 : parameter[ASN_BB].push_back(-0.30963);
1483 :
1484 8 : parameter[ASN_SC1].push_back(9.249);
1485 8 : parameter[ASN_SC1].push_back(-0.0148678);
1486 8 : parameter[ASN_SC1].push_back(5.52169);
1487 8 : parameter[ASN_SC1].push_back(0.00853212);
1488 8 : parameter[ASN_SC1].push_back(-6.71992);
1489 8 : parameter[ASN_SC1].push_back(3.93622);
1490 8 : parameter[ASN_SC1].push_back(-0.64973);
1491 :
1492 8 : parameter[ASP_BB].push_back(10.695);
1493 8 : parameter[ASP_BB].push_back(-0.0410247);
1494 8 : parameter[ASP_BB].push_back(1.03656);
1495 8 : parameter[ASP_BB].push_back(-0.298558);
1496 8 : parameter[ASP_BB].push_back(-2.06064);
1497 8 : parameter[ASP_BB].push_back(1.53495);
1498 8 : parameter[ASP_BB].push_back(-0.308365);
1499 :
1500 8 : parameter[ASP_SC1].push_back(9.476);
1501 8 : parameter[ASP_SC1].push_back(-0.0254664);
1502 8 : parameter[ASP_SC1].push_back(5.57899);
1503 8 : parameter[ASP_SC1].push_back(-0.395027);
1504 8 : parameter[ASP_SC1].push_back(-5.9407);
1505 8 : parameter[ASP_SC1].push_back(3.48836);
1506 8 : parameter[ASP_SC1].push_back(-0.569402);
1507 :
1508 8 : parameter[CYS_BB].push_back(10.698);
1509 8 : parameter[CYS_BB].push_back(-0.0233493);
1510 8 : parameter[CYS_BB].push_back(1.18257);
1511 8 : parameter[CYS_BB].push_back(0.0684464);
1512 8 : parameter[CYS_BB].push_back(-2.792);
1513 8 : parameter[CYS_BB].push_back(1.88995);
1514 8 : parameter[CYS_BB].push_back(-0.360229);
1515 :
1516 8 : parameter[CYS_SC1].push_back(8.199);
1517 8 : parameter[CYS_SC1].push_back(-0.0261569);
1518 8 : parameter[CYS_SC1].push_back(6.79677);
1519 8 : parameter[CYS_SC1].push_back(-0.343845);
1520 8 : parameter[CYS_SC1].push_back(-5.03578);
1521 8 : parameter[CYS_SC1].push_back(2.7076);
1522 8 : parameter[CYS_SC1].push_back(-0.420714);
1523 :
1524 8 : parameter[GLN_BB].push_back(10.728);
1525 8 : parameter[GLN_BB].push_back(-0.0391984);
1526 8 : parameter[GLN_BB].push_back(1.09264);
1527 8 : parameter[GLN_BB].push_back(-0.261555);
1528 8 : parameter[GLN_BB].push_back(-2.21245);
1529 8 : parameter[GLN_BB].push_back(1.62071);
1530 8 : parameter[GLN_BB].push_back(-0.322325);
1531 :
1532 8 : parameter[GLN_SC1].push_back(8.317);
1533 8 : parameter[GLN_SC1].push_back(-0.229045);
1534 8 : parameter[GLN_SC1].push_back(12.6338);
1535 8 : parameter[GLN_SC1].push_back(-7.6719);
1536 8 : parameter[GLN_SC1].push_back(-5.8376);
1537 8 : parameter[GLN_SC1].push_back(5.53784);
1538 8 : parameter[GLN_SC1].push_back(-1.12604);
1539 :
1540 8 : parameter[GLU_BB].push_back(10.694);
1541 8 : parameter[GLU_BB].push_back(-0.0521961);
1542 8 : parameter[GLU_BB].push_back(1.11153);
1543 8 : parameter[GLU_BB].push_back(-0.491995);
1544 8 : parameter[GLU_BB].push_back(-1.86236);
1545 8 : parameter[GLU_BB].push_back(1.45332);
1546 8 : parameter[GLU_BB].push_back(-0.29708);
1547 :
1548 8 : parameter[GLU_SC1].push_back(8.544);
1549 8 : parameter[GLU_SC1].push_back(-0.249555);
1550 8 : parameter[GLU_SC1].push_back(12.8031);
1551 8 : parameter[GLU_SC1].push_back(-8.42696);
1552 8 : parameter[GLU_SC1].push_back(-4.66486);
1553 8 : parameter[GLU_SC1].push_back(4.90004);
1554 8 : parameter[GLU_SC1].push_back(-1.01204);
1555 :
1556 8 : parameter[GLY_BB].push_back(9.977);
1557 8 : parameter[GLY_BB].push_back(-0.0285799);
1558 8 : parameter[GLY_BB].push_back(1.84236);
1559 8 : parameter[GLY_BB].push_back(-0.0315192);
1560 8 : parameter[GLY_BB].push_back(-2.88326);
1561 8 : parameter[GLY_BB].push_back(1.87323);
1562 8 : parameter[GLY_BB].push_back(-0.345773);
1563 :
1564 8 : parameter[HIS_BB].push_back(10.721);
1565 8 : parameter[HIS_BB].push_back(-0.0379337);
1566 8 : parameter[HIS_BB].push_back(1.06028);
1567 8 : parameter[HIS_BB].push_back(-0.236143);
1568 8 : parameter[HIS_BB].push_back(-2.17819);
1569 8 : parameter[HIS_BB].push_back(1.58357);
1570 8 : parameter[HIS_BB].push_back(-0.31345);
1571 :
1572 8 : parameter[HIS_SC1].push_back(-0.424);
1573 8 : parameter[HIS_SC1].push_back(0.665176);
1574 8 : parameter[HIS_SC1].push_back(3.4369);
1575 8 : parameter[HIS_SC1].push_back(2.93795);
1576 8 : parameter[HIS_SC1].push_back(-5.18288);
1577 8 : parameter[HIS_SC1].push_back(2.12381);
1578 8 : parameter[HIS_SC1].push_back(-0.284224);
1579 :
1580 8 : parameter[HIS_SC2].push_back(5.363);
1581 8 : parameter[HIS_SC2].push_back(-0.0176945);
1582 8 : parameter[HIS_SC2].push_back(2.9506);
1583 8 : parameter[HIS_SC2].push_back(-0.387018);
1584 8 : parameter[HIS_SC2].push_back(-1.83951);
1585 8 : parameter[HIS_SC2].push_back(0.9703);
1586 8 : parameter[HIS_SC2].push_back(-0.1458);
1587 :
1588 8 : parameter[HIS_SC3].push_back(5.784);
1589 8 : parameter[HIS_SC3].push_back(-0.0293129);
1590 8 : parameter[HIS_SC3].push_back(2.74167);
1591 8 : parameter[HIS_SC3].push_back(-0.520875);
1592 8 : parameter[HIS_SC3].push_back(-1.62949);
1593 8 : parameter[HIS_SC3].push_back(0.902379);
1594 8 : parameter[HIS_SC3].push_back(-0.139957);
1595 :
1596 8 : parameter[ILE_BB].push_back(10.699);
1597 8 : parameter[ILE_BB].push_back(-0.0188962);
1598 8 : parameter[ILE_BB].push_back(1.217);
1599 8 : parameter[ILE_BB].push_back(0.242481);
1600 8 : parameter[ILE_BB].push_back(-3.13898);
1601 8 : parameter[ILE_BB].push_back(2.07916);
1602 8 : parameter[ILE_BB].push_back(-0.392574);
1603 :
1604 8 : parameter[ILE_SC1].push_back(-4.448);
1605 8 : parameter[ILE_SC1].push_back(1.20996);
1606 8 : parameter[ILE_SC1].push_back(11.5141);
1607 8 : parameter[ILE_SC1].push_back(6.98895);
1608 8 : parameter[ILE_SC1].push_back(-19.1948);
1609 8 : parameter[ILE_SC1].push_back(9.89207);
1610 8 : parameter[ILE_SC1].push_back(-1.60877);
1611 :
1612 8 : parameter[LEU_BB].push_back(10.692);
1613 8 : parameter[LEU_BB].push_back(-0.0414917);
1614 8 : parameter[LEU_BB].push_back(1.1077);
1615 8 : parameter[LEU_BB].push_back(-0.288062);
1616 8 : parameter[LEU_BB].push_back(-2.17187);
1617 8 : parameter[LEU_BB].push_back(1.59879);
1618 8 : parameter[LEU_BB].push_back(-0.318545);
1619 :
1620 8 : parameter[LEU_SC1].push_back(-4.448);
1621 8 : parameter[LEU_SC1].push_back(2.1063);
1622 8 : parameter[LEU_SC1].push_back(6.72381);
1623 8 : parameter[LEU_SC1].push_back(14.6954);
1624 8 : parameter[LEU_SC1].push_back(-23.7197);
1625 8 : parameter[LEU_SC1].push_back(10.7247);
1626 8 : parameter[LEU_SC1].push_back(-1.59146);
1627 :
1628 8 : parameter[LYS_BB].push_back(10.706);
1629 8 : parameter[LYS_BB].push_back(-0.0468629);
1630 8 : parameter[LYS_BB].push_back(1.09477);
1631 8 : parameter[LYS_BB].push_back(-0.432751);
1632 8 : parameter[LYS_BB].push_back(-1.94335);
1633 8 : parameter[LYS_BB].push_back(1.49109);
1634 8 : parameter[LYS_BB].push_back(-0.302589);
1635 :
1636 8 : parameter[LYS_SC1].push_back(-2.796);
1637 8 : parameter[LYS_SC1].push_back(0.508044);
1638 8 : parameter[LYS_SC1].push_back(7.91436);
1639 8 : parameter[LYS_SC1].push_back(4.54097);
1640 8 : parameter[LYS_SC1].push_back(-10.8051);
1641 8 : parameter[LYS_SC1].push_back(4.96204);
1642 8 : parameter[LYS_SC1].push_back(-0.724414);
1643 :
1644 8 : parameter[LYS_SC2].push_back(3.070);
1645 8 : parameter[LYS_SC2].push_back(-0.0101448);
1646 8 : parameter[LYS_SC2].push_back(4.67994);
1647 8 : parameter[LYS_SC2].push_back(-0.792529);
1648 8 : parameter[LYS_SC2].push_back(-2.09142);
1649 8 : parameter[LYS_SC2].push_back(1.02933);
1650 8 : parameter[LYS_SC2].push_back(-0.137787);
1651 :
1652 8 : parameter[MET_BB].push_back(10.671);
1653 8 : parameter[MET_BB].push_back(-0.0433724);
1654 8 : parameter[MET_BB].push_back(1.13784);
1655 8 : parameter[MET_BB].push_back(-0.40768);
1656 8 : parameter[MET_BB].push_back(-2.00555);
1657 8 : parameter[MET_BB].push_back(1.51673);
1658 8 : parameter[MET_BB].push_back(-0.305547);
1659 :
1660 8 : parameter[MET_SC1].push_back(5.85);
1661 8 : parameter[MET_SC1].push_back(-0.0485798);
1662 8 : parameter[MET_SC1].push_back(17.0391);
1663 8 : parameter[MET_SC1].push_back(-3.65327);
1664 8 : parameter[MET_SC1].push_back(-13.174);
1665 8 : parameter[MET_SC1].push_back(8.68286);
1666 8 : parameter[MET_SC1].push_back(-1.56095);
1667 :
1668 8 : parameter[PHE_BB].push_back(10.741);
1669 8 : parameter[PHE_BB].push_back(-0.0317275);
1670 8 : parameter[PHE_BB].push_back(1.15599);
1671 8 : parameter[PHE_BB].push_back(0.0276187);
1672 8 : parameter[PHE_BB].push_back(-2.74757);
1673 8 : parameter[PHE_BB].push_back(1.88783);
1674 8 : parameter[PHE_BB].push_back(-0.363525);
1675 :
1676 8 : parameter[PHE_SC1].push_back(-0.636);
1677 8 : parameter[PHE_SC1].push_back(0.527882);
1678 8 : parameter[PHE_SC1].push_back(6.77612);
1679 8 : parameter[PHE_SC1].push_back(3.18508);
1680 8 : parameter[PHE_SC1].push_back(-8.92826);
1681 8 : parameter[PHE_SC1].push_back(4.29752);
1682 8 : parameter[PHE_SC1].push_back(-0.65187);
1683 :
1684 8 : parameter[PHE_SC2].push_back(-0.424);
1685 8 : parameter[PHE_SC2].push_back(0.389174);
1686 8 : parameter[PHE_SC2].push_back(4.11761);
1687 8 : parameter[PHE_SC2].push_back(2.29527);
1688 8 : parameter[PHE_SC2].push_back(-4.7652);
1689 8 : parameter[PHE_SC2].push_back(1.97023);
1690 8 : parameter[PHE_SC2].push_back(-0.262318);
1691 :
1692 8 : parameter[PHE_SC3].push_back(-0.424);
1693 8 : parameter[PHE_SC3].push_back(0.38927);
1694 8 : parameter[PHE_SC3].push_back(4.11708);
1695 8 : parameter[PHE_SC3].push_back(2.29623);
1696 8 : parameter[PHE_SC3].push_back(-4.76592);
1697 8 : parameter[PHE_SC3].push_back(1.97055);
1698 8 : parameter[PHE_SC3].push_back(-0.262381);
1699 :
1700 8 : parameter[PRO_BB].push_back(11.434);
1701 8 : parameter[PRO_BB].push_back(-0.033323);
1702 8 : parameter[PRO_BB].push_back(0.472014);
1703 8 : parameter[PRO_BB].push_back(-0.290854);
1704 8 : parameter[PRO_BB].push_back(-1.81409);
1705 8 : parameter[PRO_BB].push_back(1.39751);
1706 8 : parameter[PRO_BB].push_back(-0.280407);
1707 :
1708 8 : parameter[PRO_SC1].push_back(-2.796);
1709 8 : parameter[PRO_SC1].push_back(0.95668);
1710 8 : parameter[PRO_SC1].push_back(6.84197);
1711 8 : parameter[PRO_SC1].push_back(6.43774);
1712 8 : parameter[PRO_SC1].push_back(-12.5068);
1713 8 : parameter[PRO_SC1].push_back(5.64597);
1714 8 : parameter[PRO_SC1].push_back(-0.825206);
1715 :
1716 8 : parameter[SER_BB].push_back(10.699);
1717 8 : parameter[SER_BB].push_back(-0.0325828);
1718 8 : parameter[SER_BB].push_back(1.20329);
1719 8 : parameter[SER_BB].push_back(-0.0674351);
1720 8 : parameter[SER_BB].push_back(-2.60749);
1721 8 : parameter[SER_BB].push_back(1.80318);
1722 8 : parameter[SER_BB].push_back(-0.346803);
1723 :
1724 8 : parameter[SER_SC1].push_back(3.298);
1725 8 : parameter[SER_SC1].push_back(-0.0366801);
1726 8 : parameter[SER_SC1].push_back(5.11077);
1727 8 : parameter[SER_SC1].push_back(-1.46774);
1728 8 : parameter[SER_SC1].push_back(-1.48421);
1729 8 : parameter[SER_SC1].push_back(0.800326);
1730 8 : parameter[SER_SC1].push_back(-0.108314);
1731 :
1732 8 : parameter[THR_BB].push_back(10.697);
1733 8 : parameter[THR_BB].push_back(-0.0242955);
1734 8 : parameter[THR_BB].push_back(1.24671);
1735 8 : parameter[THR_BB].push_back(0.146423);
1736 8 : parameter[THR_BB].push_back(-2.97429);
1737 8 : parameter[THR_BB].push_back(1.97513);
1738 8 : parameter[THR_BB].push_back(-0.371479);
1739 :
1740 8 : parameter[THR_SC1].push_back(2.366);
1741 8 : parameter[THR_SC1].push_back(0.0297604);
1742 8 : parameter[THR_SC1].push_back(11.9216);
1743 8 : parameter[THR_SC1].push_back(-9.32503);
1744 8 : parameter[THR_SC1].push_back(1.9396);
1745 8 : parameter[THR_SC1].push_back(0.0804861);
1746 8 : parameter[THR_SC1].push_back(-0.0302721);
1747 :
1748 8 : parameter[TRP_BB].push_back(10.689);
1749 8 : parameter[TRP_BB].push_back(-0.0265879);
1750 8 : parameter[TRP_BB].push_back(1.17819);
1751 8 : parameter[TRP_BB].push_back(0.0386457);
1752 8 : parameter[TRP_BB].push_back(-2.75634);
1753 8 : parameter[TRP_BB].push_back(1.88065);
1754 8 : parameter[TRP_BB].push_back(-0.360217);
1755 :
1756 8 : parameter[TRP_SC1].push_back(0.084);
1757 8 : parameter[TRP_SC1].push_back(0.752407);
1758 8 : parameter[TRP_SC1].push_back(5.3802);
1759 8 : parameter[TRP_SC1].push_back(4.09281);
1760 8 : parameter[TRP_SC1].push_back(-9.28029);
1761 8 : parameter[TRP_SC1].push_back(4.45923);
1762 8 : parameter[TRP_SC1].push_back(-0.689008);
1763 :
1764 8 : parameter[TRP_SC2].push_back(5.739);
1765 8 : parameter[TRP_SC2].push_back(0.0298492);
1766 8 : parameter[TRP_SC2].push_back(4.60446);
1767 8 : parameter[TRP_SC2].push_back(1.34463);
1768 8 : parameter[TRP_SC2].push_back(-5.69968);
1769 8 : parameter[TRP_SC2].push_back(2.84924);
1770 8 : parameter[TRP_SC2].push_back(-0.433781);
1771 :
1772 8 : parameter[TRP_SC3].push_back(-0.424);
1773 8 : parameter[TRP_SC3].push_back(0.388576);
1774 8 : parameter[TRP_SC3].push_back(4.11859);
1775 8 : parameter[TRP_SC3].push_back(2.29485);
1776 8 : parameter[TRP_SC3].push_back(-4.76255);
1777 8 : parameter[TRP_SC3].push_back(1.96849);
1778 8 : parameter[TRP_SC3].push_back(-0.262015);
1779 :
1780 8 : parameter[TRP_SC4].push_back(-0.424);
1781 8 : parameter[TRP_SC4].push_back(0.387685);
1782 8 : parameter[TRP_SC4].push_back(4.12153);
1783 8 : parameter[TRP_SC4].push_back(2.29144);
1784 8 : parameter[TRP_SC4].push_back(-4.7589);
1785 8 : parameter[TRP_SC4].push_back(1.96686);
1786 8 : parameter[TRP_SC4].push_back(-0.261786);
1787 :
1788 8 : parameter[TYR_BB].push_back(10.689);
1789 8 : parameter[TYR_BB].push_back(-0.0193526);
1790 8 : parameter[TYR_BB].push_back(1.18241);
1791 8 : parameter[TYR_BB].push_back(0.207318);
1792 8 : parameter[TYR_BB].push_back(-3.0041);
1793 8 : parameter[TYR_BB].push_back(1.99335);
1794 8 : parameter[TYR_BB].push_back(-0.376482);
1795 :
1796 8 : parameter[TYR_SC1].push_back(-0.636);
1797 8 : parameter[TYR_SC1].push_back(0.528902);
1798 8 : parameter[TYR_SC1].push_back(6.78168);
1799 8 : parameter[TYR_SC1].push_back(3.17769);
1800 8 : parameter[TYR_SC1].push_back(-8.93667);
1801 8 : parameter[TYR_SC1].push_back(4.30692);
1802 8 : parameter[TYR_SC1].push_back(-0.653993);
1803 :
1804 8 : parameter[TYR_SC2].push_back(-0.424);
1805 8 : parameter[TYR_SC2].push_back(0.388811);
1806 8 : parameter[TYR_SC2].push_back(4.11851);
1807 8 : parameter[TYR_SC2].push_back(2.29545);
1808 8 : parameter[TYR_SC2].push_back(-4.7668);
1809 8 : parameter[TYR_SC2].push_back(1.97131);
1810 8 : parameter[TYR_SC2].push_back(-0.262534);
1811 :
1812 8 : parameter[TYR_SC3].push_back(4.526);
1813 8 : parameter[TYR_SC3].push_back(-0.00381305);
1814 8 : parameter[TYR_SC3].push_back(5.8567);
1815 8 : parameter[TYR_SC3].push_back(-0.214086);
1816 8 : parameter[TYR_SC3].push_back(-4.63649);
1817 8 : parameter[TYR_SC3].push_back(2.52869);
1818 8 : parameter[TYR_SC3].push_back(-0.39894);
1819 :
1820 8 : parameter[VAL_BB].push_back(10.691);
1821 8 : parameter[VAL_BB].push_back(-0.0162929);
1822 8 : parameter[VAL_BB].push_back(1.24446);
1823 8 : parameter[VAL_BB].push_back(0.307914);
1824 8 : parameter[VAL_BB].push_back(-3.27446);
1825 8 : parameter[VAL_BB].push_back(2.14788);
1826 8 : parameter[VAL_BB].push_back(-0.403259);
1827 :
1828 8 : parameter[VAL_SC1].push_back(-3.516);
1829 8 : parameter[VAL_SC1].push_back(1.62307);
1830 8 : parameter[VAL_SC1].push_back(5.43064);
1831 8 : parameter[VAL_SC1].push_back(9.28809);
1832 8 : parameter[VAL_SC1].push_back(-14.9927);
1833 8 : parameter[VAL_SC1].push_back(6.6133);
1834 8 : parameter[VAL_SC1].push_back(-0.964977);
1835 :
1836 8 : parameter[A_BB1].push_back(32.88500000);
1837 8 : parameter[A_BB1].push_back(0.08339900);
1838 8 : parameter[A_BB1].push_back(-7.36054400);
1839 8 : parameter[A_BB1].push_back(2.19220300);
1840 8 : parameter[A_BB1].push_back(-3.56523400);
1841 8 : parameter[A_BB1].push_back(2.33326900);
1842 8 : parameter[A_BB1].push_back(-0.39785500);
1843 :
1844 8 : parameter[A_BB2].push_back(3.80600000);
1845 8 : parameter[A_BB2].push_back(-0.10727600);
1846 8 : parameter[A_BB2].push_back(9.58854100);
1847 8 : parameter[A_BB2].push_back(-6.23740500);
1848 8 : parameter[A_BB2].push_back(-0.48267300);
1849 8 : parameter[A_BB2].push_back(1.14119500);
1850 8 : parameter[A_BB2].push_back(-0.21385600);
1851 :
1852 8 : parameter[A_BB3].push_back(3.59400000);
1853 8 : parameter[A_BB3].push_back(0.04537300);
1854 8 : parameter[A_BB3].push_back(9.59178900);
1855 8 : parameter[A_BB3].push_back(-1.29202200);
1856 8 : parameter[A_BB3].push_back(-7.10851000);
1857 8 : parameter[A_BB3].push_back(4.05571200);
1858 8 : parameter[A_BB3].push_back(-0.63372500);
1859 :
1860 8 : parameter[A_SC1].push_back(6.67100000);
1861 8 : parameter[A_SC1].push_back(-0.00855300);
1862 8 : parameter[A_SC1].push_back(1.63222400);
1863 8 : parameter[A_SC1].push_back(-0.06466200);
1864 8 : parameter[A_SC1].push_back(-1.48694200);
1865 8 : parameter[A_SC1].push_back(0.78544600);
1866 8 : parameter[A_SC1].push_back(-0.12083500);
1867 :
1868 8 : parameter[A_SC2].push_back(5.95100000);
1869 8 : parameter[A_SC2].push_back(-0.02606600);
1870 8 : parameter[A_SC2].push_back(2.54399900);
1871 8 : parameter[A_SC2].push_back(-0.48436900);
1872 8 : parameter[A_SC2].push_back(-1.55357400);
1873 8 : parameter[A_SC2].push_back(0.86466900);
1874 8 : parameter[A_SC2].push_back(-0.13509000);
1875 :
1876 8 : parameter[A_SC3].push_back(11.39400000);
1877 8 : parameter[A_SC3].push_back(0.00871300);
1878 8 : parameter[A_SC3].push_back(-0.23891300);
1879 8 : parameter[A_SC3].push_back(0.48919400);
1880 8 : parameter[A_SC3].push_back(-1.75289400);
1881 8 : parameter[A_SC3].push_back(0.99267500);
1882 8 : parameter[A_SC3].push_back(-0.16291300);
1883 :
1884 8 : parameter[A_SC4].push_back(6.45900000);
1885 8 : parameter[A_SC4].push_back(0.01990600);
1886 8 : parameter[A_SC4].push_back(4.17970400);
1887 8 : parameter[A_SC4].push_back(0.97629900);
1888 8 : parameter[A_SC4].push_back(-5.03297800);
1889 8 : parameter[A_SC4].push_back(2.55576700);
1890 8 : parameter[A_SC4].push_back(-0.39150500);
1891 :
1892 8 : parameter[A_3TE].push_back(4.23000000);
1893 8 : parameter[A_3TE].push_back(0.00064800);
1894 8 : parameter[A_3TE].push_back(0.92124600);
1895 8 : parameter[A_3TE].push_back(0.08064300);
1896 8 : parameter[A_3TE].push_back(-0.39054400);
1897 8 : parameter[A_3TE].push_back(0.12429100);
1898 8 : parameter[A_3TE].push_back(-0.01122700);
1899 :
1900 8 : parameter[A_5TE].push_back(4.23000000);
1901 8 : parameter[A_5TE].push_back(0.00039300);
1902 8 : parameter[A_5TE].push_back(0.92305100);
1903 8 : parameter[A_5TE].push_back(0.07747500);
1904 8 : parameter[A_5TE].push_back(-0.38792100);
1905 8 : parameter[A_5TE].push_back(0.12323800);
1906 8 : parameter[A_5TE].push_back(-0.01106600);
1907 :
1908 8 : parameter[A_TE3].push_back(7.82400000);
1909 8 : parameter[A_TE3].push_back(-0.04881000);
1910 8 : parameter[A_TE3].push_back(8.21557900);
1911 8 : parameter[A_TE3].push_back(-0.89491400);
1912 8 : parameter[A_TE3].push_back(-9.54293700);
1913 8 : parameter[A_TE3].push_back(6.33122200);
1914 8 : parameter[A_TE3].push_back(-1.16672900);
1915 :
1916 8 : parameter[A_TE5].push_back(8.03600000);
1917 8 : parameter[A_TE5].push_back(0.01641200);
1918 8 : parameter[A_TE5].push_back(5.14902200);
1919 8 : parameter[A_TE5].push_back(0.83419700);
1920 8 : parameter[A_TE5].push_back(-7.59068300);
1921 8 : parameter[A_TE5].push_back(4.52063200);
1922 8 : parameter[A_TE5].push_back(-0.78260800);
1923 :
1924 8 : parameter[C_BB1].push_back(32.88500000);
1925 8 : parameter[C_BB1].push_back(0.08311100);
1926 8 : parameter[C_BB1].push_back(-7.35432100);
1927 8 : parameter[C_BB1].push_back(2.18610000);
1928 8 : parameter[C_BB1].push_back(-3.55788300);
1929 8 : parameter[C_BB1].push_back(2.32918700);
1930 8 : parameter[C_BB1].push_back(-0.39720000);
1931 :
1932 8 : parameter[C_BB2].push_back(3.80600000);
1933 8 : parameter[C_BB2].push_back(-0.10808100);
1934 8 : parameter[C_BB2].push_back(9.61612600);
1935 8 : parameter[C_BB2].push_back(-6.28595400);
1936 8 : parameter[C_BB2].push_back(-0.45187000);
1937 8 : parameter[C_BB2].push_back(1.13326000);
1938 8 : parameter[C_BB2].push_back(-0.21320300);
1939 :
1940 8 : parameter[C_BB3].push_back(3.59400000);
1941 8 : parameter[C_BB3].push_back(0.04484200);
1942 8 : parameter[C_BB3].push_back(9.61919800);
1943 8 : parameter[C_BB3].push_back(-1.33582800);
1944 8 : parameter[C_BB3].push_back(-7.07200400);
1945 8 : parameter[C_BB3].push_back(4.03952900);
1946 8 : parameter[C_BB3].push_back(-0.63098200);
1947 :
1948 8 : parameter[C_SC1].push_back(5.95100000);
1949 8 : parameter[C_SC1].push_back(-0.02911300);
1950 8 : parameter[C_SC1].push_back(2.59700400);
1951 8 : parameter[C_SC1].push_back(-0.55507700);
1952 8 : parameter[C_SC1].push_back(-1.56344600);
1953 8 : parameter[C_SC1].push_back(0.88956200);
1954 8 : parameter[C_SC1].push_back(-0.14061300);
1955 :
1956 8 : parameter[C_SC2].push_back(11.62100000);
1957 8 : parameter[C_SC2].push_back(0.01366100);
1958 8 : parameter[C_SC2].push_back(-0.25959200);
1959 8 : parameter[C_SC2].push_back(0.48918300);
1960 8 : parameter[C_SC2].push_back(-1.52550500);
1961 8 : parameter[C_SC2].push_back(0.83644100);
1962 8 : parameter[C_SC2].push_back(-0.13407300);
1963 :
1964 8 : parameter[C_SC3].push_back(5.01900000);
1965 8 : parameter[C_SC3].push_back(-0.03276100);
1966 8 : parameter[C_SC3].push_back(5.53776900);
1967 8 : parameter[C_SC3].push_back(-0.95105000);
1968 8 : parameter[C_SC3].push_back(-3.71130800);
1969 8 : parameter[C_SC3].push_back(2.16146000);
1970 8 : parameter[C_SC3].push_back(-0.34918600);
1971 :
1972 8 : parameter[C_3TE].push_back(4.23000000);
1973 8 : parameter[C_3TE].push_back(0.00057300);
1974 8 : parameter[C_3TE].push_back(0.92174800);
1975 8 : parameter[C_3TE].push_back(0.07964500);
1976 8 : parameter[C_3TE].push_back(-0.38965700);
1977 8 : parameter[C_3TE].push_back(0.12392500);
1978 8 : parameter[C_3TE].push_back(-0.01117000);
1979 :
1980 8 : parameter[C_5TE].push_back(4.23000000);
1981 8 : parameter[C_5TE].push_back(0.00071000);
1982 8 : parameter[C_5TE].push_back(0.92082800);
1983 8 : parameter[C_5TE].push_back(0.08150600);
1984 8 : parameter[C_5TE].push_back(-0.39127000);
1985 8 : parameter[C_5TE].push_back(0.12455900);
1986 8 : parameter[C_5TE].push_back(-0.01126300);
1987 :
1988 8 : parameter[C_TE3].push_back(7.82400000);
1989 8 : parameter[C_TE3].push_back(-0.05848300);
1990 8 : parameter[C_TE3].push_back(8.29319900);
1991 8 : parameter[C_TE3].push_back(-1.12563800);
1992 8 : parameter[C_TE3].push_back(-9.42197600);
1993 8 : parameter[C_TE3].push_back(6.35441700);
1994 8 : parameter[C_TE3].push_back(-1.18356900);
1995 :
1996 8 : parameter[C_TE5].push_back(8.03600000);
1997 8 : parameter[C_TE5].push_back(0.00493500);
1998 8 : parameter[C_TE5].push_back(4.92622000);
1999 8 : parameter[C_TE5].push_back(0.64810700);
2000 8 : parameter[C_TE5].push_back(-7.05100000);
2001 8 : parameter[C_TE5].push_back(4.26064400);
2002 8 : parameter[C_TE5].push_back(-0.74819100);
2003 :
2004 8 : parameter[G_BB1].push_back(32.88500000);
2005 8 : parameter[G_BB1].push_back(0.08325400);
2006 8 : parameter[G_BB1].push_back(-7.35736000);
2007 8 : parameter[G_BB1].push_back(2.18914800);
2008 8 : parameter[G_BB1].push_back(-3.56154800);
2009 8 : parameter[G_BB1].push_back(2.33120600);
2010 8 : parameter[G_BB1].push_back(-0.39752300);
2011 :
2012 8 : parameter[G_BB2].push_back(3.80600000);
2013 8 : parameter[G_BB2].push_back(-0.10788300);
2014 8 : parameter[G_BB2].push_back(9.60930800);
2015 8 : parameter[G_BB2].push_back(-6.27402500);
2016 8 : parameter[G_BB2].push_back(-0.46192700);
2017 8 : parameter[G_BB2].push_back(1.13737000);
2018 8 : parameter[G_BB2].push_back(-0.21383100);
2019 :
2020 8 : parameter[G_BB3].push_back(3.59400000);
2021 8 : parameter[G_BB3].push_back(0.04514500);
2022 8 : parameter[G_BB3].push_back(9.61234700);
2023 8 : parameter[G_BB3].push_back(-1.31542100);
2024 8 : parameter[G_BB3].push_back(-7.09150500);
2025 8 : parameter[G_BB3].push_back(4.04706200);
2026 8 : parameter[G_BB3].push_back(-0.63201000);
2027 :
2028 8 : parameter[G_SC1].push_back(6.67100000);
2029 8 : parameter[G_SC1].push_back(-0.00863200);
2030 8 : parameter[G_SC1].push_back(1.63252300);
2031 8 : parameter[G_SC1].push_back(-0.06567200);
2032 8 : parameter[G_SC1].push_back(-1.48680500);
2033 8 : parameter[G_SC1].push_back(0.78565600);
2034 8 : parameter[G_SC1].push_back(-0.12088900);
2035 :
2036 8 : parameter[G_SC2].push_back(11.39400000);
2037 8 : parameter[G_SC2].push_back(0.00912200);
2038 8 : parameter[G_SC2].push_back(-0.22869000);
2039 8 : parameter[G_SC2].push_back(0.49616400);
2040 8 : parameter[G_SC2].push_back(-1.75039000);
2041 8 : parameter[G_SC2].push_back(0.98649200);
2042 8 : parameter[G_SC2].push_back(-0.16141600);
2043 :
2044 8 : parameter[G_SC3].push_back(10.90100000);
2045 8 : parameter[G_SC3].push_back(0.02208700);
2046 8 : parameter[G_SC3].push_back(0.17032800);
2047 8 : parameter[G_SC3].push_back(0.73280800);
2048 8 : parameter[G_SC3].push_back(-1.95292000);
2049 8 : parameter[G_SC3].push_back(0.98357600);
2050 8 : parameter[G_SC3].push_back(-0.14790900);
2051 :
2052 8 : parameter[G_SC4].push_back(6.45900000);
2053 8 : parameter[G_SC4].push_back(0.02023700);
2054 8 : parameter[G_SC4].push_back(4.17655400);
2055 8 : parameter[G_SC4].push_back(0.98731800);
2056 8 : parameter[G_SC4].push_back(-5.04352800);
2057 8 : parameter[G_SC4].push_back(2.56059400);
2058 8 : parameter[G_SC4].push_back(-0.39234300);
2059 :
2060 8 : parameter[G_3TE].push_back(4.23000000);
2061 8 : parameter[G_3TE].push_back(0.00066300);
2062 8 : parameter[G_3TE].push_back(0.92118800);
2063 8 : parameter[G_3TE].push_back(0.08062700);
2064 8 : parameter[G_3TE].push_back(-0.39041600);
2065 8 : parameter[G_3TE].push_back(0.12419400);
2066 8 : parameter[G_3TE].push_back(-0.01120500);
2067 :
2068 8 : parameter[G_5TE].push_back(4.23000000);
2069 8 : parameter[G_5TE].push_back(0.00062800);
2070 8 : parameter[G_5TE].push_back(0.92133500);
2071 8 : parameter[G_5TE].push_back(0.08029900);
2072 8 : parameter[G_5TE].push_back(-0.39015300);
2073 8 : parameter[G_5TE].push_back(0.12411600);
2074 8 : parameter[G_5TE].push_back(-0.01119900);
2075 :
2076 8 : parameter[G_TE3].push_back(7.82400000);
2077 8 : parameter[G_TE3].push_back(-0.05177400);
2078 8 : parameter[G_TE3].push_back(8.34606700);
2079 8 : parameter[G_TE3].push_back(-1.02936300);
2080 8 : parameter[G_TE3].push_back(-9.55211900);
2081 8 : parameter[G_TE3].push_back(6.37776600);
2082 8 : parameter[G_TE3].push_back(-1.17898000);
2083 :
2084 8 : parameter[G_TE5].push_back(8.03600000);
2085 8 : parameter[G_TE5].push_back(0.00525100);
2086 8 : parameter[G_TE5].push_back(4.71070600);
2087 8 : parameter[G_TE5].push_back(0.66746900);
2088 8 : parameter[G_TE5].push_back(-6.72538700);
2089 8 : parameter[G_TE5].push_back(4.03644100);
2090 8 : parameter[G_TE5].push_back(-0.70605700);
2091 :
2092 8 : parameter[U_BB1].push_back(32.88500000);
2093 8 : parameter[U_BB1].push_back(0.08321400);
2094 8 : parameter[U_BB1].push_back(-7.35634900);
2095 8 : parameter[U_BB1].push_back(2.18826800);
2096 8 : parameter[U_BB1].push_back(-3.56047400);
2097 8 : parameter[U_BB1].push_back(2.33064700);
2098 8 : parameter[U_BB1].push_back(-0.39744000);
2099 :
2100 8 : parameter[U_BB2].push_back(3.80600000);
2101 8 : parameter[U_BB2].push_back(-0.10773100);
2102 8 : parameter[U_BB2].push_back(9.60099900);
2103 8 : parameter[U_BB2].push_back(-6.26131900);
2104 8 : parameter[U_BB2].push_back(-0.46668300);
2105 8 : parameter[U_BB2].push_back(1.13698100);
2106 8 : parameter[U_BB2].push_back(-0.21351600);
2107 :
2108 8 : parameter[U_BB3].push_back(3.59400000);
2109 8 : parameter[U_BB3].push_back(0.04544300);
2110 8 : parameter[U_BB3].push_back(9.59625900);
2111 8 : parameter[U_BB3].push_back(-1.29222200);
2112 8 : parameter[U_BB3].push_back(-7.11143200);
2113 8 : parameter[U_BB3].push_back(4.05687700);
2114 8 : parameter[U_BB3].push_back(-0.63382800);
2115 :
2116 8 : parameter[U_SC1].push_back(5.95100000);
2117 8 : parameter[U_SC1].push_back(-0.02924500);
2118 8 : parameter[U_SC1].push_back(2.59668700);
2119 8 : parameter[U_SC1].push_back(-0.56118700);
2120 8 : parameter[U_SC1].push_back(-1.56477100);
2121 8 : parameter[U_SC1].push_back(0.89265100);
2122 8 : parameter[U_SC1].push_back(-0.14130800);
2123 :
2124 8 : parameter[U_SC2].push_back(10.90100000);
2125 8 : parameter[U_SC2].push_back(0.02178900);
2126 8 : parameter[U_SC2].push_back(0.18839000);
2127 8 : parameter[U_SC2].push_back(0.72223100);
2128 8 : parameter[U_SC2].push_back(-1.92581600);
2129 8 : parameter[U_SC2].push_back(0.96654300);
2130 8 : parameter[U_SC2].push_back(-0.14501300);
2131 :
2132 8 : parameter[U_SC3].push_back(5.24600000);
2133 8 : parameter[U_SC3].push_back(-0.04586500);
2134 8 : parameter[U_SC3].push_back(5.89978100);
2135 8 : parameter[U_SC3].push_back(-1.50664700);
2136 8 : parameter[U_SC3].push_back(-3.17054400);
2137 8 : parameter[U_SC3].push_back(1.93717100);
2138 8 : parameter[U_SC3].push_back(-0.31701000);
2139 :
2140 8 : parameter[U_3TE].push_back(4.23000000);
2141 8 : parameter[U_3TE].push_back(0.00067500);
2142 8 : parameter[U_3TE].push_back(0.92102300);
2143 8 : parameter[U_3TE].push_back(0.08100800);
2144 8 : parameter[U_3TE].push_back(-0.39084300);
2145 8 : parameter[U_3TE].push_back(0.12441900);
2146 8 : parameter[U_3TE].push_back(-0.01124900);
2147 :
2148 8 : parameter[U_5TE].push_back(4.23000000);
2149 8 : parameter[U_5TE].push_back(0.00059000);
2150 8 : parameter[U_5TE].push_back(0.92154600);
2151 8 : parameter[U_5TE].push_back(0.07968200);
2152 8 : parameter[U_5TE].push_back(-0.38950100);
2153 8 : parameter[U_5TE].push_back(0.12382500);
2154 8 : parameter[U_5TE].push_back(-0.01115100);
2155 :
2156 8 : parameter[U_TE3].push_back(7.82400000);
2157 8 : parameter[U_TE3].push_back(-0.02968100);
2158 8 : parameter[U_TE3].push_back(7.93783200);
2159 8 : parameter[U_TE3].push_back(-0.33078100);
2160 8 : parameter[U_TE3].push_back(-10.14120200);
2161 8 : parameter[U_TE3].push_back(6.63334700);
2162 8 : parameter[U_TE3].push_back(-1.22111200);
2163 :
2164 8 : parameter[U_TE5].push_back(8.03600000);
2165 8 : parameter[U_TE5].push_back(-0.00909700);
2166 8 : parameter[U_TE5].push_back(4.33193500);
2167 8 : parameter[U_TE5].push_back(0.43416500);
2168 8 : parameter[U_TE5].push_back(-5.80831400);
2169 8 : parameter[U_TE5].push_back(3.52438800);
2170 8 : parameter[U_TE5].push_back(-0.62382400);
2171 :
2172 8 : parameter[DA_BB1].push_back(32.88500000);
2173 8 : parameter[DA_BB1].push_back(0.08179900);
2174 8 : parameter[DA_BB1].push_back(-7.31735900);
2175 8 : parameter[DA_BB1].push_back(2.15614500);
2176 8 : parameter[DA_BB1].push_back(-3.52263200);
2177 8 : parameter[DA_BB1].push_back(2.30604700);
2178 8 : parameter[DA_BB1].push_back(-0.39270100);
2179 :
2180 8 : parameter[DA_BB2].push_back(3.80600000);
2181 8 : parameter[DA_BB2].push_back(-0.10597700);
2182 8 : parameter[DA_BB2].push_back(9.52537500);
2183 8 : parameter[DA_BB2].push_back(-6.12991000);
2184 8 : parameter[DA_BB2].push_back(-0.54092600);
2185 8 : parameter[DA_BB2].push_back(1.15429100);
2186 8 : parameter[DA_BB2].push_back(-0.21503500);
2187 :
2188 8 : parameter[DA_BB3].push_back(-1.35600000);
2189 8 : parameter[DA_BB3].push_back(0.58928300);
2190 8 : parameter[DA_BB3].push_back(6.71894100);
2191 8 : parameter[DA_BB3].push_back(4.14050900);
2192 8 : parameter[DA_BB3].push_back(-9.65859900);
2193 8 : parameter[DA_BB3].push_back(4.43185000);
2194 8 : parameter[DA_BB3].push_back(-0.64657300);
2195 :
2196 8 : parameter[DA_SC1].push_back(6.67100000);
2197 8 : parameter[DA_SC1].push_back(-0.00871400);
2198 8 : parameter[DA_SC1].push_back(1.63289100);
2199 8 : parameter[DA_SC1].push_back(-0.06637700);
2200 8 : parameter[DA_SC1].push_back(-1.48632900);
2201 8 : parameter[DA_SC1].push_back(0.78551800);
2202 8 : parameter[DA_SC1].push_back(-0.12087300);
2203 :
2204 8 : parameter[DA_SC2].push_back(5.95100000);
2205 8 : parameter[DA_SC2].push_back(-0.02634300);
2206 8 : parameter[DA_SC2].push_back(2.54864300);
2207 8 : parameter[DA_SC2].push_back(-0.49015800);
2208 8 : parameter[DA_SC2].push_back(-1.55386900);
2209 8 : parameter[DA_SC2].push_back(0.86630200);
2210 8 : parameter[DA_SC2].push_back(-0.13546200);
2211 :
2212 8 : parameter[DA_SC3].push_back(11.39400000);
2213 8 : parameter[DA_SC3].push_back(0.00859500);
2214 8 : parameter[DA_SC3].push_back(-0.25471400);
2215 8 : parameter[DA_SC3].push_back(0.48718800);
2216 8 : parameter[DA_SC3].push_back(-1.74520000);
2217 8 : parameter[DA_SC3].push_back(0.99246200);
2218 8 : parameter[DA_SC3].push_back(-0.16351900);
2219 :
2220 8 : parameter[DA_SC4].push_back(6.45900000);
2221 8 : parameter[DA_SC4].push_back(0.01991800);
2222 8 : parameter[DA_SC4].push_back(4.17962300);
2223 8 : parameter[DA_SC4].push_back(0.97469100);
2224 8 : parameter[DA_SC4].push_back(-5.02950400);
2225 8 : parameter[DA_SC4].push_back(2.55371800);
2226 8 : parameter[DA_SC4].push_back(-0.39113400);
2227 :
2228 8 : parameter[DA_3TE].push_back(4.23000000);
2229 8 : parameter[DA_3TE].push_back(0.00062600);
2230 8 : parameter[DA_3TE].push_back(0.92142000);
2231 8 : parameter[DA_3TE].push_back(0.08016400);
2232 8 : parameter[DA_3TE].push_back(-0.39000300);
2233 8 : parameter[DA_3TE].push_back(0.12402500);
2234 8 : parameter[DA_3TE].push_back(-0.01117900);
2235 :
2236 8 : parameter[DA_5TE].push_back(4.23000000);
2237 8 : parameter[DA_5TE].push_back(0.00055500);
2238 8 : parameter[DA_5TE].push_back(0.92183900);
2239 8 : parameter[DA_5TE].push_back(0.07907600);
2240 8 : parameter[DA_5TE].push_back(-0.38895100);
2241 8 : parameter[DA_5TE].push_back(0.12359600);
2242 8 : parameter[DA_5TE].push_back(-0.01111600);
2243 :
2244 8 : parameter[DA_TE3].push_back(2.87400000);
2245 8 : parameter[DA_TE3].push_back(0.00112900);
2246 8 : parameter[DA_TE3].push_back(12.51167200);
2247 8 : parameter[DA_TE3].push_back(-7.67548000);
2248 8 : parameter[DA_TE3].push_back(-2.02234000);
2249 8 : parameter[DA_TE3].push_back(2.50837100);
2250 8 : parameter[DA_TE3].push_back(-0.49458500);
2251 :
2252 8 : parameter[DA_TE5].push_back(8.03600000);
2253 8 : parameter[DA_TE5].push_back(0.00473100);
2254 8 : parameter[DA_TE5].push_back(4.65554400);
2255 8 : parameter[DA_TE5].push_back(0.66424100);
2256 8 : parameter[DA_TE5].push_back(-6.62131300);
2257 8 : parameter[DA_TE5].push_back(3.96107400);
2258 8 : parameter[DA_TE5].push_back(-0.69075800);
2259 :
2260 8 : parameter[DC_BB1].push_back(32.88500000);
2261 8 : parameter[DC_BB1].push_back(0.08189900);
2262 8 : parameter[DC_BB1].push_back(-7.32493500);
2263 8 : parameter[DC_BB1].push_back(2.15976900);
2264 8 : parameter[DC_BB1].push_back(-3.52612100);
2265 8 : parameter[DC_BB1].push_back(2.31058600);
2266 8 : parameter[DC_BB1].push_back(-0.39402700);
2267 :
2268 8 : parameter[DC_BB2].push_back(3.80600000);
2269 8 : parameter[DC_BB2].push_back(-0.10559800);
2270 8 : parameter[DC_BB2].push_back(9.52527700);
2271 8 : parameter[DC_BB2].push_back(-6.12131700);
2272 8 : parameter[DC_BB2].push_back(-0.54899400);
2273 8 : parameter[DC_BB2].push_back(1.15592900);
2274 8 : parameter[DC_BB2].push_back(-0.21494500);
2275 :
2276 8 : parameter[DC_BB3].push_back(-1.35600000);
2277 8 : parameter[DC_BB3].push_back(0.55525700);
2278 8 : parameter[DC_BB3].push_back(6.80305500);
2279 8 : parameter[DC_BB3].push_back(4.05924700);
2280 8 : parameter[DC_BB3].push_back(-9.61034700);
2281 8 : parameter[DC_BB3].push_back(4.41253800);
2282 8 : parameter[DC_BB3].push_back(-0.64315100);
2283 :
2284 8 : parameter[DC_SC1].push_back(5.95100000);
2285 8 : parameter[DC_SC1].push_back(-0.02899900);
2286 8 : parameter[DC_SC1].push_back(2.59587800);
2287 8 : parameter[DC_SC1].push_back(-0.55388300);
2288 8 : parameter[DC_SC1].push_back(-1.56395100);
2289 8 : parameter[DC_SC1].push_back(0.88967400);
2290 8 : parameter[DC_SC1].push_back(-0.14062500);
2291 :
2292 8 : parameter[DC_SC2].push_back(11.62100000);
2293 8 : parameter[DC_SC2].push_back(0.01358100);
2294 8 : parameter[DC_SC2].push_back(-0.24913000);
2295 8 : parameter[DC_SC2].push_back(0.48787200);
2296 8 : parameter[DC_SC2].push_back(-1.52867300);
2297 8 : parameter[DC_SC2].push_back(0.83694900);
2298 8 : parameter[DC_SC2].push_back(-0.13395300);
2299 :
2300 8 : parameter[DC_SC3].push_back(5.01900000);
2301 8 : parameter[DC_SC3].push_back(-0.03298400);
2302 8 : parameter[DC_SC3].push_back(5.54242800);
2303 8 : parameter[DC_SC3].push_back(-0.96081500);
2304 8 : parameter[DC_SC3].push_back(-3.71051600);
2305 8 : parameter[DC_SC3].push_back(2.16500200);
2306 8 : parameter[DC_SC3].push_back(-0.35023400);
2307 :
2308 8 : parameter[DC_3TE].push_back(4.23000000);
2309 8 : parameter[DC_3TE].push_back(0.00055700);
2310 8 : parameter[DC_3TE].push_back(0.92181400);
2311 8 : parameter[DC_3TE].push_back(0.07924000);
2312 8 : parameter[DC_3TE].push_back(-0.38916400);
2313 8 : parameter[DC_3TE].push_back(0.12369900);
2314 8 : parameter[DC_3TE].push_back(-0.01113300);
2315 :
2316 8 : parameter[DC_5TE].push_back(4.23000000);
2317 8 : parameter[DC_5TE].push_back(0.00066500);
2318 8 : parameter[DC_5TE].push_back(0.92103900);
2319 8 : parameter[DC_5TE].push_back(0.08064600);
2320 8 : parameter[DC_5TE].push_back(-0.39034900);
2321 8 : parameter[DC_5TE].push_back(0.12417600);
2322 8 : parameter[DC_5TE].push_back(-0.01120600);
2323 :
2324 8 : parameter[DC_TE3].push_back(2.87400000);
2325 8 : parameter[DC_TE3].push_back(-0.05235500);
2326 8 : parameter[DC_TE3].push_back(13.09201200);
2327 8 : parameter[DC_TE3].push_back(-9.48128200);
2328 8 : parameter[DC_TE3].push_back(-0.14958600);
2329 8 : parameter[DC_TE3].push_back(1.75537200);
2330 8 : parameter[DC_TE3].push_back(-0.39347500);
2331 :
2332 8 : parameter[DC_TE5].push_back(8.03600000);
2333 8 : parameter[DC_TE5].push_back(-0.00513600);
2334 8 : parameter[DC_TE5].push_back(4.67705700);
2335 8 : parameter[DC_TE5].push_back(0.48333300);
2336 8 : parameter[DC_TE5].push_back(-6.34511000);
2337 8 : parameter[DC_TE5].push_back(3.83388500);
2338 8 : parameter[DC_TE5].push_back(-0.67367800);
2339 :
2340 8 : parameter[DG_BB1].push_back(32.88500000);
2341 8 : parameter[DG_BB1].push_back(0.08182900);
2342 8 : parameter[DG_BB1].push_back(-7.32133900);
2343 8 : parameter[DG_BB1].push_back(2.15767900);
2344 8 : parameter[DG_BB1].push_back(-3.52369700);
2345 8 : parameter[DG_BB1].push_back(2.30839600);
2346 8 : parameter[DG_BB1].push_back(-0.39348300);
2347 :
2348 8 : parameter[DG_BB2].push_back(3.80600000);
2349 8 : parameter[DG_BB2].push_back(-0.10618100);
2350 8 : parameter[DG_BB2].push_back(9.54169000);
2351 8 : parameter[DG_BB2].push_back(-6.15177600);
2352 8 : parameter[DG_BB2].push_back(-0.53462400);
2353 8 : parameter[DG_BB2].push_back(1.15581300);
2354 8 : parameter[DG_BB2].push_back(-0.21567000);
2355 :
2356 8 : parameter[DG_BB3].push_back(-1.35600000);
2357 8 : parameter[DG_BB3].push_back(0.57489100);
2358 8 : parameter[DG_BB3].push_back(6.75164700);
2359 8 : parameter[DG_BB3].push_back(4.11300900);
2360 8 : parameter[DG_BB3].push_back(-9.63394600);
2361 8 : parameter[DG_BB3].push_back(4.41675400);
2362 8 : parameter[DG_BB3].push_back(-0.64339900);
2363 :
2364 8 : parameter[DG_SC1].push_back(6.67100000);
2365 8 : parameter[DG_SC1].push_back(-0.00886600);
2366 8 : parameter[DG_SC1].push_back(1.63333000);
2367 8 : parameter[DG_SC1].push_back(-0.06892100);
2368 8 : parameter[DG_SC1].push_back(-1.48683500);
2369 8 : parameter[DG_SC1].push_back(0.78670800);
2370 8 : parameter[DG_SC1].push_back(-0.12113900);
2371 :
2372 8 : parameter[DG_SC2].push_back(11.39400000);
2373 8 : parameter[DG_SC2].push_back(0.00907900);
2374 8 : parameter[DG_SC2].push_back(-0.22475500);
2375 8 : parameter[DG_SC2].push_back(0.49535100);
2376 8 : parameter[DG_SC2].push_back(-1.75324900);
2377 8 : parameter[DG_SC2].push_back(0.98767400);
2378 8 : parameter[DG_SC2].push_back(-0.16150800);
2379 :
2380 8 : parameter[DG_SC3].push_back(10.90100000);
2381 8 : parameter[DG_SC3].push_back(0.02207600);
2382 8 : parameter[DG_SC3].push_back(0.17932200);
2383 8 : parameter[DG_SC3].push_back(0.73253200);
2384 8 : parameter[DG_SC3].push_back(-1.95554900);
2385 8 : parameter[DG_SC3].push_back(0.98339900);
2386 8 : parameter[DG_SC3].push_back(-0.14763600);
2387 :
2388 8 : parameter[DG_SC4].push_back(6.45900000);
2389 8 : parameter[DG_SC4].push_back(0.02018400);
2390 8 : parameter[DG_SC4].push_back(4.17705400);
2391 8 : parameter[DG_SC4].push_back(0.98531700);
2392 8 : parameter[DG_SC4].push_back(-5.04354900);
2393 8 : parameter[DG_SC4].push_back(2.56123700);
2394 8 : parameter[DG_SC4].push_back(-0.39249300);
2395 :
2396 8 : parameter[DG_3TE].push_back(4.23000000);
2397 8 : parameter[DG_3TE].push_back(0.00061700);
2398 8 : parameter[DG_3TE].push_back(0.92140100);
2399 8 : parameter[DG_3TE].push_back(0.08016400);
2400 8 : parameter[DG_3TE].push_back(-0.39003500);
2401 8 : parameter[DG_3TE].push_back(0.12406900);
2402 8 : parameter[DG_3TE].push_back(-0.01119200);
2403 :
2404 8 : parameter[DG_5TE].push_back(4.23000000);
2405 8 : parameter[DG_5TE].push_back(0.00064900);
2406 8 : parameter[DG_5TE].push_back(0.92110500);
2407 8 : parameter[DG_5TE].push_back(0.08031500);
2408 8 : parameter[DG_5TE].push_back(-0.38997000);
2409 8 : parameter[DG_5TE].push_back(0.12401200);
2410 8 : parameter[DG_5TE].push_back(-0.01118100);
2411 :
2412 8 : parameter[DG_TE3].push_back(2.87400000);
2413 8 : parameter[DG_TE3].push_back(0.00182000);
2414 8 : parameter[DG_TE3].push_back(12.41507000);
2415 8 : parameter[DG_TE3].push_back(-7.47384800);
2416 8 : parameter[DG_TE3].push_back(-2.11864700);
2417 8 : parameter[DG_TE3].push_back(2.50112600);
2418 8 : parameter[DG_TE3].push_back(-0.48652200);
2419 :
2420 8 : parameter[DG_TE5].push_back(8.03600000);
2421 8 : parameter[DG_TE5].push_back(0.00676400);
2422 8 : parameter[DG_TE5].push_back(4.65989200);
2423 8 : parameter[DG_TE5].push_back(0.78482500);
2424 8 : parameter[DG_TE5].push_back(-6.86460600);
2425 8 : parameter[DG_TE5].push_back(4.11675400);
2426 8 : parameter[DG_TE5].push_back(-0.72249100);
2427 :
2428 8 : parameter[DT_BB1].push_back(32.88500000);
2429 8 : parameter[DT_BB1].push_back(0.08220100);
2430 8 : parameter[DT_BB1].push_back(-7.33006800);
2431 8 : parameter[DT_BB1].push_back(2.16636500);
2432 8 : parameter[DT_BB1].push_back(-3.53465700);
2433 8 : parameter[DT_BB1].push_back(2.31447600);
2434 8 : parameter[DT_BB1].push_back(-0.39445400);
2435 :
2436 8 : parameter[DT_BB2].push_back(3.80600000);
2437 8 : parameter[DT_BB2].push_back(-0.10723000);
2438 8 : parameter[DT_BB2].push_back(9.56675000);
2439 8 : parameter[DT_BB2].push_back(-6.20236100);
2440 8 : parameter[DT_BB2].push_back(-0.49550400);
2441 8 : parameter[DT_BB2].push_back(1.14300600);
2442 8 : parameter[DT_BB2].push_back(-0.21420000);
2443 :
2444 8 : parameter[DT_BB3].push_back(-1.35600000);
2445 8 : parameter[DT_BB3].push_back(0.56737900);
2446 8 : parameter[DT_BB3].push_back(6.76595400);
2447 8 : parameter[DT_BB3].push_back(4.08976100);
2448 8 : parameter[DT_BB3].push_back(-9.61512500);
2449 8 : parameter[DT_BB3].push_back(4.40975100);
2450 8 : parameter[DT_BB3].push_back(-0.64239800);
2451 :
2452 8 : parameter[DT_SC1].push_back(5.95100000);
2453 8 : parameter[DT_SC1].push_back(-0.02926500);
2454 8 : parameter[DT_SC1].push_back(2.59630300);
2455 8 : parameter[DT_SC1].push_back(-0.56152200);
2456 8 : parameter[DT_SC1].push_back(-1.56532600);
2457 8 : parameter[DT_SC1].push_back(0.89322800);
2458 8 : parameter[DT_SC1].push_back(-0.14142900);
2459 :
2460 8 : parameter[DT_SC2].push_back(10.90100000);
2461 8 : parameter[DT_SC2].push_back(0.02183400);
2462 8 : parameter[DT_SC2].push_back(0.19463000);
2463 8 : parameter[DT_SC2].push_back(0.72393000);
2464 8 : parameter[DT_SC2].push_back(-1.93199500);
2465 8 : parameter[DT_SC2].push_back(0.96856300);
2466 8 : parameter[DT_SC2].push_back(-0.14512600);
2467 :
2468 8 : parameter[DT_SC3].push_back(4.31400000);
2469 8 : parameter[DT_SC3].push_back(-0.07745600);
2470 8 : parameter[DT_SC3].push_back(12.49820300);
2471 8 : parameter[DT_SC3].push_back(-7.64994200);
2472 8 : parameter[DT_SC3].push_back(-3.00359600);
2473 8 : parameter[DT_SC3].push_back(3.26263300);
2474 8 : parameter[DT_SC3].push_back(-0.64498600);
2475 :
2476 8 : parameter[DT_3TE].push_back(4.23000000);
2477 8 : parameter[DT_3TE].push_back(0.00062000);
2478 8 : parameter[DT_3TE].push_back(0.92141100);
2479 8 : parameter[DT_3TE].push_back(0.08030900);
2480 8 : parameter[DT_3TE].push_back(-0.39021500);
2481 8 : parameter[DT_3TE].push_back(0.12414000);
2482 8 : parameter[DT_3TE].push_back(-0.01120100);
2483 :
2484 8 : parameter[DT_5TE].push_back(4.23000000);
2485 8 : parameter[DT_5TE].push_back(0.00063700);
2486 8 : parameter[DT_5TE].push_back(0.92130800);
2487 8 : parameter[DT_5TE].push_back(0.08026900);
2488 8 : parameter[DT_5TE].push_back(-0.39007500);
2489 8 : parameter[DT_5TE].push_back(0.12406600);
2490 8 : parameter[DT_5TE].push_back(-0.01118800);
2491 :
2492 8 : parameter[DT_TE3].push_back(2.87400000);
2493 8 : parameter[DT_TE3].push_back(-0.00251200);
2494 8 : parameter[DT_TE3].push_back(12.43576400);
2495 8 : parameter[DT_TE3].push_back(-7.55343800);
2496 8 : parameter[DT_TE3].push_back(-2.07363500);
2497 8 : parameter[DT_TE3].push_back(2.51279300);
2498 8 : parameter[DT_TE3].push_back(-0.49437100);
2499 :
2500 8 : parameter[DT_TE5].push_back(8.03600000);
2501 8 : parameter[DT_TE5].push_back(0.00119900);
2502 8 : parameter[DT_TE5].push_back(4.91762300);
2503 8 : parameter[DT_TE5].push_back(0.65637000);
2504 8 : parameter[DT_TE5].push_back(-7.23392500);
2505 8 : parameter[DT_TE5].push_back(4.44636600);
2506 8 : parameter[DT_TE5].push_back(-0.79467800);
2507 :
2508 8 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
2509 8 : if( moldat ) {
2510 8400 : for(unsigned i=0; i<atoms.size(); ++i) {
2511 8392 : std::string Aname = moldat->getAtomName(atoms[i]);
2512 8392 : std::string Rname = moldat->getResidueName(atoms[i]);
2513 8392 : if(Rname=="ALA") {
2514 72 : if(Aname=="BB") {
2515 72 : atoi[i]=ALA_BB;
2516 : } else {
2517 0 : error("Atom name not known: "+Aname);
2518 : }
2519 8320 : } else if(Rname=="ARG") {
2520 420 : if(Aname=="BB") {
2521 140 : atoi[i]=ARG_BB;
2522 280 : } else if(Aname=="SC1") {
2523 140 : atoi[i]=ARG_SC1;
2524 140 : } else if(Aname=="SC2") {
2525 140 : atoi[i]=ARG_SC2;
2526 : } else {
2527 0 : error("Atom name not known: "+Aname);
2528 : }
2529 7900 : } else if(Rname=="ASN") {
2530 240 : if(Aname=="BB") {
2531 120 : atoi[i]=ASN_BB;
2532 120 : } else if(Aname=="SC1") {
2533 120 : atoi[i]=ASN_SC1;
2534 : } else {
2535 0 : error("Atom name not known: "+Aname);
2536 : }
2537 7660 : } else if(Rname=="ASP") {
2538 368 : if(Aname=="BB") {
2539 184 : atoi[i]=ASP_BB;
2540 184 : } else if(Aname=="SC1") {
2541 184 : atoi[i]=ASP_SC1;
2542 : } else {
2543 0 : error("Atom name not known: "+Aname);
2544 : }
2545 7292 : } else if(Rname=="CYS") {
2546 16 : if(Aname=="BB") {
2547 8 : atoi[i]=CYS_BB;
2548 8 : } else if(Aname=="SC1") {
2549 8 : atoi[i]=CYS_SC1;
2550 : } else {
2551 0 : error("Atom name not known: "+Aname);
2552 : }
2553 7276 : } else if(Rname=="GLN") {
2554 224 : if(Aname=="BB") {
2555 112 : atoi[i]=GLN_BB;
2556 112 : } else if(Aname=="SC1") {
2557 112 : atoi[i]=GLN_SC1;
2558 : } else {
2559 0 : error("Atom name not known: "+Aname);
2560 : }
2561 7052 : } else if(Rname=="GLU") {
2562 480 : if(Aname=="BB") {
2563 240 : atoi[i]=GLU_BB;
2564 240 : } else if(Aname=="SC1") {
2565 240 : atoi[i]=GLU_SC1;
2566 : } else {
2567 0 : error("Atom name not known: "+Aname);
2568 : }
2569 6572 : } else if(Rname=="GLY") {
2570 116 : if(Aname=="BB") {
2571 116 : atoi[i]=GLY_BB;
2572 : } else {
2573 0 : error("Atom name not known: "+Aname);
2574 : }
2575 6456 : } else if(Rname=="HIS") {
2576 576 : if(Aname=="BB") {
2577 144 : atoi[i]=HIS_BB;
2578 432 : } else if(Aname=="SC1") {
2579 144 : atoi[i]=HIS_SC1;
2580 288 : } else if(Aname=="SC2") {
2581 144 : atoi[i]=HIS_SC2;
2582 144 : } else if(Aname=="SC3") {
2583 144 : atoi[i]=HIS_SC3;
2584 : } else {
2585 0 : error("Atom name not known: "+Aname);
2586 : }
2587 5880 : } else if(Rname=="ILE") {
2588 584 : if(Aname=="BB") {
2589 292 : atoi[i]=ILE_BB;
2590 292 : } else if(Aname=="SC1") {
2591 292 : atoi[i]=ILE_SC1;
2592 : } else {
2593 0 : error("Atom name not known: "+Aname);
2594 : }
2595 5296 : } else if(Rname=="LEU") {
2596 448 : if(Aname=="BB") {
2597 224 : atoi[i]=LEU_BB;
2598 224 : } else if(Aname=="SC1") {
2599 224 : atoi[i]=LEU_SC1;
2600 : } else {
2601 0 : error("Atom name not known: "+Aname);
2602 : }
2603 4848 : } else if(Rname=="LYS") {
2604 792 : if(Aname=="BB") {
2605 264 : atoi[i]=LYS_BB;
2606 528 : } else if(Aname=="SC1") {
2607 264 : atoi[i]=LYS_SC1;
2608 264 : } else if(Aname=="SC2") {
2609 264 : atoi[i]=LYS_SC2;
2610 : } else {
2611 0 : error("Atom name not known: "+Aname);
2612 : }
2613 4056 : } else if(Rname=="MET") {
2614 80 : if(Aname=="BB") {
2615 40 : atoi[i]=MET_BB;
2616 40 : } else if(Aname=="SC1") {
2617 40 : atoi[i]=MET_SC1;
2618 : } else {
2619 0 : error("Atom name not known: "+Aname);
2620 : }
2621 3976 : } else if(Rname=="PHE") {
2622 512 : if(Aname=="BB") {
2623 128 : atoi[i]=PHE_BB;
2624 384 : } else if(Aname=="SC1") {
2625 128 : atoi[i]=PHE_SC1;
2626 256 : } else if(Aname=="SC2") {
2627 128 : atoi[i]=PHE_SC2;
2628 128 : } else if(Aname=="SC3") {
2629 128 : atoi[i]=PHE_SC3;
2630 : } else {
2631 0 : error("Atom name not known: "+Aname);
2632 : }
2633 3464 : } else if(Rname=="PRO") {
2634 128 : if(Aname=="BB") {
2635 64 : atoi[i]=PRO_BB;
2636 64 : } else if(Aname=="SC1") {
2637 64 : atoi[i]=PRO_SC1;
2638 : } else {
2639 0 : error("Atom name not known: "+Aname);
2640 : }
2641 3336 : } else if(Rname=="SER") {
2642 248 : if(Aname=="BB") {
2643 124 : atoi[i]=SER_BB;
2644 124 : } else if(Aname=="SC1") {
2645 124 : atoi[i]=SER_SC1;
2646 : } else {
2647 0 : error("Atom name not known: "+Aname);
2648 : }
2649 3088 : } else if(Rname=="THR") {
2650 288 : if(Aname=="BB") {
2651 144 : atoi[i]=THR_BB;
2652 144 : } else if(Aname=="SC1") {
2653 144 : atoi[i]=THR_SC1;
2654 : } else {
2655 0 : error("Atom name not known: "+Aname);
2656 : }
2657 2800 : } else if(Rname=="TRP") {
2658 0 : if(Aname=="BB") {
2659 0 : atoi[i]=TRP_BB;
2660 0 : } else if(Aname=="SC1") {
2661 0 : atoi[i]=TRP_SC1;
2662 0 : } else if(Aname=="SC2") {
2663 0 : atoi[i]=TRP_SC2;
2664 0 : } else if(Aname=="SC3") {
2665 0 : atoi[i]=TRP_SC3;
2666 0 : } else if(Aname=="SC4") {
2667 0 : atoi[i]=TRP_SC4;
2668 : } else {
2669 0 : error("Atom name not known: "+Aname);
2670 : }
2671 2800 : } else if(Rname=="TYR") {
2672 544 : if(Aname=="BB") {
2673 136 : atoi[i]=TYR_BB;
2674 408 : } else if(Aname=="SC1") {
2675 136 : atoi[i]=TYR_SC1;
2676 272 : } else if(Aname=="SC2") {
2677 136 : atoi[i]=TYR_SC2;
2678 136 : } else if(Aname=="SC3") {
2679 136 : atoi[i]=TYR_SC3;
2680 : } else {
2681 0 : error("Atom name not known: "+Aname);
2682 : }
2683 2256 : } else if(Rname=="VAL") {
2684 288 : if(Aname=="BB") {
2685 144 : atoi[i]=VAL_BB;
2686 144 : } else if(Aname=="SC1") {
2687 144 : atoi[i]=VAL_SC1;
2688 : } else {
2689 0 : error("Atom name not known: "+Aname);
2690 : }
2691 1968 : } else if(Rname==" A") {
2692 0 : if(Aname=="BB1") {
2693 0 : atoi[i]=A_BB1;
2694 0 : } else if(Aname=="BB2") {
2695 0 : atoi[i]=A_BB2;
2696 0 : } else if(Aname=="BB3") {
2697 0 : atoi[i]=A_BB3;
2698 0 : } else if(Aname=="SC1") {
2699 0 : atoi[i]=A_SC1;
2700 0 : } else if(Aname=="SC2") {
2701 0 : atoi[i]=A_SC2;
2702 0 : } else if(Aname=="SC3") {
2703 0 : atoi[i]=A_SC3;
2704 0 : } else if(Aname=="SC4") {
2705 0 : atoi[i]=A_SC4;
2706 0 : } else if(Aname=="3TE") {
2707 0 : atoi[i]=A_3TE;
2708 0 : } else if(Aname=="5TE") {
2709 0 : atoi[i]=A_5TE;
2710 0 : } else if(Aname=="TE3") {
2711 0 : atoi[i]=A_TE3;
2712 0 : } else if(Aname=="TE5") {
2713 0 : atoi[i]=A_TE5;
2714 : } else {
2715 0 : error("Atom name not known: "+Aname);
2716 : }
2717 1968 : } else if(Rname==" C") {
2718 0 : if(Aname=="BB1") {
2719 0 : atoi[i]=C_BB1;
2720 0 : } else if(Aname=="BB2") {
2721 0 : atoi[i]=C_BB2;
2722 0 : } else if(Aname=="BB3") {
2723 0 : atoi[i]=C_BB3;
2724 0 : } else if(Aname=="SC1") {
2725 0 : atoi[i]=C_SC1;
2726 0 : } else if(Aname=="SC2") {
2727 0 : atoi[i]=C_SC2;
2728 0 : } else if(Aname=="SC3") {
2729 0 : atoi[i]=C_SC3;
2730 0 : } else if(Aname=="3TE") {
2731 0 : atoi[i]=C_3TE;
2732 0 : } else if(Aname=="5TE") {
2733 0 : atoi[i]=C_5TE;
2734 0 : } else if(Aname=="TE3") {
2735 0 : atoi[i]=C_TE3;
2736 0 : } else if(Aname=="TE5") {
2737 0 : atoi[i]=C_TE5;
2738 : } else {
2739 0 : error("Atom name not known: "+Aname);
2740 : }
2741 1968 : } else if(Rname==" G") {
2742 0 : if(Aname=="BB1") {
2743 0 : atoi[i]=G_BB1;
2744 0 : } else if(Aname=="BB2") {
2745 0 : atoi[i]=G_BB2;
2746 0 : } else if(Aname=="BB3") {
2747 0 : atoi[i]=G_BB3;
2748 0 : } else if(Aname=="SC1") {
2749 0 : atoi[i]=G_SC1;
2750 0 : } else if(Aname=="SC2") {
2751 0 : atoi[i]=G_SC2;
2752 0 : } else if(Aname=="SC3") {
2753 0 : atoi[i]=G_SC3;
2754 0 : } else if(Aname=="SC4") {
2755 0 : atoi[i]=G_SC4;
2756 0 : } else if(Aname=="3TE") {
2757 0 : atoi[i]=G_3TE;
2758 0 : } else if(Aname=="5TE") {
2759 0 : atoi[i]=G_5TE;
2760 0 : } else if(Aname=="TE3") {
2761 0 : atoi[i]=G_TE3;
2762 0 : } else if(Aname=="TE5") {
2763 0 : atoi[i]=G_TE5;
2764 : } else {
2765 0 : error("Atom name not known: "+Aname);
2766 : }
2767 1968 : } else if(Rname==" U") {
2768 0 : if(Aname=="BB1") {
2769 0 : atoi[i]=U_BB1;
2770 0 : } else if(Aname=="BB2") {
2771 0 : atoi[i]=U_BB2;
2772 0 : } else if(Aname=="BB3") {
2773 0 : atoi[i]=U_BB3;
2774 0 : } else if(Aname=="SC1") {
2775 0 : atoi[i]=U_SC1;
2776 0 : } else if(Aname=="SC2") {
2777 0 : atoi[i]=U_SC2;
2778 0 : } else if(Aname=="SC3") {
2779 0 : atoi[i]=U_SC3;
2780 0 : } else if(Aname=="3TE") {
2781 0 : atoi[i]=U_3TE;
2782 0 : } else if(Aname=="5TE") {
2783 0 : atoi[i]=U_5TE;
2784 0 : } else if(Aname=="TE3") {
2785 0 : atoi[i]=U_TE3;
2786 0 : } else if(Aname=="TE5") {
2787 0 : atoi[i]=U_TE5;
2788 : } else {
2789 0 : error("Atom name not known: "+Aname);
2790 : }
2791 1968 : } else if(Rname==" DA") {
2792 696 : if(Aname=="BB1") {
2793 96 : atoi[i]=DA_BB1;
2794 600 : } else if(Aname=="BB2") {
2795 96 : atoi[i]=DA_BB2;
2796 504 : } else if(Aname=="BB3") {
2797 96 : atoi[i]=DA_BB3;
2798 408 : } else if(Aname=="SC1") {
2799 100 : atoi[i]=DA_SC1;
2800 308 : } else if(Aname=="SC2") {
2801 100 : atoi[i]=DA_SC2;
2802 208 : } else if(Aname=="SC3") {
2803 100 : atoi[i]=DA_SC3;
2804 108 : } else if(Aname=="SC4") {
2805 100 : atoi[i]=DA_SC4;
2806 8 : } else if(Aname=="3TE") {
2807 0 : atoi[i]=DA_3TE;
2808 8 : } else if(Aname=="5TE") {
2809 0 : atoi[i]=DA_5TE;
2810 8 : } else if(Aname=="TE3") {
2811 4 : atoi[i]=DA_TE3;
2812 4 : } else if(Aname=="TE5") {
2813 4 : atoi[i]=DA_TE5;
2814 : } else {
2815 0 : error("Atom name not known: "+Aname);
2816 : }
2817 1272 : } else if(Rname==" DC") {
2818 312 : if(Aname=="BB1") {
2819 52 : atoi[i]=DC_BB1;
2820 260 : } else if(Aname=="BB2") {
2821 52 : atoi[i]=DC_BB2;
2822 208 : } else if(Aname=="BB3") {
2823 52 : atoi[i]=DC_BB3;
2824 156 : } else if(Aname=="SC1") {
2825 52 : atoi[i]=DC_SC1;
2826 104 : } else if(Aname=="SC2") {
2827 52 : atoi[i]=DC_SC2;
2828 52 : } else if(Aname=="SC3") {
2829 52 : atoi[i]=DC_SC3;
2830 0 : } else if(Aname=="3TE") {
2831 0 : atoi[i]=DC_3TE;
2832 0 : } else if(Aname=="5TE") {
2833 0 : atoi[i]=DC_5TE;
2834 0 : } else if(Aname=="TE3") {
2835 0 : atoi[i]=DC_TE3;
2836 0 : } else if(Aname=="TE5") {
2837 0 : atoi[i]=DC_TE5;
2838 : } else {
2839 0 : error("Atom name not known: "+Aname);
2840 : }
2841 960 : } else if(Rname==" DG") {
2842 364 : if(Aname=="BB1") {
2843 52 : atoi[i]=DG_BB1;
2844 312 : } else if(Aname=="BB2") {
2845 52 : atoi[i]=DG_BB2;
2846 260 : } else if(Aname=="BB3") {
2847 52 : atoi[i]=DG_BB3;
2848 208 : } else if(Aname=="SC1") {
2849 52 : atoi[i]=DG_SC1;
2850 156 : } else if(Aname=="SC2") {
2851 52 : atoi[i]=DG_SC2;
2852 104 : } else if(Aname=="SC3") {
2853 52 : atoi[i]=DG_SC3;
2854 52 : } else if(Aname=="SC4") {
2855 52 : atoi[i]=DG_SC4;
2856 0 : } else if(Aname=="3TE") {
2857 0 : atoi[i]=DG_3TE;
2858 0 : } else if(Aname=="5TE") {
2859 0 : atoi[i]=DG_5TE;
2860 0 : } else if(Aname=="TE3") {
2861 0 : atoi[i]=DG_TE3;
2862 0 : } else if(Aname=="TE5") {
2863 0 : atoi[i]=DG_TE5;
2864 : } else {
2865 0 : error("Atom name not known: "+Aname);
2866 : }
2867 596 : } else if(Rname==" DT") {
2868 596 : if(Aname=="BB1") {
2869 96 : atoi[i]=DT_BB1;
2870 500 : } else if(Aname=="BB2") {
2871 96 : atoi[i]=DT_BB2;
2872 404 : } else if(Aname=="BB3") {
2873 96 : atoi[i]=DT_BB3;
2874 308 : } else if(Aname=="SC1") {
2875 100 : atoi[i]=DT_SC1;
2876 208 : } else if(Aname=="SC2") {
2877 100 : atoi[i]=DT_SC2;
2878 108 : } else if(Aname=="SC3") {
2879 100 : atoi[i]=DT_SC3;
2880 8 : } else if(Aname=="3TE") {
2881 0 : atoi[i]=DT_3TE;
2882 8 : } else if(Aname=="5TE") {
2883 0 : atoi[i]=DT_5TE;
2884 8 : } else if(Aname=="TE3") {
2885 4 : atoi[i]=DT_TE3;
2886 4 : } else if(Aname=="TE5") {
2887 4 : atoi[i]=DT_TE5;
2888 : } else {
2889 0 : error("Atom name not known: "+Aname);
2890 : }
2891 : } else {
2892 0 : error("Residue not known: "+Rname);
2893 : }
2894 : }
2895 : } else {
2896 0 : error("MOLINFO DATA not found\n");
2897 : }
2898 8 : }
2899 :
2900 6 : 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, std::vector<unsigned> residue_atom) {
2901 :
2902 6 : parameter_solv[TRP].push_back(60737.60249988003);
2903 6 : parameter_solv[TRP].push_back(-77.75716755173752);
2904 6 : parameter_solv[TRP].push_back(-205962.98557711052);
2905 6 : parameter_solv[TRP].push_back(-62013.46984155453);
2906 6 : parameter_solv[TRP].push_back(680710.7592231638);
2907 6 : parameter_solv[TRP].push_back(-681336.8777362367);
2908 6 : parameter_solv[TRP].push_back(211473.65530642506);
2909 :
2910 6 : parameter_solv[TYR].push_back(46250.80359987982);
2911 6 : parameter_solv[TYR].push_back(-45.8287864681578);
2912 6 : parameter_solv[TYR].push_back(-143872.91752817619);
2913 6 : parameter_solv[TYR].push_back(-39049.68736409533);
2914 6 : parameter_solv[TYR].push_back(441321.71874090104);
2915 6 : parameter_solv[TYR].push_back(-434478.0972346327);
2916 6 : parameter_solv[TYR].push_back(133179.3694641212);
2917 :
2918 6 : parameter_solv[PHE].push_back(42407.164900118914);
2919 6 : parameter_solv[PHE].push_back(-159.1980754191431);
2920 6 : parameter_solv[PHE].push_back(-123847.86192757386);
2921 6 : parameter_solv[PHE].push_back(-41797.69041575073);
2922 6 : parameter_solv[PHE].push_back(380283.7035277073);
2923 6 : parameter_solv[PHE].push_back(-361432.67247521743);
2924 6 : parameter_solv[PHE].push_back(107750.64978068044);
2925 :
2926 6 : parameter_solv[HIP].push_back(24473.47360011923);
2927 6 : parameter_solv[HIP].push_back(-111.64156672747428);
2928 6 : parameter_solv[HIP].push_back(-65826.16993707925);
2929 6 : parameter_solv[HIP].push_back(-23305.91329798928);
2930 6 : parameter_solv[HIP].push_back(194795.11911635034);
2931 6 : parameter_solv[HIP].push_back(-180454.49458095312);
2932 6 : parameter_solv[HIP].push_back(52699.374196745615);
2933 :
2934 6 : parameter_solv[ARG].push_back(34106.70239988039);
2935 6 : parameter_solv[ARG].push_back(152.7472727640246);
2936 6 : parameter_solv[ARG].push_back(-117086.49392248681);
2937 6 : parameter_solv[ARG].push_back(-19664.229479267167);
2938 6 : parameter_solv[ARG].push_back(364454.0909203641);
2939 6 : parameter_solv[ARG].push_back(-382075.8018312776);
2940 6 : parameter_solv[ARG].push_back(122775.75036605193);
2941 :
2942 6 : parameter_solv[LYS].push_back(32292.090000118922);
2943 6 : parameter_solv[LYS].push_back(-111.97371180593888);
2944 6 : parameter_solv[LYS].push_back(-91953.10997619898);
2945 6 : parameter_solv[LYS].push_back(-30690.807047993283);
2946 6 : parameter_solv[LYS].push_back(282092.40760143084);
2947 6 : parameter_solv[LYS].push_back(-269503.2592457489);
2948 6 : parameter_solv[LYS].push_back(80777.81552915688);
2949 :
2950 6 : parameter_solv[CYS].push_back(11352.902500119093);
2951 6 : parameter_solv[CYS].push_back(-45.5226331859686);
2952 6 : parameter_solv[CYS].push_back(-20925.085562607524);
2953 6 : parameter_solv[CYS].push_back(-5662.685408989286);
2954 6 : parameter_solv[CYS].push_back(38559.10376731146);
2955 6 : parameter_solv[CYS].push_back(-27885.23426006181);
2956 6 : parameter_solv[CYS].push_back(6280.15058191397);
2957 :
2958 6 : parameter_solv[ASP].push_back(13511.73760011933);
2959 6 : parameter_solv[ASP].push_back(-59.929111107656595);
2960 6 : parameter_solv[ASP].push_back(-25849.869639655575);
2961 6 : parameter_solv[ASP].push_back(-7541.669448872824);
2962 6 : parameter_solv[ASP].push_back(50760.92045144903);
2963 6 : parameter_solv[ASP].push_back(-37677.87583269734);
2964 6 : parameter_solv[ASP].push_back(8745.7056219399);
2965 :
2966 6 : parameter_solv[GLU].push_back(20443.280400119456);
2967 6 : parameter_solv[GLU].push_back(-113.77561814283207);
2968 6 : parameter_solv[GLU].push_back(-45587.79314626863);
2969 6 : parameter_solv[GLU].push_back(-16187.556837331254);
2970 6 : parameter_solv[GLU].push_back(112609.65830609271);
2971 6 : parameter_solv[GLU].push_back(-93362.05323205091);
2972 6 : parameter_solv[GLU].push_back(24519.557866124724);
2973 :
2974 6 : parameter_solv[ILE].push_back(27858.948100119596);
2975 6 : parameter_solv[ILE].push_back(-159.27355145839834);
2976 6 : parameter_solv[ILE].push_back(-61571.43463039565);
2977 6 : parameter_solv[ILE].push_back(-21324.879474559468);
2978 6 : parameter_solv[ILE].push_back(144070.7572894681);
2979 6 : parameter_solv[ILE].push_back(-115021.81959095894);
2980 6 : parameter_solv[ILE].push_back(28939.085108838968);
2981 :
2982 6 : parameter_solv[LEU].push_back(27858.948100119596);
2983 6 : parameter_solv[LEU].push_back(-165.61892007509647);
2984 6 : parameter_solv[LEU].push_back(-62564.568746500125);
2985 6 : parameter_solv[LEU].push_back(-22465.332149768525);
2986 6 : parameter_solv[LEU].push_back(151616.79489291538);
2987 6 : parameter_solv[LEU].push_back(-122905.6119395393);
2988 6 : parameter_solv[LEU].push_back(31436.664377885514);
2989 :
2990 6 : parameter_solv[MET].push_back(25609.60090011981);
2991 6 : parameter_solv[MET].push_back(-135.38857843066708);
2992 6 : parameter_solv[MET].push_back(-67771.01108177133);
2993 6 : parameter_solv[MET].push_back(-25228.934337676077);
2994 6 : parameter_solv[MET].push_back(199649.95030712147);
2995 6 : parameter_solv[MET].push_back(-182251.94895101967);
2996 6 : parameter_solv[MET].push_back(52502.88444247481);
2997 :
2998 6 : parameter_solv[ASN].push_back(14376.010000119095);
2999 6 : parameter_solv[ASN].push_back(-67.65579048748472);
3000 6 : parameter_solv[ASN].push_back(-28302.87809850141);
3001 6 : parameter_solv[ASN].push_back(-8577.439830985548);
3002 6 : parameter_solv[ASN].push_back(57532.879075695324);
3003 6 : parameter_solv[ASN].push_back(-43261.79286366774);
3004 6 : parameter_solv[ASN].push_back(10186.448634149085);
3005 :
3006 6 : parameter_solv[PRO].push_back(16866.21690011944);
3007 6 : parameter_solv[PRO].push_back(-70.84327801054884);
3008 6 : parameter_solv[PRO].push_back(-31465.84064925844);
3009 6 : parameter_solv[PRO].push_back(-8653.3693368317);
3010 6 : parameter_solv[PRO].push_back(58032.28250733714);
3011 6 : parameter_solv[PRO].push_back(-41521.01146771431);
3012 6 : parameter_solv[PRO].push_back(9184.530596102064);
3013 :
3014 6 : parameter_solv[GLN].push_back(21503.289600119);
3015 6 : parameter_solv[GLN].push_back(-121.30164008960246);
3016 6 : parameter_solv[GLN].push_back(-50468.580981118175);
3017 6 : parameter_solv[GLN].push_back(-18462.49098408308);
3018 6 : parameter_solv[GLN].push_back(132718.44904081387);
3019 6 : parameter_solv[GLN].push_back(-113787.22666510186);
3020 6 : parameter_solv[GLN].push_back(30920.348610969988);
3021 :
3022 6 : parameter_solv[SER].push_back(9181.472400119354);
3023 6 : parameter_solv[SER].push_back(-28.77519915767741);
3024 6 : parameter_solv[SER].push_back(-15205.543144104717);
3025 6 : parameter_solv[SER].push_back(-3377.782176346411);
3026 6 : parameter_solv[SER].push_back(23345.555771001076);
3027 6 : parameter_solv[SER].push_back(-15312.694356014094);
3028 6 : parameter_solv[SER].push_back(3013.8428466148);
3029 :
3030 6 : parameter_solv[THR].push_back(15020.953600119403);
3031 6 : parameter_solv[THR].push_back(-61.91004832631006);
3032 6 : parameter_solv[THR].push_back(-27814.537889259853);
3033 6 : parameter_solv[THR].push_back(-7532.227289701552);
3034 6 : parameter_solv[THR].push_back(50586.30566118166);
3035 6 : parameter_solv[THR].push_back(-35943.866131120165);
3036 6 : parameter_solv[THR].push_back(7880.093558764326);
3037 :
3038 6 : parameter_solv[VAL].push_back(19647.628900119355);
3039 6 : parameter_solv[VAL].push_back(-89.04983250107853);
3040 6 : parameter_solv[VAL].push_back(-38050.09958470928);
3041 6 : parameter_solv[VAL].push_back(-10921.427112288537);
3042 6 : parameter_solv[VAL].push_back(72774.32322962297);
3043 6 : parameter_solv[VAL].push_back(-52689.060152305225);
3044 6 : parameter_solv[VAL].push_back(11806.492503632868);
3045 :
3046 6 : parameter_solv[ALA].push_back(7515.156100119276);
3047 6 : parameter_solv[ALA].push_back(-20.226381685697746);
3048 6 : parameter_solv[ALA].push_back(-11761.841094237716);
3049 6 : parameter_solv[ALA].push_back(-2341.4929468980367);
3050 6 : parameter_solv[ALA].push_back(16545.385777961936);
3051 6 : parameter_solv[ALA].push_back(-10397.175253025776);
3052 6 : parameter_solv[ALA].push_back(1921.5264606725107);
3053 :
3054 6 : parameter_solv[GLY].push_back(3594.002500119159);
3055 6 : parameter_solv[GLY].push_back(-6.910836154887606);
3056 6 : parameter_solv[GLY].push_back(-4937.354220666574);
3057 6 : parameter_solv[GLY].push_back(-785.4549468992149);
3058 6 : parameter_solv[GLY].push_back(5852.854429532936);
3059 6 : parameter_solv[GLY].push_back(-3391.2927115487832);
3060 6 : parameter_solv[GLY].push_back(552.3280571490722);
3061 :
3062 6 : parameter_solv[HIS].push_back(22888.664100119073);
3063 6 : parameter_solv[HIS].push_back(-133.86265270962434);
3064 6 : parameter_solv[HIS].push_back(-57533.51591635819);
3065 6 : parameter_solv[HIS].push_back(-21767.293192014684);
3066 6 : parameter_solv[HIS].push_back(161255.14120001195);
3067 6 : parameter_solv[HIS].push_back(-142176.64081149307);
3068 6 : parameter_solv[HIS].push_back(39642.61185646193);
3069 :
3070 6 : parameter_mix[TRP].push_back(48294.0117571196);
3071 6 : parameter_mix[TRP].push_back(-205.45879626487798);
3072 6 : parameter_mix[TRP].push_back(-148816.1858118254);
3073 6 : parameter_mix[TRP].push_back(-54968.030079609875);
3074 6 : parameter_mix[TRP].push_back(491793.79967057955);
3075 6 : parameter_mix[TRP].push_back(-476312.9117969879);
3076 6 : parameter_mix[TRP].push_back(144159.96165644142);
3077 :
3078 6 : parameter_mix[TYR].push_back(36984.20240312081);
3079 6 : parameter_mix[TYR].push_back(-83.86380083812203);
3080 6 : parameter_mix[TYR].push_back(-108820.52211887162);
3081 6 : parameter_mix[TYR].push_back(-33934.69818901515);
3082 6 : parameter_mix[TYR].push_back(341504.736372253);
3083 6 : parameter_mix[TYR].push_back(-334008.1748614056);
3084 6 : parameter_mix[TYR].push_back(102033.08077851454);
3085 :
3086 6 : parameter_mix[PHE].push_back(32119.469231338233);
3087 6 : parameter_mix[PHE].push_back(-172.96940450568917);
3088 6 : parameter_mix[PHE].push_back(-85831.4326887122);
3089 6 : parameter_mix[PHE].push_back(-33193.32405438845);
3090 6 : parameter_mix[PHE].push_back(262940.64471909316);
3091 6 : parameter_mix[PHE].push_back(-243540.06898907054);
3092 6 : parameter_mix[PHE].push_back(71084.54387480798);
3093 :
3094 6 : parameter_mix[HIP].push_back(22833.36414923898);
3095 6 : parameter_mix[HIP].push_back(-134.0493955562186);
3096 6 : parameter_mix[HIP].push_back(-55325.55607328898);
3097 6 : parameter_mix[HIP].push_back(-21898.314938881984);
3098 6 : parameter_mix[HIP].push_back(159995.6912885654);
3099 6 : parameter_mix[HIP].push_back(-142968.19796084083);
3100 6 : parameter_mix[HIP].push_back(40417.44581470003);
3101 :
3102 6 : parameter_mix[ARG].push_back(31385.401600920715);
3103 6 : parameter_mix[ARG].push_back(36.114094042884254);
3104 6 : parameter_mix[ARG].push_back(-103730.44467490204);
3105 6 : parameter_mix[ARG].push_back(-27036.249157905615);
3106 6 : parameter_mix[ARG].push_back(347011.0339314942);
3107 6 : parameter_mix[ARG].push_back(-358879.9736802336);
3108 6 : parameter_mix[ARG].push_back(114432.18361399164);
3109 :
3110 6 : parameter_mix[LYS].push_back(25511.35812671878);
3111 6 : parameter_mix[LYS].push_back(-130.4381491986372);
3112 6 : parameter_mix[LYS].push_back(-69258.61236879184);
3113 6 : parameter_mix[LYS].push_back(-27066.36783798707);
3114 6 : parameter_mix[LYS].push_back(220092.65231165203);
3115 6 : parameter_mix[LYS].push_back(-207794.5056092443);
3116 6 : parameter_mix[LYS].push_back(61665.57004630315);
3117 :
3118 6 : parameter_mix[CYS].push_back(11505.517261618916);
3119 6 : parameter_mix[CYS].push_back(-33.60468076978334);
3120 6 : parameter_mix[CYS].push_back(-18328.882710004465);
3121 6 : parameter_mix[CYS].push_back(-3956.9113649567626);
3122 6 : parameter_mix[CYS].push_back(27546.35146501212);
3123 6 : parameter_mix[CYS].push_back(-18024.826330595406);
3124 6 : parameter_mix[CYS].push_back(3551.2207387570024);
3125 :
3126 6 : parameter_mix[ASP].push_back(13713.858501879382);
3127 6 : parameter_mix[ASP].push_back(-51.33286241257164);
3128 6 : parameter_mix[ASP].push_back(-23807.8549764091);
3129 6 : parameter_mix[ASP].push_back(-6153.667315935503);
3130 6 : parameter_mix[ASP].push_back(41296.118377286424);
3131 6 : parameter_mix[ASP].push_back(-28740.28391184026);
3132 6 : parameter_mix[ASP].push_back(6132.671533319127);
3133 :
3134 6 : parameter_mix[GLU].push_back(19156.03660739947);
3135 6 : parameter_mix[GLU].push_back(-110.90600703589246);
3136 6 : parameter_mix[GLU].push_back(-40319.3351514524);
3137 6 : parameter_mix[GLU].push_back(-14679.813393816446);
3138 6 : parameter_mix[GLU].push_back(96769.28565573556);
3139 6 : parameter_mix[GLU].push_back(-77909.09315520026);
3140 6 : parameter_mix[GLU].push_back(19770.047062759568);
3141 :
3142 6 : parameter_mix[ILE].push_back(20693.06215917923);
3143 6 : parameter_mix[ILE].push_back(-102.87208880594848);
3144 6 : parameter_mix[ILE].push_back(-41080.44036311675);
3145 6 : parameter_mix[ILE].push_back(-12874.439649378206);
3146 6 : parameter_mix[ILE].push_back(84947.33147117581);
3147 6 : parameter_mix[ILE].push_back(-63779.07871450237);
3148 6 : parameter_mix[ILE].push_back(14938.919981690511);
3149 :
3150 6 : parameter_mix[LEU].push_back(20693.062159179233);
3151 6 : parameter_mix[LEU].push_back(-114.09539845409269);
3152 6 : parameter_mix[LEU].push_back(-42417.3431074524);
3153 6 : parameter_mix[LEU].push_back(-14393.801090829746);
3154 6 : parameter_mix[LEU].push_back(93640.48403643962);
3155 6 : parameter_mix[LEU].push_back(-71990.10354816525);
3156 6 : parameter_mix[LEU].push_back(17299.01082057651);
3157 :
3158 6 : parameter_mix[MET].push_back(22400.800002738917);
3159 6 : parameter_mix[MET].push_back(-138.14469221559762);
3160 6 : parameter_mix[MET].push_back(-53013.97694299946);
3161 6 : parameter_mix[MET].push_back(-21079.899452619244);
3162 6 : parameter_mix[MET].push_back(148607.1089339919);
3163 6 : parameter_mix[MET].push_back(-129827.63962878387);
3164 6 : parameter_mix[MET].push_back(35882.3297822684);
3165 :
3166 6 : parameter_mix[ASN].push_back(14384.287416519475);
3167 6 : parameter_mix[ASN].push_back(-55.24976731179147);
3168 6 : parameter_mix[ASN].push_back(-25372.978199926372);
3169 6 : parameter_mix[ASN].push_back(-6646.452004616925);
3170 6 : parameter_mix[ASN].push_back(44594.5027556148);
3171 6 : parameter_mix[ASN].push_back(-31202.511764907107);
3172 6 : parameter_mix[ASN].push_back(6703.764135873442);
3173 :
3174 6 : parameter_mix[PRO].push_back(13503.797145659117);
3175 6 : parameter_mix[PRO].push_back(-38.58316011847087);
3176 6 : parameter_mix[PRO].push_back(-21446.17847324053);
3177 6 : parameter_mix[PRO].push_back(-4480.55896170459);
3178 6 : parameter_mix[PRO].push_back(31274.287350083254);
3179 6 : parameter_mix[PRO].push_back(-19984.249229169505);
3180 6 : parameter_mix[PRO].push_back(3782.272312712745);
3181 :
3182 6 : parameter_mix[GLN].push_back(19938.23724683901);
3183 6 : parameter_mix[GLN].push_back(-121.24884503048865);
3184 6 : parameter_mix[GLN].push_back(-43928.589472297834);
3185 6 : parameter_mix[GLN].push_back(-16805.069757865473);
3186 6 : parameter_mix[GLN].push_back(112831.61348476357);
3187 6 : parameter_mix[GLN].push_back(-93979.08819184235);
3188 6 : parameter_mix[GLN].push_back(24741.563493163732);
3189 :
3190 6 : parameter_mix[SER].push_back(8813.67020471935);
3191 6 : parameter_mix[SER].push_back(-18.291615317790175);
3192 6 : parameter_mix[SER].push_back(-12585.074732466266);
3193 6 : parameter_mix[SER].push_back(-2064.454891600786);
3194 6 : parameter_mix[SER].push_back(15273.905065790364);
3195 6 : parameter_mix[SER].push_back(-8813.056005263466);
3196 6 : parameter_mix[SER].push_back(1404.9812302289881);
3197 :
3198 6 : parameter_mix[THR].push_back(13233.997179639062);
3199 6 : parameter_mix[THR].push_back(-39.40454157416847);
3200 6 : parameter_mix[THR].push_back(-21430.58717233547);
3201 6 : parameter_mix[THR].push_back(-4566.332853710876);
3202 6 : parameter_mix[THR].push_back(31717.497780073558);
3203 6 : parameter_mix[THR].push_back(-20299.614304281313);
3204 6 : parameter_mix[THR].push_back(3837.207224537505);
3205 :
3206 6 : parameter_mix[VAL].push_back(15135.438016299158);
3207 6 : parameter_mix[VAL].push_back(-51.415141550353205);
3208 6 : parameter_mix[VAL].push_back(-25859.078442379723);
3209 6 : parameter_mix[VAL].push_back(-6007.697291593915);
3210 6 : parameter_mix[VAL].push_back(40997.969600345634);
3211 6 : parameter_mix[VAL].push_back(-27036.257386814148);
3212 6 : parameter_mix[VAL].push_back(5328.922363811635);
3213 :
3214 6 : parameter_mix[ALA].push_back(6586.942863819189);
3215 6 : parameter_mix[ALA].push_back(-10.96713559950907);
3216 6 : parameter_mix[ALA].push_back(-8758.836131731925);
3217 6 : parameter_mix[ALA].push_back(-1223.1723720922605);
3218 6 : parameter_mix[ALA].push_back(9475.182453543037);
3219 6 : parameter_mix[ALA].push_back(-5124.611191433804);
3220 6 : parameter_mix[ALA].push_back(721.7625962949869);
3221 :
3222 6 : parameter_mix[GLY].push_back(3596.0718542192762);
3223 6 : parameter_mix[GLY].push_back(-4.079285964028122);
3224 6 : parameter_mix[GLY].push_back(-4089.4217504382686);
3225 6 : parameter_mix[GLY].push_back(-450.9650932154967);
3226 6 : parameter_mix[GLY].push_back(3737.026778223427);
3227 6 : parameter_mix[GLY].push_back(-1862.9856575810572);
3228 6 : parameter_mix[GLY].push_back(222.97288276257262);
3229 :
3230 6 : parameter_mix[HIS].push_back(21779.124723299232);
3231 6 : parameter_mix[HIS].push_back(-131.4603421188538);
3232 6 : parameter_mix[HIS].push_back(-49068.74667421681);
3233 6 : parameter_mix[HIS].push_back(-18685.909496392127);
3234 6 : parameter_mix[HIS].push_back(127724.60792384286);
3235 6 : parameter_mix[HIS].push_back(-107419.22159440348);
3236 6 : parameter_mix[HIS].push_back(28577.228634530744);
3237 :
3238 6 : parameter_vac[TRP].push_back(9599.949107368187);
3239 6 : parameter_vac[TRP].push_back(-66.35331786175249);
3240 6 : parameter_vac[TRP].push_back(-26311.640290970638);
3241 6 : parameter_vac[TRP].push_back(-11577.314600529338);
3242 6 : parameter_vac[TRP].push_back(85847.52554160352);
3243 6 : parameter_vac[TRP].push_back(-79417.17065742958);
3244 6 : parameter_vac[TRP].push_back(23090.348430572863);
3245 :
3246 6 : parameter_vac[TYR].push_back(7393.553846412945);
3247 6 : parameter_vac[TYR].push_back(-27.51954035778316);
3248 6 : parameter_vac[TYR].push_back(-20329.10485615286);
3249 6 : parameter_vac[TYR].push_back(-7444.276340508767);
3250 6 : parameter_vac[TYR].push_back(66343.22315132803);
3251 6 : parameter_vac[TYR].push_back(-64470.58721639446);
3252 6 : parameter_vac[TYR].push_back(19614.63563898146);
3253 :
3254 6 : parameter_vac[PHE].push_back(6081.874997705279);
3255 6 : parameter_vac[PHE].push_back(-40.474695969500104);
3256 6 : parameter_vac[PHE].push_back(-14354.627390498901);
3257 6 : parameter_vac[PHE].push_back(-6156.69750315959);
3258 6 : parameter_vac[PHE].push_back(42580.84239395237);
3259 6 : parameter_vac[PHE].push_back(-37704.09749809582);
3260 6 : parameter_vac[PHE].push_back(10543.005717478625);
3261 :
3262 6 : parameter_vac[HIP].push_back(5325.791987063724);
3263 6 : parameter_vac[HIP].push_back(-35.512112257530156);
3264 6 : parameter_vac[HIP].push_back(-11488.443296477566);
3265 6 : parameter_vac[HIP].push_back(-4916.724935318093);
3266 6 : parameter_vac[HIP].push_back(32134.338675979947);
3267 6 : parameter_vac[HIP].push_back(-27388.387595464188);
3268 6 : parameter_vac[HIP].push_back(7359.899986748838);
3269 :
3270 6 : parameter_vac[ARG].push_back(7220.306892248294);
3271 6 : parameter_vac[ARG].push_back(-20.65912886190997);
3272 6 : parameter_vac[ARG].push_back(-22700.70129646048);
3273 6 : parameter_vac[ARG].push_back(-8696.901551172636);
3274 6 : parameter_vac[ARG].push_back(83641.36257312517);
3275 6 : parameter_vac[ARG].push_back(-85237.33676336925);
3276 6 : parameter_vac[ARG].push_back(26899.162688310953);
3277 :
3278 6 : parameter_vac[LYS].push_back(5038.613120729022);
3279 6 : parameter_vac[LYS].push_back(-34.08366887546492);
3280 6 : parameter_vac[LYS].push_back(-12812.921120433106);
3281 6 : parameter_vac[LYS].push_back(-5843.761329082788);
3282 6 : parameter_vac[LYS].push_back(42419.08427856609);
3283 6 : parameter_vac[LYS].push_back(-39460.49038159249);
3284 6 : parameter_vac[LYS].push_back(11542.320830663035);
3285 :
3286 6 : parameter_vac[CYS].push_back(2915.0458981763995);
3287 6 : parameter_vac[CYS].push_back(-5.380571839804511);
3288 6 : parameter_vac[CYS].push_back(-3865.366285883624);
3289 6 : parameter_vac[CYS].push_back(-602.3275271136284);
3290 6 : parameter_vac[CYS].push_back(4524.133086072617);
3291 6 : parameter_vac[CYS].push_back(-2537.87137720241);
3292 6 : parameter_vac[CYS].push_back(381.52870758240016);
3293 :
3294 6 : parameter_vac[ASP].push_back(3479.750728224898);
3295 6 : parameter_vac[ASP].push_back(-10.33897891836596);
3296 6 : parameter_vac[ASP].push_back(-5382.628188436401);
3297 6 : parameter_vac[ASP].push_back(-1183.8060939576694);
3298 6 : parameter_vac[ASP].push_back(8100.082378727997);
3299 6 : parameter_vac[ASP].push_back(-5162.630696148773);
3300 6 : parameter_vac[ASP].push_back(958.993022379732);
3301 :
3302 6 : parameter_vac[GLU].push_back(4487.461543955491);
3303 6 : parameter_vac[GLU].push_back(-26.671865751817936);
3304 6 : parameter_vac[GLU].push_back(-8829.738168429001);
3305 6 : parameter_vac[GLU].push_back(-3297.668395415257);
3306 6 : parameter_vac[GLU].push_back(20686.457747123466);
3307 6 : parameter_vac[GLU].push_back(-16030.814134196151);
3308 6 : parameter_vac[GLU].push_back(3858.4457728083275);
3309 :
3310 6 : parameter_vac[ILE].push_back(3842.5968201937776);
3311 6 : parameter_vac[ILE].push_back(-13.848165050578492);
3312 6 : parameter_vac[ILE].push_back(-6480.062699452774);
3313 6 : parameter_vac[ILE].push_back(-1636.3888925440413);
3314 6 : parameter_vac[ILE].push_back(10967.333210698738);
3315 6 : parameter_vac[ILE].push_back(-7483.704914714421);
3316 6 : parameter_vac[ILE].push_back(1548.5696047594895);
3317 :
3318 6 : parameter_vac[LEU].push_back(3842.5968201937785);
3319 6 : parameter_vac[LEU].push_back(-16.2745108270949);
3320 6 : parameter_vac[LEU].push_back(-6807.110269770606);
3321 6 : parameter_vac[LEU].push_back(-1926.6303434106014);
3322 6 : parameter_vac[LEU].push_back(12577.952756390941);
3323 6 : parameter_vac[LEU].push_back(-8829.40489330961);
3324 6 : parameter_vac[LEU].push_back(1882.919316016889);
3325 :
3326 6 : parameter_vac[MET].push_back(4898.512892967389);
3327 6 : parameter_vac[MET].push_back(-30.588244886468207);
3328 6 : parameter_vac[MET].push_back(-10159.093665859045);
3329 6 : parameter_vac[MET].push_back(-4025.0261508449653);
3330 6 : parameter_vac[MET].push_back(26007.394369425827);
3331 6 : parameter_vac[MET].push_back(-21199.218680206573);
3332 6 : parameter_vac[MET].push_back(5423.004225853842);
3333 :
3334 6 : parameter_vac[ASN].push_back(3598.1423998115492);
3335 6 : parameter_vac[ASN].push_back(-10.357995638888545);
3336 6 : parameter_vac[ASN].push_back(-5565.603011562138);
3337 6 : parameter_vac[ASN].push_back(-1190.3294930971967);
3338 6 : parameter_vac[ASN].push_back(8227.920711951123);
3339 6 : parameter_vac[ASN].push_back(-5222.61541118056);
3340 6 : parameter_vac[ASN].push_back(968.593406702772);
3341 :
3342 6 : parameter_vac[PRO].push_back(2702.925890807494);
3343 6 : parameter_vac[PRO].push_back(-4.11690159421177);
3344 6 : parameter_vac[PRO].push_back(-3395.325331307625);
3345 6 : parameter_vac[PRO].push_back(-458.95242128002894);
3346 6 : parameter_vac[PRO].push_back(3584.3640448715823);
3347 6 : parameter_vac[PRO].push_back(-1921.4140769384692);
3348 6 : parameter_vac[PRO].push_back(267.08577848319516);
3349 :
3350 6 : parameter_vac[GLN].push_back(4621.773132292556);
3351 6 : parameter_vac[GLN].push_back(-29.511778489038818);
3352 6 : parameter_vac[GLN].push_back(-9486.077450010192);
3353 6 : parameter_vac[GLN].push_back(-3768.5756897489828);
3354 6 : parameter_vac[GLN].push_back(23828.07111260487);
3355 6 : parameter_vac[GLN].push_back(-19110.205836780202);
3356 6 : parameter_vac[GLN].push_back(4791.718204894083);
3357 :
3358 6 : parameter_vac[SER].push_back(2115.1504654043965);
3359 6 : parameter_vac[SER].push_back(-2.4158378234251234);
3360 6 : parameter_vac[SER].push_back(-2488.1131972903822);
3361 6 : parameter_vac[SER].push_back(-263.64072945387693);
3362 6 : parameter_vac[SER].push_back(2251.376687850687);
3363 6 : parameter_vac[SER].push_back(-1066.0790768852626);
3364 6 : parameter_vac[SER].push_back(105.5155397911316);
3365 :
3366 6 : parameter_vac[THR].push_back(2914.9061707158835);
3367 6 : parameter_vac[THR].push_back(-5.032844592364407);
3368 6 : parameter_vac[THR].push_back(-3903.2546253886653);
3369 6 : parameter_vac[THR].push_back(-559.4734271244915);
3370 6 : parameter_vac[THR].push_back(4315.044828297787);
3371 6 : parameter_vac[THR].push_back(-2331.211908177365);
3372 6 : parameter_vac[THR].push_back(323.76849758109853);
3373 :
3374 6 : parameter_vac[VAL].push_back(2914.8744247581953);
3375 6 : parameter_vac[VAL].push_back(-5.847217106105881);
3376 6 : parameter_vac[VAL].push_back(-4096.370479502377);
3377 6 : parameter_vac[VAL].push_back(-655.2917606620404);
3378 6 : parameter_vac[VAL].push_back(4888.77261250007);
3379 6 : parameter_vac[VAL].push_back(-2765.7552774385167);
3380 6 : parameter_vac[VAL].push_back(421.9081598033515);
3381 :
3382 6 : parameter_vac[ALA].push_back(1443.3438146824446);
3383 6 : parameter_vac[ALA].push_back(-1.1234573178567506);
3384 6 : parameter_vac[ALA].push_back(-1492.4547663363514);
3385 6 : parameter_vac[ALA].push_back(-121.47935619968672);
3386 6 : parameter_vac[ALA].push_back(1139.689871538201);
3387 6 : parameter_vac[ALA].push_back(-483.8336547914466);
3388 6 : parameter_vac[ALA].push_back(32.48231950404626);
3389 :
3390 6 : parameter_vac[GLY].push_back(899.5356000422925);
3391 6 : parameter_vac[GLY].push_back(-0.5200880084066986);
3392 6 : parameter_vac[GLY].push_back(-787.5892053280859);
3393 6 : parameter_vac[GLY].push_back(-56.07596224884467);
3394 6 : parameter_vac[GLY].push_back(546.4212287680981);
3395 6 : parameter_vac[GLY].push_back(-222.2667666932616);
3396 6 : parameter_vac[GLY].push_back(12.474587265791476);
3397 :
3398 6 : parameter_vac[HIS].push_back(5180.842705000207);
3399 6 : parameter_vac[HIS].push_back(-29.578973475252766);
3400 6 : parameter_vac[HIS].push_back(-10323.417251934066);
3401 6 : parameter_vac[HIS].push_back(-3788.977215582307);
3402 6 : parameter_vac[HIS].push_back(24427.720792289427);
3403 6 : parameter_vac[HIS].push_back(-19307.35836837878);
3404 6 : parameter_vac[HIS].push_back(4780.831414992477);
3405 :
3406 : // NUCLEIC ACIDS
3407 :
3408 6 : parameter_solv[BB_PO2].push_back(575.5201001192197);
3409 6 : parameter_solv[BB_PO2].push_back(-0.6126595489733868);
3410 6 : parameter_solv[BB_PO2].push_back(-623.3371092254897);
3411 6 : parameter_solv[BB_PO2].push_back(-68.05795957022156);
3412 6 : parameter_solv[BB_PO2].push_back(561.8052621243662);
3413 6 : parameter_solv[BB_PO2].push_back(-283.39573309540344);
3414 6 : parameter_solv[BB_PO2].push_back(35.55001698010027);
3415 :
3416 6 : parameter_solv[BB_DNA].push_back(21211.009600118316);
3417 6 : parameter_solv[BB_DNA].push_back(-90.18805990529991);
3418 6 : parameter_solv[BB_DNA].push_back(-39731.1337351215);
3419 6 : parameter_solv[BB_DNA].push_back(-10920.373563712878);
3420 6 : parameter_solv[BB_DNA].push_back(72882.21702424977);
3421 6 : parameter_solv[BB_DNA].push_back(-51747.487078112754);
3422 6 : parameter_solv[BB_DNA].push_back(11308.67842901876);
3423 :
3424 6 : parameter_solv[BB_DNA_5].push_back(22737.624100119025);
3425 6 : parameter_solv[BB_DNA_5].push_back(-102.72714886664163);
3426 6 : parameter_solv[BB_DNA_5].push_back(-43685.329677789705);
3427 6 : parameter_solv[BB_DNA_5].push_back(-12564.259374093454);
3428 6 : parameter_solv[BB_DNA_5].push_back(83454.87540484876);
3429 6 : parameter_solv[BB_DNA_5].push_back(-60367.15652138888);
3430 6 : parameter_solv[BB_DNA_5].push_back(13507.33372986899);
3431 :
3432 6 : parameter_solv[BB_DNA_3].push_back(22737.62410011902);
3433 6 : parameter_solv[BB_DNA_3].push_back(-101.57816684452263);
3434 6 : parameter_solv[BB_DNA_3].push_back(-43488.53670557616);
3435 6 : parameter_solv[BB_DNA_3].push_back(-12345.056184958417);
3436 6 : parameter_solv[BB_DNA_3].push_back(81963.5236411489);
3437 6 : parameter_solv[BB_DNA_3].push_back(-58791.59443618196);
3438 6 : parameter_solv[BB_DNA_3].push_back(13003.199362335576);
3439 :
3440 6 : parameter_solv[BB_RNA].push_back(23953.752900120977);
3441 6 : parameter_solv[BB_RNA].push_back(-117.35779348824401);
3442 6 : parameter_solv[BB_RNA].push_back(-47644.41735332837);
3443 6 : parameter_solv[BB_RNA].push_back(-14641.556643789863);
3444 6 : parameter_solv[BB_RNA].push_back(96893.48627050382);
3445 6 : parameter_solv[BB_RNA].push_back(-72249.62534169314);
3446 6 : parameter_solv[BB_RNA].push_back(16792.05552105538);
3447 :
3448 6 : parameter_solv[BB_RNA_5].push_back(25574.406400119024);
3449 6 : parameter_solv[BB_RNA_5].push_back(-131.99642772933734);
3450 6 : parameter_solv[BB_RNA_5].push_back(-52136.51404531249);
3451 6 : parameter_solv[BB_RNA_5].push_back(-16682.14273917604);
3452 6 : parameter_solv[BB_RNA_5].push_back(110278.019216394);
3453 6 : parameter_solv[BB_RNA_5].push_back(-83715.92027818545);
3454 6 : parameter_solv[BB_RNA_5].push_back(19875.891337706045);
3455 :
3456 6 : parameter_solv[BB_RNA_3].push_back(25574.406400119024);
3457 6 : parameter_solv[BB_RNA_3].push_back(-127.96875237036166);
3458 6 : parameter_solv[BB_RNA_3].push_back(-51407.183917584385);
3459 6 : parameter_solv[BB_RNA_3].push_back(-15922.900669975606);
3460 6 : parameter_solv[BB_RNA_3].push_back(105078.58889106264);
3461 6 : parameter_solv[BB_RNA_3].push_back(-78289.16276190648);
3462 6 : parameter_solv[BB_RNA_3].push_back(18156.83214344118);
3463 :
3464 6 : parameter_solv[BASE_A].push_back(13282.562500119211);
3465 6 : parameter_solv[BASE_A].push_back(-76.45124168404048);
3466 6 : parameter_solv[BASE_A].push_back(-28376.06994108963);
3467 6 : parameter_solv[BASE_A].push_back(-9972.910773722022);
3468 6 : parameter_solv[BASE_A].push_back(65873.86341939073);
3469 6 : parameter_solv[BASE_A].push_back(-52064.33492910885);
3470 6 : parameter_solv[BASE_A].push_back(12931.608989412513);
3471 :
3472 6 : parameter_solv[BASE_C].push_back(10600.76160011891);
3473 6 : parameter_solv[BASE_C].push_back(-49.1670871249108);
3474 6 : parameter_solv[BASE_C].push_back(-20239.818742072875);
3475 6 : parameter_solv[BASE_C].push_back(-6020.278780090207);
3476 6 : parameter_solv[BASE_C].push_back(39632.13288981881);
3477 6 : parameter_solv[BASE_C].push_back(-28954.779736165576);
3478 6 : parameter_solv[BASE_C].push_back(6551.541109526305);
3479 :
3480 6 : parameter_solv[BASE_G].push_back(15470.384400119934);
3481 6 : parameter_solv[BASE_G].push_back(-93.8013620200972);
3482 6 : parameter_solv[BASE_G].push_back(-36188.29687013545);
3483 6 : parameter_solv[BASE_G].push_back(-13717.685098209471);
3484 6 : parameter_solv[BASE_G].push_back(95658.18473657136);
3485 6 : parameter_solv[BASE_G].push_back(-81262.37811451119);
3486 6 : parameter_solv[BASE_G].push_back(21841.903930943085);
3487 :
3488 6 : parameter_solv[BASE_T].push_back(17210.81610011936);
3489 6 : parameter_solv[BASE_T].push_back(-93.10189802920208);
3490 6 : parameter_solv[BASE_T].push_back(-36466.51927689957);
3491 6 : parameter_solv[BASE_T].push_back(-12425.55615716932);
3492 6 : parameter_solv[BASE_T].push_back(83847.427808925);
3493 6 : parameter_solv[BASE_T].push_back(-66735.64997846584);
3494 6 : parameter_solv[BASE_T].push_back(16757.3463987507);
3495 :
3496 6 : parameter_solv[BASE_U].push_back(10909.802500119395);
3497 6 : parameter_solv[BASE_U].push_back(-46.17712672768298);
3498 6 : parameter_solv[BASE_U].push_back(-20149.67695512526);
3499 6 : parameter_solv[BASE_U].push_back(-5590.242961204435);
3500 6 : parameter_solv[BASE_U].push_back(37169.2740983132);
3501 6 : parameter_solv[BASE_U].push_back(-26475.631627167604);
3502 6 : parameter_solv[BASE_U].push_back(5808.201015156168);
3503 :
3504 6 : parameter_mix[BB_PO2].push_back(1487.2888381188868);
3505 6 : parameter_mix[BB_PO2].push_back(-0.6155376265599789);
3506 6 : parameter_mix[BB_PO2].push_back(-1181.5076027691764);
3507 6 : parameter_mix[BB_PO2].push_back(-66.25027450710594);
3508 6 : parameter_mix[BB_PO2].push_back(697.0421991965113);
3509 6 : parameter_mix[BB_PO2].push_back(-261.8559466354847);
3510 6 : parameter_mix[BB_PO2].push_back(9.974337082362194);
3511 :
3512 6 : parameter_mix[BB_DNA].push_back(17766.29474499878);
3513 6 : parameter_mix[BB_DNA].push_back(-48.97330188566253);
3514 6 : parameter_mix[BB_DNA].push_back(-28199.563596327207);
3515 6 : parameter_mix[BB_DNA].push_back(-5623.82085602494);
3516 6 : parameter_mix[BB_DNA].push_back(39646.22954828498);
3517 6 : parameter_mix[BB_DNA].push_back(-24658.81157651943);
3518 6 : parameter_mix[BB_DNA].push_back(4453.73906293146);
3519 :
3520 6 : parameter_mix[BB_DNA_5].push_back(18696.09744203927);
3521 6 : parameter_mix[BB_DNA_5].push_back(-56.29408880833802);
3522 6 : parameter_mix[BB_DNA_5].push_back(-30486.108599707608);
3523 6 : parameter_mix[BB_DNA_5].push_back(-6524.195857141158);
3524 6 : parameter_mix[BB_DNA_5].push_back(45280.80142686446);
3525 6 : parameter_mix[BB_DNA_5].push_back(-29007.98616567993);
3526 6 : parameter_mix[BB_DNA_5].push_back(5488.566965501818);
3527 :
3528 6 : parameter_mix[BB_DNA_3].push_back(18696.097442039274);
3529 6 : parameter_mix[BB_DNA_3].push_back(-55.5645003501971);
3530 6 : parameter_mix[BB_DNA_3].push_back(-30422.262113654506);
3531 6 : parameter_mix[BB_DNA_3].push_back(-6409.659659309089);
3532 6 : parameter_mix[BB_DNA_3].push_back(44605.76043515699);
3533 6 : parameter_mix[BB_DNA_3].push_back(-28295.62152988411);
3534 6 : parameter_mix[BB_DNA_3].push_back(5262.5765863484);
3535 :
3536 6 : parameter_mix[BB_RNA].push_back(21356.177105457366);
3537 6 : parameter_mix[BB_RNA].push_back(-76.73490647754872);
3538 6 : parameter_mix[BB_RNA].push_back(-36845.234814782816);
3539 6 : parameter_mix[BB_RNA].push_back(-9066.559625582728);
3540 6 : parameter_mix[BB_RNA].push_back(61167.998793390485);
3541 6 : parameter_mix[BB_RNA].push_back(-41467.23384423218);
3542 6 : parameter_mix[BB_RNA].push_back(8518.937793863257);
3543 :
3544 6 : parameter_mix[BB_RNA_5].push_back(22386.63276427916);
3545 6 : parameter_mix[BB_RNA_5].push_back(-85.70426456933487);
3546 6 : parameter_mix[BB_RNA_5].push_back(-39490.50298502025);
3547 6 : parameter_mix[BB_RNA_5].push_back(-10223.702594972712);
3548 6 : parameter_mix[BB_RNA_5].push_back(68450.60459618448);
3549 6 : parameter_mix[BB_RNA_5].push_back(-47409.91098159006);
3550 6 : parameter_mix[BB_RNA_5].push_back(10031.136138513202);
3551 :
3552 6 : parameter_mix[BB_RNA_3].push_back(22386.63276427916);
3553 6 : parameter_mix[BB_RNA_3].push_back(-81.93760812351479);
3554 6 : parameter_mix[BB_RNA_3].push_back(-39031.70571520093);
3555 6 : parameter_mix[BB_RNA_3].push_back(-9666.316086142708);
3556 6 : parameter_mix[BB_RNA_3].push_back(65120.07128126262);
3557 6 : parameter_mix[BB_RNA_3].push_back(-44110.13603681317);
3558 6 : parameter_mix[BB_RNA_3].push_back(9036.76498256983);
3559 :
3560 6 : parameter_mix[BASE_A].push_back(15897.31116611889);
3561 6 : parameter_mix[BASE_A].push_back(-67.86385832953485);
3562 6 : parameter_mix[BASE_A].push_back(-28851.754660951636);
3563 6 : parameter_mix[BASE_A].push_back(-8144.431687170413);
3564 6 : parameter_mix[BASE_A].push_back(53606.39082954489);
3565 6 : parameter_mix[BASE_A].push_back(-38083.51243782253);
3566 6 : parameter_mix[BASE_A].push_back(8293.47107993253);
3567 :
3568 6 : parameter_mix[BASE_C].push_back(11733.2828871599);
3569 6 : parameter_mix[BASE_C].push_back(-38.76775400274115);
3570 6 : parameter_mix[BASE_C].push_back(-19318.84666423464);
3571 6 : parameter_mix[BASE_C].push_back(-4507.915522704176);
3572 6 : parameter_mix[BASE_C].push_back(30576.57671286052);
3573 6 : parameter_mix[BASE_C].push_back(-20132.46696910844);
3574 6 : parameter_mix[BASE_C].push_back(3947.8727087996162);
3575 :
3576 6 : parameter_mix[BASE_G].push_back(19146.612417237808);
3577 6 : parameter_mix[BASE_G].push_back(-102.37046638004914);
3578 6 : parameter_mix[BASE_G].push_back(-38718.96478190546);
3579 6 : parameter_mix[BASE_G].push_back(-13238.106081860074);
3580 6 : parameter_mix[BASE_G].push_back(87309.07460288722);
3581 6 : parameter_mix[BASE_G].push_back(-68364.82442984737);
3582 6 : parameter_mix[BASE_G].push_back(16815.362401369);
3583 :
3584 6 : parameter_mix[BASE_T].push_back(17050.440260819163);
3585 6 : parameter_mix[BASE_T].push_back(-76.33750600643376);
3586 6 : parameter_mix[BASE_T].push_back(-31849.539096715005);
3587 6 : parameter_mix[BASE_T].push_back(-9484.498992751434);
3588 6 : parameter_mix[BASE_T].push_back(62881.895771680494);
3589 6 : parameter_mix[BASE_T].push_back(-46531.948557759024);
3590 6 : parameter_mix[BASE_T].push_back(10734.196329884822);
3591 :
3592 6 : parameter_mix[BASE_U].push_back(11904.095265219023);
3593 6 : parameter_mix[BASE_U].push_back(-34.67511054915295);
3594 6 : parameter_mix[BASE_U].push_back(-18842.275003104005);
3595 6 : parameter_mix[BASE_U].push_back(-3993.1174764890684);
3596 6 : parameter_mix[BASE_U].push_back(27663.625106762345);
3597 6 : parameter_mix[BASE_U].push_back(-17577.387831701515);
3598 6 : parameter_mix[BASE_U].push_back(3273.183903219142);
3599 :
3600 6 : parameter_vac[BB_PO2].push_back(960.8822037291127);
3601 6 : parameter_vac[BB_PO2].push_back(-0.09312135742159174);
3602 6 : parameter_vac[BB_PO2].push_back(-469.39643497461844);
3603 6 : parameter_vac[BB_PO2].push_back(-9.779346709041985);
3604 6 : parameter_vac[BB_PO2].push_back(162.1581550003227);
3605 6 : parameter_vac[BB_PO2].push_back(-37.06686233305618);
3606 6 : parameter_vac[BB_PO2].push_back(-4.695586672655664);
3607 :
3608 6 : parameter_vac[BB_DNA].push_back(3720.2522996838984);
3609 6 : parameter_vac[BB_DNA].push_back(-5.4229642176938);
3610 6 : parameter_vac[BB_DNA].push_back(-4800.897672711981);
3611 6 : parameter_vac[BB_DNA].push_back(-597.2274673070993);
3612 6 : parameter_vac[BB_DNA].push_back(4825.908840953665);
3613 6 : parameter_vac[BB_DNA].push_back(-2451.397454446564);
3614 6 : parameter_vac[BB_DNA].push_back(294.93071756645685);
3615 :
3616 6 : parameter_vac[BB_DNA_5].push_back(3843.234214262163);
3617 6 : parameter_vac[BB_DNA_5].push_back(-6.423078416284452);
3618 6 : parameter_vac[BB_DNA_5].push_back(-5112.1216386963115);
3619 6 : parameter_vac[BB_DNA_5].push_back(-713.8373583426668);
3620 6 : parameter_vac[BB_DNA_5].push_back(5547.545382516269);
3621 6 : parameter_vac[BB_DNA_5].push_back(-2973.5659871174225);
3622 6 : parameter_vac[BB_DNA_5].push_back(407.2789106630427);
3623 :
3624 6 : parameter_vac[BB_DNA_3].push_back(3843.234214262163);
3625 6 : parameter_vac[BB_DNA_3].push_back(-6.268636561475645);
3626 6 : parameter_vac[BB_DNA_3].push_back(-5103.192931218086);
3627 6 : parameter_vac[BB_DNA_3].push_back(-693.8705734390547);
3628 6 : parameter_vac[BB_DNA_3].push_back(5443.979645097035);
3629 6 : parameter_vac[BB_DNA_3].push_back(-2871.4337477324893);
3630 6 : parameter_vac[BB_DNA_3].push_back(377.3062915349831);
3631 :
3632 6 : parameter_vac[BB_RNA].push_back(4760.071443398374);
3633 6 : parameter_vac[BB_RNA].push_back(-11.0990475402486);
3634 6 : parameter_vac[BB_RNA].push_back(-6934.713566418421);
3635 6 : parameter_vac[BB_RNA].push_back(-1256.5202524085096);
3636 6 : parameter_vac[BB_RNA].push_back(9024.962587066922);
3637 6 : parameter_vac[BB_RNA].push_back(-5386.842667932241);
3638 6 : parameter_vac[BB_RNA].push_back(907.42947751372);
3639 :
3640 6 : parameter_vac[BB_RNA_5].push_back(4899.051406033406);
3641 6 : parameter_vac[BB_RNA_5].push_back(-12.279240472628238);
3642 6 : parameter_vac[BB_RNA_5].push_back(-7276.273570813667);
3643 6 : parameter_vac[BB_RNA_5].push_back(-1400.9520839250868);
3644 6 : parameter_vac[BB_RNA_5].push_back(9912.215823228895);
3645 6 : parameter_vac[BB_RNA_5].push_back(-6079.2565270404075);
3646 6 : parameter_vac[BB_RNA_5].push_back(1073.53428175472);
3647 :
3648 6 : parameter_vac[BB_RNA_3].push_back(4899.051406033406);
3649 6 : parameter_vac[BB_RNA_3].push_back(-11.642804195148194);
3650 6 : parameter_vac[BB_RNA_3].push_back(-7213.774619570996);
3651 6 : parameter_vac[BB_RNA_3].push_back(-1317.4463949342964);
3652 6 : parameter_vac[BB_RNA_3].push_back(9450.928929264686);
3653 6 : parameter_vac[BB_RNA_3].push_back(-5643.856117200917);
3654 6 : parameter_vac[BB_RNA_3].push_back(949.4698817407918);
3655 :
3656 6 : parameter_vac[BASE_A].push_back(4756.697028810353);
3657 6 : parameter_vac[BASE_A].push_back(-12.158940746852812);
3658 6 : parameter_vac[BASE_A].push_back(-7106.473423744205);
3659 6 : parameter_vac[BASE_A].push_back(-1376.295184173137);
3660 6 : parameter_vac[BASE_A].push_back(9747.132255557788);
3661 6 : parameter_vac[BASE_A].push_back(-5900.026637038756);
3662 6 : parameter_vac[BASE_A].push_back(1004.6226388342955);
3663 :
3664 6 : parameter_vac[BASE_C].push_back(3246.698975674651);
3665 6 : parameter_vac[BASE_C].push_back(-6.125036521218687);
3666 6 : parameter_vac[BASE_C].push_back(-4280.666521437201);
3667 6 : parameter_vac[BASE_C].push_back(-684.0183580843932);
3668 6 : parameter_vac[BASE_C].push_back(5077.062889522692);
3669 6 : parameter_vac[BASE_C].push_back(-2870.3239317750963);
3670 6 : parameter_vac[BASE_C].push_back(434.51551177863547);
3671 :
3672 6 : parameter_vac[BASE_G].push_back(5924.105658596052);
3673 6 : parameter_vac[BASE_G].push_back(-23.097956587232552);
3674 6 : parameter_vac[BASE_G].push_back(-10149.526301285418);
3675 6 : parameter_vac[BASE_G].push_back(-2752.9166169522528);
3676 6 : parameter_vac[BASE_G].push_back(18239.32985385683);
3677 6 : parameter_vac[BASE_G].push_back(-12749.277858800957);
3678 6 : parameter_vac[BASE_G].push_back(2715.354663787367);
3679 :
3680 6 : parameter_vac[BASE_T].push_back(4222.889713694404);
3681 6 : parameter_vac[BASE_T].push_back(-12.15861456306705);
3682 6 : parameter_vac[BASE_T].push_back(-6395.50289789404);
3683 6 : parameter_vac[BASE_T].push_back(-1421.3942549301012);
3684 6 : parameter_vac[BASE_T].push_back(9757.061008720135);
3685 6 : parameter_vac[BASE_T].push_back(-6399.630933839126);
3686 6 : parameter_vac[BASE_T].push_back(1258.9874225605438);
3687 :
3688 6 : parameter_vac[BASE_U].push_back(3247.251361465539);
3689 6 : parameter_vac[BASE_U].push_back(-5.211020853261115);
3690 6 : parameter_vac[BASE_U].push_back(-4125.165310360279);
3691 6 : parameter_vac[BASE_U].push_back(-575.1860235473902);
3692 6 : parameter_vac[BASE_U].push_back(4457.6562621371495);
3693 6 : parameter_vac[BASE_U].push_back(-2368.7250146912766);
3694 6 : parameter_vac[BASE_U].push_back(313.23997718445014);
3695 :
3696 21178 : for(unsigned i=0; i<atoms.size(); ++i) {
3697 21172 : std::string Aname = pdb.getAtomName(atoms[i]);
3698 21172 : std::string Rname = pdb.getResidueName(atoms[i]);
3699 21172 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
3700 21172 : if(Rname=="ALA") {
3701 1098 : atoi[residue_atom[i]]=ALA;
3702 20074 : } else if(Rname=="ARG") {
3703 1296 : atoi[residue_atom[i]]=ARG;
3704 18778 : } else if(Rname=="ASN") {
3705 1080 : atoi[residue_atom[i]]=ASN;
3706 17698 : } else if(Rname=="ASP") {
3707 936 : atoi[residue_atom[i]]=ASP;
3708 16762 : } else if(Rname=="CYS") {
3709 72 : atoi[residue_atom[i]]=CYS;
3710 16690 : } else if(Rname=="GLN") {
3711 1596 : atoi[residue_atom[i]]=GLN;
3712 15094 : } else if(Rname=="GLU") {
3713 714 : atoi[residue_atom[i]]=GLU;
3714 14380 : } else if(Rname=="GLY") {
3715 972 : atoi[residue_atom[i]]=GLY;
3716 13408 : } else if(Rname=="HIS") {
3717 0 : atoi[residue_atom[i]]=HIS;
3718 13408 : } else if(Rname=="HID") {
3719 0 : atoi[residue_atom[i]]=HIS;
3720 13408 : } else if(Rname=="HIE") {
3721 216 : atoi[residue_atom[i]]=HIS;
3722 13192 : } else if(Rname=="HIP") {
3723 0 : atoi[residue_atom[i]]=HIP;
3724 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
3725 13192 : } else if(Rname=="HSD") {
3726 0 : atoi[residue_atom[i]]=HIS;
3727 13192 : } else if(Rname=="HSE") {
3728 0 : atoi[residue_atom[i]]=HIS;
3729 13192 : } else if(Rname=="HSP") {
3730 0 : atoi[residue_atom[i]]=HIP;
3731 13192 : } else if(Rname=="ILE") {
3732 1296 : atoi[residue_atom[i]]=ILE;
3733 11896 : } else if(Rname=="LEU") {
3734 2280 : atoi[residue_atom[i]]=LEU;
3735 9616 : } else if(Rname=="LYS") {
3736 1560 : atoi[residue_atom[i]]=LYS;
3737 8056 : } else if(Rname=="MET") {
3738 912 : atoi[residue_atom[i]]=MET;
3739 7144 : } else if(Rname=="PHE") {
3740 1512 : atoi[residue_atom[i]]=PHE;
3741 5632 : } else if(Rname=="PRO") {
3742 1122 : atoi[residue_atom[i]]=PRO;
3743 4510 : } else if(Rname=="SER") {
3744 792 : atoi[residue_atom[i]]=SER;
3745 3718 : } else if(Rname=="THR") {
3746 756 : atoi[residue_atom[i]]=THR;
3747 2962 : } else if(Rname=="TRP") {
3748 0 : atoi[residue_atom[i]]=TRP;
3749 2962 : } else if(Rname=="TYR") {
3750 792 : atoi[residue_atom[i]]=TYR;
3751 2170 : } else if(Rname=="VAL") {
3752 1632 : atoi[residue_atom[i]]=VAL;
3753 : }
3754 : // NUCLEIC ACIDS
3755 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
3756 : // RNA - G
3757 538 : else if(Rname=="G") {
3758 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3759 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3760 0 : atoi [residue_atom[i]]=BB_PO2;
3761 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3762 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3763 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3764 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3765 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
3766 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
3767 0 : atoi[residue_atom[i]]=BB_RNA;
3768 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3769 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3770 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3771 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3772 0 : atoi[residue_atom[i]]=BASE_G;
3773 : } else {
3774 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3775 : }
3776 : // RNA - G3
3777 538 : } else if(Rname=="G3") {
3778 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3779 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3780 0 : atoi [residue_atom[i]]=BB_PO2;
3781 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3782 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3783 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3784 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3785 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
3786 0 : Aname=="H5'2" || Aname=="HO'2" ) {
3787 0 : atoi[residue_atom[i]]=BB_RNA_3;
3788 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3789 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3790 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3791 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3792 0 : atoi[residue_atom[i]]=BASE_G;
3793 : } else {
3794 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3795 : }
3796 : // RNA - G5
3797 538 : } else if(Rname=="G5") {
3798 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3799 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3800 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3801 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
3802 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
3803 0 : Aname=="H2'1" || Aname=="H5T" ) {
3804 0 : atoi[residue_atom[i]]=BB_RNA_5;
3805 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3806 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3807 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3808 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3809 0 : atoi[residue_atom[i]]=BASE_G;
3810 : } else {
3811 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3812 : }
3813 : // RNA - U
3814 538 : } else if(Rname=="U") {
3815 1554 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3816 1176 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3817 42 : atoi [residue_atom[i]]=BB_PO2;
3818 1372 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3819 1148 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3820 924 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3821 714 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3822 644 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
3823 840 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
3824 224 : atoi[residue_atom[i]]=BB_RNA;
3825 476 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3826 252 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
3827 196 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
3828 154 : atoi[residue_atom[i]]=BASE_U;
3829 : } else {
3830 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3831 : }
3832 : // RNA - U3
3833 118 : } else if(Rname=="U3") {
3834 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3835 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3836 6 : atoi [residue_atom[i]]=BB_PO2;
3837 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3838 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3839 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3840 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3841 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
3842 78 : Aname=="H5'2" || Aname=="HO'2" ) {
3843 34 : atoi[residue_atom[i]]=BB_RNA_3;
3844 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3845 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
3846 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
3847 22 : atoi[residue_atom[i]]=BASE_U;
3848 : } else {
3849 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3850 : }
3851 : // RNA - U5
3852 56 : } else if(Rname=="U5") {
3853 204 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3854 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3855 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3856 108 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
3857 88 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
3858 78 : Aname=="H2'1" || Aname=="H5T" ) {
3859 34 : atoi[residue_atom[i]]=BB_RNA_5;
3860 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3861 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
3862 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
3863 22 : atoi[residue_atom[i]]=BASE_U;
3864 : } else {
3865 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3866 : }
3867 : // RNA - A
3868 0 : } else if(Rname=="A") {
3869 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3870 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3871 0 : atoi [residue_atom[i]]=BB_PO2;
3872 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3873 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3874 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3875 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3876 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
3877 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
3878 0 : atoi[residue_atom[i]]=BB_RNA;
3879 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
3880 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
3881 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
3882 0 : Aname=="H61" || Aname=="H62" ) {
3883 0 : atoi[residue_atom[i]]=BASE_A;
3884 : } else {
3885 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3886 : }
3887 : // RNA - A3
3888 0 : } else if(Rname=="A3") {
3889 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3890 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3891 0 : atoi [residue_atom[i]]=BB_PO2;
3892 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3893 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3894 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3895 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3896 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
3897 0 : Aname=="H5'2" || Aname=="HO'2" ) {
3898 0 : atoi[residue_atom[i]]=BB_RNA_3;
3899 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
3900 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
3901 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
3902 0 : Aname=="H61" || Aname=="H62" ) {
3903 0 : atoi[residue_atom[i]]=BASE_A;
3904 : } else {
3905 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3906 : }
3907 : // RNA - A5
3908 0 : } else if(Rname=="A5") {
3909 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3910 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3911 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3912 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
3913 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
3914 0 : Aname=="H2'1" || Aname=="H5T" ) {
3915 0 : atoi[residue_atom[i]]=BB_RNA_5;
3916 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
3917 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
3918 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
3919 0 : Aname=="H61" || Aname=="H62" ) {
3920 0 : atoi[residue_atom[i]]=BASE_A;
3921 : } else {
3922 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3923 : }
3924 : // RNA - C
3925 0 : } else if(Rname=="C") {
3926 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3927 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3928 0 : atoi [residue_atom[i]]=BB_PO2;
3929 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3930 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3931 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3932 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3933 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
3934 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
3935 0 : atoi[residue_atom[i]]=BB_RNA;
3936 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3937 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
3938 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
3939 0 : atoi[residue_atom[i]]=BASE_C;
3940 : } else {
3941 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3942 : }
3943 : // RNA - C3
3944 0 : } else if(Rname=="C3") {
3945 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3946 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3947 0 : atoi [residue_atom[i]]=BB_PO2;
3948 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3949 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3950 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3951 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
3952 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
3953 0 : Aname=="H5'2" || Aname=="HO'2" ) {
3954 0 : atoi[residue_atom[i]]=BB_RNA_3;
3955 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3956 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
3957 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
3958 0 : atoi[residue_atom[i]]=BASE_C;
3959 : } else {
3960 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3961 : }
3962 : // RNA - C5
3963 0 : } else if(Rname=="C5") {
3964 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3965 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
3966 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
3967 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
3968 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
3969 0 : Aname=="H2'1" || Aname=="H5T" ) {
3970 0 : atoi[residue_atom[i]]=BB_RNA_5;
3971 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
3972 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
3973 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
3974 0 : atoi[residue_atom[i]]=BASE_C;
3975 : } else {
3976 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3977 : }
3978 : // DNA - G
3979 0 : } else if(Rname=="DG") {
3980 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
3981 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
3982 0 : atoi [residue_atom[i]]=BB_PO2;
3983 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
3984 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
3985 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
3986 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
3987 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
3988 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
3989 0 : atoi[residue_atom[i]]=BB_DNA;
3990 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
3991 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
3992 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
3993 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
3994 0 : atoi[residue_atom[i]]=BASE_G;
3995 : } else {
3996 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
3997 : }
3998 : // DNA - G3
3999 0 : } else if(Rname=="DG3") {
4000 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4001 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4002 0 : atoi [residue_atom[i]]=BB_PO2;
4003 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4004 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4005 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4006 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4007 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4008 : Aname=="H3T" ) {
4009 0 : atoi[residue_atom[i]]=BB_DNA_3;
4010 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4011 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4012 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4013 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4014 0 : atoi[residue_atom[i]]=BASE_G;
4015 : } else {
4016 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4017 : }
4018 : // DNA - G5
4019 0 : } else if(Rname=="DG5") {
4020 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4021 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4022 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4023 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4024 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4025 : Aname=="H5T" ) {
4026 0 : atoi[residue_atom[i]]=BB_DNA_5;
4027 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
4028 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
4029 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
4030 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
4031 0 : atoi[residue_atom[i]]=BASE_G;
4032 : } else {
4033 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4034 : }
4035 : // DNA - T
4036 0 : } else if(Rname=="DT") {
4037 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4038 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4039 0 : atoi [residue_atom[i]]=BB_PO2;
4040 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4041 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4042 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4043 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4044 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4045 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4046 0 : atoi[residue_atom[i]]=BB_DNA;
4047 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4048 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4049 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4050 0 : Aname=="H72" || Aname=="H73" ) {
4051 0 : atoi[residue_atom[i]]=BASE_T;
4052 : } else {
4053 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4054 : }
4055 : // DNA - T3
4056 0 : } else if(Rname=="DT3") {
4057 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4058 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4059 0 : atoi [residue_atom[i]]=BB_PO2;
4060 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4061 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4062 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4063 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4064 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4065 : Aname=="H3T" ) {
4066 0 : atoi[residue_atom[i]]=BB_DNA_3;
4067 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4068 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4069 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4070 0 : Aname=="H72" || Aname=="H73" ) {
4071 0 : atoi[residue_atom[i]]=BASE_T;
4072 : } else {
4073 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4074 : }
4075 : // DNA - T5
4076 0 : } else if(Rname=="DT5") {
4077 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4078 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4079 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4080 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4081 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4082 : Aname=="H5T" ) {
4083 0 : atoi[residue_atom[i]]=BB_DNA_5;
4084 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4085 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
4086 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
4087 0 : Aname=="H72" || Aname=="H73" ) {
4088 0 : atoi[residue_atom[i]]=BASE_T;
4089 : } else {
4090 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4091 : }
4092 : // DNA - A
4093 0 : } else if(Rname=="DA") {
4094 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4095 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4096 0 : atoi [residue_atom[i]]=BB_PO2;
4097 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4098 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4099 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4100 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4101 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4102 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4103 0 : atoi[residue_atom[i]]=BB_DNA;
4104 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4105 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4106 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4107 0 : Aname=="H61" || Aname=="H62" ) {
4108 0 : atoi[residue_atom[i]]=BASE_A;
4109 : } else {
4110 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4111 : }
4112 : // DNA - A3
4113 0 : } else if(Rname=="DA3") {
4114 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4115 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4116 0 : atoi [residue_atom[i]]=BB_PO2;
4117 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4118 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4119 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4120 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4121 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4122 : Aname=="H3T" ) {
4123 0 : atoi[residue_atom[i]]=BB_DNA_3;
4124 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4125 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4126 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4127 0 : Aname=="H61" || Aname=="H62" ) {
4128 0 : atoi[residue_atom[i]]=BASE_A;
4129 : } else {
4130 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4131 : }
4132 : // DNA - A5
4133 0 : } else if(Rname=="DA5") {
4134 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4135 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4136 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4137 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4138 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4139 : Aname=="H5T" ) {
4140 0 : atoi[residue_atom[i]]=BB_DNA_5;
4141 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
4142 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
4143 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
4144 0 : Aname=="H61" || Aname=="H62" ) {
4145 0 : atoi[residue_atom[i]]=BASE_A;
4146 : } else {
4147 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4148 : }
4149 : // DNA - C
4150 0 : } else if(Rname=="DC") {
4151 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4152 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4153 0 : atoi [residue_atom[i]]=BB_PO2;
4154 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4155 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4156 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4157 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4158 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
4159 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
4160 0 : atoi[residue_atom[i]]=BB_DNA;
4161 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4162 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4163 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4164 0 : atoi[residue_atom[i]]=BASE_C;
4165 : } else {
4166 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4167 : }
4168 : // DNA - C3
4169 0 : } else if(Rname=="DC3") {
4170 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
4171 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
4172 0 : atoi [residue_atom[i]]=BB_PO2;
4173 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4174 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4175 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4176 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
4177 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4178 : Aname=="H3T" ) {
4179 0 : atoi[residue_atom[i]]=BB_DNA_3;
4180 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4181 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4182 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4183 0 : atoi[residue_atom[i]]=BASE_C;
4184 : } else {
4185 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4186 : }
4187 : // DNA - C5
4188 0 : } else if(Rname=="DC5") {
4189 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
4190 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
4191 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
4192 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
4193 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
4194 : Aname=="H5T" ) {
4195 0 : atoi[residue_atom[i]]=BB_DNA_5;
4196 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
4197 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
4198 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
4199 0 : atoi[residue_atom[i]]=BASE_C;
4200 : } else {
4201 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
4202 : }
4203 : } else {
4204 0 : error("Residue not known: "+Rname);
4205 : }
4206 : }
4207 6 : }
4208 :
4209 4 : 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) {
4210 4 : parameter_solv_H[TRP].push_back(60737.60249988011);
4211 4 : parameter_solv_H[TRP].push_back(-77.77344118516487);
4212 4 : parameter_solv_H[TRP].push_back(-205962.80436572764);
4213 4 : parameter_solv_H[TRP].push_back(-62014.18523271781);
4214 4 : parameter_solv_H[TRP].push_back(680712.0512548896);
4215 4 : parameter_solv_H[TRP].push_back(-681337.967312983);
4216 4 : parameter_solv_H[TRP].push_back(211474.00338118695);
4217 :
4218 4 : parameter_solv_H[TYR].push_back(46250.803599880084);
4219 4 : parameter_solv_H[TYR].push_back(-45.827646837514614);
4220 4 : parameter_solv_H[TYR].push_back(-143872.94597686914);
4221 4 : parameter_solv_H[TYR].push_back(-39049.51580628132);
4222 4 : parameter_solv_H[TYR].push_back(441321.31246635393);
4223 4 : parameter_solv_H[TYR].push_back(-434477.6826175059);
4224 4 : parameter_solv_H[TYR].push_back(133179.21673104732);
4225 :
4226 4 : parameter_solv_H[PHE].push_back(42407.164900118914);
4227 4 : parameter_solv_H[PHE].push_back(-159.20054549009086);
4228 4 : parameter_solv_H[PHE].push_back(-123847.83591352346);
4229 4 : parameter_solv_H[PHE].push_back(-41797.78884558073);
4230 4 : parameter_solv_H[PHE].push_back(380283.87543872406);
4231 4 : parameter_solv_H[PHE].push_back(-361432.81356389285);
4232 4 : parameter_solv_H[PHE].push_back(107750.69385054041);
4233 :
4234 4 : parameter_solv_H[HIP].push_back(24473.473600119047);
4235 4 : parameter_solv_H[HIP].push_back(-111.6412807124612);
4236 4 : parameter_solv_H[HIP].push_back(-65826.17293437096);
4237 4 : parameter_solv_H[HIP].push_back(-23305.902022201855);
4238 4 : parameter_solv_H[HIP].push_back(194795.09953510275);
4239 4 : parameter_solv_H[HIP].push_back(-180454.47859494278);
4240 4 : parameter_solv_H[HIP].push_back(52699.36922660704);
4241 :
4242 4 : parameter_solv_H[ARG].push_back(34106.70239988039);
4243 4 : parameter_solv_H[ARG].push_back(152.74468231268114);
4244 4 : parameter_solv_H[ARG].push_back(-117086.46040369231);
4245 4 : parameter_solv_H[ARG].push_back(-19664.37512726012);
4246 4 : parameter_solv_H[ARG].push_back(364454.3721646173);
4247 4 : parameter_solv_H[ARG].push_back(-382076.05102190404);
4248 4 : parameter_solv_H[ARG].push_back(122775.83306003918);
4249 :
4250 4 : parameter_solv_H[LYS].push_back(32292.09000011877);
4251 4 : parameter_solv_H[LYS].push_back(-111.97888350941923);
4252 4 : parameter_solv_H[LYS].push_back(-91953.05212591762);
4253 4 : parameter_solv_H[LYS].push_back(-30691.03615444628);
4254 4 : parameter_solv_H[LYS].push_back(282092.82233263896);
4255 4 : parameter_solv_H[LYS].push_back(-269503.6095978623);
4256 4 : parameter_solv_H[LYS].push_back(80777.92760273012);
4257 :
4258 4 : parameter_solv_H[CYS].push_back(11352.902500119093);
4259 4 : parameter_solv_H[CYS].push_back(-45.52255488723637);
4260 4 : parameter_solv_H[CYS].push_back(-20925.086525675117);
4261 4 : parameter_solv_H[CYS].push_back(-5662.681335644281);
4262 4 : parameter_solv_H[CYS].push_back(38559.09602816144);
4263 4 : parameter_solv_H[CYS].push_back(-27885.22747486708);
4264 4 : parameter_solv_H[CYS].push_back(6280.148346561226);
4265 :
4266 4 : parameter_solv_H[ASP].push_back(13511.73760011933);
4267 4 : parameter_solv_H[ASP].push_back(-59.92934247210642);
4268 4 : parameter_solv_H[ASP].push_back(-25849.867077822244);
4269 4 : parameter_solv_H[ASP].push_back(-7541.679510407563);
4270 4 : parameter_solv_H[ASP].push_back(50760.93853987092);
4271 4 : parameter_solv_H[ASP].push_back(-37677.89102528413);
4272 4 : parameter_solv_H[ASP].push_back(8745.710458140105);
4273 :
4274 4 : parameter_solv_H[GLU].push_back(20443.280400119456);
4275 4 : parameter_solv_H[GLU].push_back(-113.77513581661388);
4276 4 : parameter_solv_H[GLU].push_back(-45587.79863958479);
4277 4 : parameter_solv_H[GLU].push_back(-16187.534798976243);
4278 4 : parameter_solv_H[GLU].push_back(112609.61802147207);
4279 4 : parameter_solv_H[GLU].push_back(-93362.01894077536);
4280 4 : parameter_solv_H[GLU].push_back(24519.546829431332);
4281 :
4282 4 : parameter_solv_H[ILE].push_back(27858.948100119596);
4283 4 : parameter_solv_H[ILE].push_back(-159.27394962770595);
4284 4 : parameter_solv_H[ILE].push_back(-61571.43025249802);
4285 4 : parameter_solv_H[ILE].push_back(-21324.89659912433);
4286 4 : parameter_solv_H[ILE].push_back(144070.7880009225);
4287 4 : parameter_solv_H[ILE].push_back(-115021.84534734003);
4288 4 : parameter_solv_H[ILE].push_back(28939.093300284097);
4289 :
4290 4 : parameter_solv_H[LEU].push_back(27858.948100119596);
4291 4 : parameter_solv_H[LEU].push_back(-165.61872365361);
4292 4 : parameter_solv_H[LEU].push_back(-62564.5706162518);
4293 4 : parameter_solv_H[LEU].push_back(-22465.325666767214);
4294 4 : parameter_solv_H[LEU].push_back(151616.7844050042);
4295 4 : parameter_solv_H[LEU].push_back(-122905.60389771541);
4296 4 : parameter_solv_H[LEU].push_back(31436.66201442061);
4297 :
4298 4 : parameter_solv_H[MET].push_back(25609.60090011981);
4299 4 : parameter_solv_H[MET].push_back(-135.38816369794569);
4300 4 : parameter_solv_H[MET].push_back(-67771.01548433342);
4301 4 : parameter_solv_H[MET].push_back(-25228.91756660071);
4302 4 : parameter_solv_H[MET].push_back(199649.92084565928);
4303 4 : parameter_solv_H[MET].push_back(-182251.9246506795);
4304 4 : parameter_solv_H[MET].push_back(52502.876819125115);
4305 :
4306 4 : parameter_solv_H[ASN].push_back(14376.010000119095);
4307 4 : parameter_solv_H[ASN].push_back(-67.65587848183215);
4308 4 : parameter_solv_H[ASN].push_back(-28302.877059425664);
4309 4 : parameter_solv_H[ASN].push_back(-8577.444107282141);
4310 4 : parameter_solv_H[ASN].push_back(57532.88704197217);
4311 4 : parameter_solv_H[ASN].push_back(-43261.79974462857);
4312 4 : parameter_solv_H[ASN].push_back(10186.450874679671);
4313 :
4314 4 : parameter_solv_H[PRO].push_back(16866.21690011944);
4315 4 : parameter_solv_H[PRO].push_back(-70.84312112734995);
4316 4 : parameter_solv_H[PRO].push_back(-31465.8423531932);
4317 4 : parameter_solv_H[PRO].push_back(-8653.362744540535);
4318 4 : parameter_solv_H[PRO].push_back(58032.27079924916);
4319 4 : parameter_solv_H[PRO].push_back(-41521.001733021694);
4320 4 : parameter_solv_H[PRO].push_back(9184.527523759205);
4321 :
4322 4 : parameter_solv_H[GLN].push_back(21503.289600119);
4323 4 : parameter_solv_H[GLN].push_back(-121.3012777474678);
4324 4 : parameter_solv_H[GLN].push_back(-50468.58503443957);
4325 4 : parameter_solv_H[GLN].push_back(-18462.47495329696);
4326 4 : parameter_solv_H[GLN].push_back(132718.42007501892);
4327 4 : parameter_solv_H[GLN].push_back(-113787.20224345029);
4328 4 : parameter_solv_H[GLN].push_back(30920.340813688686);
4329 :
4330 4 : parameter_solv_H[SER].push_back(9181.47240011935);
4331 4 : parameter_solv_H[SER].push_back(-28.775273124392083);
4332 4 : parameter_solv_H[SER].push_back(-15205.54229808512);
4333 4 : parameter_solv_H[SER].push_back(-3377.785599913673);
4334 4 : parameter_solv_H[SER].push_back(23345.562090489493);
4335 4 : parameter_solv_H[SER].push_back(-15312.699787471944);
4336 4 : parameter_solv_H[SER].push_back(3013.844610647712);
4337 :
4338 4 : parameter_solv_H[THR].push_back(15020.953600119403);
4339 4 : parameter_solv_H[THR].push_back(-61.909951810375105);
4340 4 : parameter_solv_H[THR].push_back(-27814.538986050964);
4341 4 : parameter_solv_H[THR].push_back(-7532.222992514079);
4342 4 : parameter_solv_H[THR].push_back(50586.29804970814);
4343 4 : parameter_solv_H[THR].push_back(-35943.85986777198);
4344 4 : parameter_solv_H[THR].push_back(7880.091610023207);
4345 :
4346 4 : parameter_solv_H[VAL].push_back(19647.628900119355);
4347 4 : parameter_solv_H[VAL].push_back(-89.04968136833762);
4348 4 : parameter_solv_H[VAL].push_back(-38050.10118919102);
4349 4 : parameter_solv_H[VAL].push_back(-10921.421066774372);
4350 4 : parameter_solv_H[VAL].push_back(72774.31277743122);
4351 4 : parameter_solv_H[VAL].push_back(-52689.05168504517);
4352 4 : parameter_solv_H[VAL].push_back(11806.48989635518);
4353 :
4354 4 : parameter_solv_H[ALA].push_back(7515.156100119273);
4355 4 : parameter_solv_H[ALA].push_back(-20.226317591188526);
4356 4 : parameter_solv_H[ALA].push_back(-11761.841775007797);
4357 4 : parameter_solv_H[ALA].push_back(-2341.4903622033885);
4358 4 : parameter_solv_H[ALA].push_back(16545.381259883452);
4359 4 : parameter_solv_H[ALA].push_back(-10397.171546969075);
4360 4 : parameter_solv_H[ALA].push_back(1921.5253045340198);
4361 :
4362 4 : parameter_solv_H[GLY].push_back(3594.002500119159);
4363 4 : parameter_solv_H[GLY].push_back(-6.910832388009796);
4364 4 : parameter_solv_H[GLY].push_back(-4937.3542895091905);
4365 4 : parameter_solv_H[GLY].push_back(-785.4545979203357);
4366 4 : parameter_solv_H[GLY].push_back(5852.853693316741);
4367 4 : parameter_solv_H[GLY].push_back(-3391.2920205126734);
4368 4 : parameter_solv_H[GLY].push_back(552.3278183161507);
4369 :
4370 4 : parameter_solv_H[HIS].push_back(22888.664100119073);
4371 4 : parameter_solv_H[HIS].push_back(-133.86281863999585);
4372 4 : parameter_solv_H[HIS].push_back(-57533.51412287858);
4373 4 : parameter_solv_H[HIS].push_back(-21767.300111408193);
4374 4 : parameter_solv_H[HIS].push_back(161255.15347073504);
4375 4 : parameter_solv_H[HIS].push_back(-142176.65100718598);
4376 4 : parameter_solv_H[HIS].push_back(39642.61507384587);
4377 :
4378 4 : parameter_mix_H[TRP].push_back(2974.6515001192306);
4379 4 : parameter_mix_H[TRP].push_back(-18.361939022074825);
4380 4 : parameter_mix_H[TRP].push_back(-7284.637435770752);
4381 4 : parameter_mix_H[TRP].push_back(-2945.7969900381895);
4382 4 : parameter_mix_H[TRP].push_back(21235.01878657283);
4383 4 : parameter_mix_H[TRP].push_back(-18909.7406035548);
4384 4 : parameter_mix_H[TRP].push_back(5324.324204245179);
4385 :
4386 4 : parameter_mix_H[TYR].push_back(2029.7362801192114);
4387 4 : parameter_mix_H[TYR].push_back(-6.983186065527884);
4388 4 : parameter_mix_H[TYR].push_back(-5041.996113037476);
4389 4 : parameter_mix_H[TYR].push_back(-1744.5213085724158);
4390 4 : parameter_mix_H[TYR].push_back(15329.420227814338);
4391 4 : parameter_mix_H[TYR].push_back(-14648.322529889958);
4392 4 : parameter_mix_H[TYR].push_back(4405.608657083287);
4393 :
4394 4 : parameter_mix_H[PHE].push_back(1704.6885401192117);
4395 4 : parameter_mix_H[PHE].push_back(-10.077274979133408);
4396 4 : parameter_mix_H[PHE].push_back(-3769.440088334303);
4397 4 : parameter_mix_H[PHE].push_back(-1574.6255694551546);
4398 4 : parameter_mix_H[PHE].push_back(10996.32497868798);
4399 4 : parameter_mix_H[PHE].push_back(-9840.68281283696);
4400 4 : parameter_mix_H[PHE].push_back(2792.098605716682);
4401 :
4402 4 : parameter_mix_H[HIP].push_back(1376.0462401192394);
4403 4 : parameter_mix_H[HIP].push_back(-8.576320475413144);
4404 4 : parameter_mix_H[HIP].push_back(-2796.8327726392167);
4405 4 : parameter_mix_H[HIP].push_back(-1165.0473128576);
4406 4 : parameter_mix_H[HIP].push_back(7495.063650365717);
4407 4 : parameter_mix_H[HIP].push_back(-6331.20422098132);
4408 4 : parameter_mix_H[HIP].push_back(1692.637366093312);
4409 :
4410 4 : parameter_mix_H[ARG].push_back(1280.940480119178);
4411 4 : parameter_mix_H[ARG].push_back(-7.411214928783748);
4412 4 : parameter_mix_H[ARG].push_back(-3747.6200569785033);
4413 4 : parameter_mix_H[ARG].push_back(-1766.5282176004569);
4414 4 : parameter_mix_H[ARG].push_back(14307.817638456267);
4415 4 : parameter_mix_H[ARG].push_back(-14297.104122885643);
4416 4 : parameter_mix_H[ARG].push_back(4450.526244207772);
4417 :
4418 4 : parameter_mix_H[LYS].push_back(570.7272001192143);
4419 4 : parameter_mix_H[LYS].push_back(-5.371742288956095);
4420 4 : parameter_mix_H[LYS].push_back(-1255.9868267793006);
4421 4 : parameter_mix_H[LYS].push_back(-748.3071074443138);
4422 4 : parameter_mix_H[LYS].push_back(4534.824932304509);
4423 4 : parameter_mix_H[LYS].push_back(-4125.307867230812);
4424 4 : parameter_mix_H[LYS].push_back(1178.781491068295);
4425 :
4426 4 : parameter_mix_H[CYS].push_back(410.21750011921864);
4427 4 : parameter_mix_H[CYS].push_back(-0.7655651758449595);
4428 4 : parameter_mix_H[CYS].push_back(-523.8897033718782);
4429 4 : parameter_mix_H[CYS].push_back(-89.88478273744425);
4430 4 : parameter_mix_H[CYS].push_back(655.3313542467919);
4431 4 : parameter_mix_H[CYS].push_back(-407.87897719750896);
4432 4 : parameter_mix_H[CYS].push_back(76.50541508448237);
4433 :
4434 4 : parameter_mix_H[ASP].push_back(893.6531201192147);
4435 4 : parameter_mix_H[ASP].push_back(-3.0756255172248874);
4436 4 : parameter_mix_H[ASP].push_back(-1453.1760425275006);
4437 4 : parameter_mix_H[ASP].push_back(-365.0424824614137);
4438 4 : parameter_mix_H[ASP].push_back(2443.570600976796);
4439 4 : parameter_mix_H[ASP].push_back(-1679.8996339740277);
4440 4 : parameter_mix_H[ASP].push_back(352.33054461512455);
4441 :
4442 4 : parameter_mix_H[GLU].push_back(1075.4955601191884);
4443 4 : parameter_mix_H[GLU].push_back(-6.917429973203965);
4444 4 : parameter_mix_H[GLU].push_back(-2262.861870389347);
4445 4 : parameter_mix_H[GLU].push_back(-909.8078514527992);
4446 4 : parameter_mix_H[GLU].push_back(5841.923857549836);
4447 4 : parameter_mix_H[GLU].push_back(-4784.620969556751);
4448 4 : parameter_mix_H[GLU].push_back(1230.873134652953);
4449 :
4450 4 : parameter_mix_H[ILE].push_back(466.0127201192081);
4451 4 : parameter_mix_H[ILE].push_back(-0.9323443258150218);
4452 4 : parameter_mix_H[ILE].push_back(-576.7178005955719);
4453 4 : parameter_mix_H[ILE].push_back(-103.03003361062478);
4454 4 : parameter_mix_H[ILE].push_back(706.4269951176641);
4455 4 : parameter_mix_H[ILE].push_back(-420.4412859632717);
4456 4 : parameter_mix_H[ILE].push_back(71.53175726608731);
4457 :
4458 4 : parameter_mix_H[LEU].push_back(466.0127201192081);
4459 4 : parameter_mix_H[LEU].push_back(-1.9793605752606065);
4460 4 : parameter_mix_H[LEU].push_back(-718.3988478701591);
4461 4 : parameter_mix_H[LEU].push_back(-227.36409339012113);
4462 4 : parameter_mix_H[LEU].push_back(1389.2058254917304);
4463 4 : parameter_mix_H[LEU].push_back(-990.0033118748643);
4464 4 : parameter_mix_H[LEU].push_back(213.15736815883042);
4465 :
4466 4 : parameter_mix_H[MET].push_back(562.9855401192196);
4467 4 : parameter_mix_H[MET].push_back(-3.7994094933771643);
4468 4 : parameter_mix_H[MET].push_back(-1139.6331862451661);
4469 4 : parameter_mix_H[MET].push_back(-516.6313269725724);
4470 4 : parameter_mix_H[MET].push_back(3268.957245190869);
4471 4 : parameter_mix_H[MET].push_back(-2809.178864807947);
4472 4 : parameter_mix_H[MET].push_back(761.4832732100416);
4473 :
4474 4 : parameter_mix_H[ASN].push_back(828.7488001191887);
4475 4 : parameter_mix_H[ASN].push_back(-2.1275493073799625);
4476 4 : parameter_mix_H[ASN].push_back(-1222.248291388804);
4477 4 : parameter_mix_H[ASN].push_back(-238.94210659613537);
4478 4 : parameter_mix_H[ASN].push_back(1660.8322402171973);
4479 4 : parameter_mix_H[ASN].push_back(-1008.7934996077323);
4480 4 : parameter_mix_H[ASN].push_back(173.6082238625797);
4481 :
4482 4 : parameter_mix_H[PRO].push_back(578.4409801192146);
4483 4 : parameter_mix_H[PRO].push_back(-0.5379505780909722);
4484 4 : parameter_mix_H[PRO].push_back(-648.146493857212);
4485 4 : parameter_mix_H[PRO].push_back(-56.67223895342921);
4486 4 : parameter_mix_H[PRO].push_back(509.88860586987437);
4487 4 : parameter_mix_H[PRO].push_back(-214.57871784725265);
4488 4 : parameter_mix_H[PRO].push_back(11.99659463759968);
4489 :
4490 4 : parameter_mix_H[GLN].push_back(989.2334401191976);
4491 4 : parameter_mix_H[GLN].push_back(-6.307760694331967);
4492 4 : parameter_mix_H[GLN].push_back(-1971.7067150503622);
4493 4 : parameter_mix_H[GLN].push_back(-791.333088386235);
4494 4 : parameter_mix_H[GLN].push_back(4900.009768434847);
4495 4 : parameter_mix_H[GLN].push_back(-3909.7740976374153);
4496 4 : parameter_mix_H[GLN].push_back(975.4952613244343);
4497 :
4498 4 : parameter_mix_H[SER].push_back(426.39900011920196);
4499 4 : parameter_mix_H[SER].push_back(-0.42304498358319664);
4500 4 : parameter_mix_H[SER].push_back(-484.2066027682147);
4501 4 : parameter_mix_H[SER].push_back(-45.38968988754228);
4502 4 : parameter_mix_H[SER].push_back(401.3420977115044);
4503 4 : parameter_mix_H[SER].push_back(-178.0861461692512);
4504 4 : parameter_mix_H[SER].push_back(13.540349238730284);
4505 :
4506 4 : parameter_mix_H[THR].push_back(525.0470401191992);
4507 4 : parameter_mix_H[THR].push_back(-0.7419102811534484);
4508 4 : parameter_mix_H[THR].push_back(-652.7134808154495);
4509 4 : parameter_mix_H[THR].push_back(-80.39481224407903);
4510 4 : parameter_mix_H[THR].push_back(641.5487902728123);
4511 4 : parameter_mix_H[THR].push_back(-320.4227667104819);
4512 4 : parameter_mix_H[THR].push_back(36.03558531183942);
4513 :
4514 4 : parameter_mix_H[VAL].push_back(414.6228601192123);
4515 4 : parameter_mix_H[VAL].push_back(-0.35889335250521337);
4516 4 : parameter_mix_H[VAL].push_back(-453.11631644097474);
4517 4 : parameter_mix_H[VAL].push_back(-36.402101097644284);
4518 4 : parameter_mix_H[VAL].push_back(336.24049431626804);
4519 4 : parameter_mix_H[VAL].push_back(-127.42235327515239);
4520 4 : parameter_mix_H[VAL].push_back(0.8013280923923705);
4521 :
4522 4 : parameter_mix_H[ALA].push_back(285.21010011920816);
4523 4 : parameter_mix_H[ALA].push_back(-0.1573012439142169);
4524 4 : parameter_mix_H[ALA].push_back(-282.8945838800694);
4525 4 : parameter_mix_H[ALA].push_back(-16.32030056827785);
4526 4 : parameter_mix_H[ALA].push_back(178.065895049598);
4527 4 : parameter_mix_H[ALA].push_back(-60.27423229179658);
4528 4 : parameter_mix_H[ALA].push_back(-1.4695219304131588);
4529 :
4530 4 : parameter_mix_H[GLY].push_back(207.18720011920414);
4531 4 : parameter_mix_H[GLY].push_back(-0.1036587134183235);
4532 4 : parameter_mix_H[GLY].push_back(-185.70794948240638);
4533 4 : parameter_mix_H[GLY].push_back(-11.008101039836257);
4534 4 : parameter_mix_H[GLY].push_back(115.30600405624061);
4535 4 : parameter_mix_H[GLY].push_back(-42.46629718037158);
4536 4 : parameter_mix_H[GLY].push_back(0.9238928987070913);
4537 :
4538 4 : parameter_mix_H[HIS].push_back(1443.9117601192354);
4539 4 : parameter_mix_H[HIS].push_back(-7.478618745973115);
4540 4 : parameter_mix_H[HIS].push_back(-2715.0835155803215);
4541 4 : parameter_mix_H[HIS].push_back(-918.5243015382779);
4542 4 : parameter_mix_H[HIS].push_back(5821.6258431396);
4543 4 : parameter_mix_H[HIS].push_back(-4415.32722209556);
4544 4 : parameter_mix_H[HIS].push_back(1044.7044029209756);
4545 4 : parameter_vac_H[TRP].push_back(36.42122511920832);
4546 4 : parameter_vac_H[TRP].push_back(-0.36925500341767903);
4547 4 : parameter_vac_H[TRP].push_back(-51.34228792835503);
4548 4 : parameter_vac_H[TRP].push_back(-34.10021080004831);
4549 4 : parameter_vac_H[TRP].push_back(132.647034983933);
4550 4 : parameter_vac_H[TRP].push_back(-82.89152328934257);
4551 4 : parameter_vac_H[TRP].push_back(13.029994092013231);
4552 :
4553 4 : parameter_vac_H[TYR].push_back(22.268961119209557);
4554 4 : parameter_vac_H[TYR].push_back(-0.1995573892347673);
4555 4 : parameter_vac_H[TYR].push_back(-36.54202179838511);
4556 4 : parameter_vac_H[TYR].push_back(-23.820801043096694);
4557 4 : parameter_vac_H[TYR].push_back(127.46799692275353);
4558 4 : parameter_vac_H[TYR].push_back(-107.63783234245744);
4559 4 : parameter_vac_H[TYR].push_back(28.180858902960775);
4560 :
4561 4 : parameter_vac_H[PHE].push_back(17.131321119209627);
4562 4 : parameter_vac_H[PHE].push_back(-0.15766725674246446);
4563 4 : parameter_vac_H[PHE].push_back(-19.19964432024534);
4564 4 : parameter_vac_H[PHE].push_back(-12.34326882843138);
4565 4 : parameter_vac_H[PHE].push_back(38.17216645824474);
4566 4 : parameter_vac_H[PHE].push_back(-11.245288857407298);
4567 4 : parameter_vac_H[PHE].push_back(-3.8114731300899343);
4568 :
4569 4 : parameter_vac_H[HIP].push_back(19.34240411920875);
4570 4 : parameter_vac_H[HIP].push_back(-0.13533410292592593);
4571 4 : parameter_vac_H[HIP].push_back(-25.924121027387276);
4572 4 : parameter_vac_H[HIP].push_back(-12.36586927492752);
4573 4 : parameter_vac_H[HIP].push_back(56.75268702111191);
4574 4 : parameter_vac_H[HIP].push_back(-31.126240293638094);
4575 4 : parameter_vac_H[HIP].push_back(2.749811579250848);
4576 :
4577 4 : parameter_vac_H[ARG].push_back(12.027024119209557);
4578 4 : parameter_vac_H[ARG].push_back(-0.41927538341868287);
4579 4 : parameter_vac_H[ARG].push_back(-22.137566939867042);
4580 4 : parameter_vac_H[ARG].push_back(-43.22615008762667);
4581 4 : parameter_vac_H[ARG].push_back(165.77466655520323);
4582 4 : parameter_vac_H[ARG].push_back(-140.68664871425898);
4583 4 : parameter_vac_H[ARG].push_back(36.67401195170306);
4584 :
4585 4 : parameter_vac_H[LYS].push_back(2.5217441192093717);
4586 4 : parameter_vac_H[LYS].push_back(-0.0032825476242835413);
4587 4 : parameter_vac_H[LYS].push_back(14.019071697737793);
4588 4 : parameter_vac_H[LYS].push_back(7.8634074595069245);
4589 4 : parameter_vac_H[LYS].push_back(-82.44639716451474);
4590 4 : parameter_vac_H[LYS].push_back(94.32937851921197);
4591 4 : parameter_vac_H[LYS].push_back(-32.324473823417);
4592 :
4593 4 : parameter_vac_H[CYS].push_back(3.705624880856525);
4594 4 : parameter_vac_H[CYS].push_back(0.005214780840206113);
4595 4 : parameter_vac_H[CYS].push_back(1.25680902661715);
4596 4 : parameter_vac_H[CYS].push_back(0.5779209425501814);
4597 4 : parameter_vac_H[CYS].push_back(-3.716408071089366);
4598 4 : parameter_vac_H[CYS].push_back(2.3947518943233117);
4599 4 : parameter_vac_H[CYS].push_back(-0.40204949737133333);
4600 :
4601 4 : parameter_vac_H[ASP].push_back(14.776336119209605);
4602 4 : parameter_vac_H[ASP].push_back(-0.037351220316916435);
4603 4 : parameter_vac_H[ASP].push_back(-18.556358387626286);
4604 4 : parameter_vac_H[ASP].push_back(-4.1737354794552886);
4605 4 : parameter_vac_H[ASP].push_back(28.424721213037405);
4606 4 : parameter_vac_H[ASP].push_back(-17.51389895324883);
4607 4 : parameter_vac_H[ASP].push_back(2.9729111724708597);
4608 :
4609 4 : parameter_vac_H[GLU].push_back(14.145121119208973);
4610 4 : parameter_vac_H[GLU].push_back(-0.11468766098213011);
4611 4 : parameter_vac_H[GLU].push_back(-26.272637652294613);
4612 4 : parameter_vac_H[GLU].push_back(-13.769758826440151);
4613 4 : parameter_vac_H[GLU].push_back(80.4575683578491);
4614 4 : parameter_vac_H[GLU].push_back(-64.19346347075);
4615 4 : parameter_vac_H[GLU].push_back(15.545440117656236);
4616 :
4617 4 : parameter_vac_H[ILE].push_back(1.9488158808808775);
4618 4 : parameter_vac_H[ILE].push_back(0.05873132133874459);
4619 4 : parameter_vac_H[ILE].push_back(12.032778845884135);
4620 4 : parameter_vac_H[ILE].push_back(7.148416980612881);
4621 4 : parameter_vac_H[ILE].push_back(-41.87377843832961);
4622 4 : parameter_vac_H[ILE].push_back(33.96120749582283);
4623 4 : parameter_vac_H[ILE].push_back(-8.362535852631256);
4624 :
4625 4 : parameter_vac_H[LEU].push_back(1.9488158808977816);
4626 4 : parameter_vac_H[LEU].push_back(0.0778305500414777);
4627 4 : parameter_vac_H[LEU].push_back(12.333370614594);
4628 4 : parameter_vac_H[LEU].push_back(9.449427967560764);
4629 4 : parameter_vac_H[LEU].push_back(-52.65457680603262);
4630 4 : parameter_vac_H[LEU].push_back(44.681877289399615);
4631 4 : parameter_vac_H[LEU].push_back(-11.460498338671227);
4632 :
4633 4 : parameter_vac_H[MET].push_back(3.0940808808117652);
4634 4 : parameter_vac_H[MET].push_back(0.04903755678213222);
4635 4 : parameter_vac_H[MET].push_back(8.981927022922049);
4636 4 : parameter_vac_H[MET].push_back(8.654862771879014);
4637 4 : parameter_vac_H[MET].push_back(-57.09889409156816);
4638 4 : parameter_vac_H[MET].push_back(58.87704775164829);
4639 4 : parameter_vac_H[MET].push_back(-18.60431990258862);
4640 :
4641 4 : parameter_vac_H[ASN].push_back(11.943936119209074);
4642 4 : parameter_vac_H[ASN].push_back(-0.0005000836239497835);
4643 4 : parameter_vac_H[ASN].push_back(-9.581236453763157);
4644 4 : parameter_vac_H[ASN].push_back(0.16244025786232308);
4645 4 : parameter_vac_H[ASN].push_back(2.9276580099749574);
4646 4 : parameter_vac_H[ASN].push_back(2.133535783835143);
4647 4 : parameter_vac_H[ASN].push_back(-1.5709968820975018);
4648 :
4649 4 : parameter_vac_H[PRO].push_back(4.9595288808229245);
4650 4 : parameter_vac_H[PRO].push_back(0.017853932680793515);
4651 4 : parameter_vac_H[PRO].push_back(4.5421559293101605);
4652 4 : parameter_vac_H[PRO].push_back(2.008455612787203);
4653 4 : parameter_vac_H[PRO].push_back(-12.444117841318494);
4654 4 : parameter_vac_H[PRO].push_back(8.511723688836447);
4655 4 : parameter_vac_H[PRO].push_back(-1.6337543903496765);
4656 :
4657 4 : parameter_vac_H[GLN].push_back(11.377129119208574);
4658 4 : parameter_vac_H[GLN].push_back(-0.0674805307761209);
4659 4 : parameter_vac_H[GLN].push_back(-16.56692720411458);
4660 4 : parameter_vac_H[GLN].push_back(-6.477707440126834);
4661 4 : parameter_vac_H[GLN].push_back(34.78232259512621);
4662 4 : parameter_vac_H[GLN].push_back(-19.450886909938312);
4663 4 : parameter_vac_H[GLN].push_back(1.944286925108988);
4664 :
4665 4 : parameter_vac_H[SER].push_back(4.95062488096605);
4666 4 : parameter_vac_H[SER].push_back(0.004676435440506079);
4667 4 : parameter_vac_H[SER].push_back(-0.1896653085608564);
4668 4 : parameter_vac_H[SER].push_back(0.5142284931977218);
4669 4 : parameter_vac_H[SER].push_back(-2.8946087252759893);
4670 4 : parameter_vac_H[SER].push_back(2.1031239401634836);
4671 4 : parameter_vac_H[SER].push_back(-0.38226443516361713);
4672 :
4673 4 : parameter_vac_H[THR].push_back(4.588163880808971);
4674 4 : parameter_vac_H[THR].push_back(0.018587905993982613);
4675 4 : parameter_vac_H[THR].push_back(3.5289861308270214);
4676 4 : parameter_vac_H[THR].push_back(2.0780583604591567);
4677 4 : parameter_vac_H[THR].push_back(-12.3802007068414);
4678 4 : parameter_vac_H[THR].push_back(8.720986674116094);
4679 4 : parameter_vac_H[THR].push_back(-1.683256475122275);
4680 :
4681 4 : parameter_vac_H[VAL].push_back(2.187440880853519);
4682 4 : parameter_vac_H[VAL].push_back(0.028351524826584255);
4683 4 : parameter_vac_H[VAL].push_back(8.36584512491955);
4684 4 : parameter_vac_H[VAL].push_back(3.1686206615123926);
4685 4 : parameter_vac_H[VAL].push_back(-19.81959917770108);
4686 4 : parameter_vac_H[VAL].push_back(13.293003038570571);
4687 4 : parameter_vac_H[VAL].push_back(-2.4595257726774125);
4688 :
4689 4 : parameter_vac_H[ALA].push_back(2.7060248808167935);
4690 4 : parameter_vac_H[ALA].push_back(0.004618897267213416);
4691 4 : parameter_vac_H[ALA].push_back(2.4990261487383947);
4692 4 : parameter_vac_H[ALA].push_back(0.49579332664340864);
4693 4 : parameter_vac_H[ALA].push_back(-3.850400071630347);
4694 4 : parameter_vac_H[ALA].push_back(1.9501161562030942);
4695 4 : parameter_vac_H[ALA].push_back(-0.18332582719788362);
4696 :
4697 4 : parameter_vac_H[GLY].push_back(2.985983880876256);
4698 4 : parameter_vac_H[GLY].push_back(0.0005033131808079042);
4699 4 : parameter_vac_H[GLY].push_back(-0.42250170279962684);
4700 4 : parameter_vac_H[GLY].push_back(0.05620517453257455);
4701 4 : parameter_vac_H[GLY].push_back(-0.16801962822020733);
4702 4 : parameter_vac_H[GLY].push_back(0.23635459648780555);
4703 4 : parameter_vac_H[GLY].push_back(-0.06585244715658795);
4704 :
4705 4 : parameter_vac_H[HIS].push_back(22.77198411920933);
4706 4 : parameter_vac_H[HIS].push_back(-0.06607491006655417);
4707 4 : parameter_vac_H[HIS].push_back(-27.277710268717247);
4708 4 : parameter_vac_H[HIS].push_back(-5.674444390934355);
4709 4 : parameter_vac_H[HIS].push_back(33.4059567406171);
4710 4 : parameter_vac_H[HIS].push_back(-11.60826210271092);
4711 4 : parameter_vac_H[HIS].push_back(-1.7359607560773076);
4712 :
4713 : // NUCLEIC ACIDS
4714 :
4715 : // BB_PO2 H and D parameters are identical as there is no H or D in the bead.
4716 4 : parameter_solv_H[BB_PO2].push_back(575.5201001192197);
4717 4 : parameter_solv_H[BB_PO2].push_back(-0.6126595489733864);
4718 4 : parameter_solv_H[BB_PO2].push_back(-623.3371092254899);
4719 4 : parameter_solv_H[BB_PO2].push_back(-68.05795957022144);
4720 4 : parameter_solv_H[BB_PO2].push_back(561.8052621243661);
4721 4 : parameter_solv_H[BB_PO2].push_back(-283.39573309540276);
4722 4 : parameter_solv_H[BB_PO2].push_back(35.550016980100295);
4723 :
4724 4 : parameter_solv_H[BB_DNA].push_back(21211.009600118316);
4725 4 : parameter_solv_H[BB_DNA].push_back(-90.18805990529991);
4726 4 : parameter_solv_H[BB_DNA].push_back(-39731.13373512149);
4727 4 : parameter_solv_H[BB_DNA].push_back(-10920.373563712872);
4728 4 : parameter_solv_H[BB_DNA].push_back(72882.21702424981);
4729 4 : parameter_solv_H[BB_DNA].push_back(-51747.487078112776);
4730 4 : parameter_solv_H[BB_DNA].push_back(11308.678429018755);
4731 :
4732 4 : parameter_solv_H[BB_DNA_5].push_back(22737.624100119025);
4733 4 : parameter_solv_H[BB_DNA_5].push_back(-102.72714886664161);
4734 4 : parameter_solv_H[BB_DNA_5].push_back(-43685.329677789734);
4735 4 : parameter_solv_H[BB_DNA_5].push_back(-12564.25937409345);
4736 4 : parameter_solv_H[BB_DNA_5].push_back(83454.87540484878);
4737 4 : parameter_solv_H[BB_DNA_5].push_back(-60367.15652138887);
4738 4 : parameter_solv_H[BB_DNA_5].push_back(13507.333729868991);
4739 :
4740 4 : parameter_solv_H[BB_DNA_3].push_back(22737.62410011902);
4741 4 : parameter_solv_H[BB_DNA_3].push_back(-101.57816684452251);
4742 4 : parameter_solv_H[BB_DNA_3].push_back(-43488.536705576145);
4743 4 : parameter_solv_H[BB_DNA_3].push_back(-12345.056184958425);
4744 4 : parameter_solv_H[BB_DNA_3].push_back(81963.52364114887);
4745 4 : parameter_solv_H[BB_DNA_3].push_back(-58791.59443618196);
4746 4 : parameter_solv_H[BB_DNA_3].push_back(13003.199362335583);
4747 :
4748 4 : parameter_solv_H[BB_RNA].push_back(23953.752900120977);
4749 4 : parameter_solv_H[BB_RNA].push_back(-117.35779348824417);
4750 4 : parameter_solv_H[BB_RNA].push_back(-47644.41735332843);
4751 4 : parameter_solv_H[BB_RNA].push_back(-14641.556643789861);
4752 4 : parameter_solv_H[BB_RNA].push_back(96893.48627050371);
4753 4 : parameter_solv_H[BB_RNA].push_back(-72249.62534169303);
4754 4 : parameter_solv_H[BB_RNA].push_back(16792.055521055358);
4755 :
4756 4 : parameter_solv_H[BB_RNA_5].push_back(25574.406400119024);
4757 4 : parameter_solv_H[BB_RNA_5].push_back(-131.99642772933734);
4758 4 : parameter_solv_H[BB_RNA_5].push_back(-52136.51404531251);
4759 4 : parameter_solv_H[BB_RNA_5].push_back(-16682.14273917604);
4760 4 : parameter_solv_H[BB_RNA_5].push_back(110278.01921639398);
4761 4 : parameter_solv_H[BB_RNA_5].push_back(-83715.92027818544);
4762 4 : parameter_solv_H[BB_RNA_5].push_back(19875.89133770605);
4763 :
4764 4 : parameter_solv_H[BB_RNA_3].push_back(25574.406400119027);
4765 4 : parameter_solv_H[BB_RNA_3].push_back(-127.96875237036166);
4766 4 : parameter_solv_H[BB_RNA_3].push_back(-51407.18391758439);
4767 4 : parameter_solv_H[BB_RNA_3].push_back(-15922.900669975606);
4768 4 : parameter_solv_H[BB_RNA_3].push_back(105078.5888910626);
4769 4 : parameter_solv_H[BB_RNA_3].push_back(-78289.16276190645);
4770 4 : parameter_solv_H[BB_RNA_3].push_back(18156.832143441192);
4771 :
4772 4 : parameter_solv_H[BASE_A].push_back(13282.562500119211);
4773 4 : parameter_solv_H[BASE_A].push_back(-76.45124168404048);
4774 4 : parameter_solv_H[BASE_A].push_back(-28376.06994108963);
4775 4 : parameter_solv_H[BASE_A].push_back(-9972.910773722022);
4776 4 : parameter_solv_H[BASE_A].push_back(65873.86341939073);
4777 4 : parameter_solv_H[BASE_A].push_back(-52064.33492910885);
4778 4 : parameter_solv_H[BASE_A].push_back(12931.608989412513);
4779 :
4780 4 : parameter_solv_H[BASE_C].push_back(10600.76160011891);
4781 4 : parameter_solv_H[BASE_C].push_back(-49.1670871249108);
4782 4 : parameter_solv_H[BASE_C].push_back(-20239.818742072875);
4783 4 : parameter_solv_H[BASE_C].push_back(-6020.278780090207);
4784 4 : parameter_solv_H[BASE_C].push_back(39632.13288981881);
4785 4 : parameter_solv_H[BASE_C].push_back(-28954.779736165576);
4786 4 : parameter_solv_H[BASE_C].push_back(6551.541109526305);
4787 :
4788 4 : parameter_solv_H[BASE_G].push_back(15470.384400119934);
4789 4 : parameter_solv_H[BASE_G].push_back(-93.8013620200972);
4790 4 : parameter_solv_H[BASE_G].push_back(-36188.29687013545);
4791 4 : parameter_solv_H[BASE_G].push_back(-13717.685098209471);
4792 4 : parameter_solv_H[BASE_G].push_back(95658.18473657136);
4793 4 : parameter_solv_H[BASE_G].push_back(-81262.37811451119);
4794 4 : parameter_solv_H[BASE_G].push_back(21841.903930943085);
4795 :
4796 4 : parameter_solv_H[BASE_T].push_back(17210.81610011936);
4797 4 : parameter_solv_H[BASE_T].push_back(-93.10189802920208);
4798 4 : parameter_solv_H[BASE_T].push_back(-36466.51927689957);
4799 4 : parameter_solv_H[BASE_T].push_back(-12425.55615716932);
4800 4 : parameter_solv_H[BASE_T].push_back(83847.427808925);
4801 4 : parameter_solv_H[BASE_T].push_back(-66735.64997846584);
4802 4 : parameter_solv_H[BASE_T].push_back(16757.3463987507);
4803 :
4804 4 : parameter_solv_H[BASE_U].push_back(10909.802500119395);
4805 4 : parameter_solv_H[BASE_U].push_back(-46.17712672768298);
4806 4 : parameter_solv_H[BASE_U].push_back(-20149.67695512526);
4807 4 : parameter_solv_H[BASE_U].push_back(-5590.242961204435);
4808 4 : parameter_solv_H[BASE_U].push_back(37169.2740983132);
4809 4 : parameter_solv_H[BASE_U].push_back(-26475.631627167604);
4810 4 : parameter_solv_H[BASE_U].push_back(5808.201015156168);
4811 :
4812 4 : parameter_mix_H[BB_PO2].push_back(80.12660011920252);
4813 4 : parameter_mix_H[BB_PO2].push_back(-0.0278885551982023);
4814 4 : parameter_mix_H[BB_PO2].push_back(-60.532194918222984);
4815 4 : parameter_mix_H[BB_PO2].push_back(-2.976882903409687);
4816 4 : parameter_mix_H[BB_PO2].push_back(33.30645116638125);
4817 4 : parameter_mix_H[BB_PO2].push_back(-11.601573219761374);
4818 4 : parameter_mix_H[BB_PO2].push_back(0.12551046492022422);
4819 :
4820 4 : parameter_mix_H[BB_DNA].push_back(712.7621601191935);
4821 4 : parameter_mix_H[BB_DNA].push_back(-0.3228709821198571);
4822 4 : parameter_mix_H[BB_DNA].push_back(-784.5118228559945);
4823 4 : parameter_mix_H[BB_DNA].push_back(-27.196125702249613);
4824 4 : parameter_mix_H[BB_DNA].push_back(410.0185035102729);
4825 4 : parameter_mix_H[BB_DNA].push_back(-54.453513369320355);
4826 4 : parameter_mix_H[BB_DNA].push_back(-44.85506789237683);
4827 :
4828 4 : parameter_mix_H[BB_DNA_5].push_back(625.175339965785);
4829 4 : parameter_mix_H[BB_DNA_5].push_back(0.2691706617748245);
4830 4 : parameter_mix_H[BB_DNA_5].push_back(-582.8721350420001);
4831 4 : parameter_mix_H[BB_DNA_5].push_back(46.512408351374326);
4832 4 : parameter_mix_H[BB_DNA_5].push_back(-58.93886949899108);
4833 4 : parameter_mix_H[BB_DNA_5].push_back(307.29720336085046);
4834 4 : parameter_mix_H[BB_DNA_5].push_back(-131.71996309259953);
4835 :
4836 4 : parameter_mix_H[BB_DNA_3].push_back(625.1753399401266);
4837 4 : parameter_mix_H[BB_DNA_3].push_back(0.08763234414546289);
4838 4 : parameter_mix_H[BB_DNA_3].push_back(-606.8067575087485);
4839 4 : parameter_mix_H[BB_DNA_3].push_back(20.84427254872218);
4840 4 : parameter_mix_H[BB_DNA_3].push_back(92.53523123608991);
4841 4 : parameter_mix_H[BB_DNA_3].push_back(162.04688035654937);
4842 4 : parameter_mix_H[BB_DNA_3].push_back(-89.13571774638052);
4843 :
4844 4 : parameter_mix_H[BB_RNA].push_back(936.9775801191857);
4845 4 : parameter_mix_H[BB_RNA].push_back(-1.3233686929680253);
4846 4 : parameter_mix_H[BB_RNA].push_back(-1212.1627155263773);
4847 4 : parameter_mix_H[BB_RNA].push_back(-141.35324744384351);
4848 4 : parameter_mix_H[BB_RNA].push_back(1155.8281658363026);
4849 4 : parameter_mix_H[BB_RNA].push_back(-548.9340055857343);
4850 4 : parameter_mix_H[BB_RNA].push_back(50.81734777881503);
4851 :
4852 4 : parameter_mix_H[BB_RNA_5].push_back(848.5355201165631);
4853 4 : parameter_mix_H[BB_RNA_5].push_back(-0.49570338490120175);
4854 4 : parameter_mix_H[BB_RNA_5].push_back(-976.1033073783973);
4855 4 : parameter_mix_H[BB_RNA_5].push_back(-32.943532187986605);
4856 4 : parameter_mix_H[BB_RNA_5].push_back(475.66177061923884);
4857 4 : parameter_mix_H[BB_RNA_5].push_back(17.51955845824258);
4858 4 : parameter_mix_H[BB_RNA_5].push_back(-96.74451972314769);
4859 :
4860 4 : parameter_mix_H[BB_RNA_3].push_back(848.5355201192122);
4861 4 : parameter_mix_H[BB_RNA_3].push_back(-0.8301109354355396);
4862 4 : parameter_mix_H[BB_RNA_3].push_back(-1019.9524389785406);
4863 4 : parameter_mix_H[BB_RNA_3].push_back(-84.1388451424885);
4864 4 : parameter_mix_H[BB_RNA_3].push_back(787.1277245040931);
4865 4 : parameter_mix_H[BB_RNA_3].push_back(-294.67807432795627);
4866 4 : parameter_mix_H[BB_RNA_3].push_back(-1.3214626461251089);
4867 :
4868 4 : parameter_mix_H[BASE_A].push_back(1504.9345001191857);
4869 4 : parameter_mix_H[BASE_A].push_back(-3.5306888452552663);
4870 4 : parameter_mix_H[BASE_A].push_back(-2234.3933572775572);
4871 4 : parameter_mix_H[BASE_A].push_back(-380.0255208494757);
4872 4 : parameter_mix_H[BASE_A].push_back(2726.27802432048);
4873 4 : parameter_mix_H[BASE_A].push_back(-1490.8825754968443);
4874 4 : parameter_mix_H[BASE_A].push_back(199.7501110740159);
4875 :
4876 4 : parameter_mix_H[BASE_C].push_back(939.8188801192172);
4877 4 : parameter_mix_H[BASE_C].push_back(-1.489638186262854);
4878 4 : parameter_mix_H[BASE_C].push_back(-1244.5515798554075);
4879 4 : parameter_mix_H[BASE_C].push_back(-161.3972705672055);
4880 4 : parameter_mix_H[BASE_C].push_back(1276.3568466722545);
4881 4 : parameter_mix_H[BASE_C].push_back(-643.3057776225742);
4882 4 : parameter_mix_H[BASE_C].push_back(72.75963113826273);
4883 :
4884 4 : parameter_mix_H[BASE_G].push_back(1768.434840119199);
4885 4 : parameter_mix_H[BASE_G].push_back(-6.505347007077434);
4886 4 : parameter_mix_H[BASE_G].push_back(-2919.3856777898427);
4887 4 : parameter_mix_H[BASE_G].push_back(-701.2456464463938);
4888 4 : parameter_mix_H[BASE_G].push_back(4464.594230284102);
4889 4 : parameter_mix_H[BASE_G].push_back(-2733.138521295608);
4890 4 : parameter_mix_H[BASE_G].push_back(458.1177706235891);
4891 :
4892 4 : parameter_mix_H[BASE_T].push_back(1179.3981001192033);
4893 4 : parameter_mix_H[BASE_T].push_back(-3.2037849252756527);
4894 4 : parameter_mix_H[BASE_T].push_back(-1821.255498763799);
4895 4 : parameter_mix_H[BASE_T].push_back(-371.01993266441303);
4896 4 : parameter_mix_H[BASE_T].push_back(2604.074226688971);
4897 4 : parameter_mix_H[BASE_T].push_back(-1648.1965787713084);
4898 4 : parameter_mix_H[BASE_T].push_back(307.2962186436368);
4899 :
4900 4 : parameter_mix_H[BASE_U].push_back(956.3442001192266);
4901 4 : parameter_mix_H[BASE_U].push_back(-1.724458000760567);
4902 4 : parameter_mix_H[BASE_U].push_back(-1287.9746970192687);
4903 4 : parameter_mix_H[BASE_U].push_back(-192.74748379510373);
4904 4 : parameter_mix_H[BASE_U].push_back(1459.0789258833893);
4905 4 : parameter_mix_H[BASE_U].push_back(-810.0763075080915);
4906 4 : parameter_mix_H[BASE_U].push_back(119.81810290248339);
4907 :
4908 4 : parameter_vac_H[BB_PO2].push_back(2.7889001116093275);
4909 4 : parameter_vac_H[BB_PO2].push_back(-0.00011178884266113128);
4910 4 : parameter_vac_H[BB_PO2].push_back(-1.1702605818380667);
4911 4 : parameter_vac_H[BB_PO2].push_back(-0.011278044036819933);
4912 4 : parameter_vac_H[BB_PO2].push_back(0.3214006584089025);
4913 4 : parameter_vac_H[BB_PO2].push_back(-0.04097165983591666);
4914 4 : parameter_vac_H[BB_PO2].push_back(-0.017525098100539722);
4915 :
4916 4 : parameter_vac_H[BB_DNA].push_back(5.987809026456476);
4917 4 : parameter_vac_H[BB_DNA].push_back(9.945454528827912e-05);
4918 4 : parameter_vac_H[BB_DNA].push_back(-1.1884708569330031);
4919 4 : parameter_vac_H[BB_DNA].push_back(-0.007457733256362841);
4920 4 : parameter_vac_H[BB_DNA].push_back(0.05666858781418339);
4921 4 : parameter_vac_H[BB_DNA].push_back(-0.15158797629971757);
4922 4 : parameter_vac_H[BB_DNA].push_back(0.11642340861329734);
4923 :
4924 4 : parameter_vac_H[BB_DNA_5].push_back(4.297328944539055);
4925 4 : parameter_vac_H[BB_DNA_5].push_back(0.0014793971885106831);
4926 4 : parameter_vac_H[BB_DNA_5].push_back(1.3961088365255605);
4927 4 : parameter_vac_H[BB_DNA_5].push_back(0.08974639858979384);
4928 4 : parameter_vac_H[BB_DNA_5].push_back(-1.5198099705167643);
4929 4 : parameter_vac_H[BB_DNA_5].push_back(-0.12127122359433733);
4930 4 : parameter_vac_H[BB_DNA_5].push_back(0.4134601046223601);
4931 :
4932 4 : parameter_vac_H[BB_DNA_3].push_back(4.297328886488132);
4933 4 : parameter_vac_H[BB_DNA_3].push_back(0.0041802954281271905);
4934 4 : parameter_vac_H[BB_DNA_3].push_back(1.6065462295705266);
4935 4 : parameter_vac_H[BB_DNA_3].push_back(0.4399805535688805);
4936 4 : parameter_vac_H[BB_DNA_3].push_back(-3.3806711791929804);
4937 4 : parameter_vac_H[BB_DNA_3].push_back(1.6729551563628675);
4938 4 : parameter_vac_H[BB_DNA_3].push_back(-0.10911063067909885);
4939 :
4940 4 : parameter_vac_H[BB_RNA].push_back(9.162728984394093);
4941 4 : parameter_vac_H[BB_RNA].push_back(0.00019952321584579868);
4942 4 : parameter_vac_H[BB_RNA].push_back(-4.744748946331966);
4943 4 : parameter_vac_H[BB_RNA].push_back(0.025106563403946364);
4944 4 : parameter_vac_H[BB_RNA].push_back(1.2302956694109803);
4945 4 : parameter_vac_H[BB_RNA].push_back(0.12359062278096915);
4946 4 : parameter_vac_H[BB_RNA].push_back(-0.1725633367685285);
4947 :
4948 4 : parameter_vac_H[BB_RNA_5].push_back(7.038408898671503);
4949 4 : parameter_vac_H[BB_RNA_5].push_back(0.005106788424920148);
4950 4 : parameter_vac_H[BB_RNA_5].push_back(-0.8981588221803118);
4951 4 : parameter_vac_H[BB_RNA_5].push_back(0.4922588155214312);
4952 4 : parameter_vac_H[BB_RNA_5].push_back(-2.6667853454023644);
4953 4 : parameter_vac_H[BB_RNA_5].push_back(1.533316567240718);
4954 4 : parameter_vac_H[BB_RNA_5].push_back(-0.07199604869737707);
4955 :
4956 4 : parameter_vac_H[BB_RNA_3].push_back(7.038408892621863);
4957 4 : parameter_vac_H[BB_RNA_3].push_back(0.002993083907266898);
4958 4 : parameter_vac_H[BB_RNA_3].push_back(-1.3626596831098492);
4959 4 : parameter_vac_H[BB_RNA_3].push_back(0.3138856961130113);
4960 4 : parameter_vac_H[BB_RNA_3].push_back(-1.684185014289391);
4961 4 : parameter_vac_H[BB_RNA_3].push_back(1.1862168720864616);
4962 4 : parameter_vac_H[BB_RNA_3].push_back(-0.1443894172417523);
4963 :
4964 4 : parameter_vac_H[BASE_A].push_back(42.62784088079008);
4965 4 : parameter_vac_H[BASE_A].push_back(0.02302908536431516);
4966 4 : parameter_vac_H[BASE_A].push_back(-33.22707177297222);
4967 4 : parameter_vac_H[BASE_A].push_back(2.6853748424439834);
4968 4 : parameter_vac_H[BASE_A].push_back(-1.6632902891624768);
4969 4 : parameter_vac_H[BASE_A].push_back(11.905766349515268);
4970 4 : parameter_vac_H[BASE_A].push_back(-4.547083454788805);
4971 :
4972 4 : parameter_vac_H[BASE_C].push_back(20.83009588079022);
4973 4 : parameter_vac_H[BASE_C].push_back(0.017055822321768378);
4974 4 : parameter_vac_H[BASE_C].push_back(-8.349634734370916);
4975 4 : parameter_vac_H[BASE_C].push_back(1.9324634367723073);
4976 4 : parameter_vac_H[BASE_C].push_back(-8.435199734060882);
4977 4 : parameter_vac_H[BASE_C].push_back(8.272798368731268);
4978 4 : parameter_vac_H[BASE_C].push_back(-1.986671440757263);
4979 :
4980 4 : parameter_vac_H[BASE_G].push_back(50.53788088079374);
4981 4 : parameter_vac_H[BASE_G].push_back(0.024035597617780367);
4982 4 : parameter_vac_H[BASE_G].push_back(-47.94916639302998);
4983 4 : parameter_vac_H[BASE_G].push_back(3.143375731466498);
4984 4 : parameter_vac_H[BASE_G].push_back(4.297009866708155);
4985 4 : parameter_vac_H[BASE_G].push_back(15.855448505050578);
4986 4 : parameter_vac_H[BASE_G].push_back(-7.827484135873966);
4987 :
4988 4 : parameter_vac_H[BASE_T].push_back(20.20502488079069);
4989 4 : parameter_vac_H[BASE_T].push_back(0.033659966153300002);
4990 4 : parameter_vac_H[BASE_T].push_back(-6.057999187718758);
4991 4 : parameter_vac_H[BASE_T].push_back(4.146969282504351);
4992 4 : parameter_vac_H[BASE_T].push_back(-20.664315319574357);
4993 4 : parameter_vac_H[BASE_T].push_back(19.982178623201648);
4994 4 : parameter_vac_H[BASE_T].push_back(-5.440921587349456);
4995 :
4996 4 : parameter_vac_H[BASE_U].push_back(20.958084119209754);
4997 4 : parameter_vac_H[BASE_U].push_back(-0.005164660707148803);
4998 4 : parameter_vac_H[BASE_U].push_back(-14.53831312442302);
4999 4 : parameter_vac_H[BASE_U].push_back(-0.5276995756310442);
5000 4 : parameter_vac_H[BASE_U].push_back(7.060900707522138);
5001 4 : parameter_vac_H[BASE_U].push_back(-1.8988408480951036);
5002 4 : parameter_vac_H[BASE_U].push_back(-0.215000567681094);
5003 :
5004 14298 : for(unsigned i=0; i<atoms.size(); ++i) {
5005 14294 : std::string Aname = pdb.getAtomName(atoms[i]);
5006 14294 : std::string Rname = pdb.getResidueName(atoms[i]);
5007 14294 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
5008 14294 : if(Rname=="ALA") {
5009 732 : atoi[residue_atom[i]]=ALA;
5010 13562 : } else if(Rname=="ARG") {
5011 864 : atoi[residue_atom[i]]=ARG;
5012 12698 : } else if(Rname=="ASN") {
5013 720 : atoi[residue_atom[i]]=ASN;
5014 11978 : } else if(Rname=="ASP") {
5015 624 : atoi[residue_atom[i]]=ASP;
5016 11354 : } else if(Rname=="CYS") {
5017 48 : atoi[residue_atom[i]]=CYS;
5018 11306 : } else if(Rname=="GLN") {
5019 1064 : atoi[residue_atom[i]]=GLN;
5020 10242 : } else if(Rname=="GLU") {
5021 476 : atoi[residue_atom[i]]=GLU;
5022 9766 : } else if(Rname=="GLY") {
5023 648 : atoi[residue_atom[i]]=GLY;
5024 9118 : } else if(Rname=="HIS") {
5025 0 : atoi[residue_atom[i]]=HIS;
5026 9118 : } else if(Rname=="HID") {
5027 0 : atoi[residue_atom[i]]=HIS;
5028 9118 : } else if(Rname=="HIE") {
5029 144 : atoi[residue_atom[i]]=HIS;
5030 8974 : } else if(Rname=="HIP") {
5031 0 : atoi[residue_atom[i]]=HIP;
5032 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
5033 8974 : } else if(Rname=="HSD") {
5034 0 : atoi[residue_atom[i]]=HIS;
5035 8974 : } else if(Rname=="HSE") {
5036 0 : atoi[residue_atom[i]]=HIS;
5037 8974 : } else if(Rname=="HSP") {
5038 0 : atoi[residue_atom[i]]=HIP;
5039 8974 : } else if(Rname=="ILE") {
5040 864 : atoi[residue_atom[i]]=ILE;
5041 8110 : } else if(Rname=="LEU") {
5042 1520 : atoi[residue_atom[i]]=LEU;
5043 6590 : } else if(Rname=="LYS") {
5044 1040 : atoi[residue_atom[i]]=LYS;
5045 5550 : } else if(Rname=="MET") {
5046 608 : atoi[residue_atom[i]]=MET;
5047 4942 : } else if(Rname=="PHE") {
5048 1008 : atoi[residue_atom[i]]=PHE;
5049 3934 : } else if(Rname=="PRO") {
5050 748 : atoi[residue_atom[i]]=PRO;
5051 3186 : } else if(Rname=="SER") {
5052 528 : atoi[residue_atom[i]]=SER;
5053 2658 : } else if(Rname=="THR") {
5054 504 : atoi[residue_atom[i]]=THR;
5055 2154 : } else if(Rname=="TRP") {
5056 0 : atoi[residue_atom[i]]=TRP;
5057 2154 : } else if(Rname=="TYR") {
5058 528 : atoi[residue_atom[i]]=TYR;
5059 1626 : } else if(Rname=="VAL") {
5060 1088 : atoi[residue_atom[i]]=VAL;
5061 : }
5062 : // NUCLEIC ACIDS
5063 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
5064 : // RNA - G
5065 538 : else if(Rname=="G") {
5066 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5067 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5068 0 : atoi [residue_atom[i]]=BB_PO2;
5069 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5070 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5071 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5072 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5073 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5074 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5075 0 : atoi[residue_atom[i]]=BB_RNA;
5076 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5077 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5078 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5079 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5080 0 : atoi[residue_atom[i]]=BASE_G;
5081 : } else {
5082 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5083 : }
5084 : // RNA - G3
5085 538 : } else if(Rname=="G3") {
5086 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5087 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5088 0 : atoi [residue_atom[i]]=BB_PO2;
5089 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5090 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5091 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5092 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5093 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5094 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5095 0 : atoi[residue_atom[i]]=BB_RNA_3;
5096 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5097 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5098 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5099 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5100 0 : atoi[residue_atom[i]]=BASE_G;
5101 : } else {
5102 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5103 : }
5104 : // RNA - G5
5105 538 : } else if(Rname=="G5") {
5106 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5107 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5108 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5109 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5110 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5111 0 : Aname=="H2'1" || Aname=="H5T" ) {
5112 0 : atoi[residue_atom[i]]=BB_RNA_5;
5113 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5114 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5115 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5116 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5117 0 : atoi[residue_atom[i]]=BASE_G;
5118 : } else {
5119 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5120 : }
5121 : // RNA - U
5122 538 : } else if(Rname=="U") {
5123 1554 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5124 1176 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5125 42 : atoi [residue_atom[i]]=BB_PO2;
5126 1372 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5127 1148 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5128 924 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5129 714 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5130 644 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5131 840 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5132 224 : atoi[residue_atom[i]]=BB_RNA;
5133 476 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5134 252 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5135 196 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5136 154 : atoi[residue_atom[i]]=BASE_U;
5137 : } else {
5138 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5139 : }
5140 : // RNA - U3
5141 118 : } else if(Rname=="U3") {
5142 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5143 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5144 6 : atoi [residue_atom[i]]=BB_PO2;
5145 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5146 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5147 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5148 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5149 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5150 78 : Aname=="H5'2" || Aname=="HO'2" ) {
5151 34 : atoi[residue_atom[i]]=BB_RNA_3;
5152 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5153 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5154 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5155 22 : atoi[residue_atom[i]]=BASE_U;
5156 : } else {
5157 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5158 : }
5159 : // RNA - U5
5160 56 : } else if(Rname=="U5") {
5161 204 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5162 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5163 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5164 108 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5165 88 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5166 78 : Aname=="H2'1" || Aname=="H5T" ) {
5167 34 : atoi[residue_atom[i]]=BB_RNA_5;
5168 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5169 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5170 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
5171 22 : atoi[residue_atom[i]]=BASE_U;
5172 : } else {
5173 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5174 : }
5175 : // RNA - A
5176 0 : } else if(Rname=="A") {
5177 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5178 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5179 0 : atoi [residue_atom[i]]=BB_PO2;
5180 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5181 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5182 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5183 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5184 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5185 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5186 0 : atoi[residue_atom[i]]=BB_RNA;
5187 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5188 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5189 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5190 0 : Aname=="H61" || Aname=="H62" ) {
5191 0 : atoi[residue_atom[i]]=BASE_A;
5192 : } else {
5193 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5194 : }
5195 : // RNA - A3
5196 0 : } else if(Rname=="A3") {
5197 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5198 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5199 0 : atoi [residue_atom[i]]=BB_PO2;
5200 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5201 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5202 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5203 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5204 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5205 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5206 0 : atoi[residue_atom[i]]=BB_RNA_3;
5207 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5208 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5209 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5210 0 : Aname=="H61" || Aname=="H62" ) {
5211 0 : atoi[residue_atom[i]]=BASE_A;
5212 : } else {
5213 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5214 : }
5215 : // RNA - A5
5216 0 : } else if(Rname=="A5") {
5217 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5218 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5219 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5220 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5221 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5222 0 : Aname=="H2'1" || Aname=="H5T" ) {
5223 0 : atoi[residue_atom[i]]=BB_RNA_5;
5224 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5225 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5226 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5227 0 : Aname=="H61" || Aname=="H62" ) {
5228 0 : atoi[residue_atom[i]]=BASE_A;
5229 : } else {
5230 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5231 : }
5232 : // RNA - C
5233 0 : } else if(Rname=="C") {
5234 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5235 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5236 0 : atoi [residue_atom[i]]=BB_PO2;
5237 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5238 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5239 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5240 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5241 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
5242 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
5243 0 : atoi[residue_atom[i]]=BB_RNA;
5244 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5245 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5246 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5247 0 : atoi[residue_atom[i]]=BASE_C;
5248 : } else {
5249 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5250 : }
5251 : // RNA - C3
5252 0 : } else if(Rname=="C3") {
5253 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5254 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5255 0 : atoi [residue_atom[i]]=BB_PO2;
5256 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5257 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5258 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5259 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
5260 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
5261 0 : Aname=="H5'2" || Aname=="HO'2" ) {
5262 0 : atoi[residue_atom[i]]=BB_RNA_3;
5263 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5264 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5265 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5266 0 : atoi[residue_atom[i]]=BASE_C;
5267 : } else {
5268 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5269 : }
5270 : // RNA - C5
5271 0 : } else if(Rname=="C5") {
5272 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5273 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
5274 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
5275 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
5276 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
5277 0 : Aname=="H2'1" || Aname=="H5T" ) {
5278 0 : atoi[residue_atom[i]]=BB_RNA_5;
5279 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5280 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5281 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5282 0 : atoi[residue_atom[i]]=BASE_C;
5283 : } else {
5284 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5285 : }
5286 : // DNA - G
5287 0 : } else if(Rname=="DG") {
5288 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5289 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5290 0 : atoi [residue_atom[i]]=BB_PO2;
5291 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5292 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5293 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5294 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5295 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5296 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5297 0 : atoi[residue_atom[i]]=BB_DNA;
5298 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5299 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5300 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5301 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5302 0 : atoi[residue_atom[i]]=BASE_G;
5303 : } else {
5304 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5305 : }
5306 : // DNA - G3
5307 0 : } else if(Rname=="DG3") {
5308 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5309 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5310 0 : atoi [residue_atom[i]]=BB_PO2;
5311 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5312 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5313 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5314 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5315 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5316 : Aname=="H3T" ) {
5317 0 : atoi[residue_atom[i]]=BB_DNA_3;
5318 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5319 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5320 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5321 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5322 0 : atoi[residue_atom[i]]=BASE_G;
5323 : } else {
5324 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5325 : }
5326 : // DNA - G5
5327 0 : } else if(Rname=="DG5") {
5328 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5329 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5330 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5331 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5332 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5333 : Aname=="H5T" ) {
5334 0 : atoi[residue_atom[i]]=BB_DNA_5;
5335 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
5336 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
5337 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
5338 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
5339 0 : atoi[residue_atom[i]]=BASE_G;
5340 : } else {
5341 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5342 : }
5343 : // DNA - T
5344 0 : } else if(Rname=="DT") {
5345 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5346 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5347 0 : atoi [residue_atom[i]]=BB_PO2;
5348 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5349 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5350 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5351 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5352 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5353 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5354 0 : atoi[residue_atom[i]]=BB_DNA;
5355 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5356 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5357 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5358 0 : Aname=="H72" || Aname=="H73" ) {
5359 0 : atoi[residue_atom[i]]=BASE_T;
5360 : } else {
5361 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5362 : }
5363 : // DNA - T3
5364 0 : } else if(Rname=="DT3") {
5365 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5366 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5367 0 : atoi [residue_atom[i]]=BB_PO2;
5368 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5369 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5370 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5371 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5372 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5373 : Aname=="H3T" ) {
5374 0 : atoi[residue_atom[i]]=BB_DNA_3;
5375 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5376 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5377 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5378 0 : Aname=="H72" || Aname=="H73" ) {
5379 0 : atoi[residue_atom[i]]=BASE_T;
5380 : } else {
5381 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5382 : }
5383 : // DNA - T5
5384 0 : } else if(Rname=="DT5") {
5385 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5386 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5387 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5388 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5389 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5390 : Aname=="H5T" ) {
5391 0 : atoi[residue_atom[i]]=BB_DNA_5;
5392 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5393 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
5394 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
5395 0 : Aname=="H72" || Aname=="H73" ) {
5396 0 : atoi[residue_atom[i]]=BASE_T;
5397 : } else {
5398 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5399 : }
5400 : // DNA - A
5401 0 : } else if(Rname=="DA") {
5402 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5403 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5404 0 : atoi [residue_atom[i]]=BB_PO2;
5405 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5406 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5407 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5408 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5409 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5410 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5411 0 : atoi[residue_atom[i]]=BB_DNA;
5412 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5413 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5414 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5415 0 : Aname=="H61" || Aname=="H62" ) {
5416 0 : atoi[residue_atom[i]]=BASE_A;
5417 : } else {
5418 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5419 : }
5420 : // DNA - A3
5421 0 : } else if(Rname=="DA3") {
5422 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5423 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5424 0 : atoi [residue_atom[i]]=BB_PO2;
5425 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5426 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5427 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5428 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5429 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5430 : Aname=="H3T" ) {
5431 0 : atoi[residue_atom[i]]=BB_DNA_3;
5432 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5433 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5434 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5435 0 : Aname=="H61" || Aname=="H62" ) {
5436 0 : atoi[residue_atom[i]]=BASE_A;
5437 : } else {
5438 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5439 : }
5440 : // DNA - A5
5441 0 : } else if(Rname=="DA5") {
5442 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5443 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5444 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5445 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5446 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5447 : Aname=="H5T" ) {
5448 0 : atoi[residue_atom[i]]=BB_DNA_5;
5449 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
5450 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
5451 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
5452 0 : Aname=="H61" || Aname=="H62" ) {
5453 0 : atoi[residue_atom[i]]=BASE_A;
5454 : } else {
5455 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5456 : }
5457 : // DNA - C
5458 0 : } else if(Rname=="DC") {
5459 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5460 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5461 0 : atoi [residue_atom[i]]=BB_PO2;
5462 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5463 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5464 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5465 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5466 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
5467 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
5468 0 : atoi[residue_atom[i]]=BB_DNA;
5469 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5470 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5471 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5472 0 : atoi[residue_atom[i]]=BASE_C;
5473 : } else {
5474 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5475 : }
5476 : // DNA - C3
5477 0 : } else if(Rname=="DC3") {
5478 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
5479 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
5480 0 : atoi [residue_atom[i]]=BB_PO2;
5481 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5482 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5483 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5484 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
5485 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5486 : Aname=="H3T" ) {
5487 0 : atoi[residue_atom[i]]=BB_DNA_3;
5488 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5489 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5490 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5491 0 : atoi[residue_atom[i]]=BASE_C;
5492 : } else {
5493 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5494 : }
5495 : // DNA - C5
5496 0 : } else if(Rname=="DC5") {
5497 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
5498 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
5499 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
5500 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
5501 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
5502 : Aname=="H5T" ) {
5503 0 : atoi[residue_atom[i]]=BB_DNA_5;
5504 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
5505 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
5506 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
5507 0 : atoi[residue_atom[i]]=BASE_C;
5508 : } else {
5509 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
5510 : }
5511 : } else {
5512 0 : error("Residue not known: "+Rname);
5513 : }
5514 : }
5515 4 : }
5516 :
5517 4 : 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) {
5518 : // 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.
5519 4 : parameter_mix_D[TRP].push_back(8105.740500119327);
5520 4 : parameter_mix_D[TRP].push_back(-41.785616935469804);
5521 4 : parameter_mix_D[TRP].push_back(-25456.92790554363);
5522 4 : parameter_mix_D[TRP].push_back(-10058.20599969184);
5523 4 : parameter_mix_D[TRP].push_back(86171.76479108425);
5524 4 : parameter_mix_D[TRP].push_back(-83227.63139882773);
5525 4 : parameter_mix_D[TRP].push_back(25121.390436258724);
5526 :
5527 4 : parameter_mix_D[TYR].push_back(6059.530560118732);
5528 4 : parameter_mix_D[TYR].push_back(-24.522695525705736);
5529 4 : parameter_mix_D[TYR].push_back(-17180.858815360847);
5530 4 : parameter_mix_D[TYR].push_back(-5990.1358528219325);
5531 4 : parameter_mix_D[TYR].push_back(52936.46126637543);
5532 4 : parameter_mix_D[TYR].push_back(-50150.0042622683);
5533 4 : parameter_mix_D[TYR].push_back(14914.553672440441);
5534 :
5535 4 : parameter_mix_D[PHE].push_back(5563.404880119222);
5536 4 : parameter_mix_D[PHE].push_back(-33.609784645922794);
5537 4 : parameter_mix_D[PHE].push_back(-14576.935030777448);
5538 4 : parameter_mix_D[PHE].push_back(-5759.170105553782);
5539 4 : parameter_mix_D[PHE].push_back(43316.895956549866);
5540 4 : parameter_mix_D[PHE].push_back(-39106.58694570862);
5541 4 : parameter_mix_D[PHE].push_back(11143.375742877468);
5542 :
5543 4 : parameter_mix_D[HIP].push_back(3981.7108801192553);
5544 4 : parameter_mix_D[HIP].push_back(-23.788371565946427);
5545 4 : parameter_mix_D[HIP].push_back(-9471.73953776056);
5546 4 : parameter_mix_D[HIP].push_back(-3690.3981577198365);
5547 4 : parameter_mix_D[HIP].push_back(26365.958584217453);
5548 4 : parameter_mix_D[HIP].push_back(-23067.58974902849);
5549 4 : parameter_mix_D[HIP].push_back(6390.507451097114);
5550 :
5551 4 : parameter_mix_D[ARG].push_back(6279.489359881259);
5552 4 : parameter_mix_D[ARG].push_back(1.2061878338083583);
5553 4 : parameter_mix_D[ARG].push_back(-20305.413937989913);
5554 4 : parameter_mix_D[ARG].push_back(-5621.666335222669);
5555 4 : parameter_mix_D[ARG].push_back(67341.96785520067);
5556 4 : parameter_mix_D[ARG].push_back(-68849.15464591733);
5557 4 : parameter_mix_D[ARG].push_back(21773.0630363882);
5558 :
5559 4 : parameter_mix_D[LYS].push_back(5434.487400119193);
5560 4 : parameter_mix_D[LYS].push_back(-29.32356328987909);
5561 4 : parameter_mix_D[LYS].push_back(-14363.66155749977);
5562 4 : parameter_mix_D[LYS].push_back(-5650.383128516514);
5563 4 : parameter_mix_D[LYS].push_back(44573.73888236887);
5564 4 : parameter_mix_D[LYS].push_back(-41515.980945300485);
5565 4 : parameter_mix_D[LYS].push_back(12181.965046747513);
5566 :
5567 4 : parameter_mix_D[CYS].push_back(1519.4030001192032);
5568 4 : parameter_mix_D[CYS].push_back(-3.564386334921097);
5569 4 : parameter_mix_D[CYS].push_back(-2275.813167459516);
5570 4 : parameter_mix_D[CYS].push_back(-409.54431591328125);
5571 4 : parameter_mix_D[CYS].push_back(2969.5412742839258);
5572 4 : parameter_mix_D[CYS].push_back(-1798.3157146799638);
5573 4 : parameter_mix_D[CYS].push_back(314.568167888235);
5574 :
5575 4 : parameter_mix_D[ASP].push_back(1861.6998401191709);
5576 4 : parameter_mix_D[ASP].push_back(-5.349780637260551);
5577 4 : parameter_mix_D[ASP].push_back(-2960.36741510377);
5578 4 : parameter_mix_D[ASP].push_back(-621.8270745040523);
5579 4 : parameter_mix_D[ASP].push_back(4334.798300452934);
5580 4 : parameter_mix_D[ASP].push_back(-2776.8560521554878);
5581 4 : parameter_mix_D[ASP].push_back(527.9777182094936);
5582 :
5583 4 : parameter_mix_D[GLU].push_back(2861.6017201192253);
5584 4 : parameter_mix_D[GLU].push_back(-13.146456903921809);
5585 4 : parameter_mix_D[GLU].push_back(-5393.408563875243);
5586 4 : parameter_mix_D[GLU].push_back(-1646.460570818364);
5587 4 : parameter_mix_D[GLU].push_back(10884.544923253858);
5588 4 : parameter_mix_D[GLU].push_back(-8159.923373048856);
5589 4 : parameter_mix_D[GLU].push_back(1914.545660397314);
5590 :
5591 4 : parameter_mix_D[ILE].push_back(4288.585540119189);
5592 4 : parameter_mix_D[ILE].push_back(-19.937215352880365);
5593 4 : parameter_mix_D[ILE].push_back(-8324.540144463375);
5594 4 : parameter_mix_D[ILE].push_back(-2431.835931316717);
5595 4 : parameter_mix_D[ILE].push_back(16079.9912986194);
5596 4 : parameter_mix_D[ILE].push_back(-11637.693060394462);
5597 4 : parameter_mix_D[ILE].push_back(2600.8258068480495);
5598 :
5599 4 : parameter_mix_D[LEU].push_back(4288.585540119186);
5600 4 : parameter_mix_D[LEU].push_back(-21.50343599461759);
5601 4 : parameter_mix_D[LEU].push_back(-8479.703435720274);
5602 4 : parameter_mix_D[LEU].push_back(-2647.8693829269596);
5603 4 : parameter_mix_D[LEU].push_back(17297.18115838578);
5604 4 : parameter_mix_D[LEU].push_back(-12826.972408323161);
5605 4 : parameter_mix_D[LEU].push_back(2953.1262521615645);
5606 :
5607 4 : parameter_mix_D[MET].push_back(3561.6276801191552);
5608 4 : parameter_mix_D[MET].push_back(-22.19323392975885);
5609 4 : parameter_mix_D[MET].push_back(-8348.33907053846);
5610 4 : parameter_mix_D[MET].push_back(-3323.053272414289);
5611 4 : parameter_mix_D[MET].push_back(23153.238909304255);
5612 4 : parameter_mix_D[MET].push_back(-20091.960440908682);
5613 4 : parameter_mix_D[MET].push_back(5518.759669687693);
5614 :
5615 4 : parameter_mix_D[ASN].push_back(2326.5396001192003);
5616 4 : parameter_mix_D[ASN].push_back(-8.634908921289112);
5617 4 : parameter_mix_D[ASN].push_back(-4057.4552636749636);
5618 4 : parameter_mix_D[ASN].push_back(-1032.743130124821);
5619 4 : parameter_mix_D[ASN].push_back(6957.141592429445);
5620 4 : parameter_mix_D[ASN].push_back(-4808.265318722317);
5621 4 : parameter_mix_D[ASN].push_back(1016.3944815533755);
5622 :
5623 4 : parameter_mix_D[PRO].push_back(2471.1663601191985);
5624 4 : parameter_mix_D[PRO].push_back(-6.360795284260088);
5625 4 : parameter_mix_D[PRO].push_back(-3825.4533158429153);
5626 4 : parameter_mix_D[PRO].push_back(-728.7164844824666);
5627 4 : parameter_mix_D[PRO].push_back(5195.036303827973);
5628 4 : parameter_mix_D[PRO].push_back(-3183.733716480742);
5629 4 : parameter_mix_D[PRO].push_back(563.2376162754107);
5630 :
5631 4 : parameter_mix_D[GLN].push_back(3431.669280119236);
5632 4 : parameter_mix_D[GLN].push_back(-19.412747205646166);
5633 4 : parameter_mix_D[GLN].push_back(-7298.017973002134);
5634 4 : parameter_mix_D[GLN].push_back(-2659.3014182337706);
5635 4 : parameter_mix_D[GLN].push_back(17890.76595805173);
5636 4 : parameter_mix_D[GLN].push_back(-14684.603067192957);
5637 4 : parameter_mix_D[GLN].push_back(3814.338335151394);
5638 :
5639 4 : parameter_mix_D[SER].push_back(1423.885200119192);
5640 4 : parameter_mix_D[SER].push_back(-2.586428606204385);
5641 4 : parameter_mix_D[SER].push_back(-1966.7369507188134);
5642 4 : parameter_mix_D[SER].push_back(-289.17277383434106);
5643 4 : parameter_mix_D[SER].push_back(2209.478296043199);
5644 4 : parameter_mix_D[SER].push_back(-1216.1521614944);
5645 4 : parameter_mix_D[SER].push_back(177.0615931546754);
5646 :
5647 4 : parameter_mix_D[THR].push_back(2311.2364801191825);
5648 4 : parameter_mix_D[THR].push_back(-6.258071321531929);
5649 4 : parameter_mix_D[THR].push_back(-3656.295629081312);
5650 4 : parameter_mix_D[THR].push_back(-716.4013890357804);
5651 4 : parameter_mix_D[THR].push_back(5071.656317108832);
5652 4 : parameter_mix_D[THR].push_back(-3125.8076789667816);
5653 4 : parameter_mix_D[THR].push_back(555.9775741081131);
5654 :
5655 4 : parameter_mix_D[VAL].push_back(3041.128320119224);
5656 4 : parameter_mix_D[VAL].push_back(-9.314034190716423);
5657 4 : parameter_mix_D[VAL].push_back(-5075.684780220629);
5658 4 : parameter_mix_D[VAL].push_back(-1070.7083380665008);
5659 4 : parameter_mix_D[VAL].push_back(7455.654515006894);
5660 4 : parameter_mix_D[VAL].push_back(-4701.19187164774);
5661 4 : parameter_mix_D[VAL].push_back(863.4906179388547);
5662 :
5663 4 : parameter_mix_D[ALA].push_back(1187.65300011922);
5664 4 : parameter_mix_D[ALA].push_back(-1.7011187932116822);
5665 4 : parameter_mix_D[ALA].push_back(-1521.0113615359212);
5666 4 : parameter_mix_D[ALA].push_back(-187.93745840575576);
5667 4 : parameter_mix_D[ALA].push_back(1514.6745873304449);
5668 4 : parameter_mix_D[ALA].push_back(-775.3890045113897);
5669 4 : parameter_mix_D[ALA].push_back(96.41428177656567);
5670 :
5671 4 : parameter_mix_D[GLY].push_back(581.6349001192067);
5672 4 : parameter_mix_D[GLY].push_back(-0.5877833598361395);
5673 4 : parameter_mix_D[GLY].push_back(-640.0421286186524);
5674 4 : parameter_mix_D[GLY].push_back(-64.58515074152534);
5675 4 : parameter_mix_D[GLY].push_back(551.9509853583185);
5676 4 : parameter_mix_D[GLY].push_back(-264.1522021146006);
5677 4 : parameter_mix_D[GLY].push_back(28.36986478439301);
5678 :
5679 4 : parameter_mix_D[HIS].push_back(3648.812220119277);
5680 4 : parameter_mix_D[HIS].push_back(-22.703075403555548);
5681 4 : parameter_mix_D[HIS].push_back(-8260.235189881098);
5682 4 : parameter_mix_D[HIS].push_back(-3190.3176569039265);
5683 4 : parameter_mix_D[HIS].push_back(21589.074332364213);
5684 4 : parameter_mix_D[HIS].push_back(-18108.640157613925);
5685 4 : parameter_mix_D[HIS].push_back(4801.237639634437);
5686 :
5687 4 : parameter_vac_D[TRP].push_back(270.43802511921314);
5688 4 : parameter_vac_D[TRP].push_back(-2.196022464340772);
5689 4 : parameter_vac_D[TRP].push_back(-780.9546710244318);
5690 4 : parameter_vac_D[TRP].push_back(-371.1573508312626);
5691 4 : parameter_vac_D[TRP].push_back(2668.7678731652445);
5692 4 : parameter_vac_D[TRP].push_back(-2478.2920954223678);
5693 4 : parameter_vac_D[TRP].push_back(722.3731624901676);
5694 :
5695 4 : parameter_vac_D[TYR].push_back(198.471744119211);
5696 4 : parameter_vac_D[TYR].push_back(-1.236792846228289);
5697 4 : parameter_vac_D[TYR].push_back(-508.0448711054671);
5698 4 : parameter_vac_D[TYR].push_back(-210.55908129481216);
5699 4 : parameter_vac_D[TYR].push_back(1558.3884734212413);
5700 4 : parameter_vac_D[TYR].push_back(-1418.36319255665);
5701 4 : parameter_vac_D[TYR].push_back(407.21567613893296);
5702 :
5703 4 : parameter_vac_D[PHE].push_back(182.46606411921402);
5704 4 : parameter_vac_D[PHE].push_back(-1.2708008333861447);
5705 4 : parameter_vac_D[PHE].push_back(-424.50905926426054);
5706 4 : parameter_vac_D[PHE].push_back(-177.97207825696387);
5707 4 : parameter_vac_D[PHE].push_back(1180.839971941918);
5708 4 : parameter_vac_D[PHE].push_back(-1004.004765231886);
5709 4 : parameter_vac_D[PHE].push_back(269.34384064610344);
5710 :
5711 4 : parameter_vac_D[HIP].push_back(161.95107611920753);
5712 4 : parameter_vac_D[HIP].push_back(-0.9661246983835707);
5713 4 : parameter_vac_D[HIP].push_back(-332.04673226423995);
5714 4 : parameter_vac_D[HIP].push_back(-125.41755194926544);
5715 4 : parameter_vac_D[HIP].push_back(808.705672166199);
5716 4 : parameter_vac_D[HIP].push_back(-648.8340711218191);
5717 4 : parameter_vac_D[HIP].push_back(163.71251277400307);
5718 :
5719 4 : parameter_vac_D[ARG].push_back(289.0340011192071);
5720 4 : parameter_vac_D[ARG].push_back(-1.4195753436279361);
5721 4 : parameter_vac_D[ARG].push_back(-836.3864005546434);
5722 4 : parameter_vac_D[ARG].push_back(-346.7081039129904);
5723 4 : parameter_vac_D[ARG].push_back(2922.003491580559);
5724 4 : parameter_vac_D[ARG].push_back(-2864.816533173085);
5725 4 : parameter_vac_D[ARG].push_back(877.9525045072293);
5726 :
5727 4 : parameter_vac_D[LYS].push_back(228.64464111920753);
5728 4 : parameter_vac_D[LYS].push_back(-1.686580749083617);
5729 4 : parameter_vac_D[LYS].push_back(-544.8870548339771);
5730 4 : parameter_vac_D[LYS].push_back(-252.11087773186324);
5731 4 : parameter_vac_D[LYS].push_back(1693.784850493428);
5732 4 : parameter_vac_D[LYS].push_back(-1514.2375008160348);
5733 4 : parameter_vac_D[LYS].push_back(427.0713155512121);
5734 :
5735 4 : parameter_vac_D[CYS].push_back(50.836900116324315);
5736 4 : parameter_vac_D[CYS].push_back(-0.040204572899665315);
5737 4 : parameter_vac_D[CYS].push_back(-55.592868149339424);
5738 4 : parameter_vac_D[CYS].push_back(-4.341359624977117);
5739 4 : parameter_vac_D[CYS].push_back(41.55290573185214);
5740 4 : parameter_vac_D[CYS].push_back(-17.248208429078456);
5741 4 : parameter_vac_D[CYS].push_back(1.0736187172140528);
5742 :
5743 4 : parameter_vac_D[ASP].push_back(64.12806411920792);
5744 4 : parameter_vac_D[ASP].push_back(-0.08245818875074411);
5745 4 : parameter_vac_D[ASP].push_back(-78.95500211069523);
5746 4 : parameter_vac_D[ASP].push_back(-9.030157332821238);
5747 4 : parameter_vac_D[ASP].push_back(74.72033164806712);
5748 4 : parameter_vac_D[ASP].push_back(-36.71042192737952);
5749 4 : parameter_vac_D[ASP].push_back(4.0989206257493676);
5750 :
5751 4 : parameter_vac_D[GLU].push_back(100.14004911920799);
5752 4 : parameter_vac_D[GLU].push_back(-0.28685123265362006);
5753 4 : parameter_vac_D[GLU].push_back(-152.44619103423773);
5754 4 : parameter_vac_D[GLU].push_back(-32.99432901288321);
5755 4 : parameter_vac_D[GLU].push_back(225.5853175183811);
5756 4 : parameter_vac_D[GLU].push_back(-144.8489352831419);
5757 4 : parameter_vac_D[GLU].push_back(27.49692658880534);
5758 :
5759 4 : parameter_vac_D[ILE].push_back(165.04540911921134);
5760 4 : parameter_vac_D[ILE].push_back(-0.5061553029227089);
5761 4 : parameter_vac_D[ILE].push_back(-275.1890586090823);
5762 4 : parameter_vac_D[ILE].push_back(-57.288063177375356);
5763 4 : parameter_vac_D[ILE].push_back(398.9780357099449);
5764 4 : parameter_vac_D[ILE].push_back(-245.42678814428692);
5765 4 : parameter_vac_D[ILE].push_back(42.72941025472001);
5766 :
5767 4 : parameter_vac_D[LEU].push_back(165.04540911921134);
5768 4 : parameter_vac_D[LEU].push_back(-0.580034983510499);
5769 4 : parameter_vac_D[LEU].push_back(-281.30910057877514);
5770 4 : parameter_vac_D[LEU].push_back(-66.19427345166183);
5771 4 : parameter_vac_D[LEU].push_back(445.19214155995115);
5772 4 : parameter_vac_D[LEU].push_back(-287.0653610399624);
5773 4 : parameter_vac_D[LEU].push_back(53.86626261066706);
5774 :
5775 4 : parameter_vac_D[MET].push_back(123.83238411920684);
5776 4 : parameter_vac_D[MET].push_back(-0.7698672022751385);
5777 4 : parameter_vac_D[MET].push_back(-251.2481622173618);
5778 4 : parameter_vac_D[MET].push_back(-100.67742019193848);
5779 4 : parameter_vac_D[MET].push_back(641.1563254731632);
5780 4 : parameter_vac_D[MET].push_back(-524.8742634212379);
5781 4 : parameter_vac_D[MET].push_back(135.36487813767542);
5782 :
5783 4 : parameter_vac_D[ASN].push_back(94.12880411921148);
5784 4 : parameter_vac_D[ASN].push_back(-0.22986194121078912);
5785 4 : parameter_vac_D[ASN].push_back(-138.78769705028003);
5786 4 : parameter_vac_D[ASN].push_back(-25.896846049402594);
5787 4 : parameter_vac_D[ASN].push_back(184.55609781654326);
5788 4 : parameter_vac_D[ASN].push_back(-110.14043851975404);
5789 4 : parameter_vac_D[ASN].push_back(18.388834098004153);
5790 :
5791 4 : parameter_vac_D[PRO].push_back(90.51619611920745);
5792 4 : parameter_vac_D[PRO].push_back(-0.0977238494110807);
5793 4 : parameter_vac_D[PRO].push_back(-109.43531311067846);
5794 4 : parameter_vac_D[PRO].push_back(-10.592981104983805);
5795 4 : parameter_vac_D[PRO].push_back(93.64863466237733);
5796 4 : parameter_vac_D[PRO].push_back(-42.348197720920865);
5797 4 : parameter_vac_D[PRO].push_back(3.5854078482704574);
5798 :
5799 4 : parameter_vac_D[GLN].push_back(136.91340111920806);
5800 4 : parameter_vac_D[GLN].push_back(-0.7259026842220699);
5801 4 : parameter_vac_D[GLN].push_back(-257.0347011897067);
5802 4 : parameter_vac_D[GLN].push_back(-89.99600255417684);
5803 4 : parameter_vac_D[GLN].push_back(570.3890595917421);
5804 4 : parameter_vac_D[GLN].push_back(-438.8977029769549);
5805 4 : parameter_vac_D[GLN].push_back(105.48846039376491);
5806 :
5807 4 : parameter_vac_D[SER].push_back(55.20490011583253);
5808 4 : parameter_vac_D[SER].push_back(-0.038078030710377984);
5809 4 : parameter_vac_D[SER].push_back(-58.79085960838952);
5810 4 : parameter_vac_D[SER].push_back(-4.067364063406562);
5811 4 : parameter_vac_D[SER].push_back(41.319899403658475);
5812 4 : parameter_vac_D[SER].push_back(-15.865682241288962);
5813 4 : parameter_vac_D[SER].push_back(0.5028409006168431);
5814 :
5815 4 : parameter_vac_D[THR].push_back(88.90604111920842);
5816 4 : parameter_vac_D[THR].push_back(-0.11566717587697625);
5817 4 : parameter_vac_D[THR].push_back(-114.4541243837681);
5818 4 : parameter_vac_D[THR].push_back(-12.541537413808342);
5819 4 : parameter_vac_D[THR].push_back(106.4974738790947);
5820 4 : parameter_vac_D[THR].push_back(-50.15009912825225);
5821 4 : parameter_vac_D[THR].push_back(4.719349514074467);
5822 :
5823 4 : parameter_vac_D[VAL].push_back(117.67910411920792);
5824 4 : parameter_vac_D[VAL].push_back(-0.18187311248567883);
5825 4 : parameter_vac_D[VAL].push_back(-162.8697844894754);
5826 4 : parameter_vac_D[VAL].push_back(-19.769248288711825);
5827 4 : parameter_vac_D[VAL].push_back(162.59270939168965);
5828 4 : parameter_vac_D[VAL].push_back(-79.37261506441627);
5829 4 : parameter_vac_D[VAL].push_back(8.230771959393175);
5830 :
5831 4 : parameter_vac_D[ALA].push_back(46.92250011448002);
5832 4 : parameter_vac_D[ALA].push_back(-0.020339064649444412);
5833 4 : parameter_vac_D[ALA].push_back(-44.41584945233503);
5834 4 : parameter_vac_D[ALA].push_back(-2.1483754537886113);
5835 4 : parameter_vac_D[ALA].push_back(25.713667829058785);
5836 4 : parameter_vac_D[ALA].push_back(-8.222782061575268);
5837 4 : parameter_vac_D[ALA].push_back(-0.2521732728817875);
5838 :
5839 4 : parameter_vac_D[GLY].push_back(23.532201119209795);
5840 4 : parameter_vac_D[GLY].push_back(-0.00628609590047614);
5841 4 : parameter_vac_D[GLY].push_back(-17.28421910139733);
5842 4 : parameter_vac_D[GLY].push_back(-0.6641226821159686);
5843 4 : parameter_vac_D[GLY].push_back(8.536119110048007);
5844 4 : parameter_vac_D[GLY].push_back(-2.5438638688361466);
5845 4 : parameter_vac_D[GLY].push_back(-0.11165675928832643);
5846 :
5847 4 : parameter_vac_D[HIS].push_back(145.41948111920982);
5848 4 : parameter_vac_D[HIS].push_back(-0.8548328183368781);
5849 4 : parameter_vac_D[HIS].push_back(-290.8653238004162);
5850 4 : parameter_vac_D[HIS].push_back(-107.85375269366395);
5851 4 : parameter_vac_D[HIS].push_back(685.7025818759361);
5852 4 : parameter_vac_D[HIS].push_back(-538.2592043545858);
5853 4 : parameter_vac_D[HIS].push_back(132.17357375729733);
5854 :
5855 : // NUCLEIC ACIDS
5856 :
5857 4 : parameter_mix_D[BB_PO2].push_back(80.12660011920252);
5858 4 : parameter_mix_D[BB_PO2].push_back(-0.02788855519820236);
5859 4 : parameter_mix_D[BB_PO2].push_back(-60.53219491822279);
5860 4 : parameter_mix_D[BB_PO2].push_back(-2.9768829034096806);
5861 4 : parameter_mix_D[BB_PO2].push_back(33.30645116638123);
5862 4 : parameter_mix_D[BB_PO2].push_back(-11.601573219761375);
5863 4 : parameter_mix_D[BB_PO2].push_back(0.12551046492022438);
5864 :
5865 4 : parameter_mix_D[BB_DNA].push_back(2835.3195201193003);
5866 4 : parameter_mix_D[BB_DNA].push_back(-7.954301723608173);
5867 4 : parameter_mix_D[BB_DNA].push_back(-4509.325563460958);
5868 4 : parameter_mix_D[BB_DNA].push_back(-909.1870692311344);
5869 4 : parameter_mix_D[BB_DNA].push_back(6375.156903893768);
5870 4 : parameter_mix_D[BB_DNA].push_back(-3956.4787847570715);
5871 4 : parameter_mix_D[BB_DNA].push_back(708.9872879613656);
5872 :
5873 4 : parameter_mix_D[BB_DNA_5].push_back(3136.73358011921);
5874 4 : parameter_mix_D[BB_DNA_5].push_back(-10.023435855160427);
5875 4 : parameter_mix_D[BB_DNA_5].push_back(-5208.921666368173);
5876 4 : parameter_mix_D[BB_DNA_5].push_back(-1160.4403539440214);
5877 4 : parameter_mix_D[BB_DNA_5].push_back(7962.598421448727);
5878 4 : parameter_mix_D[BB_DNA_5].push_back(-5149.059857691847);
5879 4 : parameter_mix_D[BB_DNA_5].push_back(984.5217027570121);
5880 :
5881 4 : parameter_mix_D[BB_DNA_3].push_back(3136.73358011921);
5882 4 : parameter_mix_D[BB_DNA_3].push_back(-9.618834865806274);
5883 4 : parameter_mix_D[BB_DNA_3].push_back(-5164.249220443828);
5884 4 : parameter_mix_D[BB_DNA_3].push_back(-1103.2721475326382);
5885 4 : parameter_mix_D[BB_DNA_3].push_back(7633.46089052312);
5886 4 : parameter_mix_D[BB_DNA_3].push_back(-4826.171688395644);
5887 4 : parameter_mix_D[BB_DNA_3].push_back(888.1820863683546);
5888 :
5889 4 : parameter_mix_D[BB_RNA].push_back(3192.5955601188807);
5890 4 : parameter_mix_D[BB_RNA].push_back(-11.475781582628308);
5891 4 : parameter_mix_D[BB_RNA].push_back(-5486.264576931735);
5892 4 : parameter_mix_D[BB_RNA].push_back(-1344.2878288415961);
5893 4 : parameter_mix_D[BB_RNA].push_back(9035.26109892441);
5894 4 : parameter_mix_D[BB_RNA].push_back(-6068.471909763036);
5895 4 : parameter_mix_D[BB_RNA].push_back(1226.3696076463866);
5896 :
5897 4 : parameter_mix_D[BB_RNA_5].push_back(3512.1630401192215);
5898 4 : parameter_mix_D[BB_RNA_5].push_back(-14.191020069433975);
5899 4 : parameter_mix_D[BB_RNA_5].push_back(-6293.687102187508);
5900 4 : parameter_mix_D[BB_RNA_5].push_back(-1689.3688494490984);
5901 4 : parameter_mix_D[BB_RNA_5].push_back(11193.448566821942);
5902 4 : parameter_mix_D[BB_RNA_5].push_back(-7806.9064399949375);
5903 4 : parameter_mix_D[BB_RNA_5].push_back(1662.4594983069844);
5904 :
5905 4 : parameter_mix_D[BB_RNA_3].push_back(3512.1630401192215);
5906 4 : parameter_mix_D[BB_RNA_3].push_back(-12.978118135595812);
5907 4 : parameter_mix_D[BB_RNA_3].push_back(-6149.290195451877);
5908 4 : parameter_mix_D[BB_RNA_3].push_back(-1515.8309761505627);
5909 4 : parameter_mix_D[BB_RNA_3].push_back(10176.605450440278);
5910 4 : parameter_mix_D[BB_RNA_3].push_back(-6813.250569884159);
5911 4 : parameter_mix_D[BB_RNA_3].push_back(1366.823518955858);
5912 :
5913 4 : parameter_mix_D[BASE_A].push_back(2464.736500119229);
5914 4 : parameter_mix_D[BASE_A].push_back(-12.127452038444783);
5915 4 : parameter_mix_D[BASE_A].push_back(-4710.661256689607);
5916 4 : parameter_mix_D[BASE_A].push_back(-1462.6964141954452);
5917 4 : parameter_mix_D[BASE_A].push_back(9451.725575888277);
5918 4 : parameter_mix_D[BASE_A].push_back(-6883.018479948857);
5919 4 : parameter_mix_D[BASE_A].push_back(1540.1526599737797);
5920 :
5921 4 : parameter_mix_D[BASE_C].push_back(1797.2697601191685);
5922 4 : parameter_mix_D[BASE_C].push_back(-5.963855532295215);
5923 4 : parameter_mix_D[BASE_C].push_back(-2955.077717756034);
5924 4 : parameter_mix_D[BASE_C].push_back(-689.4543508746372);
5925 4 : parameter_mix_D[BASE_C].push_back(4665.914740532565);
5926 4 : parameter_mix_D[BASE_C].push_back(-3051.4605913706982);
5927 4 : parameter_mix_D[BASE_C].push_back(590.2201952719585);
5928 :
5929 4 : parameter_mix_D[BASE_G].push_back(2804.271480119049);
5930 4 : parameter_mix_D[BASE_G].push_back(-16.928072935469974);
5931 4 : parameter_mix_D[BASE_G].push_back(-5989.82519987899);
5932 4 : parameter_mix_D[BASE_G].push_back(-2275.490326521775);
5933 4 : parameter_mix_D[BASE_G].push_back(15007.832401865428);
5934 4 : parameter_mix_D[BASE_G].push_back(-12287.520690325606);
5935 4 : parameter_mix_D[BASE_G].push_back(3172.98306575258);
5936 :
5937 4 : parameter_mix_D[BASE_T].push_back(2545.0860001192113);
5938 4 : parameter_mix_D[BASE_T].push_back(-10.975141620541738);
5939 4 : parameter_mix_D[BASE_T].push_back(-4636.058358764447);
5940 4 : parameter_mix_D[BASE_T].push_back(-1340.3746388296138);
5941 4 : parameter_mix_D[BASE_T].push_back(8850.604320505428);
5942 4 : parameter_mix_D[BASE_T].push_back(-6421.852532013674);
5943 4 : parameter_mix_D[BASE_T].push_back(1443.371517335904);
5944 :
5945 4 : parameter_mix_D[BASE_U].push_back(1608.7389001192062);
5946 4 : parameter_mix_D[BASE_U].push_back(-3.9816849036181434);
5947 4 : parameter_mix_D[BASE_U].push_back(-2411.056432130769);
5948 4 : parameter_mix_D[BASE_U].push_back(-451.8236361945487);
5949 4 : parameter_mix_D[BASE_U].push_back(3220.4418252803644);
5950 4 : parameter_mix_D[BASE_U].push_back(-1944.2515577994325);
5951 4 : parameter_mix_D[BASE_U].push_back(332.9259542628691);
5952 :
5953 4 : parameter_vac_D[BB_PO2].push_back(2.7889001116093284);
5954 4 : parameter_vac_D[BB_PO2].push_back(-0.00011178884266113128);
5955 4 : parameter_vac_D[BB_PO2].push_back(-1.1702605818380654);
5956 4 : parameter_vac_D[BB_PO2].push_back(-0.011278044036819927);
5957 4 : parameter_vac_D[BB_PO2].push_back(0.3214006584089024);
5958 4 : parameter_vac_D[BB_PO2].push_back(-0.04097165983591666);
5959 4 : parameter_vac_D[BB_PO2].push_back(-0.017525098100539684);
5960 :
5961 4 : parameter_vac_D[BB_DNA].push_back(94.75075611920529);
5962 4 : parameter_vac_D[BB_DNA].push_back(-0.13973533952241124);
5963 4 : parameter_vac_D[BB_DNA].push_back(-123.45402430039046);
5964 4 : parameter_vac_D[BB_DNA].push_back(-15.19494522082691);
5965 4 : parameter_vac_D[BB_DNA].push_back(123.34749914811465);
5966 4 : parameter_vac_D[BB_DNA].push_back(-61.038507985345504);
5967 4 : parameter_vac_D[BB_DNA].push_back(6.601587478585944);
5968 :
5969 4 : parameter_vac_D[BB_DNA_5].push_back(108.18080111920679);
5970 4 : parameter_vac_D[BB_DNA_5].push_back(-0.2055953690887981);
5971 4 : parameter_vac_D[BB_DNA_5].push_back(-150.7924892157235);
5972 4 : parameter_vac_D[BB_DNA_5].push_back(-22.700459516383198);
5973 4 : parameter_vac_D[BB_DNA_5].push_back(172.2599851655527);
5974 4 : parameter_vac_D[BB_DNA_5].push_back(-93.4983124807692);
5975 4 : parameter_vac_D[BB_DNA_5].push_back(12.867661230942868);
5976 :
5977 4 : parameter_vac_D[BB_DNA_3].push_back(108.18080111920537);
5978 4 : parameter_vac_D[BB_DNA_3].push_back(-0.18263717534168372);
5979 4 : parameter_vac_D[BB_DNA_3].push_back(-148.5918817744255);
5980 4 : parameter_vac_D[BB_DNA_3].push_back(-19.90799847398835);
5981 4 : parameter_vac_D[BB_DNA_3].push_back(157.55184203379557);
5982 4 : parameter_vac_D[BB_DNA_3].push_back(-80.28471270058103);
5983 4 : parameter_vac_D[BB_DNA_3].push_back(9.313712500298278);
5984 :
5985 4 : parameter_vac_D[BB_RNA].push_back(106.37859611922117);
5986 4 : parameter_vac_D[BB_RNA].push_back(-0.2380766148121975);
5987 4 : parameter_vac_D[BB_RNA].push_back(-153.74131338570024);
5988 4 : parameter_vac_D[BB_RNA].push_back(-26.415436217574932);
5989 4 : parameter_vac_D[BB_RNA].push_back(191.90585451112776);
5990 4 : parameter_vac_D[BB_RNA].push_back(-109.61737794316868);
5991 4 : parameter_vac_D[BB_RNA].push_back(16.663804191332204);
5992 :
5993 4 : parameter_vac_D[BB_RNA_5].push_back(120.58236111920618);
5994 4 : parameter_vac_D[BB_RNA_5].push_back(-0.340258533619014);
5995 4 : parameter_vac_D[BB_RNA_5].push_back(-186.08333929996334);
5996 4 : parameter_vac_D[BB_RNA_5].push_back(-38.493337147644795);
5997 4 : parameter_vac_D[BB_RNA_5].push_back(266.2262415641144);
5998 4 : parameter_vac_D[BB_RNA_5].push_back(-164.73088478359585);
5999 4 : parameter_vac_D[BB_RNA_5].push_back(29.07014157680879);
6000 :
6001 4 : parameter_vac_D[BB_RNA_3].push_back(120.5823611192099);
6002 4 : parameter_vac_D[BB_RNA_3].push_back(-0.274146129206928);
6003 4 : parameter_vac_D[BB_RNA_3].push_back(-179.24499182395388);
6004 4 : parameter_vac_D[BB_RNA_3].push_back(-30.315729372259426);
6005 4 : parameter_vac_D[BB_RNA_3].push_back(222.2645581367648);
6006 4 : parameter_vac_D[BB_RNA_3].push_back(-125.13581171514033);
6007 4 : parameter_vac_D[BB_RNA_3].push_back(18.350308154920107);
6008 :
6009 4 : parameter_vac_D[BASE_A].push_back(114.34024911921);
6010 4 : parameter_vac_D[BASE_A].push_back(-0.4136665918383359);
6011 4 : parameter_vac_D[BASE_A].push_back(-192.33138384655922);
6012 4 : parameter_vac_D[BASE_A].push_back(-46.74428306691412);
6013 4 : parameter_vac_D[BASE_A].push_back(312.9511030981905);
6014 4 : parameter_vac_D[BASE_A].push_back(-199.6349962647333);
6015 4 : parameter_vac_D[BASE_A].push_back(36.15938693202153);
6016 :
6017 4 : parameter_vac_D[BASE_C].push_back(76.17798411921166);
6018 4 : parameter_vac_D[BASE_C].push_back(-0.1444475142707445);
6019 4 : parameter_vac_D[BASE_C].push_back(-102.66873668949485);
6020 4 : parameter_vac_D[BASE_C].push_back(-15.813768367725821);
6021 4 : parameter_vac_D[BASE_C].push_back(119.63436338715553);
6022 4 : parameter_vac_D[BASE_C].push_back(-64.22251971660583);
6023 4 : parameter_vac_D[BASE_C].push_back(8.351952332828862);
6024 :
6025 4 : parameter_vac_D[BASE_G].push_back(127.08052911921965);
6026 4 : parameter_vac_D[BASE_G].push_back(-0.7137457014712297);
6027 4 : parameter_vac_D[BASE_G].push_back(-239.67686838772786);
6028 4 : parameter_vac_D[BASE_G].push_back(-88.53661981200943);
6029 4 : parameter_vac_D[BASE_G].push_back(556.7254485453866);
6030 4 : parameter_vac_D[BASE_G].push_back(-432.0234649577737);
6031 4 : parameter_vac_D[BASE_G].push_back(104.407200463848);
6032 :
6033 4 : parameter_vac_D[BASE_T].push_back(94.09000011920868);
6034 4 : parameter_vac_D[BASE_T].push_back(-0.27147149980458524);
6035 4 : parameter_vac_D[BASE_T].push_back(-143.65649702254174);
6036 4 : parameter_vac_D[BASE_T].push_back(-30.861235738371892);
6037 4 : parameter_vac_D[BASE_T].push_back(212.3643014774958);
6038 4 : parameter_vac_D[BASE_T].push_back(-133.06675501066275);
6039 4 : parameter_vac_D[BASE_T].push_back(23.951588200687073);
6040 :
6041 4 : parameter_vac_D[BASE_U].push_back(59.30540111665979);
6042 4 : parameter_vac_D[BASE_U].push_back(-0.06146929846591808);
6043 4 : parameter_vac_D[BASE_U].push_back(-67.43680950211682);
6044 4 : parameter_vac_D[BASE_U].push_back(-6.625289749170134);
6045 4 : parameter_vac_D[BASE_U].push_back(58.37012229348065);
6046 4 : parameter_vac_D[BASE_U].push_back(-26.23044613101723);
6047 4 : parameter_vac_D[BASE_U].push_back(2.061238351422343);
6048 :
6049 14298 : for(unsigned i=0; i<atoms.size(); ++i) {
6050 14294 : std::string Aname = pdb.getAtomName(atoms[i]);
6051 14294 : std::string Rname = pdb.getResidueName(atoms[i]);
6052 14294 : Rname.erase(std::remove_if(Rname.begin(), Rname.end(), ::isspace),Rname.end());
6053 14294 : if(Rname=="ALA") {
6054 732 : atoi[residue_atom[i]]=ALA;
6055 13562 : } else if(Rname=="ARG") {
6056 864 : atoi[residue_atom[i]]=ARG;
6057 12698 : } else if(Rname=="ASN") {
6058 720 : atoi[residue_atom[i]]=ASN;
6059 11978 : } else if(Rname=="ASP") {
6060 624 : atoi[residue_atom[i]]=ASP;
6061 11354 : } else if(Rname=="CYS") {
6062 48 : atoi[residue_atom[i]]=CYS;
6063 11306 : } else if(Rname=="GLN") {
6064 1064 : atoi[residue_atom[i]]=GLN;
6065 10242 : } else if(Rname=="GLU") {
6066 476 : atoi[residue_atom[i]]=GLU;
6067 9766 : } else if(Rname=="GLY") {
6068 648 : atoi[residue_atom[i]]=GLY;
6069 9118 : } else if(Rname=="HIS") {
6070 0 : atoi[residue_atom[i]]=HIS;
6071 9118 : } else if(Rname=="HID") {
6072 0 : atoi[residue_atom[i]]=HIS;
6073 9118 : } else if(Rname=="HIE") {
6074 144 : atoi[residue_atom[i]]=HIS;
6075 8974 : } else if(Rname=="HIP") {
6076 0 : atoi[residue_atom[i]]=HIP;
6077 : // CHARMM NAMING FOR PROTONATION STATES OF HISTIDINE
6078 8974 : } else if(Rname=="HSD") {
6079 0 : atoi[residue_atom[i]]=HIS;
6080 8974 : } else if(Rname=="HSE") {
6081 0 : atoi[residue_atom[i]]=HIS;
6082 8974 : } else if(Rname=="HSP") {
6083 0 : atoi[residue_atom[i]]=HIP;
6084 8974 : } else if(Rname=="ILE") {
6085 864 : atoi[residue_atom[i]]=ILE;
6086 8110 : } else if(Rname=="LEU") {
6087 1520 : atoi[residue_atom[i]]=LEU;
6088 6590 : } else if(Rname=="LYS") {
6089 1040 : atoi[residue_atom[i]]=LYS;
6090 5550 : } else if(Rname=="MET") {
6091 608 : atoi[residue_atom[i]]=MET;
6092 4942 : } else if(Rname=="PHE") {
6093 1008 : atoi[residue_atom[i]]=PHE;
6094 3934 : } else if(Rname=="PRO") {
6095 748 : atoi[residue_atom[i]]=PRO;
6096 3186 : } else if(Rname=="SER") {
6097 528 : atoi[residue_atom[i]]=SER;
6098 2658 : } else if(Rname=="THR") {
6099 504 : atoi[residue_atom[i]]=THR;
6100 2154 : } else if(Rname=="TRP") {
6101 0 : atoi[residue_atom[i]]=TRP;
6102 2154 : } else if(Rname=="TYR") {
6103 528 : atoi[residue_atom[i]]=TYR;
6104 1626 : } else if(Rname=="VAL") {
6105 1088 : atoi[residue_atom[i]]=VAL;
6106 : }
6107 : // NUCLEIC ACIDS
6108 : // nucleobases are not automatically populated as an additional check on the health of the PDB.
6109 : // RNA - G
6110 538 : else if(Rname=="G") {
6111 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6112 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6113 0 : atoi [residue_atom[i]]=BB_PO2;
6114 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6115 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6116 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6117 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6118 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6119 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6120 0 : atoi[residue_atom[i]]=BB_RNA;
6121 0 : } else if( Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6122 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6123 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6124 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6125 0 : atoi[residue_atom[i]]=BASE_G;
6126 : } else {
6127 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6128 : }
6129 : // RNA - G3
6130 538 : } else if(Rname=="G3") {
6131 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6132 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6133 0 : atoi [residue_atom[i]]=BB_PO2;
6134 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6135 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6136 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6137 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6138 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6139 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6140 0 : atoi[residue_atom[i]]=BB_RNA_3;
6141 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6142 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6143 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6144 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6145 0 : atoi[residue_atom[i]]=BASE_G;
6146 : } else {
6147 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6148 : }
6149 : // RNA - G5
6150 538 : } else if(Rname=="G5") {
6151 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6152 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6153 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6154 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6155 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6156 0 : Aname=="H2'1" || Aname=="H5T" ) {
6157 0 : atoi[residue_atom[i]]=BB_RNA_5;
6158 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6159 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6160 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6161 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6162 0 : atoi[residue_atom[i]]=BASE_G;
6163 : } else {
6164 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6165 : }
6166 : // RNA - U
6167 538 : } else if(Rname=="U") {
6168 1554 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6169 1176 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6170 42 : atoi [residue_atom[i]]=BB_PO2;
6171 1372 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6172 1148 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6173 924 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6174 714 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6175 644 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6176 840 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6177 224 : atoi[residue_atom[i]]=BB_RNA;
6178 476 : } else if( Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6179 252 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6180 196 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6181 154 : atoi[residue_atom[i]]=BASE_U;
6182 : } else {
6183 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6184 : }
6185 : // RNA - U3
6186 118 : } else if(Rname=="U3") {
6187 230 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6188 174 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6189 6 : atoi [residue_atom[i]]=BB_PO2;
6190 204 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6191 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6192 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6193 110 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6194 94 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6195 78 : Aname=="H5'2" || Aname=="HO'2" ) {
6196 34 : atoi[residue_atom[i]]=BB_RNA_3;
6197 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6198 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6199 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6200 22 : atoi[residue_atom[i]]=BASE_U;
6201 : } else {
6202 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6203 : }
6204 : // RNA - U5
6205 56 : } else if(Rname=="U5") {
6206 204 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6207 172 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6208 140 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6209 108 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6210 88 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6211 78 : Aname=="H2'1" || Aname=="H5T" ) {
6212 34 : atoi[residue_atom[i]]=BB_RNA_5;
6213 68 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6214 36 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6215 28 : Aname=="H3" || Aname=="H5" || Aname=="H6") {
6216 22 : atoi[residue_atom[i]]=BASE_U;
6217 : } else {
6218 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6219 : }
6220 : // RNA - A
6221 0 : } else if(Rname=="A") {
6222 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6223 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6224 0 : atoi [residue_atom[i]]=BB_PO2;
6225 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6226 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6227 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6228 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6229 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6230 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6231 0 : atoi[residue_atom[i]]=BB_RNA;
6232 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6233 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6234 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6235 0 : Aname=="H61" || Aname=="H62" ) {
6236 0 : atoi[residue_atom[i]]=BASE_A;
6237 : } else {
6238 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6239 : }
6240 : // RNA - A3
6241 0 : } else if(Rname=="A3") {
6242 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6243 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6244 0 : atoi [residue_atom[i]]=BB_PO2;
6245 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6246 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6247 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6248 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6249 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6250 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6251 0 : atoi[residue_atom[i]]=BB_RNA_3;
6252 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6253 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6254 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6255 0 : Aname=="H61" || Aname=="H62" ) {
6256 0 : atoi[residue_atom[i]]=BASE_A;
6257 : } else {
6258 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6259 : }
6260 : // RNA - A5
6261 0 : } else if(Rname=="A5") {
6262 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6263 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6264 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6265 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6266 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6267 0 : Aname=="H2'1" || Aname=="H5T" ) {
6268 0 : atoi[residue_atom[i]]=BB_RNA_5;
6269 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6270 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6271 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6272 0 : Aname=="H61" || Aname=="H62" ) {
6273 0 : atoi[residue_atom[i]]=BASE_A;
6274 : } else {
6275 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6276 : }
6277 : // RNA - C
6278 0 : } else if(Rname=="C") {
6279 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6280 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6281 0 : atoi [residue_atom[i]]=BB_PO2;
6282 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6283 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6284 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6285 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6286 0 : Aname=="HO5'" || Aname=="HO3'" || Aname=="HO2'" || Aname=="H5'1" ||
6287 0 : Aname=="H5'2" || Aname=="HO'2" || Aname=="H2'1" || Aname=="H5T" ) {
6288 0 : atoi[residue_atom[i]]=BB_RNA;
6289 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6290 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6291 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6292 0 : atoi[residue_atom[i]]=BASE_C;
6293 : } else {
6294 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6295 : }
6296 : // RNA - C3
6297 0 : } else if(Rname=="C3") {
6298 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6299 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6300 0 : atoi [residue_atom[i]]=BB_PO2;
6301 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6302 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6303 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6304 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="H3T" ||
6305 0 : Aname=="H2'1" || Aname=="HO3'"|| Aname=="HO2'" || Aname=="H5'1" ||
6306 0 : Aname=="H5'2" || Aname=="HO'2" ) {
6307 0 : atoi[residue_atom[i]]=BB_RNA_3;
6308 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6309 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6310 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6311 0 : atoi[residue_atom[i]]=BASE_C;
6312 : } else {
6313 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6314 : }
6315 : // RNA - C5
6316 0 : } else if(Rname=="C5") {
6317 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6318 0 : Aname=="O3'" || Aname=="C3'" || Aname=="O2'" || Aname=="C2'" ||
6319 0 : Aname=="C1'" || Aname=="H5'" || Aname=="H5''" || Aname=="H4'" ||
6320 0 : Aname=="H3'" || Aname=="H2'" || Aname=="H1'" || Aname=="HO5'" ||
6321 0 : Aname=="HO2'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="HO'2" ||
6322 0 : Aname=="H2'1" || Aname=="H5T" ) {
6323 0 : atoi[residue_atom[i]]=BB_RNA_5;
6324 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6325 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6326 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6327 0 : atoi[residue_atom[i]]=BASE_C;
6328 : } else {
6329 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6330 : }
6331 : // DNA - G
6332 0 : } else if(Rname=="DG") {
6333 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6334 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6335 0 : atoi [residue_atom[i]]=BB_PO2;
6336 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6337 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6338 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6339 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6340 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6341 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6342 0 : atoi[residue_atom[i]]=BB_DNA;
6343 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6344 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6345 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6346 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6347 0 : atoi[residue_atom[i]]=BASE_G;
6348 : } else {
6349 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6350 : }
6351 : // DNA - G3
6352 0 : } else if(Rname=="DG3") {
6353 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6354 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6355 0 : atoi [residue_atom[i]]=BB_PO2;
6356 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6357 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6358 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6359 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6360 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6361 : Aname=="H3T" ) {
6362 0 : atoi[residue_atom[i]]=BB_DNA_3;
6363 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6364 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6365 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6366 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6367 0 : atoi[residue_atom[i]]=BASE_G;
6368 : } else {
6369 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6370 : }
6371 : // DNA - G5
6372 0 : } else if(Rname=="DG5") {
6373 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6374 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6375 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6376 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6377 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6378 : Aname=="H5T" ) {
6379 0 : atoi[residue_atom[i]]=BB_DNA_5;
6380 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N2" || Aname=="N3" ||
6381 0 : Aname=="C4" || Aname=="C5" || Aname=="C6" || Aname=="O6" ||
6382 0 : Aname=="N7" || Aname=="C8" || Aname=="N9" || Aname=="H1" ||
6383 0 : Aname=="H8" || Aname=="H21" || Aname=="H22" ) {
6384 0 : atoi[residue_atom[i]]=BASE_G;
6385 : } else {
6386 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6387 : }
6388 : // DNA - T
6389 0 : } else if(Rname=="DT") {
6390 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6391 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6392 0 : atoi [residue_atom[i]]=BB_PO2;
6393 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6394 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6395 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6396 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6397 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6398 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6399 0 : atoi[residue_atom[i]]=BB_DNA;
6400 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6401 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6402 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6403 0 : Aname=="H72" || Aname=="H73" ) {
6404 0 : atoi[residue_atom[i]]=BASE_T;
6405 : } else {
6406 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6407 : }
6408 : // DNA - T3
6409 0 : } else if(Rname=="DT3") {
6410 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6411 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6412 0 : atoi [residue_atom[i]]=BB_PO2;
6413 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6414 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6415 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6416 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6417 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6418 : Aname=="H3T" ) {
6419 0 : atoi[residue_atom[i]]=BB_DNA_3;
6420 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6421 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6422 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6423 0 : Aname=="H72" || Aname=="H73" ) {
6424 0 : atoi[residue_atom[i]]=BASE_T;
6425 : } else {
6426 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6427 : }
6428 : // DNA - T5
6429 0 : } else if(Rname=="DT5") {
6430 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6431 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6432 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6433 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6434 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6435 : Aname=="H5T" ) {
6436 0 : atoi[residue_atom[i]]=BB_DNA_5;
6437 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6438 0 : Aname=="C4" || Aname=="O4" || Aname=="C5" || Aname=="C6" ||
6439 0 : Aname=="C7" || Aname=="H3" || Aname=="H6" || Aname=="H71" ||
6440 0 : Aname=="H72" || Aname=="H73" ) {
6441 0 : atoi[residue_atom[i]]=BASE_T;
6442 : } else {
6443 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6444 : }
6445 : // DNA - A
6446 0 : } else if(Rname=="DA") {
6447 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6448 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6449 0 : atoi [residue_atom[i]]=BB_PO2;
6450 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6451 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6452 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6453 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6454 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6455 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6456 0 : atoi[residue_atom[i]]=BB_DNA;
6457 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6458 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6459 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6460 0 : Aname=="H61" || Aname=="H62" ) {
6461 0 : atoi[residue_atom[i]]=BASE_A;
6462 : } else {
6463 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6464 : }
6465 : // DNA - A3
6466 0 : } else if(Rname=="DA3") {
6467 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6468 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6469 0 : atoi [residue_atom[i]]=BB_PO2;
6470 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6471 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6472 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6473 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6474 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6475 : Aname=="H3T" ) {
6476 0 : atoi[residue_atom[i]]=BB_DNA_3;
6477 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6478 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6479 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6480 0 : Aname=="H61" || Aname=="H62" ) {
6481 0 : atoi[residue_atom[i]]=BASE_A;
6482 : } else {
6483 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6484 : }
6485 : // DNA - A5
6486 0 : } else if(Rname=="DA5") {
6487 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6488 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6489 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6490 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6491 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6492 : Aname=="H5T" ) {
6493 0 : atoi[residue_atom[i]]=BB_DNA_5;
6494 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="N3" || Aname=="C4" ||
6495 0 : Aname=="C5" || Aname=="C6" || Aname=="N6" || Aname=="N7" ||
6496 0 : Aname=="C8" || Aname=="N9" || Aname=="H2" || Aname=="H8" ||
6497 0 : Aname=="H61" || Aname=="H62" ) {
6498 0 : atoi[residue_atom[i]]=BASE_A;
6499 : } else {
6500 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6501 : }
6502 : // DNA - C
6503 0 : } else if(Rname=="DC") {
6504 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6505 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6506 0 : atoi [residue_atom[i]]=BB_PO2;
6507 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6508 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6509 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6510 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6511 0 : Aname=="HO3'" || Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" ||
6512 0 : Aname=="H2'2" || Aname=="H5T" || Aname=="H3T" ) {
6513 0 : atoi[residue_atom[i]]=BB_DNA;
6514 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6515 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6516 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6517 0 : atoi[residue_atom[i]]=BASE_C;
6518 : } else {
6519 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6520 : }
6521 : // DNA - C3
6522 0 : } else if(Rname=="DC3") {
6523 0 : if( Aname=="P" || Aname=="OP1" || Aname=="OP2" || Aname=="OP3" ||
6524 0 : Aname=="O1P" || Aname=="O2P" || Aname=="O3P" ) {
6525 0 : atoi [residue_atom[i]]=BB_PO2;
6526 0 : } else if(Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6527 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6528 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6529 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO3'" ||
6530 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6531 : Aname=="H3T" ) {
6532 0 : atoi[residue_atom[i]]=BB_DNA_3;
6533 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6534 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6535 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6536 0 : atoi[residue_atom[i]]=BASE_C;
6537 : } else {
6538 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6539 : }
6540 : // DNA - C5
6541 0 : } else if(Rname=="DC5") {
6542 0 : if( Aname=="O5'" || Aname=="C5'" || Aname=="O4'" || Aname=="C4'" ||
6543 0 : Aname=="O3'" || Aname=="C3'" || Aname=="C2'" || Aname=="C1'" ||
6544 0 : Aname=="H5'" || Aname=="H5''" || Aname=="H4'" || Aname=="H3'" ||
6545 0 : Aname=="H2'" || Aname=="H2''" || Aname=="H1'" || Aname=="HO5'" ||
6546 0 : Aname=="H5'1" || Aname=="H5'2" || Aname=="H2'1" || Aname=="H2'2" ||
6547 : Aname=="H5T" ) {
6548 0 : atoi[residue_atom[i]]=BB_DNA_5;
6549 0 : } else if(Aname=="N1" || Aname=="C2" || Aname=="O2" || Aname=="N3" ||
6550 0 : Aname=="C4" || Aname=="N4" || Aname=="C5" || Aname=="C6" ||
6551 0 : Aname=="H5" || Aname=="H6" || Aname=="H41" || Aname=="H42" ) {
6552 0 : atoi[residue_atom[i]]=BASE_C;
6553 : } else {
6554 0 : error("Atom name "+Aname+" is not defined for residue "+Rname+". Check the PDB.");
6555 : }
6556 : } else {
6557 0 : error("Residue not known: "+Rname);
6558 : }
6559 : }
6560 4 : }
6561 :
6562 4 : double SAXS::calculateAFF(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double rho) {
6563 : std::map<std::string, unsigned> AA_map;
6564 4 : AA_map["H"] = H;
6565 4 : AA_map["C"] = C;
6566 4 : AA_map["N"] = N;
6567 4 : AA_map["O"] = O;
6568 4 : AA_map["P"] = P;
6569 4 : AA_map["S"] = S;
6570 :
6571 : std::vector<std::vector<double> > param_a;
6572 : std::vector<std::vector<double> > param_b;
6573 : std::vector<double> param_c;
6574 : std::vector<double> param_v;
6575 :
6576 4 : param_a.resize(NTT, std::vector<double>(5));
6577 4 : param_b.resize(NTT, std::vector<double>(5));
6578 4 : param_c.resize(NTT);
6579 4 : param_v.resize(NTT);
6580 :
6581 4 : param_a[H][0] = 0.493002;
6582 4 : param_b[H][0] = 10.5109;
6583 4 : param_c[H] = 0.003038;
6584 4 : param_a[H][1] = 0.322912;
6585 4 : param_b[H][1] = 26.1257;
6586 4 : param_v[H] = 5.15;
6587 4 : param_a[H][2] = 0.140191;
6588 4 : param_b[H][2] = 3.14236;
6589 4 : param_a[H][3] = 0.040810;
6590 4 : param_b[H][3] = 57.7997;
6591 4 : param_a[H][4] = 0.0;
6592 4 : param_b[H][4] = 1.0;
6593 :
6594 4 : param_a[C][0] = 2.31000;
6595 4 : param_b[C][0] = 20.8439;
6596 4 : param_c[C] = 0.215600;
6597 4 : param_a[C][1] = 1.02000;
6598 4 : param_b[C][1] = 10.2075;
6599 4 : param_v[C] = 16.44;
6600 4 : param_a[C][2] = 1.58860;
6601 4 : param_b[C][2] = 0.56870;
6602 4 : param_a[C][3] = 0.86500;
6603 4 : param_b[C][3] = 51.6512;
6604 4 : param_a[C][4] = 0.0;
6605 4 : param_b[C][4] = 1.0;
6606 :
6607 4 : param_a[N][0] = 12.2126;
6608 4 : param_b[N][0] = 0.00570;
6609 4 : param_c[N] = -11.529;
6610 4 : param_a[N][1] = 3.13220;
6611 4 : param_b[N][1] = 9.89330;
6612 4 : param_v[N] = 2.49;
6613 4 : param_a[N][2] = 2.01250;
6614 4 : param_b[N][2] = 28.9975;
6615 4 : param_a[N][3] = 1.16630;
6616 4 : param_b[N][3] = 0.58260;
6617 4 : param_a[N][4] = 0.0;
6618 4 : param_b[N][4] = 1.0;
6619 :
6620 4 : param_a[O][0] = 3.04850;
6621 4 : param_b[O][0] = 13.2771;
6622 4 : param_c[O] = 0.250800 ;
6623 4 : param_a[O][1] = 2.28680;
6624 4 : param_b[O][1] = 5.70110;
6625 4 : param_v[O] = 9.13;
6626 4 : param_a[O][2] = 1.54630;
6627 4 : param_b[O][2] = 0.32390;
6628 4 : param_a[O][3] = 0.86700;
6629 4 : param_b[O][3] = 32.9089;
6630 4 : param_a[O][4] = 0.0;
6631 4 : param_b[O][4] = 1.0;
6632 :
6633 4 : param_a[P][0] = 6.43450;
6634 4 : param_b[P][0] = 1.90670;
6635 4 : param_c[P] = 1.11490;
6636 4 : param_a[P][1] = 4.17910;
6637 4 : param_b[P][1] = 27.1570;
6638 4 : param_v[P] = 5.73;
6639 4 : param_a[P][2] = 1.78000;
6640 4 : param_b[P][2] = 0.52600;
6641 4 : param_a[P][3] = 1.49080;
6642 4 : param_b[P][3] = 68.1645;
6643 4 : param_a[P][4] = 0.0;
6644 4 : param_b[P][4] = 1.0;
6645 :
6646 4 : param_a[S][0] = 6.90530;
6647 4 : param_b[S][0] = 1.46790;
6648 4 : param_c[S] = 0.866900;
6649 4 : param_a[S][1] = 5.20340;
6650 4 : param_b[S][1] = 22.2151;
6651 4 : param_v[S] = 19.86;
6652 4 : param_a[S][2] = 1.43790;
6653 4 : param_b[S][2] = 0.25360;
6654 4 : param_a[S][3] = 1.58630;
6655 4 : param_b[S][3] = 56.1720;
6656 4 : param_a[S][4] = 0.0;
6657 4 : param_b[S][4] = 1.0;
6658 :
6659 4 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
6660 :
6661 : double Iq0=0.;
6662 4 : if( moldat ) {
6663 : // cycle over the atom types
6664 28 : for(unsigned i=0; i<NTT; ++i) {
6665 24 : const double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
6666 : // cycle over q
6667 240 : for(unsigned k=0; k<q_list.size(); ++k) {
6668 216 : const double q = q_list[k];
6669 216 : const double s = q / (4. * M_PI);
6670 216 : FF_tmp[k][i] = param_c[i];
6671 : // SUM [a_i * EXP( - b_i * (q/4pi)^2 )] Waasmaier and Kirfel (1995)
6672 1080 : for(unsigned j=0; j<4; ++j) {
6673 864 : FF_tmp[k][i] += param_a[i][j]*std::exp(-param_b[i][j]*s*s);
6674 : }
6675 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
6676 216 : FF_tmp[k][i] -= rho*param_v[i]*std::exp(-volr*q*q);
6677 : }
6678 : }
6679 : // cycle over the atoms to assign the atom type and calculate I0
6680 14298 : for(unsigned i=0; i<atoms.size(); ++i) {
6681 : // get atom name
6682 14294 : std::string name = moldat->getAtomName(atoms[i]);
6683 : char type;
6684 : // get atom type
6685 14294 : char first = name.at(0);
6686 : // GOLDEN RULE: type is first letter, if not a number
6687 14294 : if (!isdigit(first)) {
6688 : type = first;
6689 : // otherwise is the second
6690 : } else {
6691 0 : type = name.at(1);
6692 : }
6693 14294 : std::string type_s = std::string(1,type);
6694 14294 : if(AA_map.find(type_s) != AA_map.end()) {
6695 14294 : const unsigned index=AA_map[type_s];
6696 14294 : atoi[i] = AA_map[type_s];
6697 71470 : for(unsigned j=0; j<4; ++j) {
6698 57176 : Iq0 += param_a[index][j];
6699 : }
6700 14294 : Iq0 = Iq0 -rho*param_v[index] + param_c[index];
6701 : } else {
6702 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
6703 : }
6704 : }
6705 : } else {
6706 0 : error("MOLINFO DATA not found\n");
6707 : }
6708 :
6709 4 : return Iq0;
6710 4 : }
6711 :
6712 2 : double SAXS::calculateAFFsans(const std::vector<AtomNumber> &atoms, std::vector<std::vector<long double> > &FF_tmp, const double deuter_conc) {
6713 : std::map<std::string, unsigned> AA_map;
6714 2 : AA_map["H"] = H;
6715 2 : AA_map["C"] = C;
6716 2 : AA_map["N"] = N;
6717 2 : AA_map["O"] = O;
6718 2 : AA_map["P"] = P;
6719 2 : AA_map["S"] = S;
6720 :
6721 : std::vector<double> param_b;
6722 : std::vector<double> param_v;
6723 :
6724 2 : param_b.resize(NTT);
6725 2 : param_v.resize(NTT);
6726 :
6727 2 : param_b[H] = -0.374;
6728 2 : param_v[H] = 5.15;
6729 : // param_b[D] = 0.667;
6730 2 : param_b[C] = 0.665;
6731 2 : param_v[C] = 16.44;
6732 2 : param_b[N] = 0.94;
6733 2 : param_v[N] = 2.49;
6734 2 : param_b[O] = 0.580;
6735 2 : param_v[O] = 9.13;
6736 2 : param_b[P] = 0.51;
6737 2 : param_v[P] = 5.73;
6738 2 : param_b[S] = 0.28;
6739 2 : param_v[S] = 19.86;
6740 :
6741 2 : 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)
6742 :
6743 2 : auto* moldat=plumed.getActionSet().selectLatest<GenericMolInfo*>(this);
6744 :
6745 : double Iq0=0.;
6746 2 : if( moldat ) {
6747 : // cycle over the atom types
6748 14 : for(unsigned i=0; i<NTT; ++i) {
6749 12 : double volr = std::pow(param_v[i], (2.0/3.0)) /(4. * M_PI);
6750 : // cycle over q
6751 120 : for(unsigned k=0; k<q_list.size(); ++k) {
6752 108 : const double q = q_list[k];
6753 108 : FF_tmp[k][i] = param_b[i];
6754 : // subtract solvation: rho * v_i * EXP( (- v_i^(2/3) / (4pi)) * q^2 ) // since D in Fraser 1978 is 2*s
6755 108 : FF_tmp[k][i] -= solv_sc_length*rho*param_v[i]*std::exp(-volr*q*q);
6756 : }
6757 : }
6758 : // cycle over the atoms to assign the atom type and calculate I0
6759 6880 : for(unsigned i=0; i<atoms.size(); ++i) {
6760 : // get atom name
6761 6878 : std::string name = moldat->getAtomName(atoms[i]);
6762 : char type;
6763 : // get atom type
6764 6878 : char first = name.at(0);
6765 : // GOLDEN RULE: type is first letter, if not a number
6766 6878 : if (!isdigit(first)) {
6767 : type = first;
6768 : // otherwise is the second
6769 : } else {
6770 0 : type = name.at(1);
6771 : }
6772 6878 : std::string type_s = std::string(1,type);
6773 6878 : if(AA_map.find(type_s) != AA_map.end()) {
6774 6878 : const unsigned index=AA_map[type_s];
6775 6878 : atoi[i] = AA_map[type_s];
6776 6878 : Iq0 += param_b[index]-solv_sc_length*rho*param_v[index];
6777 : } else {
6778 0 : error("Wrong atom type "+type_s+" from atom name "+name+"\n");
6779 : }
6780 : }
6781 : } else {
6782 0 : error("MOLINFO DATA not found\n");
6783 : }
6784 :
6785 2 : return Iq0;
6786 : }
6787 :
6788 10 : std::map<std::string, std::vector<double> > SAXS::setupLCPOparam() {
6789 : std::map<std::string, std::vector<double> > lcpomap;
6790 :
6791 : // We arbitrarily set OC1/OT1 as the charged oxygen.
6792 :
6793 10 : lcpomap["ALA_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6794 10 : lcpomap["ALA_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6795 10 : lcpomap["ALA_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6796 10 : lcpomap["ALA_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6797 10 : lcpomap["ALA_CB"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
6798 10 : lcpomap["ALA_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6799 10 : lcpomap["ALA_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6800 10 : lcpomap["ALA_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6801 10 : lcpomap["ALA_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6802 10 : lcpomap["ALA_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6803 :
6804 10 : lcpomap["ASP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6805 10 : lcpomap["ASP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6806 10 : lcpomap["ASP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6807 10 : lcpomap["ASP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6808 10 : lcpomap["ASP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6809 10 : lcpomap["ASP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6810 10 : lcpomap["ASP_OD1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
6811 10 : lcpomap["ASP_OD2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
6812 10 : lcpomap["ASP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6813 10 : lcpomap["ASP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6814 10 : lcpomap["ASP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6815 10 : lcpomap["ASP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6816 10 : lcpomap["ASP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6817 :
6818 10 : lcpomap["ASN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6819 10 : lcpomap["ASN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6820 10 : lcpomap["ASN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6821 10 : lcpomap["ASN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6822 10 : lcpomap["ASN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6823 10 : lcpomap["ASN_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6824 10 : lcpomap["ASN_OD1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6825 10 : lcpomap["ASN_ND2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
6826 10 : lcpomap["ASN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6827 10 : lcpomap["ASN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6828 10 : lcpomap["ASN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6829 10 : lcpomap["ASN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6830 10 : lcpomap["ASN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6831 :
6832 10 : lcpomap["ARG_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6833 10 : lcpomap["ARG_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6834 10 : lcpomap["ARG_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6835 10 : lcpomap["ARG_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6836 10 : lcpomap["ARG_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6837 10 : lcpomap["ARG_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6838 10 : lcpomap["ARG_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6839 10 : lcpomap["ARG_NE"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6840 10 : lcpomap["ARG_NH1"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
6841 10 : lcpomap["ARG_NH2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
6842 10 : lcpomap["ARG_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6843 10 : lcpomap["ARG_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6844 10 : lcpomap["ARG_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6845 10 : lcpomap["ARG_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6846 10 : lcpomap["ARG_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6847 10 : lcpomap["ARG_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6848 :
6849 10 : lcpomap["CYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6850 10 : lcpomap["CYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6851 10 : lcpomap["CYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6852 10 : lcpomap["CYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6853 10 : lcpomap["CYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6854 10 : lcpomap["CYS_SG"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
6855 10 : lcpomap["CYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6856 10 : lcpomap["CYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6857 10 : lcpomap["CYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6858 10 : lcpomap["CYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6859 10 : lcpomap["CYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6860 :
6861 10 : lcpomap["GLU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6862 10 : lcpomap["GLU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6863 10 : lcpomap["GLU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6864 10 : lcpomap["GLU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6865 10 : lcpomap["GLU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6866 10 : lcpomap["GLU_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6867 10 : lcpomap["GLU_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6868 10 : lcpomap["GLU_OE1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
6869 10 : lcpomap["GLU_OE2"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
6870 10 : lcpomap["GLU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6871 10 : lcpomap["GLU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6872 10 : lcpomap["GLU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6873 10 : lcpomap["GLU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6874 10 : lcpomap["GLU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6875 :
6876 10 : lcpomap["GLN_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6877 10 : lcpomap["GLN_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6878 10 : lcpomap["GLN_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6879 10 : lcpomap["GLN_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6880 10 : lcpomap["GLN_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6881 10 : lcpomap["GLN_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6882 10 : lcpomap["GLN_CD"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6883 10 : lcpomap["GLN_OE1"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6884 10 : lcpomap["GLN_NE2"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
6885 10 : lcpomap["GLN_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6886 10 : lcpomap["GLN_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6887 10 : lcpomap["GLN_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6888 10 : lcpomap["GLN_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6889 10 : lcpomap["GLN_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6890 :
6891 10 : lcpomap["GLY_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6892 10 : lcpomap["GLY_CA"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6893 10 : lcpomap["GLY_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6894 10 : lcpomap["GLY_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6895 10 : lcpomap["GLY_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6896 10 : lcpomap["GLY_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6897 10 : lcpomap["GLY_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6898 10 : lcpomap["GLY_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6899 10 : lcpomap["GLY_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6900 :
6901 10 : lcpomap["HIS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6902 10 : lcpomap["HIS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6903 10 : lcpomap["HIS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6904 10 : lcpomap["HIS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6905 10 : lcpomap["HIS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6906 10 : lcpomap["HIS_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6907 10 : lcpomap["HIS_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6908 10 : lcpomap["HIS_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6909 10 : lcpomap["HIS_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6910 10 : lcpomap["HIS_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6911 10 : lcpomap["HIS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6912 10 : lcpomap["HIS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6913 10 : lcpomap["HIS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6914 :
6915 10 : lcpomap["HIE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6916 10 : lcpomap["HIE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6917 10 : lcpomap["HIE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6918 10 : lcpomap["HIE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6919 10 : lcpomap["HIE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6920 10 : lcpomap["HIE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6921 10 : lcpomap["HIE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6922 10 : lcpomap["HIE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6923 10 : lcpomap["HIE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6924 10 : lcpomap["HIE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6925 10 : lcpomap["HIE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6926 10 : lcpomap["HIE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6927 10 : lcpomap["HIE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6928 :
6929 10 : lcpomap["HSE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6930 10 : lcpomap["HSE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6931 10 : lcpomap["HSE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6932 10 : lcpomap["HSE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6933 10 : lcpomap["HSE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6934 10 : lcpomap["HSE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6935 10 : lcpomap["HSE_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6936 10 : lcpomap["HSE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6937 10 : lcpomap["HSE_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6938 10 : lcpomap["HSE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6939 10 : lcpomap["HSE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6940 10 : lcpomap["HSE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6941 10 : lcpomap["HSE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6942 :
6943 10 : lcpomap["HID_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6944 10 : lcpomap["HID_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6945 10 : lcpomap["HID_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6946 10 : lcpomap["HID_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6947 10 : lcpomap["HID_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6948 10 : lcpomap["HID_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6949 10 : lcpomap["HID_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6950 10 : lcpomap["HID_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6951 10 : lcpomap["HID_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6952 10 : lcpomap["HID_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6953 10 : lcpomap["HID_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6954 10 : lcpomap["HID_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6955 10 : lcpomap["HID_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6956 :
6957 10 : lcpomap["HSD_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6958 10 : lcpomap["HSD_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6959 10 : lcpomap["HSD_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6960 10 : lcpomap["HSD_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6961 10 : lcpomap["HSD_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6962 10 : lcpomap["HSD_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6963 10 : lcpomap["HSD_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6964 10 : lcpomap["HSD_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6965 10 : lcpomap["HSD_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6966 10 : lcpomap["HSD_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6967 10 : lcpomap["HSD_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6968 10 : lcpomap["HSD_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6969 10 : lcpomap["HSD_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6970 :
6971 10 : lcpomap["HIP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6972 10 : lcpomap["HIP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6973 10 : lcpomap["HIP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6974 10 : lcpomap["HIP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6975 10 : lcpomap["HIP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6976 10 : lcpomap["HIP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6977 10 : lcpomap["HIP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6978 10 : lcpomap["HIP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6979 10 : lcpomap["HIP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6980 10 : lcpomap["HIP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6981 10 : lcpomap["HIP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6982 10 : lcpomap["HIP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6983 10 : lcpomap["HIP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6984 :
6985 10 : lcpomap["HSP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6986 10 : lcpomap["HSP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
6987 10 : lcpomap["HSP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6988 10 : lcpomap["HSP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6989 10 : lcpomap["HSP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
6990 10 : lcpomap["HSP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
6991 10 : lcpomap["HSP_ND1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6992 10 : lcpomap["HSP_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6993 10 : lcpomap["HSP_NE2"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
6994 10 : lcpomap["HSP_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
6995 10 : lcpomap["HSP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6996 10 : lcpomap["HSP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
6997 10 : lcpomap["HSP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
6998 :
6999 10 : lcpomap["ILE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7000 10 : lcpomap["ILE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7001 10 : lcpomap["ILE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7002 10 : lcpomap["ILE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7003 10 : lcpomap["ILE_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7004 10 : lcpomap["ILE_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7005 10 : lcpomap["ILE_CG1"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7006 10 : lcpomap["ILE_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7007 10 : lcpomap["ILE_CD"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7008 10 : lcpomap["ILE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7009 10 : lcpomap["ILE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7010 10 : lcpomap["ILE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7011 10 : lcpomap["ILE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7012 10 : lcpomap["ILE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7013 :
7014 10 : lcpomap["LEU_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7015 10 : lcpomap["LEU_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7016 10 : lcpomap["LEU_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7017 10 : lcpomap["LEU_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7018 10 : lcpomap["LEU_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7019 10 : lcpomap["LEU_CG"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7020 10 : lcpomap["LEU_CD1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7021 10 : lcpomap["LEU_CD2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7022 10 : lcpomap["LEU_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7023 10 : lcpomap["LEU_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7024 10 : lcpomap["LEU_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7025 10 : lcpomap["LEU_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7026 10 : lcpomap["LEU_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7027 :
7028 10 : lcpomap["LYS_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7029 10 : lcpomap["LYS_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7030 10 : lcpomap["LYS_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7031 10 : lcpomap["LYS_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7032 10 : lcpomap["LYS_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7033 10 : lcpomap["LYS_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7034 10 : lcpomap["LYS_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7035 10 : lcpomap["LYS_CE"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7036 10 : lcpomap["LYS_NZ"] = { 1.65, 0.73511, -0.22116, -0.00089148, 0.0002523};
7037 10 : lcpomap["LYS_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7038 10 : lcpomap["LYS_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7039 10 : lcpomap["LYS_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7040 10 : lcpomap["LYS_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7041 10 : lcpomap["LYS_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7042 :
7043 10 : lcpomap["MET_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7044 10 : lcpomap["MET_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7045 10 : lcpomap["MET_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7046 10 : lcpomap["MET_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7047 10 : lcpomap["MET_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7048 10 : lcpomap["MET_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7049 10 : lcpomap["MET_SD"] = { 1.9, 0.54581, -0.19477, -0.0012873, 0.00029247};
7050 10 : lcpomap["MET_CE"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7051 10 : lcpomap["MET_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7052 10 : lcpomap["MET_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7053 10 : lcpomap["MET_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7054 10 : lcpomap["MET_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7055 10 : lcpomap["MET_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7056 :
7057 10 : lcpomap["PHE_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7058 10 : lcpomap["PHE_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7059 10 : lcpomap["PHE_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7060 10 : lcpomap["PHE_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7061 10 : lcpomap["PHE_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7062 10 : lcpomap["PHE_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7063 10 : lcpomap["PHE_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7064 10 : lcpomap["PHE_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7065 10 : lcpomap["PHE_CZ"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7066 10 : lcpomap["PHE_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7067 10 : lcpomap["PHE_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7068 10 : lcpomap["PHE_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7069 10 : lcpomap["PHE_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7070 10 : lcpomap["PHE_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7071 10 : lcpomap["PHE_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7072 10 : lcpomap["PHE_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7073 :
7074 10 : lcpomap["PRO_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7075 10 : lcpomap["PRO_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7076 10 : lcpomap["PRO_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7077 10 : lcpomap["PRO_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7078 10 : lcpomap["PRO_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7079 10 : lcpomap["PRO_CG"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7080 10 : lcpomap["PRO_CD"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7081 10 : lcpomap["PRO_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7082 10 : lcpomap["PRO_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7083 10 : lcpomap["PRO_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7084 10 : lcpomap["PRO_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7085 10 : lcpomap["PRO_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7086 :
7087 10 : lcpomap["SER_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7088 10 : lcpomap["SER_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7089 10 : lcpomap["SER_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7090 10 : lcpomap["SER_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7091 10 : lcpomap["SER_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7092 10 : lcpomap["SER_OG"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7093 10 : lcpomap["SER_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7094 10 : lcpomap["SER_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7095 10 : lcpomap["SER_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7096 10 : lcpomap["SER_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7097 10 : lcpomap["SER_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7098 :
7099 10 : lcpomap["THR_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7100 10 : lcpomap["THR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7101 10 : lcpomap["THR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7102 10 : lcpomap["THR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7103 10 : lcpomap["THR_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7104 10 : lcpomap["THR_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7105 10 : lcpomap["THR_OG1"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7106 10 : lcpomap["THR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7107 10 : lcpomap["THR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7108 10 : lcpomap["THR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7109 10 : lcpomap["THR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7110 10 : lcpomap["THR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7111 :
7112 10 : lcpomap["TRP_N"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7113 10 : lcpomap["TRP_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7114 10 : lcpomap["TRP_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7115 10 : lcpomap["TRP_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7116 10 : lcpomap["TRP_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7117 10 : lcpomap["TRP_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7118 10 : lcpomap["TRP_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7119 10 : lcpomap["TRP_NE1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 0.00011804};
7120 10 : lcpomap["TRP_CE2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7121 10 : lcpomap["TRP_CZ2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7122 10 : lcpomap["TRP_CH2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7123 10 : lcpomap["TRP_CZ3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7124 10 : lcpomap["TRP_CE3"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7125 10 : lcpomap["TRP_CD2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7126 10 : lcpomap["TRP_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7127 10 : lcpomap["TRP_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7128 10 : lcpomap["TRP_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7129 10 : lcpomap["TRP_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7130 10 : lcpomap["TRP_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7131 :
7132 10 : lcpomap["TYR_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
7133 10 : lcpomap["TYR_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7134 10 : lcpomap["TYR_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7135 10 : lcpomap["TYR_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7136 10 : lcpomap["TYR_CB"] = { 1.7, 0.56482, -0.19608, -0.0010219, 0.0002658};
7137 10 : lcpomap["TYR_CG"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7138 10 : lcpomap["TYR_CD1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7139 10 : lcpomap["TYR_CE1"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7140 10 : lcpomap["TYR_CZ"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7141 10 : lcpomap["TYR_OH"] = { 1.6, 0.77914, -0.25262, -0.0016056, 0.00035071};
7142 10 : lcpomap["TYR_CE2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7143 10 : lcpomap["TYR_CD2"] = { 1.7, 0.51245, -0.15966, -0.00019781, 0.00016392};
7144 10 : lcpomap["TYR_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7145 10 : lcpomap["TYR_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7146 10 : lcpomap["TYR_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7147 10 : lcpomap["TYR_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7148 10 : lcpomap["TYR_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7149 :
7150 10 : lcpomap["VAL_N"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05};
7151 10 : lcpomap["VAL_CA"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7152 10 : lcpomap["VAL_C"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05};
7153 10 : lcpomap["VAL_O"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7154 10 : lcpomap["VAL_CB"] = { 1.7, 0.23348, -0.072627, -0.00020079, 7.967e-05};
7155 10 : lcpomap["VAL_CG1"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7156 10 : lcpomap["VAL_CG2"] = { 1.7, 0.77887, -0.28063, -0.0012968, 0.00039328};
7157 10 : lcpomap["VAL_OC1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7158 10 : lcpomap["VAL_OC2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7159 10 : lcpomap["VAL_OT1"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7160 10 : lcpomap["VAL_OT2"] = { 1.6, 0.68563, -0.1868, -0.00135573, 0.00023743};
7161 10 : lcpomap["VAL_OXT"] = { 1.6, 0.88857, -0.33421, -0.0018683, 0.00049372};
7162 :
7163 : // nucleic acids - WARNING: ONLY AMBER (OL3-rna/ol15-dna) FORMAT
7164 :
7165 10 : lcpomap["A3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7166 10 : lcpomap["A3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7167 10 : lcpomap["A3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7168 10 : lcpomap["A3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7169 10 : lcpomap["A3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7170 10 : lcpomap["A3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7171 10 : lcpomap["A3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7172 10 : lcpomap["A3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7173 10 : lcpomap["A3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7174 10 : lcpomap["A3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7175 10 : lcpomap["A3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7176 10 : lcpomap["A3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7177 10 : lcpomap["A3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7178 10 : lcpomap["A3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7179 10 : lcpomap["A3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7180 10 : lcpomap["A3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7181 10 : lcpomap["A3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7182 10 : lcpomap["A3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7183 10 : lcpomap["A3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7184 10 : lcpomap["A3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7185 10 : lcpomap["A3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7186 10 : lcpomap["A3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7187 10 : lcpomap["A3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7188 10 : lcpomap["A3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7189 10 : lcpomap["A3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7190 10 : lcpomap["A3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7191 :
7192 10 : lcpomap["A5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7193 10 : lcpomap["A5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7194 10 : lcpomap["A5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7195 10 : lcpomap["A5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7196 10 : lcpomap["A5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7197 10 : lcpomap["A5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7198 10 : lcpomap["A5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7199 10 : lcpomap["A5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7200 10 : lcpomap["A5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7201 10 : lcpomap["A5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7202 10 : lcpomap["A5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7203 10 : lcpomap["A5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7204 10 : lcpomap["A5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7205 10 : lcpomap["A5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7206 10 : lcpomap["A5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7207 10 : lcpomap["A5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7208 10 : lcpomap["A5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7209 10 : lcpomap["A5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7210 10 : lcpomap["A5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7211 10 : lcpomap["A5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7212 10 : lcpomap["A5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7213 10 : lcpomap["A5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7214 10 : lcpomap["A5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7215 10 : lcpomap["A5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7216 10 : lcpomap["A5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7217 10 : lcpomap["A5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7218 :
7219 10 : lcpomap["A_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7220 10 : lcpomap["A_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7221 10 : lcpomap["A_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7222 10 : lcpomap["A_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7223 10 : lcpomap["A_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7224 10 : lcpomap["A_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7225 10 : lcpomap["A_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7226 10 : lcpomap["A_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7227 10 : lcpomap["A_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7228 10 : lcpomap["A_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7229 10 : lcpomap["A_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7230 10 : lcpomap["A_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7231 10 : lcpomap["A_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7232 10 : lcpomap["A_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7233 10 : lcpomap["A_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7234 10 : lcpomap["A_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7235 10 : lcpomap["A_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7236 10 : lcpomap["A_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7237 10 : lcpomap["A_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7238 10 : lcpomap["A_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7239 10 : lcpomap["A_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7240 10 : lcpomap["A_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7241 10 : lcpomap["A_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7242 10 : lcpomap["A_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7243 10 : lcpomap["A_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7244 10 : lcpomap["A_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7245 :
7246 10 : lcpomap["C3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7247 10 : lcpomap["C3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7248 10 : lcpomap["C3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7249 10 : lcpomap["C3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7250 10 : lcpomap["C3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7251 10 : lcpomap["C3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7252 10 : lcpomap["C3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7253 10 : lcpomap["C3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7254 10 : lcpomap["C3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7255 10 : lcpomap["C3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7256 10 : lcpomap["C3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7257 10 : lcpomap["C3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7258 10 : lcpomap["C3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7259 10 : lcpomap["C3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7260 10 : lcpomap["C3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7261 10 : lcpomap["C3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7262 10 : lcpomap["C3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7263 10 : lcpomap["C3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7264 10 : lcpomap["C3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7265 10 : lcpomap["C3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7266 10 : lcpomap["C3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7267 10 : lcpomap["C3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7268 10 : lcpomap["C3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7269 10 : lcpomap["C3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7270 :
7271 10 : lcpomap["C5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7272 10 : lcpomap["C5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7273 10 : lcpomap["C5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7274 10 : lcpomap["C5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7275 10 : lcpomap["C5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7276 10 : lcpomap["C5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7277 10 : lcpomap["C5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7278 10 : lcpomap["C5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7279 10 : lcpomap["C5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7280 10 : lcpomap["C5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7281 10 : lcpomap["C5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7282 10 : lcpomap["C5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7283 10 : lcpomap["C5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7284 10 : lcpomap["C5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7285 10 : lcpomap["C5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7286 10 : lcpomap["C5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7287 10 : lcpomap["C5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7288 10 : lcpomap["C5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7289 10 : lcpomap["C5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7290 10 : lcpomap["C5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7291 10 : lcpomap["C5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7292 10 : lcpomap["C5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7293 10 : lcpomap["C5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7294 10 : lcpomap["C5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7295 :
7296 10 : lcpomap["C_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7297 10 : lcpomap["C_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7298 10 : lcpomap["C_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7299 10 : lcpomap["C_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7300 10 : lcpomap["C_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7301 10 : lcpomap["C_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7302 10 : lcpomap["C_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7303 10 : lcpomap["C_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7304 10 : lcpomap["C_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7305 10 : lcpomap["C_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7306 10 : lcpomap["C_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7307 10 : lcpomap["C_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7308 10 : lcpomap["C_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7309 10 : lcpomap["C_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7310 10 : lcpomap["C_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7311 10 : lcpomap["C_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7312 10 : lcpomap["C_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7313 10 : lcpomap["C_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7314 10 : lcpomap["C_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7315 10 : lcpomap["C_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7316 10 : lcpomap["C_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7317 10 : lcpomap["C_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7318 10 : lcpomap["C_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7319 10 : lcpomap["C_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7320 :
7321 10 : lcpomap["DA3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7322 10 : lcpomap["DA3_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7323 10 : lcpomap["DA3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7324 10 : lcpomap["DA3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7325 10 : lcpomap["DA3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7326 10 : lcpomap["DA3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7327 10 : lcpomap["DA3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7328 10 : lcpomap["DA3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7329 10 : lcpomap["DA3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7330 10 : lcpomap["DA3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7331 10 : lcpomap["DA3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7332 10 : lcpomap["DA3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7333 10 : lcpomap["DA3_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7334 10 : lcpomap["DA3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7335 10 : lcpomap["DA3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7336 10 : lcpomap["DA3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7337 10 : lcpomap["DA3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7338 10 : lcpomap["DA3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7339 10 : lcpomap["DA3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7340 10 : lcpomap["DA3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7341 10 : lcpomap["DA3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7342 10 : lcpomap["DA3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7343 10 : lcpomap["DA3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7344 10 : lcpomap["DA3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7345 10 : lcpomap["DA3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7346 :
7347 10 : lcpomap["DA5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7348 10 : lcpomap["DA5_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7349 10 : lcpomap["DA5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7350 10 : lcpomap["DA5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7351 10 : lcpomap["DA5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7352 10 : lcpomap["DA5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7353 10 : lcpomap["DA5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7354 10 : lcpomap["DA5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7355 10 : lcpomap["DA5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7356 10 : lcpomap["DA5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7357 10 : lcpomap["DA5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7358 10 : lcpomap["DA5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7359 10 : lcpomap["DA5_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7360 10 : lcpomap["DA5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7361 10 : lcpomap["DA5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7362 10 : lcpomap["DA5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7363 10 : lcpomap["DA5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7364 10 : lcpomap["DA5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7365 10 : lcpomap["DA5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7366 10 : lcpomap["DA5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7367 10 : lcpomap["DA5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7368 10 : lcpomap["DA5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7369 10 : lcpomap["DA5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7370 10 : lcpomap["DA5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7371 10 : lcpomap["DA5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7372 :
7373 10 : lcpomap["DA_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7374 10 : lcpomap["DA_C2"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7375 10 : lcpomap["DA_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7376 10 : lcpomap["DA_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7377 10 : lcpomap["DA_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7378 10 : lcpomap["DA_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7379 10 : lcpomap["DA_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7380 10 : lcpomap["DA_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7381 10 : lcpomap["DA_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7382 10 : lcpomap["DA_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7383 10 : lcpomap["DA_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7384 10 : lcpomap["DA_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7385 10 : lcpomap["DA_N6"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7386 10 : lcpomap["DA_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7387 10 : lcpomap["DA_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7388 10 : lcpomap["DA_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7389 10 : lcpomap["DA_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7390 10 : lcpomap["DA_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7391 10 : lcpomap["DA_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7392 10 : lcpomap["DA_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7393 10 : lcpomap["DA_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7394 10 : lcpomap["DA_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7395 10 : lcpomap["DA_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7396 10 : lcpomap["DA_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7397 10 : lcpomap["DA_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7398 :
7399 10 : lcpomap["DC3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7400 10 : lcpomap["DC3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7401 10 : lcpomap["DC3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7402 10 : lcpomap["DC3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7403 10 : lcpomap["DC3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7404 10 : lcpomap["DC3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7405 10 : lcpomap["DC3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7406 10 : lcpomap["DC3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7407 10 : lcpomap["DC3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7408 10 : lcpomap["DC3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7409 10 : lcpomap["DC3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7410 10 : lcpomap["DC3_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7411 10 : lcpomap["DC3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7412 10 : lcpomap["DC3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7413 10 : lcpomap["DC3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7414 10 : lcpomap["DC3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7415 10 : lcpomap["DC3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7416 10 : lcpomap["DC3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7417 10 : lcpomap["DC3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7418 10 : lcpomap["DC3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7419 10 : lcpomap["DC3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7420 10 : lcpomap["DC3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7421 10 : lcpomap["DC3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7422 :
7423 10 : lcpomap["DC5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7424 10 : lcpomap["DC5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7425 10 : lcpomap["DC5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7426 10 : lcpomap["DC5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7427 10 : lcpomap["DC5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7428 10 : lcpomap["DC5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7429 10 : lcpomap["DC5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7430 10 : lcpomap["DC5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7431 10 : lcpomap["DC5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7432 10 : lcpomap["DC5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7433 10 : lcpomap["DC5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7434 10 : lcpomap["DC5_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7435 10 : lcpomap["DC5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7436 10 : lcpomap["DC5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7437 10 : lcpomap["DC5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7438 10 : lcpomap["DC5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7439 10 : lcpomap["DC5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7440 10 : lcpomap["DC5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7441 10 : lcpomap["DC5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7442 10 : lcpomap["DC5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7443 10 : lcpomap["DC5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7444 10 : lcpomap["DC5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7445 10 : lcpomap["DC5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7446 :
7447 10 : lcpomap["DC_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7448 10 : lcpomap["DC_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7449 10 : lcpomap["DC_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7450 10 : lcpomap["DC_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7451 10 : lcpomap["DC_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7452 10 : lcpomap["DC_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7453 10 : lcpomap["DC_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7454 10 : lcpomap["DC_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7455 10 : lcpomap["DC_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7456 10 : lcpomap["DC_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7457 10 : lcpomap["DC_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7458 10 : lcpomap["DC_N4"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7459 10 : lcpomap["DC_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7460 10 : lcpomap["DC_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7461 10 : lcpomap["DC_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7462 10 : lcpomap["DC_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7463 10 : lcpomap["DC_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7464 10 : lcpomap["DC_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7465 10 : lcpomap["DC_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7466 10 : lcpomap["DC_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7467 10 : lcpomap["DC_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7468 10 : lcpomap["DC_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7469 10 : lcpomap["DC_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7470 :
7471 10 : lcpomap["DG3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7472 10 : lcpomap["DG3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7473 10 : lcpomap["DG3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7474 10 : lcpomap["DG3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7475 10 : lcpomap["DG3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7476 10 : lcpomap["DG3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7477 10 : lcpomap["DG3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7478 10 : lcpomap["DG3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7479 10 : lcpomap["DG3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7480 10 : lcpomap["DG3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7481 10 : lcpomap["DG3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7482 10 : lcpomap["DG3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7483 10 : lcpomap["DG3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7484 10 : lcpomap["DG3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7485 10 : lcpomap["DG3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7486 10 : lcpomap["DG3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7487 10 : lcpomap["DG3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7488 10 : lcpomap["DG3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7489 10 : lcpomap["DG3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7490 10 : lcpomap["DG3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7491 10 : lcpomap["DG3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7492 10 : lcpomap["DG3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7493 10 : lcpomap["DG3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7494 10 : lcpomap["DG3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7495 10 : lcpomap["DG3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7496 10 : lcpomap["DG3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7497 :
7498 10 : lcpomap["DG5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7499 10 : lcpomap["DG5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7500 10 : lcpomap["DG5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7501 10 : lcpomap["DG5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7502 10 : lcpomap["DG5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7503 10 : lcpomap["DG5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7504 10 : lcpomap["DG5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7505 10 : lcpomap["DG5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7506 10 : lcpomap["DG5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7507 10 : lcpomap["DG5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7508 10 : lcpomap["DG5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7509 10 : lcpomap["DG5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7510 10 : lcpomap["DG5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7511 10 : lcpomap["DG5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7512 10 : lcpomap["DG5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7513 10 : lcpomap["DG5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7514 10 : lcpomap["DG5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7515 10 : lcpomap["DG5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7516 10 : lcpomap["DG5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7517 10 : lcpomap["DG5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7518 10 : lcpomap["DG5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7519 10 : lcpomap["DG5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7520 10 : lcpomap["DG5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7521 10 : lcpomap["DG5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7522 10 : lcpomap["DG5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7523 10 : lcpomap["DG5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7524 :
7525 10 : lcpomap["DG_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7526 10 : lcpomap["DG_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7527 10 : lcpomap["DG_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7528 10 : lcpomap["DG_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7529 10 : lcpomap["DG_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7530 10 : lcpomap["DG_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7531 10 : lcpomap["DG_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7532 10 : lcpomap["DG_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7533 10 : lcpomap["DG_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7534 10 : lcpomap["DG_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7535 10 : lcpomap["DG_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7536 10 : lcpomap["DG_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7537 10 : lcpomap["DG_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7538 10 : lcpomap["DG_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7539 10 : lcpomap["DG_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7540 10 : lcpomap["DG_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7541 10 : lcpomap["DG_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7542 10 : lcpomap["DG_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7543 10 : lcpomap["DG_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7544 10 : lcpomap["DG_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7545 10 : lcpomap["DG_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7546 10 : lcpomap["DG_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7547 10 : lcpomap["DG_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7548 10 : lcpomap["DG_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7549 10 : lcpomap["DG_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7550 10 : lcpomap["DG_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7551 :
7552 10 : lcpomap["DT3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7553 10 : lcpomap["DT3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7554 10 : lcpomap["DT3_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7555 10 : lcpomap["DT3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7556 10 : lcpomap["DT3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7557 10 : lcpomap["DT3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7558 10 : lcpomap["DT3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7559 10 : lcpomap["DT3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7560 10 : lcpomap["DT3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7561 10 : lcpomap["DT3_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
7562 10 : lcpomap["DT3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7563 10 : lcpomap["DT3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7564 10 : lcpomap["DT3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7565 10 : lcpomap["DT3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7566 10 : lcpomap["DT3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7567 10 : lcpomap["DT3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7568 10 : lcpomap["DT3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7569 10 : lcpomap["DT3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7570 10 : lcpomap["DT3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7571 10 : lcpomap["DT3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7572 10 : lcpomap["DT3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7573 10 : lcpomap["DT3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7574 10 : lcpomap["DT3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7575 10 : lcpomap["DT3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7576 :
7577 10 : lcpomap["DT5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7578 10 : lcpomap["DT5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7579 10 : lcpomap["DT5_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7580 10 : lcpomap["DT5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7581 10 : lcpomap["DT5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7582 10 : lcpomap["DT5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7583 10 : lcpomap["DT5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7584 10 : lcpomap["DT5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7585 10 : lcpomap["DT5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7586 10 : lcpomap["DT5_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
7587 10 : lcpomap["DT5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7588 10 : lcpomap["DT5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7589 10 : lcpomap["DT5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7590 10 : lcpomap["DT5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7591 10 : lcpomap["DT5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7592 10 : lcpomap["DT5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7593 10 : lcpomap["DT5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7594 10 : lcpomap["DT5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7595 10 : lcpomap["DT5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7596 10 : lcpomap["DT5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7597 10 : lcpomap["DT5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7598 10 : lcpomap["DT5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7599 10 : lcpomap["DT5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7600 10 : lcpomap["DT5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7601 :
7602 10 : lcpomap["DT_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7603 10 : lcpomap["DT_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7604 10 : lcpomap["DT_C2'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7605 10 : lcpomap["DT_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7606 10 : lcpomap["DT_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7607 10 : lcpomap["DT_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7608 10 : lcpomap["DT_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7609 10 : lcpomap["DT_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7610 10 : lcpomap["DT_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7611 10 : lcpomap["DT_C7"] = { 1.7, 0.77887, -0.28063, -1.2968e-03, 3.9328e-04 };
7612 10 : lcpomap["DT_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7613 10 : lcpomap["DT_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7614 10 : lcpomap["DT_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7615 10 : lcpomap["DT_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7616 10 : lcpomap["DT_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7617 10 : lcpomap["DT_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7618 10 : lcpomap["DT_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7619 10 : lcpomap["DT_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7620 10 : lcpomap["DT_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7621 10 : lcpomap["DT_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7622 10 : lcpomap["DT_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7623 10 : lcpomap["DT_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7624 10 : lcpomap["DT_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7625 10 : lcpomap["DT_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7626 :
7627 10 : lcpomap["G3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7628 10 : lcpomap["G3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7629 10 : lcpomap["G3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7630 10 : lcpomap["G3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7631 10 : lcpomap["G3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7632 10 : lcpomap["G3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7633 10 : lcpomap["G3_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7634 10 : lcpomap["G3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7635 10 : lcpomap["G3_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7636 10 : lcpomap["G3_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7637 10 : lcpomap["G3_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7638 10 : lcpomap["G3_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7639 10 : lcpomap["G3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7640 10 : lcpomap["G3_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7641 10 : lcpomap["G3_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7642 10 : lcpomap["G3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7643 10 : lcpomap["G3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7644 10 : lcpomap["G3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7645 10 : lcpomap["G3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7646 10 : lcpomap["G3_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7647 10 : lcpomap["G3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7648 10 : lcpomap["G3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7649 10 : lcpomap["G3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7650 10 : lcpomap["G3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7651 10 : lcpomap["G3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7652 10 : lcpomap["G3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7653 10 : lcpomap["G3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7654 :
7655 10 : lcpomap["G5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7656 10 : lcpomap["G5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7657 10 : lcpomap["G5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7658 10 : lcpomap["G5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7659 10 : lcpomap["G5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7660 10 : lcpomap["G5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7661 10 : lcpomap["G5_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7662 10 : lcpomap["G5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7663 10 : lcpomap["G5_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7664 10 : lcpomap["G5_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7665 10 : lcpomap["G5_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7666 10 : lcpomap["G5_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7667 10 : lcpomap["G5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7668 10 : lcpomap["G5_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7669 10 : lcpomap["G5_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7670 10 : lcpomap["G5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7671 10 : lcpomap["G5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7672 10 : lcpomap["G5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7673 10 : lcpomap["G5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7674 10 : lcpomap["G5_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7675 10 : lcpomap["G5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7676 10 : lcpomap["G5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7677 10 : lcpomap["G5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7678 10 : lcpomap["G5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7679 10 : lcpomap["G5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7680 10 : lcpomap["G5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7681 10 : lcpomap["G5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7682 :
7683 10 : lcpomap["G_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7684 10 : lcpomap["G_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7685 10 : lcpomap["G_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7686 10 : lcpomap["G_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7687 10 : lcpomap["G_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7688 10 : lcpomap["G_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7689 10 : lcpomap["G_C5"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7690 10 : lcpomap["G_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7691 10 : lcpomap["G_C6"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7692 10 : lcpomap["G_C8"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7693 10 : lcpomap["G_N1"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7694 10 : lcpomap["G_N2"] = { 1.65, 0.73511, -0.22116, -8.9148e-04, 2.523e-04 };
7695 10 : lcpomap["G_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7696 10 : lcpomap["G_N7"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7697 10 : lcpomap["G_N9"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7698 10 : lcpomap["G_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7699 10 : lcpomap["G_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7700 10 : lcpomap["G_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7701 10 : lcpomap["G_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7702 10 : lcpomap["G_O6"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7703 10 : lcpomap["G_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7704 10 : lcpomap["G_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7705 10 : lcpomap["G_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7706 10 : lcpomap["G_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7707 10 : lcpomap["G_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7708 10 : lcpomap["G_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7709 10 : lcpomap["G_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7710 :
7711 10 : lcpomap["U3_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7712 10 : lcpomap["U3_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7713 10 : lcpomap["U3_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7714 10 : lcpomap["U3_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7715 10 : lcpomap["U3_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7716 10 : lcpomap["U3_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7717 10 : lcpomap["U3_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7718 10 : lcpomap["U3_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7719 10 : lcpomap["U3_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7720 10 : lcpomap["U3_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7721 10 : lcpomap["U3_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7722 10 : lcpomap["U3_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7723 10 : lcpomap["U3_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7724 10 : lcpomap["U3_O3'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7725 10 : lcpomap["U3_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7726 10 : lcpomap["U3_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7727 10 : lcpomap["U3_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7728 10 : lcpomap["U3_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7729 10 : lcpomap["U3_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7730 10 : lcpomap["U3_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7731 10 : lcpomap["U3_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7732 10 : lcpomap["U3_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7733 10 : lcpomap["U3_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7734 10 : lcpomap["U3_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7735 :
7736 10 : lcpomap["U5_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7737 10 : lcpomap["U5_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7738 10 : lcpomap["U5_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7739 10 : lcpomap["U5_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7740 10 : lcpomap["U5_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7741 10 : lcpomap["U5_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7742 10 : lcpomap["U5_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7743 10 : lcpomap["U5_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7744 10 : lcpomap["U5_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7745 10 : lcpomap["U5_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7746 10 : lcpomap["U5_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7747 10 : lcpomap["U5_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7748 10 : lcpomap["U5_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7749 10 : lcpomap["U5_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7750 10 : lcpomap["U5_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7751 10 : lcpomap["U5_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7752 10 : lcpomap["U5_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7753 10 : lcpomap["U5_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7754 10 : lcpomap["U5_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7755 10 : lcpomap["U5_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7756 10 : lcpomap["U5_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7757 10 : lcpomap["U5_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7758 10 : lcpomap["U5_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7759 10 : lcpomap["U5_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7760 :
7761 10 : lcpomap["U_C1'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7762 10 : lcpomap["U_C2"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7763 10 : lcpomap["U_C2'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7764 10 : lcpomap["U_C3'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7765 10 : lcpomap["U_C4"] = { 1.7, 0.070344, -0.019015, -2.2009e-05, 1.6875e-05 };
7766 10 : lcpomap["U_C4'"] = { 1.7, 0.23348, -0.072627, -2.0079e-04, 7.967e-05 };
7767 10 : lcpomap["U_C5"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7768 10 : lcpomap["U_C5'"] = { 1.7, 0.56482, -0.19608, -1.0219e-03, 2.658e-04 };
7769 10 : lcpomap["U_C6"] = { 1.7, 0.51245, -0.15966, -1.9781e-04, 1.6392e-04 };
7770 10 : lcpomap["U_N1"] = { 1.65, 0.062577, -0.017874, -8.312e-05, 1.9849e-05 };
7771 10 : lcpomap["U_N3"] = { 1.65, 0.41102, -0.12254, -7.5448e-05, 1.1804e-04 };
7772 10 : lcpomap["U_O2"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7773 10 : lcpomap["U_O2'"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7774 10 : lcpomap["U_O3'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7775 10 : lcpomap["U_O4"] = { 1.6, 0.68563, -0.1868, -1.35573e-03, 2.3743e-04 };
7776 10 : lcpomap["U_O4'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7777 10 : lcpomap["U_O5'"] = { 1.6, 0.49392, -0.16038, -1.5512e-04, 1.6453e-04 };
7778 10 : lcpomap["U_OP1"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7779 10 : lcpomap["U_OP2"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7780 10 : lcpomap["U_OP3"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7781 10 : lcpomap["U_O1P"] = { 1.6, 0.77914, -0.25262, -1.6056e-03, 3.5071e-04 };
7782 10 : lcpomap["U_O2P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7783 10 : lcpomap["U_O3P"] = { 1.6, 0.88857, -0.33421, -1.8683e-03, 4.9372e-04 };
7784 10 : lcpomap["U_P"] = { 1.9, 0.03873, -0.0089339, 8.3582e-06, 3.0381e-06};
7785 :
7786 10 : return lcpomap;
7787 : }
7788 :
7789 : // assigns LCPO parameters to each atom reading from database
7790 10 : void SAXS::readLCPOparam(const std::vector<std::vector<std::string> > &AtomResidueName, unsigned natoms) {
7791 10 : std::map<std::string, std::vector<double> > lcpomap = setupLCPOparam();
7792 :
7793 35476 : for(unsigned i=0; i<natoms; ++i) {
7794 35466 : 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'))) {
7795 16548 : std::string identifier = AtomResidueName[1][i]+"_"+AtomResidueName[0][i];
7796 16548 : std::vector<double> LCPOparamVector = lcpomap.at(identifier);
7797 : double rs = 0.14;
7798 16548 : LCPOparam[i].push_back(LCPOparamVector[0]+rs*10.);
7799 16548 : LCPOparam[i].push_back(LCPOparamVector[1]);
7800 16548 : LCPOparam[i].push_back(LCPOparamVector[2]);
7801 16548 : LCPOparam[i].push_back(LCPOparamVector[3]);
7802 16548 : LCPOparam[i].push_back(LCPOparamVector[4]);
7803 : }
7804 : }
7805 :
7806 35476 : for(unsigned i=0; i<natoms; ++i) {
7807 35466 : if (LCPOparam[i].size()==0 ) {
7808 18918 : 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')) {
7809 0 : std::cout << "Could not find LCPO paramaters for atom " << AtomResidueName[0][i] << " of residue " << AtomResidueName[1][i] << std::endl;
7810 0 : error ("missing LCPO parameters\n");
7811 : }
7812 : }
7813 : }
7814 :
7815 10 : if (AtomResidueName[0][0] == "N") {
7816 10 : LCPOparam[0][1] = 7.3511e-01;
7817 10 : LCPOparam[0][2] = -2.2116e-01;
7818 10 : LCPOparam[0][3] = -8.9148e-04;
7819 10 : LCPOparam[0][4] = 2.5230e-04;
7820 : }
7821 :
7822 10 : if (AtomResidueName[0][natoms-1] == "O") {
7823 0 : LCPOparam[natoms-1][1] = 8.8857e-01;
7824 0 : LCPOparam[natoms-1][2] = -3.3421e-01;
7825 0 : LCPOparam[natoms-1][3] = -1.8683e-03;
7826 0 : LCPOparam[natoms-1][4] = 4.9372e-04;
7827 : }
7828 10 : }
7829 :
7830 :
7831 : }//namespace isdb
7832 : }//namespace PLMD
|