def read_receptor(fragid, assembly_state, protonation_state):
    """
    Read the receptor for the given fragment

    Parameters
    ----------
    fragid : str
        The XChem fragment ID
    assembly_state : str
        Assembly state ['monomer', 'dimer']
    protonation_state : str
        Protonation state ['neutral', 'charged']

    Returns
    -------
    receptor : OEReceptor
        The receptor

    """
    from openeye import oechem
    receptor = oechem.OEGraphMol()
    suffix = '' if protonation_state == 'neutral' else '-thiolate'
    receptor_filename = f'../../receptors/{assembly_state}/Mpro-{fragment}_0A_bound-receptor{suffix}.oeb.gz'
    from openeye import oedocking
    oedocking.OEReadReceptorFile(receptor, receptor_filename)
    logging.info(f'  Receptor has {receptor.NumAtoms()} atoms.')
    return receptor
def main(argv=[__name__]):
    if len(argv) != 3:
        oechem.OEThrow.Usage("SetOuterContourVolume.py <receptor> <volume>")

    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, argv[1]):
        oechem.OEThrow.Fatal("Unable to open receptor file")

    outerContourVolume = float(argv[2])

    # @ <SNIPPET-SET-OUTER-CONTOUR-VOLUME-1>
    negativeImagePotential = oedocking.OEReceptorGetNegativeImageGrid(receptor)

    gridElement = []
    for i in range(negativeImagePotential.GetSize()):
        gridElement.append(negativeImagePotential[i])

    gridElement.sort()
    gridElement.reverse()

    countToVolume = pow(negativeImagePotential.GetSpacing(), 3)
    ilevel = int((outerContourVolume / countToVolume) + 0.5)

    outerContourLevel = gridElement[-1]
    if ilevel < len(gridElement):
        outerContourLevel = gridElement[ilevel]

    oedocking.OEReceptorSetOuterContourLevel(receptor, outerContourLevel)
    # @ </SNIPPET-SET-OUTER-CONTOUR-VOLUME-1>

    if not oedocking.OEWriteReceptorFile(receptor, argv[1]):
        oechem.OEThrow.Fatal("Unable to write updated receptor")
def main(argv):
    if len(argv) != 2:
        oechem.OEThrow.Usage("%s <receptor>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])

    # @ <SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-1>
    for constraint in oedocking.OEReceptorGetProteinConstraints(receptor):
        print("Atom %i has a constraint" % constraint.GetAtom().GetIdx())
    # @ </SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-1>

    # @ <SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-2>
    for constraint in oedocking.OEReceptorGetProteinConstraints(receptor):
        print("Protein constraint on atom  %d" % constraint.GetAtom().GetIdx())
        print("  Type :  %s" % oedocking.OEProteinConstraintTypeGetName(constraint.GetType()))
        print("  Name :  %s" % constraint.GetName())
    # @ </SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-2>

    for heavyAtom in receptor.GetAtoms(oechem.OENotAtom(oechem.OEIsHydrogen())):
        # @ <SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-3>
        proteinConstraint = oedocking.OEProteinConstraint()
        proteinConstraint.SetAtom(heavyAtom)
        proteinConstraint.SetType(oedocking.OEProteinConstraintType_Contact)
        proteinConstraint.SetName("Example constraint")
        oedocking.OEReceptorSetProteinConstraint(receptor, proteinConstraint)
        # @ </SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-3>
        break

    # @ <SNIPPET-RECEPTOR-PROTEIN-CONSTRAINT-EDITING-4>
    oedocking.OEReceptorClearProteinConstraints(receptor)
Exemplo n.º 4
0
def load_receptor(receptor_oeb_path):
    """Load an OpenEye receptor file in oeb format."""
    if not os.path.exists(receptor_oeb_path):
        raise FileNotFoundError('Could not find ', receptor_oeb_path)
    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, receptor_oeb_path)
    return receptor
