From: Vermaas, Josh (
Date: Thu Jun 10 2021 - 09:19:11 CDT

Hi Chris,

Can’t you use topotools mergemols to do this?

package require topotools
set pdblist [glob *pdb]
set midlist [list ]
foreach pdb $pdblist {
                set mid [mol new $pdb]
                lappend midlist $mid
set mol [::TopoTools::mergemols $midlist]
animate write psf merged.psf $mol
animate write pdb merged.pdb $mol

This would get you everything into a single molecule, but as you state, this would be a royal mess to select over. What exactly are you trying to do that needs them in the same molecule?


From: <> on behalf of Chris Neale <>
Date: Wednesday, June 9, 2021 at 8:32 PM
To: vmd-L <>
Subject: vmd-l: loading multiple different topologies into the same "molecule"

Dear users:

does anybody know if it's possible to load many different PDB files into the same molecule and have those PDB files have different system compositions? An example would be to be able to run "vmd -f *.pdb" on a large collection of PDB files of the same protein family, etc. I realize that some selection tools would then break (e.g., a selection of "resid 19" might not always play nice), but sensible selections, like "protein" "water", etc might be OK. I know that there are some good ideas with putting particles far away for things like constant pH simulations, but that's not as generalizable as loading in all SH2 domains in the PDB, for example.

I realize that I could script image generation, or load hundreds of separate molecules with a "vmd -m *pdb" command, but none of those is as intuitive for browsing structural data where some models may have missing residues, insertions, different sequences, different numbers of water, etc.

If such a capability does not exist, can anyone guess how hard it would be to implement right in the GUI? I'm not asking for anyone to actually do this, just trying to get a sense of how hard it would be.

PS: I've got 10+ years experience with VMD, and I'm fairly confident that this is not possible at the present time. However, I'm asking since (a) somebody might have a great alternative solution and (b) in any event I'm interested in learning how hard this would be to implement.

Thank you for your advice,