grimme-lab / CENSO

CENSO - Commandline ENergetic SOrting of Conformer Rotamer Ensembles
https://xtb-docs.readthedocs.io/en/latest/CENSO_docs/censo.html
GNU Lesser General Public License v3.0
22 stars 9 forks source link

Adding more conformers from CREST and restarting #51

Closed asmusod closed 4 months ago

asmusod commented 9 months ago

Hello,

Thanks for your work on this great tool!

I'm attempting to use it in a way that is maybe slightly abusive, so feel free to tell me to stop instead of helping :) Anyway, I am trying to refine a CREST ensemble of a rather large and floppy molecule that results in ~20K conformers - too many to process through CENSO within a feasible use of my available computational resources. So I've created a "sub-ensemble" where I include Ne lowest-energy conformers from CREST, and then add at random Nr conformers more from the remaining CREST conformers. After running CENSO on this new "sub-ensemble" I wanted to add Nr2 conformers again, an repeat until the lowest-energy conformer stays the same (and no new conformers with large boltzmann weights show up). I am keeping track of the CONF# to make sure I don't mix them up during this process.

Run1 thus contains N + Nr = 2000 conformers Run2 contains N + Nr + Nr2 = 2500 conformers

This means that my ensemble.xyz increases in size from run1 to run2, and so on, appending the new conformers at the end.

I can get CENSO to acknowledge the new conformers in ensemble.xyz in run2 by explicitly adding --restart -nc 2500

I can get CENSO through parts1-2 and also through the single-point energies in part3.

The program crashes after calculating all the SPs in part3 with the message:

high level single-point calculation was successful for  CONF264/part3: -2392.68740045
ERROR in part3!

The error-message is <censo_qm.orca_job.OrcaJob object at 0x7f32a7f56fd0> is not in list

**************************************Traceback for debugging:**************************************
****************************************************************************************************
Going to exit!

That sounds a bit like my hack doesn't correctly update the number of conformers everywhere. The run2 json file does correctly state nconf = 2500 and maxconf = 2500.

Is there some last hack I can do to get the Gibbs Free Energies and Boltzmann weights of part3, or is there some central issue with my idea I haven't considered?

I'm using v. 1.2.0

Thanks for your time, and apologies for the wall of text.

/Asmus

asmusod commented 9 months ago

Ok, so I cloned the code and ran args, config, conformers, ensembledata = enso_startup(cwd, args) to check the contents of conformersand ensembledata etc. The conformers list does have the new correct length of 2500. Which probably isn't surprising since part1 and 2 and most of part3 ran successfully on the new conformers. I didn't manage to find any places with mismatches in this list length.

However I also noted that the file enso_ensemble_part3.xyz written in run2 does not contain any new conformers compared to enso_ensemble_part3.xyz.1 written in run1 (enso_ensemble_part2.xyz contains 1 more). So there isn't anything left for the program to do, as it has already calculated the Gibbs free energies in the last run...

So, I think you can safely close this issue again :)

I'm not deleting it myself quite yet, it since I think the same error might be thrown if you add more conformers (that are all filtered out again) the way you're actually meant to do it.

/Asmus