top of page

Online STM Simulation

If you need STM image prediction for gas-phase molecules then you can get your result more accurately and much faster than you are used to. Currently, we have implemented the free version of the app limited to 50 valence electrons. In future paid versions this limitation will be removed.

How the STM web-app works

Choosing a molecule input
Adding the molecule

There are two ways of adding a molecule to the app.

  1. Chemspider holds over 100 million structures and Espeem allows adding a molecule directly from this extensive database.

  2. Smiles code - if you are working with molecules unique to your group we also have the option to provide a Smiles code and generate a molecule using a pre-optimizer provided by RD-Kit. Limited to organic molecules.

Pre-processing the molecule

After import, the molecule is rotated to lie as flat as possible on the surface with the principal axis along the x-axis. Any ambiguity due to spatial symmetry is resolved using the Pymatgen symmetry package.

Choosing the Simulation Parameters

A great amount of effort has been put into reducing the complexity of the input resulting in an interface are only 4 parameters to set.


Think of the parameter as a way to explore the effect of lower/higher setpoint current. Unfortunately, you cannot expect quantitative agreement with your experiment due to limitations in both the algorithm and our knowledge of the precise tip.

Bias level from MidGapLevel to:

This parameter allows you to choose what molecular states to include in the calculation. When you pick, for instance, LUMO+2 the calculation of the STM image will include both LUMO+0 and LUMO+1 in addition to half the contribution of the LUMO+2 level. Note that the last level is included only with half the contribution since the voltage is assumed to correspond to the peak value you would observe in STS measurement.

Spatial Broadening[Ang]

This parameter represents the assumed uncertainty in the tip position. After the current is generated as a function of the tip position, a gaussian kernel is applied in the lateral directions with this standard deviation. This is a kind of fitting parameter that should be adjusted to fit your experimental setup. Try different values and pick the one that best matches your experimental image/setup. Note that this method of applying lateral uncertainty is more correct than simply applying a gaussian to the final image.

Voltage Broadening[V]

This parameter is the assumed uncertainty in the voltage. A gaussian kernel is applied to the bias window to soften the transition between the molecular states included and not included in the calculation. When molecular states are close in energy, increasing this parameter reduces the difference in the predicted image. We suggest picking a value close to the minimum width of peaks in your STS spectra. 

Using the results
Browse the Results in the App

When you have several results on the same molecule you can browse them in the app. A pretty cool system with "pins" on the already calculated values allow you to switch seamlessly between browsing calculations and requesting new ones.

Download for Use in other Programs

You have the option to download the data from the interface, which will give you a zip-file with:

  1. The topographic image generated as a '.png'-file.

  2. A '.png'-image of the molecule with the atoms shown as balls. Note that the scale of this model and that of the topographic image is exactly the same and can easily be used side-by-side or overlayered. 

  3. The raw simulated data as a '.gsf'-file (Gwyddion Simple Field). This format can be opened by the free Gwyddion software along with many data formats for experimental data allowing for direct comparison with exactly the same color scale.

  4.  A molecule DFT-relaxed version of the molecule as an '.xyz'-file.

  5. An 'explanation.txt' file which shows an explanation of the theory used along with suggested citations.

  6. A '.py' which shows the script that was used internally in CalcTroll. This file is mostly provided for transparency into the workings of the interface.

  7. (only ChemSpider). The original input file downloaded from the ChemSpider database as a '.mol'-file. 

Now that you know more - try it out...
bottom of page