Exemplo n.º 5
0
def dock_molecules(receptor_filename, molecules, filename):
    """
    Dock the specified molecules, writing out to specified file

    Parameters
    ----------
    receptor_filename : str
        Receptor .oeb.gz filename
    molecules : list of openeye.oechem.OEMol
        The read molecules to dock
    filename : str
        The filename to stream docked molecules to

    """
    # Read the receptor
    print('Loading receptor...')
    from openeye import oechem, oedocking
    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, 'receptor.oeb.gz'):
        oechem.OEThrow.Fatal("Unable to read receptor")

    if oedocking.OEReceptorHasBoundLigand(receptor):
        print("Receptor has a bound ligand")
    else:
        print("Receptor does not have bound ligand")

    print('Initializing receptor...')
    dockMethod = oedocking.OEDockMethod_Hybrid2
    dockResolution = oedocking.OESearchResolution_High
    dock = oedocking.OEDock(dockMethod, dockResolution)
    success = dock.Initialize(receptor)

    # Set up Omega
    from openeye import oeomega
    omegaOpts = oeomega.OEOmegaOptions(oeomega.OEOmegaSampling_Dense)
    #omegaOpts = oeomega.OEOmegaOptions()
    omega = oeomega.OEOmega(omegaOpts)
    omega.SetStrictStereo(False)

    # Dock molecules
    with oechem.oemolostream(filename) as ofs:
        from tqdm import tqdm
        for mol in tqdm(molecules):
            dockedMol = oechem.OEGraphMol()

            # Expand conformers
            omega.Build(mol)

            # Dock molecule
            retCode = dock.DockMultiConformerMolecule(dockedMol, mol)
            if (retCode != oedocking.OEDockingReturnCode_Success):
                oechem.OEThrow.Fatal("Docking Failed with error code " + oedocking.OEDockingReturnCodeGetName(retCode))

            # Store docking data
            sdtag = oedocking.OEDockMethodGetName(dockMethod)
            oedocking.OESetSDScore(dockedMol, dock, sdtag)
            dock.AnnotatePose(dockedMol)

            # Write molecule
            oechem.OEWriteMolecule(ofs, dockedMol)
Exemplo n.º 6
0
def main(argv=[__name__]):
    itf = oechem.OEInterface(InterfaceData)
    if not oechem.OEParseCommandLine(itf, argv):
        return 1

    imstr = oechem.oemolistream(itf.GetString("-in"))
    omstr = oechem.oemolostream(itf.GetString("-out"))

    receptors = []
    for receptor_filename in itf.GetStringList("-receptors"):
        receptor = oechem.OEGraphMol()
        if not oedocking.OEReadReceptorFile(receptor, receptor_filename):
            oechem.OEThrow.Fatal("Unable to read receptor from %s" %
                                 receptor_filename)
        receptors.append(receptor)

    poser = oedocking.OEPosit()
    for receptor in receptors:
        poser.AddReceptor(receptor)

    for mcmol in imstr.GetOEMols():
        print("posing", mcmol.GetTitle())
        result = oedocking.OESinglePoseResult()
        ret_code = poser.Dock(result, mcmol)
        if ret_code == oedocking.OEDockingReturnCode_Success:
            posedMol = result.GetPose()
            oechem.OESetSDData(posedMol, poser.GetName(),
                               str(result.GetProbability()))
            oechem.OESetSDData(posedMol, "Receptor Index",
                               str(result.GetReceptorIndex()))
            oechem.OEWriteMolecule(omstr, posedMol)
        else:
            errMsg = oedocking.OEDockingReturnCodeGetName(ret_code)
            oechem.OEThrow.Warning("%s: %s" % (mcmol.GetTitle(), errMsg))
    return 0
