34 #include <basic/datacache/CacheableData.hh>
37 #include <utility/vector1.hh>
42 namespace disulfides {
81 assert( which_res == 1 || which_res == 2 );
89 assert( which_res == 1 || which_res == 2 );
119 potential_( potential )
138 using namespace methods;
145 static_cast< FullatomDisulfideEnergyContainer * > (
180 bool res_moving_wrt_eachother
183 using namespace chemical;
184 return res_moving_wrt_eachother && res1.
aa() ==
aa_cys && res2.
aa() ==
aa_cys &&
219 Energy distance_score_this_disulfide;
220 Energy csangles_score_this_disulfide;
221 Energy dihedral_score_this_disulfide;
222 Energy ca_dihedral_sc_this_disulf;
223 bool truefalse_fa_disulf;
227 disulf_inds.res_inds( 1 ),
228 disulf_inds.res_inds( 2 ),
229 distance_score_this_disulfide,
230 csangles_score_this_disulfide,
231 dihedral_score_this_disulfide,
232 ca_dihedral_sc_this_disulf,
236 emap[
dslf_ss_dst ] += distance_score_this_disulfide;
237 emap[
dslf_cs_ang ] += csangles_score_this_disulfide;
238 emap[
dslf_ss_dih ] += dihedral_score_this_disulfide;
292 rsd1, rsd2, disulf_inds.res_inds( 1 ), disulf_inds.res_inds( 2 ),
293 disulf_inds.res_inds(1).c_alpha_index(), weights,
294 r1_atom_derivs[ disulf_inds.res_inds(1).c_alpha_index() ].f1(),
295 r1_atom_derivs[ disulf_inds.res_inds(1).c_alpha_index() ].f2() );
298 rsd1, rsd2, disulf_inds.res_inds( 1 ), disulf_inds.res_inds( 2 ),
299 disulf_inds.res_inds(1).c_beta_index(), weights,
300 r1_atom_derivs[ disulf_inds.res_inds(1).c_beta_index() ].f1(),
301 r1_atom_derivs[ disulf_inds.res_inds(1).c_beta_index() ].f2() );
304 rsd1, rsd2, disulf_inds.res_inds( 1 ), disulf_inds.res_inds( 2 ),
305 disulf_inds.res_inds(1).disulf_atom_index(), weights,
306 r1_atom_derivs[ disulf_inds.res_inds(1).disulf_atom_index() ].f1(),
307 r1_atom_derivs[ disulf_inds.res_inds(1).disulf_atom_index() ].f2() );
310 rsd2, rsd1, disulf_inds.res_inds( 2 ), disulf_inds.res_inds( 1 ),
311 disulf_inds.res_inds(2).c_alpha_index(), weights,
312 r2_atom_derivs[ disulf_inds.res_inds(2).c_alpha_index() ].f1(),
313 r2_atom_derivs[ disulf_inds.res_inds(2).c_alpha_index() ].f2() );
316 rsd2, rsd1, disulf_inds.res_inds( 2 ), disulf_inds.res_inds( 1 ),
317 disulf_inds.res_inds(2).c_beta_index(), weights,
318 r2_atom_derivs[ disulf_inds.res_inds(2).c_beta_index() ].f1(),
319 r2_atom_derivs[ disulf_inds.res_inds(2).c_beta_index() ].f2() );
322 rsd2, rsd1, disulf_inds.res_inds( 2 ), disulf_inds.res_inds( 1 ),
323 disulf_inds.res_inds(2).disulf_atom_index(), weights,
324 r2_atom_derivs[ disulf_inds.res_inds(2).disulf_atom_index() ].f1(),
325 r2_atom_derivs[ disulf_inds.res_inds(2).disulf_atom_index() ].f2() );
381 static_cast< FullatomDisulfideEnergyContainer const * > (
383 if ( ! dec->residue_forms_disulfide( atomid.
rsd() ) )
return;
385 if ( dec->disulfide_atom_indices( atomid.
rsd() ).atom_gets_derivatives( atomid.
atomno() ) ) {
390 Vector f1( 0.0 ), f2( 0.0 );
393 pose.
residue( dec->other_neighbor_id( atomid.
rsd()) ),
394 dec->disulfide_atom_indices( atomid.
rsd() ),
395 dec->other_neighbor_atom_indices( atomid.
rsd() ),
442 Energy distance_score_this_disulfide;
443 Energy csangles_score_this_disulfide;
444 Energy dihedral_score_this_disulfide;
445 Energy ca_dihedral_sc_this_disulf;
446 bool truefalse_fa_disulf;
449 static_cast< FullatomDisulfideEnergyContainer const * > (
452 if ( ! dec->residue_forms_disulfide( rsd1.
seqpos() ) ||
459 dec->disulfide_atom_indices( rsd1.
seqpos() ),
460 dec->other_neighbor_atom_indices( rsd1.
seqpos() ),
461 distance_score_this_disulfide,
462 csangles_score_this_disulfide,
463 dihedral_score_this_disulfide,
464 ca_dihedral_sc_this_disulf,
479 emap[
dslf_ss_dst ] += distance_score_this_disulfide;
480 emap[
dslf_cs_ang ] += csangles_score_this_disulfide;
481 emap[
dslf_ss_dih ] += dihedral_score_this_disulfide;
522 using namespace methods;
526 static_cast< FullatomDisulfideEnergyContainer const * > (
528 return dec->disulfide_bonded( res1, res2 );