-
Notifications
You must be signed in to change notification settings - Fork 228
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
[Python 3.9] Clar SciPy Re-implementation, pythoncall
Debugging, Optional RMS
#2694
base: feat/py39
Are you sure you want to change the base?
Conversation
added per sevy's review Co-authored-by: Sevy Harris <[email protected]>
fixed tabs
when it is missing
also update the final run example - the point of specifying the `PYTHONPATH` was so that users _don't_ have to give the full path to `rmg.py` - the `python` executable can search it out
- clearer error messages Co-authored-by: Hao-Wei Pang <[email protected]>
1. Replace lpsolve APIs with the scipy milp APIs. The new implementation potentially have a slightly better performance (due to vectorization, less data transfer, comparable solver performance, etc.) and improved readability. 2. Decouple the MILP solving step (as _solve_clar_milp ) from the MILP formulation step. The motivation is to avoid unnecessary computation. The original approach includes molecule analysis (specifically `get_aromatic_rings`) into the recursive calls. However, this is not necessary, as molecules are just copied and not modified at all. Therefore analyzing once is enough.
Co-authored-by: Hao-Wei Pang <[email protected]>
If two surface sites overlap, or if a site-adatom bond is too long, then give up on the fancy algorithm, and just let RDkit place the X atoms wherever, without them being bonded.
Previous commit put the import at the top of the file.
Adsorbates with more than one surface site were drawn weirdly, with the second or third surface site often floating up in the air. With this change, it temporarily forms a bond between the surface sites, so the layout algorithm sees them as part of a ring, then it rotates the molecule so they are at the bottom, and then it removes the bond once the coordinates are determined. There are some special cases and exceptions for things with many surface sites. Overall, though, this should make the adsorbates look much better.
…eat/resonance_scipy
TODO: add a pytest mark on all of the tests which require julia and then add a new makefile target or automatic detection in the testing aparatus to allow said tests to fail when julia is not installed |
pythoncall
Debugging, Optional RMS
Confirmed that I can now run RMG in plain Python mode with Python 3.9, following the installation instructions as of cce1f4b |
The latest versions of |
Docs build might not need to build Julia stuff anymore |
|
Need to update graphviz version to the latest |
…t, update subprocess syntax to py3
After optimization to get the Clar number, brute force enumerate all structures with that Clar number. |
Also, we should not optimize past the most optimal clar structure. |
This PR replaces #2623 as discussed in this comment: #2687 (comment)