Hi again!


So in my quest to use OpenMM from Chimera, my first proof-of-concept attempts consist of using a PDB file as intermediate to convert chimera.Molecule objects to OpenMM Topologies (using openmm.app.PDBFile loader). 


While not ideal yet, it'd be convenient to use StringIO() as a memory file, and I have been more or less successful. This is my strategy:


memfile = StringIO()

m = chimera.openModels.list()

chimera.pdbWrite(m, m[0].openState.xform, memfile)

memfile.seek(0)

# pass memfile to openmm.app.PDBFile and do OpenMM stuff

memfile.close()


It works, but some residues are not properly recognised... I dumped the converted PDB to an actual file and saw that the problematic residue (an ARG) is totally messed up! I've attached the results: original file is the mol2, the converted one is the pdb, and also a Chimera session with both superimposed.


What's the recommended method to convert a chimera.Molecule to a PDB file (if possible, in-memory) with Chimera Python API?


Thanks a lot!