Esempio n. 1
0
void Docking::setConfiguration(const ScoreConfiguration& scoreConfiguration, Protein &newReceptor, Protein &newLigand) const
{
	// rotate receptor
    RotationMatrix rotationMatrix;
    rotationMatrix.calculateMatrix(receptor_.getOrder(), RotationAngle(0.0, scoreConfiguration.gamma2));
	receptor_.rotateTo(newReceptor, rotationMatrix);
    rotationMatrix.calculateMatrix(receptor_.getOrder(), RotationAngle(scoreConfiguration.beta2, 0.0));
	newReceptor.rotate(rotationMatrix);

	// translate
	char buffer[100];
//	sprintf(buffer, "%s/%d/%.6lf.dat", "data/trans", receptor_.getOrder(), scoreConfiguration.R);
	sprintf(buffer, "%s/%d/%.6lf.dat", translationPath_.c_str(), receptor_.getOrder(), scoreConfiguration.R);
	TranslationMatrix translationmatrix(buffer);
	newReceptor.translate(translationmatrix);

    rotationMatrix.calculateMatrix(receptor_.getOrder(), RotationAngle(0.0, scoreConfiguration.gamma1));
	ligand_.rotateTo(newLigand, rotationMatrix);
    rotationMatrix.calculateMatrix(receptor_.getOrder(), RotationAngle(scoreConfiguration.beta1, 0.0));
	newLigand.rotate(rotationMatrix);
    rotationMatrix.calculateMatrix(receptor_.getOrder(), RotationAngle(0.0, scoreConfiguration.alpha));
	newLigand.rotate(rotationMatrix);
}