Re: [PyMOL] using pymol from python script
Thanks for the reply (and the welcome). With your suggestion I can get a raytraced image. Is there a way to get a normal/OpenGL image staying in batch mode? All those shades are quite disturbing, since real molecules don't have a shade! :-) On 02/18/2011 04:52 PM, Tsjerk Wassenaar wrote: > Hi John, > > It's what we're here for. If we care not to be bothered, we can unsubscribe. > Anyway, you have to raytrace the image if you don't have an OpenGL > window. Add cmd.ray(xresolution,yresolution) before, or add it to the > cmd.png command directly. > > Cheers, > > Tsjerk > > On Fri, Feb 18, 2011 at 8:46 AM, John Russo wrote: >> I'm sorry to bother this mailing list so much but it >> seems that I cannot save images. >> >> This is the script examply.py >> >> from pymol import cmd >> >> cmd.load(sys.argv[1]) >> cmd.hide() >> cmd.show("spheres") >> cmd.set('sphere_scale',0.3) >> cmd.set('orthoscopic',1) >> >> cmd.png("printme.png") >> >> which I execute like this: >> >> pymol -qrc examply.py -- mymolecule.xyz >> >> >> But I don't get the file printme.png. Executing the >> script interactively >> >> pymol -r examply.py -- mymolecule.xyz >> >> I can see that the molecule looks ok but still I don't get a png image. >> I have to type "png printme.png" in the pymol command line to get it. >> >> >> Does anybody now why is this? >> >> Thanks. >> >> >> On 02/17/2011 07:30 PM, David Hall wrote: >>> No idea if this will fix your problem, but what I've found is portable >>> across binaries from Delano Scientific/Schroedinger and >>> OS/self-compiled versions of pymol is to instead run: >>> >>> pymol -r examply.py -- mymolecule.xyz >>> >>> (or if I'm making pngs, usually pymol -qrck examply.py -- mymolecule.xyz ) >>> >>> The -- makes it so mymolecule.xyz is passed as an argument to the >>> python script instead of as an argument to pymol >>> >>> Then examply.py is just >>> >>> from pymol import cmd >>> import argv >>> import mymodule >>> >>> cmd.load(sys.argv[1]) >>> cmd.hide() >>> cmd.show("spheres") >>> mymodule.dosomething() >>> >>> >>> Note, that pymol has to be able to find mymodule, which if you're >>> using a Delano Scientific/Schrodinger binary can be annoying, but it >>> looks like that is already working for you. >>> >>> Also, http://pymolwiki.org/index.php/Python_Integration makes it look like >>> pymol -l examply.py -- mymolecule.xyz >>> >>> may work, but I've never done it, so no idea how the behavior differs. >>> >>> -David >>> >>> >>> On Thu, Feb 17, 2011 at 3:05 AM, John Russowrote: Thanks, that is what I was looking for! I just made a simple script out of it which looks like this #!/usr/bin/env python import pymol from pymol import cmd import mymodule pymol.finish_launching() cmd.load("mymolecule.xyz") cmd.hide() cmd.show("spheres") mymodule.dosomething() I've noticed something strange though. The dosomething() function just colors atoms according to some order parameter. If I execute in the script above it is quite slow, I can see individual atoms being colored. Instead if I execute dosomething() from within the pymol interpreter it is much faster. Any reason for this? On 02/17/2011 04:33 PM, Tsjerk Wassenaar wrote: > Hi John, > > Is this what you're looking for?: > > http://www.pymolwiki.org/index.php/Launching_From_a_Script > > Cheers, > > Tsjerk > > On Thu, Feb 17, 2011 at 8:19 AM, John Russo > wrote: >> Hi, >> I'm sorry for making such beginner's questions but searching the manual, >> google >> or the wiki didn't help me. >> >> I know how to extend pymol by writing python functions (through the >> extend command). >> But is it possible to do the opposite? I want to write a script that >> loads a molecule, does something >> to it and then displays the pymol window or outputs a png file. I want >> to this without having to >> enter commands in the pymol command line, since I need to put these >> operations in a script, >> without interactive control on pymol. >> >> Example. I want to write a script examply.py with which I can do >> >> ./examply.py mymolecule.xyz >> >> And for output I want to get mymolecule.png or the pymol window with all >> the operations >> already done. >> >> Any hints? Thank you. >> >> >> John >> >> >> >> -- >> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: >> Pinpoint memory and threading errors before they happen. >> Find and fix more than 250 security defects in the development cycle. >> Locate bottlenecks in serial and parallel code that limit performance. >> http://p.sf.n
Re: [PyMOL] using pymol from python script
Hi John, You don't actually need to ray trace before saying any more. That was an older "feature". Here's what worked for me: # save this to examply.py from pymol import cmd cmd.load(sys.argv[1]) cmd.hide() cmd.show("spheres") cmd.set('sphere_scale',0.3) cmd.set('orthoscopic',1) cmd.png("printme.png") using the command line: pymol -qcr examply.py -- 1rsy.pdb This quietly loads PyMOL, runs the commands, renders the image and quits. The command, pymol -qcr examply.py -- 1rsy.pdb keeps PyMOL open, but still renders the image. Did you ensure that you actually had the PDB file (or in your case mymolecule.xyz) in the current working directory? Cheers, -- Jason On Fri, Feb 18, 2011 at 2:46 AM, John Russo wrote: > I'm sorry to bother this mailing list so much but it > seems that I cannot save images. > > This is the script examply.py > > from pymol import cmd > > cmd.load(sys.argv[1]) > cmd.hide() > cmd.show("spheres") > cmd.set('sphere_scale',0.3) > cmd.set('orthoscopic',1) > > cmd.png("printme.png") > > which I execute like this: > > pymol -qrc examply.py -- mymolecule.xyz > > > But I don't get the file printme.png. Executing the > script interactively > > pymol -r examply.py -- mymolecule.xyz > > I can see that the molecule looks ok but still I don't get a png image. > I have to type "png printme.png" in the pymol command line to get it. > > > Does anybody now why is this? > > Thanks. > > > On 02/17/2011 07:30 PM, David Hall wrote: >> No idea if this will fix your problem, but what I've found is portable >> across binaries from Delano Scientific/Schroedinger and >> OS/self-compiled versions of pymol is to instead run: >> >> pymol -r examply.py -- mymolecule.xyz >> >> (or if I'm making pngs, usually pymol -qrck examply.py -- mymolecule.xyz ) >> >> The -- makes it so mymolecule.xyz is passed as an argument to the >> python script instead of as an argument to pymol >> >> Then examply.py is just >> >> from pymol import cmd >> import argv >> import mymodule >> >> cmd.load(sys.argv[1]) >> cmd.hide() >> cmd.show("spheres") >> mymodule.dosomething() >> >> >> Note, that pymol has to be able to find mymodule, which if you're >> using a Delano Scientific/Schrodinger binary can be annoying, but it >> looks like that is already working for you. >> >> Also, http://pymolwiki.org/index.php/Python_Integration makes it look like >> pymol -l examply.py -- mymolecule.xyz >> >> may work, but I've never done it, so no idea how the behavior differs. >> >> -David >> >> >> On Thu, Feb 17, 2011 at 3:05 AM, John Russo wrote: >>> Thanks, that is what I was looking for! I just made a simple >>> script out of it which looks like this >>> >>> #!/usr/bin/env python >>> >>> import pymol >>> from pymol import cmd >>> import mymodule >>> >>> pymol.finish_launching() >>> >>> cmd.load("mymolecule.xyz") >>> cmd.hide() >>> cmd.show("spheres") >>> mymodule.dosomething() >>> >>> >>> I've noticed something strange though. The dosomething() function just >>> colors atoms according to some order parameter. If I execute in the script >>> above it is quite slow, I can see individual atoms being colored. Instead if >>> I execute dosomething() from within the pymol interpreter it is much faster. >>> Any reason for this? >>> >>> >>> >>> >>> >>> >>> On 02/17/2011 04:33 PM, Tsjerk Wassenaar wrote: Hi John, Is this what you're looking for?: http://www.pymolwiki.org/index.php/Launching_From_a_Script Cheers, Tsjerk On Thu, Feb 17, 2011 at 8:19 AM, John Russo wrote: > Hi, > I'm sorry for making such beginner's questions but searching the manual, > google > or the wiki didn't help me. > > I know how to extend pymol by writing python functions (through the > extend command). > But is it possible to do the opposite? I want to write a script that > loads a molecule, does something > to it and then displays the pymol window or outputs a png file. I want > to this without having to > enter commands in the pymol command line, since I need to put these > operations in a script, > without interactive control on pymol. > > Example. I want to write a script examply.py with which I can do > > ./examply.py mymolecule.xyz > > And for output I want to get mymolecule.png or the pymol window with all > the operations > already done. > > Any hints? Thank you. > > > John > > > > -- > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > ___ >
Re: [PyMOL] using pymol from python script
Hi, your program looks exactly like mine, but I don't get the png image if I don't raytrace it before. I think everything else is working because if I run interectively the molecule is loaded properly, and by just adding the cmd.ray command gives me a correct image (but raytraced). I'm running version Version 1.2r2. John On 02/18/2011 05:04 PM, Jason Vertrees wrote: > Hi John, > > You don't actually need to ray trace before saying any more. That was > an older "feature". > > Here's what worked for me: > > # save this to examply.py > from pymol import cmd > > cmd.load(sys.argv[1]) > cmd.hide() > cmd.show("spheres") > cmd.set('sphere_scale',0.3) > cmd.set('orthoscopic',1) > cmd.png("printme.png") > > using the command line: > > pymol -qcr examply.py -- 1rsy.pdb > > This quietly loads PyMOL, runs the commands, renders the image and > quits. The command, > > pymol -qcr examply.py -- 1rsy.pdb > > keeps PyMOL open, but still renders the image. > > Did you ensure that you actually had the PDB file (or in your case > mymolecule.xyz) in the current working directory? > > Cheers, > > -- Jason > > > > On Fri, Feb 18, 2011 at 2:46 AM, John Russo wrote: >> I'm sorry to bother this mailing list so much but it >> seems that I cannot save images. >> >> This is the script examply.py >> >> from pymol import cmd >> >> cmd.load(sys.argv[1]) >> cmd.hide() >> cmd.show("spheres") >> cmd.set('sphere_scale',0.3) >> cmd.set('orthoscopic',1) >> >> cmd.png("printme.png") >> >> which I execute like this: >> >> pymol -qrc examply.py -- mymolecule.xyz >> >> >> But I don't get the file printme.png. Executing the >> script interactively >> >> pymol -r examply.py -- mymolecule.xyz >> >> I can see that the molecule looks ok but still I don't get a png image. >> I have to type "png printme.png" in the pymol command line to get it. >> >> >> Does anybody now why is this? >> >> Thanks. >> >> >> On 02/17/2011 07:30 PM, David Hall wrote: >>> No idea if this will fix your problem, but what I've found is portable >>> across binaries from Delano Scientific/Schroedinger and >>> OS/self-compiled versions of pymol is to instead run: >>> >>> pymol -r examply.py -- mymolecule.xyz >>> >>> (or if I'm making pngs, usually pymol -qrck examply.py -- mymolecule.xyz ) >>> >>> The -- makes it so mymolecule.xyz is passed as an argument to the >>> python script instead of as an argument to pymol >>> >>> Then examply.py is just >>> >>> from pymol import cmd >>> import argv >>> import mymodule >>> >>> cmd.load(sys.argv[1]) >>> cmd.hide() >>> cmd.show("spheres") >>> mymodule.dosomething() >>> >>> >>> Note, that pymol has to be able to find mymodule, which if you're >>> using a Delano Scientific/Schrodinger binary can be annoying, but it >>> looks like that is already working for you. >>> >>> Also, http://pymolwiki.org/index.php/Python_Integration makes it look like >>> pymol -l examply.py -- mymolecule.xyz >>> >>> may work, but I've never done it, so no idea how the behavior differs. >>> >>> -David >>> >>> >>> On Thu, Feb 17, 2011 at 3:05 AM, John Russowrote: Thanks, that is what I was looking for! I just made a simple script out of it which looks like this #!/usr/bin/env python import pymol from pymol import cmd import mymodule pymol.finish_launching() cmd.load("mymolecule.xyz") cmd.hide() cmd.show("spheres") mymodule.dosomething() I've noticed something strange though. The dosomething() function just colors atoms according to some order parameter. If I execute in the script above it is quite slow, I can see individual atoms being colored. Instead if I execute dosomething() from within the pymol interpreter it is much faster. Any reason for this? On 02/17/2011 04:33 PM, Tsjerk Wassenaar wrote: > Hi John, > > Is this what you're looking for?: > > http://www.pymolwiki.org/index.php/Launching_From_a_Script > > Cheers, > > Tsjerk > > On Thu, Feb 17, 2011 at 8:19 AM, John Russo > wrote: >> Hi, >> I'm sorry for making such beginner's questions but searching the manual, >> google >> or the wiki didn't help me. >> >> I know how to extend pymol by writing python functions (through the >> extend command). >> But is it possible to do the opposite? I want to write a script that >> loads a molecule, does something >> to it and then displays the pymol window or outputs a png file. I want >> to this without having to >> enter commands in the pymol command line, since I need to put these >> operations in a script, >> without interactive control on pymol. >> >> Example. I want to write a script examply.py with which I can do >> >> ./examply.py mymolecule.xyz >> >> And for output I want to get mymolecule.png or the pymol window with all >>
Re: [PyMOL] using pymol from python script
Hi John, > I'm running version Version 1.2r2. This is probably why. I don't recall the exact version in which this became doable, but it's now available in the latest version. Cheers, -- Jason -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) jason.vertr...@schrodinger.com (o) +1 (603) 374-7120 -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
Re: [PyMOL] using pymol from python script
Thanks, it seems that Ubuntu has a quite updated pymol version in its repositories. I will install a new version by hand. John On 02/18/2011 05:43 PM, Jason Vertrees wrote: > Hi John, > >> I'm running version Version 1.2r2. > This is probably why. I don't recall the exact version in which this > became doable, but it's now available in the latest version. > > Cheers, > > -- Jason > -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
Re: [PyMOL] Getting object names
Hi Bradley, if your group is named "mygroup", then do the following: print cmd.get_object_list('(mygroup)') Cheers, Thomas On Wed, Feb 16, 2011 at 12:19 AM, Bradley Hintze wrote: > Hi all, > I know that you can get ALL pymol object names by running cmd.get_names() > but if you have objects in a group is there a way to get just the names of > the objects under that group? > Thanks, > Bradley > > -- > Bradley J. Hintze > Graduate Student > Duke University > School of Medicine -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net