Exemplo n.º 7
0
def main(argv):
    if len(argv) != 2:
        oechem.OEThrow.Usage("%s <receptor>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])

    # @ <SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-1>
    if oedocking.OEReceptorHasBoundLigand(receptor):
        print("Receptor has a bound ligand")
    else:
        print("Receptor does not have bound ligand")
    # @ </SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-1>

    # @ <SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-2>
    ligand = oechem.OEGraphMol()
    if oedocking.OEReceptorHasBoundLigand(receptor):
        ligand = oedocking.OEReceptorGetBoundLigand(receptor)
    # @ </SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-2>

    # @ <SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-3>
    oedocking.OEReceptorSetBoundLigand(receptor, ligand)
    # @ </SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-3>

    # @ <SNIPPET-RECEPTOR-BOUND-LIGAND-EDITING-4>
    oedocking.OEReceptorClearBoundLigand(receptor)
def dock_molecules_to_receptor(receptor_filename):
    """
    Dock the specified molecules, writing out to specified file

    Parameters
    ----------
    receptor_filename : str
        Receptor .oeb.gz filename
    fragment : str
        The fragment name to dock to

    """
    import os

    # Read the receptor
    from openeye import oechem, oedocking
    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, receptor_filename):
        oechem.OEThrow.Fatal("Unable to read receptor")

    if not oedocking.OEReceptorHasBoundLigand(receptor):
        raise Exception("Receptor does not have bound ligand")

    #print('Initializing receptor...')
    dockMethod = oedocking.OEDockMethod_Hybrid2
    dockResolution = oedocking.OESearchResolution_Default
    dock = oedocking.OEDock(dockMethod, dockResolution)
    success = dock.Initialize(receptor)

    # Set up Omega
    #print('Expanding conformers...')
    from openeye import oeomega
    #omegaOpts = oeomega.OEOmegaOptions(oeomega.OEOmegaSampling_Dense)
    omegaOpts = oeomega.OEOmegaOptions()
    omega = oeomega.OEOmega(omegaOpts)
    omega.SetStrictStereo(False)

    # Dock molecules
    docked_molecules = list()
    for mol in molecules:
        dockedMol = oechem.OEGraphMol()

        # Expand conformers
        omega.Build(mol)

        # Dock molecule
        #print(f'Docking {mol.NumConfs()} conformers...')
        retCode = dock.DockMultiConformerMolecule(dockedMol, mol)
        if (retCode != oedocking.OEDockingReturnCode_Success):
            print("Docking Failed with error code " + oedocking.OEDockingReturnCodeGetName(retCode))
            continue

        # Store docking data
        sdtag = oedocking.OEDockMethodGetName(dockMethod)
        oedocking.OESetSDScore(dockedMol, dock, sdtag)
        dock.AnnotatePose(dockedMol)

        docked_molecules.append( oechem.OEMol(dockedMol) )

    return docked_molecules
Exemplo n.º 9
0
def receptor_from_file(receptor_filename):
    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, receptor_filename):
        oechem.OEThrow.Fatal("Unable to read receptor")

    if not oedocking.OEReceptorHasBoundLigand(receptor):
        raise Exception("Receptor does not have bound ligand")
    return receptor
def PrepareReceptorFromBinary(filename):
    """
    If a receptor.oeb has been created, use this version.
    If not, run 'PrepareReceptor' and a receptor.oeb will be created.
    """
    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor,filename)
    return receptor
def DockConf(pdb_file, mol, MAX_POSES = 5):
    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, pdb_file)
    dock = oedocking.OEDock()
    dock.Initialize(receptor)
    lig = oechem.OEMol()
    err = dock.DockMultiConformerMolecule(lig,mol,MAX_POSES)
    return dock, lig, receptor
Exemplo n.º 12
0
def PrepareReceptorFromBinary(filename):
    """
    Gets receptor
    :param filename: file name of .oeb or .oeb.gz of prepared receptor for OE
    :return: OEMol receptor for docking
    """
    receptor = oechem.OEMol()
    oedocking.OEReadReceptorFile(receptor, filename)
    return receptor
Exemplo n.º 13
0
 def __init__(self, receptor: utils.FilePath):
     self.receptor_file = receptor
     omegaOpts = oeomega.OEOmegaOptions()
     omegaOpts.SetStrictStereo(False)
     self.omega = oeomega.OEOmega(omegaOpts)
     oechem.OEThrow.SetLevel(10000)
     oereceptor = oechem.OEGraphMol()
     oedocking.OEReadReceptorFile(oereceptor, self.receptor_file)
     self.dock = oedocking.OEDock()
     self.dock.Initialize(oereceptor)
