I would like to automate some of my calculations, and I am looking for a tool to generate reasonable good initial geometries.

The details: I have already optimized molecular geometries, and I would like to perform calculations of several different substituted version of the molecule. Because of the size of the system, it would make sense to keep the already optimized geometry and exchange e.g. selected -H atoms to some R1, R2 groups. Is there any library that can manipulate 3D geometries this way?

I am aware I can do similar things with much graphical software (GausView etc). However, the point would be automation: a command line tool or a library or something similar that I can call from Python scripts, instead of me clicking things on a screen one by one.

I am also aware that I can generate 3D geometry from 2D or such. However, I would like to keep the already optimized main part of the molecule (it can be pretty big), for more efficient calculations, and insert new groups. I appreaciate any help, thanks.

  • 2
    $\begingroup$ You might be able to adapt the code described in this blogpost. It's designed for TSs, but can be used for any scaffold proteinsandwavefunctions.blogspot.dk/2017/12/… $\endgroup$
    – Jan Jensen
    May 11, 2018 at 9:07
  • $\begingroup$ You could try cclib in python to parse computational chemistry output files (i.e. your initial optimisation), manipulate coordinates with your own code and then use cclib again to generate new input files for your program of choice. $\endgroup$
    – user41033
    May 11, 2018 at 10:01
  • $\begingroup$ The key here is keeping the already optimized part, and having the new group insertion not be naive (overlapping atoms). The correct solution would be Avogadro, where you click on an atom to replace it with a new one and it avoids collisions, and then the ability to do a constrained minimization, but entirely from a script. If this is possible from the Open Babel Python interface, I don't know. $\endgroup$ May 11, 2018 at 16:25
  • $\begingroup$ @VicLineal Thank you, but my question may not have been clear: I have no problem parsing the output and generating the input files. My question was about the later part, manipulaitng coordinates. $\endgroup$
    – Greg
    May 11, 2018 at 17:05

1 Answer 1


For most of the geometry creation/manipulation I do, I use the Atomic Simulation Environment (ASE) - all in python.

It's pretty straightforward to use and has a gui so you can make sure you're doing the right thing as you go along. In particular, I'd recommend playing with it in a jupyter notebook.

Checkout https://wiki.fysik.dtu.dk/ase/tutorials/manipulating_atoms.html for some examples.

The ASE also has a dataset of existing molecules that you can import and add to your structure in various places.


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.