These functions build out partial sidechains using a rotamer library. They return false if all of the rotamers of a given residue clashes. The rotamer chosen is the one with the best interaction energy with the surrounding environment without taking solvent effects into account. If multiple sidechains are built that interact with one another, the energy chosen is the best collective interaction energy.
Explicit hydrogens are not added to the structure during the build processes.
bool OEBuildSidechains(OEChem::OEMolBase &mol, const unsigned rotamerLibrary=OEBio::OERotamerLibrary::Default, const float rotamerCoverage=100.0, const bool deleteClashingSolvent=true)
This function takes a molecule and build any partial sidechain of standard protein residues determined using the OEGetPartialResidues function. A rotamer library from the OERotamerLibrary namespace can be selected, otherwise the default library from that namespace is chosen. The number of rotamers used can be reduced by picking a rotamer coverage below the default 100%. The percentage is calculated cumulatively, so the most probably rotamer is tested first, up to the rotamer that takes it above the percentage limit. The function by default deletes water molecules that clash with the built out sidechains, but this behavior can be turned off. The function will return false if a sidechain can not be built due to clashes.
bool OEBuildSidechains(OEChem::OEMolBase &mol, const std::vector<OEChem::OEResidue> residues, const unsigned rotamerLibrary=OEBio::OERotamerLibrary::Default, const float rotamerCoverage=100.0, const bool deleteClashingSolvent=true)
This function works identically to the above function, but only builds the residues identified in the vector residues.