Exemplo n.º 14
0
def DockConf(pdb_file, mol, MAX_POSES=1, dock=None):
    if dock is None:
        receptor = oechem.OEGraphMol()
        oedocking.OEReadReceptorFile(receptor, pdb_file)
        dock = oedocking.OEDock(oedocking.OEScoreType_Chemgauss4,
                                oedocking.OESearchResolution_High)
        dock.Initialize(receptor)
    else:
        receptor = None
    lig = DockConf_(dock, mol, MAX_POSES=MAX_POSES)
    return lig, receptor
Exemplo n.º 15
0
 def __init__(self, pdb_file):
     self.receptor = oechem.OEGraphMol()
     self.scorers = [oedocking.OEScore(oedocking.OEScoreType_Shapegauss),
                     oedocking.OEScore(oedocking.OEScoreType_Chemscore),
                     oedocking.OEScore(oedocking.OEScoreType_Chemgauss3),
                     oedocking.OEScore(oedocking.OEScoreType_Chemgauss4),
                     ]
     self.score = oedocking.OEScore(oedocking.OEScoreType_Chemgauss4)
     oedocking.OEReadReceptorFile(self.receptor, pdb_file)
     for score in self.scorers:
         score.Initialize(self.receptor)
Exemplo n.º 16
0
 def __init__(self, pdb_file):
     self.receptor = oechem.OEGraphMol()
     self.scorers = {
         'Shapegauss': oedocking.OEScore(oedocking.OEScoreType_Shapegauss),
         'Chemscore': oedocking.OEScore(oedocking.OEScoreType_Chemscore),
         'Chemgauss': oedocking.OEScore(oedocking.OEScoreType_Chemgauss),
         'Chemgauss3': oedocking.OEScore(oedocking.OEScoreType_Chemgauss3),
         'Chemgauss4': oedocking.OEScore(oedocking.OEScoreType_Chemgauss4),
     }
     oedocking.OEReadReceptorFile(self.receptor, pdb_file)
     for _, score in self.scorers.items():
         score.Initialize(self.receptor)
Exemplo n.º 17
0
def main(argv=[__name__]):
    if len(argv) != 3:
        oechem.OEThrow.Usage("%s <receptor> <poses>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])
    oescore = oedocking.OEScore()
    oescore.Initialize(receptor)

    poses = oechem.OEGraphMol()
    imstr = oechem.oemolistream(argv[2])
    for poses in imstr.GetOEMols():
        TagPoses(oescore, poses, oescore.GetName())
Exemplo n.º 18
0
def main(args):
    smiles = args.s
    receptor_name = args.r
    hostname = args.a
    port = args.p

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, args.r)
    client = DockingClient(hostname, port)
    score = client(smiles, receptor_name, receptor=receptor)

    print(score)

    return 0
