void DRMSD::read( const PDB& pdb ){ readAtomsFromPDB( pdb ); parseFlag("NOPBC",nopbc); parse("LOWER_CUTOFF",lower,true); parse("UPPER_CUTOFF",upper,true); setBoundsOnDistances( !nopbc, lower, upper ); setup_targets(); }
void Action::calculateFromPDB( const PDB& pdb ) { activate(); for(const auto & p : after) { ActionWithValue*av=dynamic_cast<ActionWithValue*>(p); if(av) { av->clearInputForces(); av->clearDerivatives(); } p->readAtomsFromPDB( pdb ); p->calculate(); } readAtomsFromPDB( pdb ); calculate(); }
void Action::calculateFromPDB( const PDB& pdb ){ activate(); for(Dependencies::iterator p=after.begin();p!=after.end();++p){ ActionWithValue*av=dynamic_cast<ActionWithValue*>(*p); if(av){ av->clearInputForces(); av->clearDerivatives(); } (*p)->readAtomsFromPDB( pdb ); (*p)->calculate(); } readAtomsFromPDB( pdb ); calculate(); }
void SingleDomainRMSD::readReference( const PDB& pdb ){ readAtomsFromPDB( pdb ); double wa=0, wd=0; for(unsigned i=0;i<pdb.size();++i){ wa+=align[i]; wd+=displace[i]; } Vector center; for(unsigned i=0;i<pdb.size();++i){ align[i]=align[i] / wa; displace[i]=displace[i] / wd; center+=reference_atoms[i]*align[i]; } for(unsigned i=0;i<pdb.size();++i) reference_atoms[i]-=center; }
void Direction::read( const PDB& pdb ) { readAtomsFromPDB( pdb ); readArgumentsFromPDB( pdb ); }
void DRMSD::read( const PDB& pdb ){ readAtomsFromPDB( pdb ); readBounds(); setup_targets(); }