Re: [PyMOL] using pymol from python script

2011-02-18 Thread John Russo
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

2011-02-18 Thread Jason Vertrees
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

2011-02-18 Thread John Russo
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

2011-02-18 Thread Jason Vertrees
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

2011-02-18 Thread John Russo
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

2011-02-18 Thread Thomas Holder
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