SaveGroup

From PyMOLWiki
Jump to navigation Jump to search

This script creates the command "saveGroup". saveGroup will save the specified group to disk as one file with all group objects in it, or as many files one pdb in each file. To save to one file just call

saveGroup groupName

to save to many files call

saveGroup groupName, oneFile=False

.

The Code

import pymol
from pymol import cmd, stored


def saveGroup(g, oneFile=None):
    """
    Save all files inside group 'g' to either
    one file or a list of files
    
    PARAMS
    g
        name of the group to save

    oneFile
        if not specified or None, saves each protein in the group
        to its own file, if oneFile=True, then saves all the files
        in the group to just one file.
        
    RETURNS
        None
    """

    oneFile = (oneFile!=None)

    if cmd.get_type(g) != "object:group":
        print "Error: please provide a group name to save."
        return

    stored.models = set()
    cmd.iterate(g, 'stored.models.add(model)')
    
    if oneFile:
        cmd.save( g + ".pdb", g)
    else:
        for x in stored.models:
            cmd.save( x + ".pdb", x)


cmd.extend("saveGroup", saveGroup)

See Also

group toGroup