Exemplo n.º 19
0
def main(argv=[__name__]):
    if len(argv) != 3:
        oechem.OEThrow.Usage("%s <receptor> <conformers>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])
    dock = oedocking.OEDock()
    dock.Initialize(receptor)

    conformers = oechem.OEMol()
    imstr = oechem.oemolistream(argv[2])
    for conformers in imstr.GetOEMols():
        poses = oechem.OEMol()
        dock.DockMultiConformerMolecule(poses, conformers)
        TagPoses(dock, poses, dock.GetName())
Exemplo n.º 20
0
 def __init__(self, prefix: str, receptor_file: os.PathLike):
     """
     :param prefix: Prefix to identify scoring function instance (e.g., Risperidone)
     :param receptor_file: Path to receptor file (.oeb).
     """
     logger.warning("This code has not been tested (at all!)")
     self.prefix = prefix
     self.receptor_file = receptor_file
     omegaOpts = oeomega.OEOmegaOptions()
     omegaOpts.SetStrictStereo(False)
     self.omega = oeomega.OEOmega(omegaOpts)
     oechem.OEThrow.SetLevel(10000)
     oereceptor = oechem.OEGraphMol()
     oedocking.OEReadReceptorFile(oereceptor, self.receptor_file)
     self.oedock = oedocking.OEDock()
     self.oedock.Initialize(oereceptor)
Exemplo n.º 21
0
    def begin(self):
        receptor = oechem.OEGraphMol()
        self.args.receptor = utils.download_dataset_to_file(self.args.receptor)
        if not oedocking.OEReadReceptorFile(receptor, str(self.args.receptor)):
            raise Exception("Unable to read receptor from {0}".format(self.args.receptor))

        # Initialize Docking
        dock_method = oedocking.OEDockMethod_Hybrid
        if not oedocking.OEReceptorHasBoundLigand(receptor):
            oechem.OEThrow.Warning("No bound ligand, switching OEDockMethod to ChemGauss4.")
            dock_method = oedocking.OEDockMethod_Chemgauss4
        dock_resolution = oedocking.OESearchResolution_Default
        self.sdtag = oedocking.OEDockMethodGetName(dock_method)
        self.dock = oedocking.OEDock(dock_method, dock_resolution)
        if not self.dock.Initialize(receptor):
            raise Exception("Unable to initialize Docking with {0}".format(self.args.receptor))
Exemplo n.º 22
0
def main(argv=[__name__]):
    itf = oechem.OEInterface(InterfaceData)
    # @ <SNIPPET-RESCORE-POSES-CONFIGURE>
    oedocking.OEScoreTypeConfigure(itf, "-score")
    # @ </SNIPPET-RESCORE-POSES-CONFIGURE>
    if not oechem.OEParseCommandLine(itf, argv):
        return 1

    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, itf.GetString("-receptor")):
        oechem.OEThrow.Fatal("Unable to read receptor")
    imstr = oechem.oemolistream()
    if not imstr.open(itf.GetString("-in")):
        oechem.OEThrow.Fatal("Unable to open input file of ligands")
    omstr = oechem.oemolostream()
    if not omstr.open(itf.GetString("-out")):
        oechem.OEThrow.Fatal("Unable to open out file for rescored ligands")

    # @ <SNIPPET-RESCORE-POSES-GET-VALUE>
    scoreType = oedocking.OEScoreTypeGetValue(itf, "-score")
    # @ </SNIPPET-RESCORE-POSES-GET-VALUE>
    # @ <SNIPPET-RESCORE-POSES-SETUP-SCORE>
    score = oedocking.OEScore(scoreType)
    # @ </SNIPPET-RESCORE-POSES-SETUP-SCORE>
    # @ <SNIPPET-RESCORE-POSES-INITIALIZE>
    score.Initialize(receptor)
    # @ </SNIPPET-RESCORE-POSES-INITIALIZE>

    for ligand in imstr.GetOEMols():
        if itf.GetBool("-optimize"):
            # @ <SNIPPET-RESCORE-POSES-OPTIMIZE>
            score.SystematicSolidBodyOptimize(ligand)
            # @ </SNIPPET-RESCORE-POSES-OPTIMIZE>
        # @ <SNIPPET-RESCORE-POSES-ANNOTATE>
        score.AnnotatePose(ligand)
        # @ </SNIPPET-RESCORE-POSES-ANNOTATE>
        sdtag = score.GetName()
        # @ <SNIPPET-RESCORE-POSES-ASSIGN-SCORE>
        oedocking.OESetSDScore(ligand, score, sdtag)
        # @ </SNIPPET-RESCORE-POSES-ASSIGN-SCORE>
        # @ <SNIPPET-RESCORE-POSES-SCORE-SORTING>
        oechem.OESortConfsBySDTag(ligand, sdtag,
                                  score.GetHighScoresAreBetter())
        # @ </SNIPPET-RESCORE-POSES-SCORE-SORTING>
        oechem.OEWriteMolecule(omstr, ligand)

    return 0
