Morph: Difference between revisions
No edit summary |
("match" argument) |
||
Line 17: | Line 17: | ||
* steps = int: number of states for sele2 object {default: 30} | * steps = int: number of states for sele2 object {default: 30} | ||
* method = string: rigimol or linear {default: rigimol} | * method = string: rigimol or linear {default: rigimol} | ||
* match = string: method how to match '''sele1''' and '''sele2''' {default: align} | |||
** in: match atoms by [[Selection Algebra|"in"]] selection operator | |||
** like: match atoms by [[Selection Algebra|"like"]] selection operator | |||
** align: match atoms with [[align]] function (with cycles=0) | |||
** super: match atoms with [[super]] function (with cycles=0) | |||
** ''name of alignment object'': use given alignment | |||
== Example == | == Example == | ||
=== Default Parameters === | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 24: | Line 32: | ||
align 1akeA, 4akeA | align 1akeA, 4akeA | ||
morph mout, 1akeA, 4akeA | morph mout, 1akeA, 4akeA | ||
</syntaxhighlight> | |||
=== Morphing with Ligand === | |||
Since the default '''match=align''' method ignores ligands in most situations, we'll use the "in" match method. In this case, both input structures need matching identifiers. The default post-RigiMOL sculpting refinement tends to let bounce around all molecules which are not connected to the protein backbone, that's why '''refinement=0''' might give better results in this case. | |||
<syntaxhighlight lang="python"> | |||
# get two hemoglobin beta chains, the "ligand" will be the heme hetero group | |||
fetch 1hbb, async=0 | |||
create conf1, chain B | |||
create conf2, chain D | |||
delete 1hbb | |||
# important: identifiers must be the same | |||
alter conf2, chain="B" | |||
alter all, segi="" | |||
# optional: styling | |||
as cartoon | |||
show sticks, not polymer | |||
show nb_spheres | |||
# superpose and morph | |||
align conf1, conf2 | |||
morph mout, conf1, conf2, match=in, refinement=0 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 22:31, 18 July 2015
The morph command is an incentive PyMOL feature (not available in open-source version). Given two or more conformations, either as two objects or one multi-state object, morph can create an interpolated trajectory from the first to the second conformation.
This command is new in PyMOL 1.6, for older versions see rigimol.morph, which requires some scripting.
Usage
morph name, sele1 [, sele2 [, state1 [, state2 [, refinement [, steps [, method [, match ]]]]]]]
Arguments
- name = string: name of object to create
- sele1 = string: atom selection of first conformation
- sele2 = string: atom selection of second conformation {default: <sele1>}
- state1 = int: sele1 state {default: 1}. If state1=0 and sele1 has N states, create N morphings between all consecutive states and back from state N to 1 (so the morph will have N*steps states). If state2=0, create N-1 morphings and stop at last state.
- state2 = int: sele2 state {default: 2 if sele1=sele2, else 1}
- refinement = int: number of sculpting refinement cycles to clean distorted intermediates {default: 3}
- steps = int: number of states for sele2 object {default: 30}
- method = string: rigimol or linear {default: rigimol}
- match = string: method how to match sele1 and sele2 {default: align}
Example
Default Parameters
fetch 1akeA 4akeA, async=0
align 1akeA, 4akeA
morph mout, 1akeA, 4akeA
Morphing with Ligand
Since the default match=align method ignores ligands in most situations, we'll use the "in" match method. In this case, both input structures need matching identifiers. The default post-RigiMOL sculpting refinement tends to let bounce around all molecules which are not connected to the protein backbone, that's why refinement=0 might give better results in this case.
# get two hemoglobin beta chains, the "ligand" will be the heme hetero group
fetch 1hbb, async=0
create conf1, chain B
create conf2, chain D
delete 1hbb
# important: identifiers must be the same
alter conf2, chain="B"
alter all, segi=""
# optional: styling
as cartoon
show sticks, not polymer
show nb_spheres
# superpose and morph
align conf1, conf2
morph mout, conf1, conf2, match=in, refinement=0
GUI
The morph feature is available from the object menu panel: A > generate > morph