Split chains: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(Created page with "'''split_chains''' is a script that creates for each chain in selection its own object. == Usage == split_chains [ selection [, prefix ]] == Example == <source lang="python"...")
 
(PyMOL 1.6.0.0)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox psico
|module    =  psico.editing
}}
'''split_chains''' is a script that creates for each chain in selection its own object.
'''split_chains''' is a script that creates for each chain in selection its own object.
''This is a core command since PyMOL 1.6.0.0''


== Usage ==
== Usage ==
Line 33: Line 39:
     for model in models:
     for model in models:
         for chain in cmd.get_chains('(%s) and model %s' % (selection, model)):
         for chain in cmd.get_chains('(%s) and model %s' % (selection, model)):
            if chain == '':
                chain = "''"
             count += 1
             count += 1
             if not prefix:
             if not prefix:

Latest revision as of 07:39, 23 August 2013

Included in psico
This command or function is available from psico, which is a PyMOL extension.

Module psico.editing

split_chains is a script that creates for each chain in selection its own object.

This is a core command since PyMOL 1.6.0.0

Usage

split_chains [ selection [, prefix ]]

Example

fetch 2yko 2ykp 2ykq, async=0
split_chains
delete 2yko 2ykp 2ykq
alignto 2yko_A

The Script

from pymol import cmd, CmdException

def split_chains(selection='(all)', prefix=None):
    '''
DESCRIPTION

    Create a single object for each chain in selection

SEE ALSO

    split_states, http://pymolwiki.org/index.php/Split_object
    '''
    count = 0
    models = cmd.get_object_list('(' + selection + ')')
    for model in models:
        for chain in cmd.get_chains('(%s) and model %s' % (selection, model)):
            if chain == '':
                chain = "''"
            count += 1
            if not prefix:
                name = '%s_%s' % (model, chain)
            else:
                name = '%s%04d' % (prefix, count)
            cmd.create(name, '(%s) and model %s and chain %s' % (selection, model, chain))
        cmd.disable(model)

cmd.extend('split_chains', split_chains)

See Also