pdb code: 2obt

The pdb file has a coordinates of a monomer.

I have used following commands to generate an assembly, or in other words to upload one more biological unit so that the protein would be a dimer:

set assembly, ""
fetch 2obt, asu, async=0

set assembly, "1"
fetch 2obt, assembly1, async=0

After generating the functional dimer in pymol under name assembly1, I have an important issue that I cannot save a dimer structure in pdb file with dimer coordinates. Does anybody has an idea how to go around it or is it even possible to do that?

  • $\begingroup$ can we says that "after uploading the biological unit is not the right wording" ?? --> When loading mmCIF structure files, the assembly setting controls whether PyMOL loads the asymmetric unit (assembly="") or a biological unit (e.g. assembly="1"). Assembly identifiers in mmCIF files can be arbitrary strings, but usually are numeric and most files define at least assembly "1". I guess the biological unit is created applying same symmetry operator on the asymmetric unit (or am I wrong ??). Ok PymolWiki says loading, actually loads ..... $\endgroup$
    – pippo1980
    Commented Aug 27, 2023 at 11:10

1 Answer 1


So on the GUI form of PyMOL on the right hand side you have a list of what is ambiguously called objects in PyMOL (models elsewhere), which can be enabled or disabled by clicking on their name. The name also has a 1/1 in green or similar. This indicates the state. In your case you have 2 states.

To split a multistate object use

split_state prot_A

To combine two objects one uses the command

create new_name, prot_A or prot_B

Now, this has two caveats which if violated result in a nasty piece of modern art:

  • if the chains, segment ids and residues are the same
  • if you had two overlapping macromolecules

To deal with the first, change the chain id on one of them.

alter prot_B, chain='B' sort

Segment identifier is a weird thing that most comp-biochem tools dislike, so I like to remove that

alter prot_B, segi='' sort

Now when you go to save your new_name object, in the popup of the GUI you get a dropdown menu defaulted to enabled (visible objects that have not be clicked to be disabled). There you can choose new_name.

Aligning two

If someone that is in not the OP author has a template protein and needs to make a dimer of another based on that, the process is the same.

create twin, prot_B
align twin, prot_A and chain B
alter twin, chain='B'

SDF files

If someone else has a multicompound sdf where the state is the header name, I strongly advise not to use split_state. Yes, the python pymol module (not the app) handles states in a really weird way, but states can be selected with state 1 selection algebra and state is an argument for most commands that do not accept state selector.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.