Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incomplete sampling for conformational search on a system of two molecules #394

Open
tfhughes opened this issue Jan 27, 2025 · 9 comments
Open
Labels
question Further information is requested

Comments

@tfhughes
Copy link

tfhughes commented Jan 27, 2025

I have an input system composed of two molecules, (1) one molecule with conformational degrees of freedom and (2) the other a diatomic molecule, on which I want to run conformational search. If running only (1) then conformers are properly returned. But if running the attached input featuring both molecules in the input as a supersystem then only a single supersystem conformer is returned which is unexpected. Not sure why it doesn't sample (1) in the supersystem. I have experimented quite a bit with input settings, including energy window, RMSD, NCI mode, etc., but still only a single conformer. I know at least one other conformational search engine is able to do it. Please advise if this is possible to do and if so how. Run the attached tarball using Crest version 3.

crest_test.tar.gz

@tfhughes tfhughes added the question Further information is requested label Jan 27, 2025
@pprcht
Copy link
Contributor

pprcht commented Jan 27, 2025

--noreftopo is not the same as --notopo. Also, you can probably simplify the constraining issue with the freeze option.

crest input.toml --notopo --noreftopo --nocross

input.toml.zip

Works fine even without NCI stuff; I assume you where after conformations in the 5-ring?

Image

@tfhughes
Copy link
Author

Great, thank you. Yes the 5-ring. Okay I see that in my original calculation that many conformers are being removed in the dynamics due to topology changes. Sorry for the following questions but trying to understand a few details.

When is using --notopo recommended? Maybe for multi-molecular systems? Is it a result of the fact that the your bond assignment creates a bond between the two molecules and that the dynamics is breaking the bond? If so what does that have to do with the 5-ring? Maybe all 5-ring changes also have those bonds breaking and so they are removed?

Also is there a specific reason why you recommend running with --nocross?

@pprcht
Copy link
Contributor

pprcht commented Jan 29, 2025

The initial geometry optimization converges to something with changed topology w.r.t. the sulfur atom and you will see the program stopping automatically due to that. --noreftopo turns off only this initial check, but none of the subsequent topology checks, meaning whatever it detects as the lowest will define a reference topology for all else.
Unfortunately the empirical detection of sulfur and phosphor topologies based on the CN is not good, so all conformers of this system seem to differ w.r.t. the reference topology. -notopo skips this check. Usually, both --noreftopo and --notopo should be used if you really want to skip any topology check. Sampling for systems with weak or non-covalent bonds usually benefit from turning it off.

I used -nocross because for this system no new structures were generated during the crossing algo, and in my test the program simply stopped after that, which I want to avoid. The NCI setting also would turn it off by default because the internal coordinate Z-matrix for non-covalent systems is not suitable for the crossing algo.

@pprcht
Copy link
Contributor

pprcht commented Jan 29, 2025

Oh sorry, one addition: I have mistyped in the freeze keyword, it should be a string freeze="1,2,3,9,10" rather than a toml array. The system hold together pretty well considering that...

@tfhughes
Copy link
Author

tfhughes commented Jan 29, 2025

Oh sorry, one addition: I have mistyped in the freeze keyword, it should be a string freeze="1,2,3,9,10" rather than a toml array. The system hold together pretty well considering that...

So I guess previously it was silently doing nothing?

Okay that explains the slight difference wrt when I ran your recommendation (less the freeze option) using my original substructure constraints. Does freeze='1,2,...' apply substructure constraints to those atoms and the rest of the atom for dynamics automatically?

@pprcht
Copy link
Contributor

pprcht commented Jan 29, 2025

The freeze disallows any change to the frozen atom's coordinates in the dynamics and geometry optimization procedures (within numerical precision, there are some double to single precision typecasts and projections in the geometry opt.).
Dynamics may also require turning SHAKE off, I'm a bit suspicious that SHAKE actually does what I want with the frozen atoms.

@tfhughes
Copy link
Author

Okay. Makes sense. Thank you. Feel free to close this case.

@tfhughes
Copy link
Author

tfhughes commented Jan 29, 2025

Oh sorry, one addition: I have mistyped in the freeze keyword, it should be a string freeze="1,2,3,9,10" rather than a toml array. The system hold together pretty well considering that...

One thing here that I am confused on. When I run your original zip file but with the proper freeze command in the toml I do not get 5-ring sampling?

Image

I think maybe it doesn't understand what atoms to run meta-dynamics on. If I use my original substructure inp file where these are specified it seems fine.

@pprcht
Copy link
Contributor

pprcht commented Jan 30, 2025

Yes, that's what I meant, it sampled well even without the freeze command. With it you will probably need to turn SHAKE off. What's also beneficial is to NOT freeze one of the P atoms, e.g. # 10, so that the ring can do more floppy movements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants