Re: [Rdkit-discuss] RDKit to PyMol
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
From: Robert D. <rkd...@gm...> - 2008-10-20 22:28:33
|
Greg, It worked with only one hiccup. You mentioned replacing PyMol's xml-rpc server: *** An aside: The version of the xml-rpc server that is distributed with PyMol is somewhat out of date because I kept forgetting to send a new version to Warren D. I remedied this this morning, so perhaps the next version of PyMol will have an up-to-date rpc extension. Until then, you can always copy $RDBASE/External/pymol/ > > modules/pymol/rpc.py to pymol's modules/pymol directory if you want the > newest functionality. *** Prior to doing this I received some difficult to trace errors through Python. Once this was replaced, however, it worked perfectly. Thank you for the head-start working with PyMol through RDKit. I have a number of projects that this will enable. -Kirk On Sat, Oct 18, 2008 at 12:15 AM, Greg Landrum <gre...@gm...>wrote: > Dear Kirk, > > On Sat, Oct 18, 2008 at 1:18 AM, Robert DeLisle <rkd...@gm...> > wrote: > > > > I notice within the Python API that RDKit has the ability to communicate > > with PyMol. I have not, however, been able to find an example and > haven't > > quite figured it out on my own. Could you provide an example of opening > a > > file in PyMol through RDKit, please? > > Sure. There's a lot of functionality there, so I'll pick an arbitrary > example get this started. If anyone has unanswered questions, please > post. Once we have a somewhat refined set of examples, I'll post it to > the wiki. > > The first thing you need to do is get PyMol started with the optional > xml-rpc server running. You do this via the -R switch to PyMol. When > PyMol starts, you should see a message about the xml-rpc server > running on port 9123. > > From python (this actually ought to work for you as is if you run it > in $RDBASE/Python/qtGui/Search3D/testData): > > import os > import Chem > from Chem import PyMol > # start the viewer: > s = PyMol.MolViewer() > # have pymol display a pdb file, notice that we have to provide the full > path: > s.LoadFile(os.path.join(os.getcwd(),'1OIR-nowater.pdb'),'1oir') > s.Zoom('1oir') > s.SetDisplayStyle('1oir','cartoon') > # create an RDKit molecule: > m = Chem.MolFromMolFile('1oir-xtal.mol',removeHs=False) > # have pymol display it: > s.ShowMol(m,name='ligand',showOnly=False) > s.Zoom('ligand') > s.SetDisplayStyle('ligand','sticks') > # select the protein neighborhood around the ligand and add a surface: > s.SelectProteinNeighborhood('ligand','1oir',showSurface=True) > # show h bonds and bumps: > s.DisplayHBonds('hbonds','ligand','1oir') > s.DisplayCollisions('bumps','ligand','1oir') > > s is an instance of the PyMol.MolViewer class and we have so far been > using higher level methods of the class. To get more control (and see > more functionality), you can work directly with the underlying xml-rpc > server object, which the MolViewer carries around as a member named > server. > > So, for example, we can use a raw pymol command to add a surface to the > ligand: > s.server.do('show surface, ligand') > > Or we can ask the server for its list of supported commands: > s.server.help() > or get more specific help about a particular command: > print s.server.help('sphere') > > An aside: The version of the xml-rpc server that is distributed with > PyMol is somewhat out of date because I kept forgetting to send a new > version to Warren D. I remedied this this morning, so perhaps the next > version of PyMol will have an up-to-date rpc extension. Until then, > you can always copy $RDBASE/External/pymol/modules/pymol/rpc.py to > pymol's modules/pymol directory if you want the newest functionality. > > Best Regards, > -greg > |