Hi Praz,

Sorry. Please use this new version of the script.

import __main__
__main__.pymol_argv = ['pymol','-qc']
import pymol
from pymol import cmd
pymol.finish_launching()
import glob
import os

path = os.path.dirname(pymol.__script__)

cmd.delete('all')
pdb_files = glob.glob(os.path.join(path, '*.pdb'))
for pdb in pdb_files:
    cmd.load(pdb)
    ### insert your code here ###
    cmd.png('%s' % pdb.split('.')[0])
    cmd.delete('all')


The last didn’t work because I was expecting you to run the script just as
any Python program (and not from PyMOL) using one of this two options
<http://stackoverflow.com/questions/9493086/python-how-do-you-run-a-py-file>.
Sorry about not explaining this before. The version I am sending you know
should work with any of the 3 running methods.

Cheers,

Osvaldo.

On Mon, Jun 8, 2015 at 7:27 AM, Praz Nina <praz...@gmail.com> wrote:

Thank you Osvaldo.
>
> However, as a beginner, I am having problems with getting this to work. I
> pasted your script in a file (script.txt) and placed it in the same folder
> where the pdb files are. Then I ran PyMol and typed "run
> c:\somefolder\script.txt", but I all get is a black screen and no .png
> files are generated.
>
> On Sat, Jun 6, 2015 at 2:42 AM, Osvaldo Martin <aloctavo...@gmail.com>
> wrote:
>
>> Hi Praz,
>>
>> When I want to process several files, do complex or repetitive tasks I
>> prefer to write a Python script and access the PyMOL functions using the
>> PyMOL API, as in the code below.
>>
>> This example will upload all the pdb files in the folder where the script
>> is located, one file at a time, save the current image as a png file and
>> then delete the uploaded molecule.
>>
>> import __main__
>> __main__.pymol_argv = ['pymol','-qc']
>> import pymol
>> from pymol import cmd
>> pymol.finish_launching()
>> import glob
>>
>> pdb_files = glob.glob('*.pdb')
>> for pdb in pdb_files:
>>     cmd.load(pdb)
>>     ### insert your code here ###
>>     cmd.png('%s' % pdb.split('.')[0])
>>     cmd.delete('all')
>>
>>
>> Cheers,
>> Osvaldo.
>>
>> On Fri, Jun 5, 2015 at 7:50 PM, Praz Nina <praz...@gmail.com> wrote:
>>
>>> Hi all,
>>>
>>> I'm a beginner at PyMol, but I'm wondering if a batch action like this
>>> would be possible: If I have a bunch of .sdf and .pdb files in a folder,
>>> and I want to apply a specific "look" to all of them (I've written the
>>> parameters regarding light, field of view etc.), is it possible to batch
>>> process all of them and output a .png file of each of those structures?
>>>
>>> Likewise, if I want to make a movie from all of those structures (also
>>> have written a script, 450 frames, 360 rotation), can I process these files
>>> in a batch?
>>>
>>> Thanks,
>>> Praz
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> 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
>>>
>>
>>
>  ​
------------------------------------------------------------------------------
_______________________________________________
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

Reply via email to