Exemplo n.º 23
0
def main(argv=[__name__]):
    itf = oechem.OEInterface(InterfaceData)
    # @ <SNIPPET-DOCK-MOLECULES-CONFIGURE>
    oedocking.OEDockMethodConfigure(itf, "-method")
    oedocking.OESearchResolutionConfigure(itf, "-resolution")
    # @ </SNIPPET-DOCK-MOLECULES-CONFIGURE>
    if not oechem.OEParseCommandLine(itf, argv):
        return 1

    imstr = oechem.oemolistream(itf.GetString("-in"))
    omstr = oechem.oemolostream(itf.GetString("-out"))

    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, itf.GetString("-receptor")):
        oechem.OEThrow.Fatal("Unable to read receptor")

    # @ <SNIPPET-DOCK-MOLECULES-GET-VALUE>
    dockMethod = oedocking.OEDockMethodGetValue(itf, "-method")
    dockResolution = oedocking.OESearchResolutionGetValue(itf, "-resolution")
    # @ </SNIPPET-DOCK-MOLECULES-GET-VALUE>
    # @ <SNIPPET-DOCK-MOLECULES-SETUP>
    dock = oedocking.OEDock(dockMethod, dockResolution)
    # @ </SNIPPET-DOCK-MOLECULES-SETUP>
    # @ <SNIPPET-DOCK-MOLECULES-INITIALIZE>
    dock.Initialize(receptor)
    # @ </SNIPPET-DOCK-MOLECULES-INITIALIZE>

    for mcmol in imstr.GetOEMols():
        print("docking", mcmol.GetTitle())
        dockedMol = oechem.OEGraphMol()
        # @ <SNIPPET-DOCK-MOLECULES-DOCK>
        retCode = dock.DockMultiConformerMolecule(dockedMol, mcmol)
        if (retCode != oedocking.OEDockingReturnCode_Success):
            oechem.OEThrow.Fatal("Docking Failed with error code " + oedocking.OEDockingReturnCodeGetName(retCode))

        # @ </SNIPPET-DOCK-MOLECULES-DOCK>
        sdtag = oedocking.OEDockMethodGetName(dockMethod)
        # @ <SNIPPET-DOCK-MOLECULES-ASSIGN-SCORE>
        oedocking.OESetSDScore(dockedMol, dock, sdtag)
        # @ </SNIPPET-DOCK-MOLECULES-ASSIGN-SCORE>
        # @ <SNIPPET-DOCK-MOLECULES-ANNOTATE>
        dock.AnnotatePose(dockedMol)
        # @ </SNIPPET-DOCK-MOLECULES-ANNOTATE>
        oechem.OEWriteMolecule(omstr, dockedMol)

    return 0
Exemplo n.º 24
0
 def __init__(self, prefix: str, receptor_file: str):
     """
     Scoring function class to perform OpenEye docking (FRED)
     :param prefix: Name (to help keep track metrics, if using a scoring function class more than once)
     :param receptor_file: Path to oe receptor file.
     """
     logger.warning("This code has not been tested (at all!)")
     self.prefix = prefix
     self.receptor_file = receptor_file
     omegaOpts = oeomega.OEOmegaOptions()
     omegaOpts.SetStrictStereo(False)
     self.omega = oeomega.OEOmega(omegaOpts)
     oechem.OEThrow.SetLevel(10000)
     oereceptor = oechem.OEGraphMol()
     oedocking.OEReadReceptorFile(oereceptor, self.receptor_file)
     self.oedock = oedocking.OEDock()
     self.oedock.Initialize(oereceptor)
