This is a read-only mirror of pymolwiki.org

Difference between revisions of "Split chains"

From PyMOL Wiki
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"...")
 
m (4 revisions)
 
(3 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 03:36, 28 March 2014

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