Пример #1
0
    def _compute_partial_charges(cls, molecule: Molecule,
                                 method: str) -> unit.Quantity:
        """Call out to the toolkit's toolkit wrappers to generate partial charges"""
        molecule = copy.deepcopy(molecule)
        molecule.assign_partial_charges(method)

        return from_simtk(molecule.partial_charges)
def label_function(molecule: Molecule) -> Dict[str, torch.Tensor]:
    """Generates a set of train / val / test labels for a given molecule."""
    from simtk import unit

    # Generate a set of ELF10 conformers.
    molecule.generate_conformers(n_conformers=800,
                                 rms_cutoff=0.05 * unit.angstrom)
    molecule.apply_elf_conformer_selection()

    partial_charges = []

    for conformer in molecule.conformers:

        molecule.assign_partial_charges("am1-mulliken",
                                        use_conformers=[conformer])

        partial_charges.append(
            molecule.partial_charges.value_in_unit(unit.elementary_charge))

    return {
        "am1-charges":
        torch.from_numpy(numpy.mean(partial_charges, axis=0)).float()
    }