zadorlab / KinBot

Automated reaction pathway search for gas-phase molecules
Other
44 stars 14 forks source link

Visualization after a pes or Kinbot run? #69

Closed liqiang4567 closed 6 months ago

liqiang4567 commented 6 months ago

Hello, after successfully finishing kinbot and pes tasks, I want to use pesviewer pesviewer.inp command to visualize potential energy surface, but to generate *.html file, I want to generate the following image how to do? thank you.

image image

juditzador commented 6 months ago

Hi! You need to install the PESViewer code from here: https://github.com/zadorlab/PESViewer Does this answer your question?

liqiang4567 commented 6 months ago

I installed it using conda install -c conda-forge pesviewer. Running pesviewer pesview.inp didn't get any errors. I got some files, but I didn't get the diagram I wanted.

image image

juditzador commented 6 months ago

OK. I don't think that this is the main reason, but the conda release if behind, install this from source. But more importantly, to see the type of pictures that are above, you need to run an X terminal. And the save should be set to 0 in the pesviewer input, but I think that's the default. The result should just pop up automatically. The html view is there, but I think that's not what you are after. Are there any error messages? Are there structures in the _2d directory? You can also try to set save to 1, then the picture is save, and is not popping up, and then you can open it from the folder.

liqiang4567 commented 6 months ago

Ok, thank you for your reply. I have two more questions:

  1. How do ChemID know that species are unique? chemID describes the surrounding atoms, and does not describe the bond length, bond Angle, bond type, etc. In other words, knowing two chemids does not make it clear that they are two different species.
  2. We know that we can get chemids from molecules, but can we get species from chemids?
juditzador commented 6 months ago
  1. The chemid is created purely on the connectivity, similarly to smiles or other identifiers. It just encodes the graph of the molecule. Crucially, it is invariant to atom ordering, so two chemically equivalent species presented in differently ordered XYZ coordinates will yield the same chemid. Stereochemistry is not encoded (yet). But fundamentally, chemid is not designed to distinguish conformers. We (I) consider two conformers the same species. However, I understand that in atmospheric chemistry or other low-T applications sometimes you want to treat reactions at the conformer level. We have the ability to do multi-conformer TST. But we don't currently have ways of finding saddle points between conformers, although you can find those relatively easily from the HIR scans. But some manual work is needed. If there is a feature you'd like to have in KinBot related to this, let me know, and we can add it to our list.
  2. Chemids are hashes, they only work in one direction. But we always have acces to the XYZ... so it's not an issue in our workflow. Chemids are simple, but have some loss of information in this sense.
cmartia commented 6 months ago
  1. The chemid hashes the bond matrix keeping invariance respect to same-atom permutations. It DOES account for bond orders. The purpose of the chemids is to differentiate species with different constitutional isomerism (different bond connectivity) so to identify when bonds form and break, which is the main goal in KinBot. Additionally, KinBot has other ways to keep track of different conformers and other stereoisomers but not through the chemid.

  2. Like in any hashing algorithm the relation is unidirectional. However, bear in mind that in the directory hierarchy created by KinBot in the PES mode, each directory named after a chemid there's 'initial_geometry.xyz' of the unoptimized species (which in many cases it is the structure optimized at a previous stage) so you can always relate both. Additionally I find useful to symlink important chemid directories with names that I can remember (ln -s chemid short_name). Or create a dictionary file (eg. a json) relating chemids with short names.

liqiang4567 commented 6 months ago

Thank you for your reply