13 #include <utility/vector1.hh>
14 #include <numeric/xyzVector.hh>
17 #include <numeric/constants.hh>
21 #include <basic/options/option.hh>
22 #include <basic/options/keys/run.OptionKeys.gen.hh>
23 #include <basic/options/keys/packing.OptionKeys.gen.hh>
24 #include <basic/options/keys/score.OptionKeys.gen.hh>
48 lp_holder_xyz =
cp_function(
"aroC", vector_d, vector_f, residue, dist);
49 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
52 if(residue.
name3() ==
"TRP"){
53 lp_holder_xyz =
cp_function(
"Ntrp", vector_d, vector_f, residue, dist);
54 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
58 if(residue.
name3() ==
"TYR"){
60 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
63 else if(residue.
name3() ==
"GLU"){
67 lp_holder_xyz =
cp_function(
"COO", vector_d, vector_f, residue, dist);
68 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
70 lp_holder_xyz =
cp_function(
"OOC", vector_d, vector_f, residue, dist);
71 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
74 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
77 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
80 else if(residue.
name3() ==
"ASP"){
84 lp_holder_xyz =
cp_function(
"COO", vector_d, vector_f, residue, dist);
85 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
87 lp_holder_xyz =
cp_function(
"OOC", vector_d, vector_f, residue, dist);
88 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
91 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
94 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
96 else if(residue.
name3() ==
"ASN"){
99 lp_holder_xyz =
cp_function(
"CNH2", vector_d, vector_f, residue, dist);
100 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
102 lp_holder_xyz =
cp_function(
"ONH2", vector_d, vector_f, residue, dist);
103 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
107 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
111 lp_holder_xyz =
cp_function(
"NH2O", vector_d, vector_f, residue, dist);
112 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
117 else if(residue.
name3() ==
"GLN"){
121 lp_holder_xyz =
cp_function(
"CNH2", vector_d, vector_f, residue, dist);
122 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
124 lp_holder_xyz =
cp_function(
"ONH2", vector_d, vector_f, residue, dist);
125 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
128 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
132 lp_holder_xyz =
cp_function(
"NH2O", vector_d, vector_f, residue, dist);
133 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
136 else if(residue.
name3() ==
"HIS"){
144 lp_holder_xyz =
cp_function(
"aroC", vector_d, vector_f, residue, dist);
145 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
152 lp_holder_xyz =
cp_function(
"Nhis", vector_d, vector_f, residue, dist);
153 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
155 lp_holder_xyz =
cp_function(
"Ntrp", vector_d, vector_f, residue, dist);
156 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
158 lp_xyz.push_back((vector_df_norm.normalized()*dist)+residue.
atom(
"ND1").
xyz());
164 lp_xyz.push_back((vector_ab_norm.normalized()*dist)+residue.
atom(
"NE2").
xyz());
170 else if(residue.
name3() ==
"ARG"){
173 lp_holder_xyz =
cp_function(
"Narg", vector_d, vector_f, residue, dist);
174 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
175 lp_holder_xyz =
cp_function(
"aroC", vector_d, vector_f, residue, dist);
176 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
180 else if(residue.
name3() ==
"PRO"){
183 lp_holder_xyz =
cp_function(
"Npro", vector_d, vector_f, residue, dist);
184 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
189 else if(residue.
name3() ==
"SER"){
191 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
193 else if(residue.
name3() ==
"THR"){
195 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
199 else if(residue.
name3() ==
"CYS"){
201 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
203 else if(residue.
name3() ==
"MET"){
205 lp_xyz.insert(lp_xyz.end(), lp_holder_xyz.begin(), lp_holder_xyz.end());
208 std::cout << residue.
name3() << residue.
seqpos() << std::endl;
209 for(
core::Real i = 1; i <= lp_xyz.size(); ++i){
210 printf(
"ATOM 1 H FLR D %3i %3.3f %3.3f %3.3f \n", residue.
seqpos(), lp_xyz[i].x(), lp_xyz[i].y(), lp_xyz[i].z() );
232 core::Real angle_xab = numeric::constants::r::pi_2_over_3;
241 core::Real dihedral_xabc1 = numeric::constants::r::pi;
251 v1 - v2 * std::sin(dihedral_xabc1) + v3 * std::cos(dihedral_xabc1)
258 v1 - v2 * std::sin(dihedral_xabc2) + v3 * std::cos(dihedral_xabc2)
263 lp_xyz.push_back(vector_a+x1);
264 lp_xyz.push_back(vector_a+x2);
285 core::Real distance_xa = (distance * std::cos( 54.75 / 180 * numeric::constants::r::pi));
289 foot_point = (vector_a + x);
291 core::Real distance_x_a = (distance * std::sin( 54.75 / 180 * numeric::constants::r::pi));
293 offset = (distance_x_a * cross_product(vector_a-vector_b, vector_a-vector_c).normalized());
295 lp_xyz.push_back(foot_point + offset);
296 lp_xyz.push_back(foot_point - offset);
331 cz_right = residue.
atom(i).
xyz();
332 cz_left = residue.
atom(i).
xyz();
337 cg_right = residue.
atom(i).
xyz();
338 cg_left = residue.
atom(i).
xyz();
341 if(residue.
name3() ==
"TRP"){
370 if(residue.
name3() ==
"HIS"){
375 cg_right = residue.
atom(i).
xyz();
384 cg_left = residue.
atom(i).
xyz();
392 if(residue.
name3() ==
"TYR" || residue.
name3() ==
"PHE"){
393 lp_xyz.push_back( ((cg_right+cz_right)/2) + (lp_holder_xyz_right.normalized() * dist));
394 lp_xyz.push_back( ((cg_left+cz_left)/2) + (lp_holder_xyz_left.normalized() * dist));
396 if(residue.
name3() ==
"TRP"){
397 lp_xyz.push_back( (ce2_r+cz3_r)/2 + (lp_holder_xyz_right.normalized() * dist));
398 lp_xyz.push_back( ((ce2_r+cd2_r)/2 + cd1_r)/2 + (lp_holder_xyz_right.normalized() * dist));
399 lp_xyz.push_back( (ce2_l+cz3_l)/2 + (lp_holder_xyz_left.normalized() * dist));
400 lp_xyz.push_back( ((ce2_l+cd2_l)/2 + cd1_l)/2 + (lp_holder_xyz_left.normalized() * dist));
402 if(residue.
name3() ==
"HIS"){
403 lp_xyz.push_back( ((cd2_r+cg_right)/2 + ce2_r)/2 + (lp_holder_xyz_right.normalized() * dist));
404 lp_xyz.push_back( ((cd2_l+cg_left)/2 + ce2_l)/2 + (lp_holder_xyz_left.normalized() * dist) );
429 lp_xyz.push_back( (lp_holder_xyz_right.normalized() * dist)+residue.
atom(i).
xyz());
430 lp_xyz.push_back( (lp_holder_xyz_left.normalized() * dist)+residue.
atom(i).
xyz());
445 resid1_H_xyz.push_back( new_pair );