Exemplo n.º 25
0
def main(argv=[__name__]):
    if len(argv) != 3:
        oechem.OEThrow.Usage("%s <receptor> <ligand>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])

    oescore = oedocking.OEScore()
    oescore.Initialize(receptor)

    imstr = oechem.oemolistream(argv[2])
    mcmol = oechem.OEMol()
    oechem.OEReadMolecule(imstr, mcmol)

    for pose in mcmol.GetConfs():
        PrintScore(oescore, pose)
        for atom in pose.GetAtoms():
            PrintAtomScore(oescore, pose, atom)
Exemplo n.º 26
0
def main(argv=[__name__]):
    if len(argv) != 2:
        oechem.OEThrow.Usage("ToggleInterContour.py <receptor>")

    receptor = oechem.OEGraphMol()
    if not oedocking.OEReadReceptorFile(receptor, argv[1]):
        oechem.OEThrow.Fatal("Cannot read receptor")

    # @ <SNIPPET-TOGGLE-INNER-CONTOUR-1>
    innerContourLevel = oedocking.OEReceptorGetInnerContourLevel(receptor)
    oedocking.OEReceptorSetInnerContourLevel(receptor, -innerContourLevel)
    # @ </SNIPPET-TOGGLE-INNER-CONTOUR-1>

    if innerContourLevel > 0.0:
        oechem.OEThrow.Info("Toggling inner contour off")
    else:
        oechem.OEThrow.Info("Toggling inner contour on")

    if not oedocking.OEWriteReceptorFile(receptor, argv[1]):
        oechem.OEThrow.Fatal("Unable to write receptor")
Exemplo n.º 27
0
def main(argv=[__name__]):
    if len(argv) != 2:
        oechem.OEThrow.Usage("%s <receptor>" % argv[0])

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, argv[1])

    # @ <SNIPPET-RECEPTOR-EXTRA-MOLECULES-EDITING-1>
    count = 0
    newExtraMolList = []
    for extraMol in oedocking.OEReceptorGetExtraMols(receptor):
        if count == 0:
            oedocking.OEReceptorSetBoundLigand(receptor, extraMol)
        else:
            newExtraMolList.append(extraMol)
        count += 1

    oedocking.OEReceptorClearExtraMols(receptor)
    for extraMol in newExtraMolList:
        oedocking.OEReceptorAddExtraMol(receptor, extraMol)
def main(argv=[__name__]):
    if len(sys.argv) != 2:
        oechem.OEThrow.Usage("ReceptorOuterContourVolume.py <receptor>")

    receptor = oechem.OEGraphMol()

    if not oedocking.OEReadReceptorFile(receptor, sys.argv[1]):
        oechem.OEThrow.Fatal("%s is not a valid receptor", argv[1])

    # @ <SNIPPET-RECEPTOR-OUTER-CONTOUR-VOLUME-1>
    negativeImagePotential = oedocking.OEReceptorGetNegativeImageGrid(receptor)
    outerContourLevel = oedocking.OEReceptorGetOuterContourLevel(receptor)

    outerCount = 0
    for i in range(negativeImagePotential.GetSize()):
        if negativeImagePotential[i] >= outerContourLevel:
            outerCount += 1

    countToVolume = pow(negativeImagePotential.GetSpacing(), 3)

    print(outerCount * countToVolume, " cubic angstroms")
Exemplo n.º 29
0
def load_receptor(receptor_oeb_path):
    """Load an OpenEye receptor file in oeb format.

    Parameters
    ----------
    receptor_oeb_path : str
        Receptor in OpenEye oeb binary format

    Returns
    -------
    receptor : openeye.oedocking.OEReceptor
        The OpenEye receptor object
    """
    from openeye import oechem, oedocking
    import os

    if not os.path.exists(receptor_oeb_path):
        raise FileNotFoundError('Could not find ', receptor_oeb_path)

    receptor = oechem.OEGraphMol()
    oedocking.OEReadReceptorFile(receptor, receptor_oeb_path)
    return receptor
Exemplo n.º 30
0
def read_receptor(fragid):
    """
    Read the receptor for the given fragment

    Parameters
    ----------
    fragid : str
        The XChem fragment ID

    Returns
    -------
    receptor : OEReceptor
        The receptor

    """
    from openeye import oechem
    receptor = oechem.OEGraphMol()
    receptor_filename = f'../../receptors/monomer/Mpro-{fragment}_0A_bound-receptor.oeb.gz'
    from openeye import oedocking
    oedocking.OEReadReceptorFile(receptor, receptor_filename)
    print(f'  Receptor has {receptor.NumAtoms()} atoms.')
    return receptor