-
Notifications
You must be signed in to change notification settings - Fork 16
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
Updated symmetry calculations #50
Conversation
We're now using RMGSpecies to determine symmetry numbers instead of the outdated `symmetry` package
You're unable to set a property so we're setting what is returned in the property
Codecov Report
@@ Coverage Diff @@
## master #50 +/- ##
==========================================
+ Coverage 63.2% 63.25% +0.04%
==========================================
Files 27 27
Lines 4626 4629 +3
==========================================
+ Hits 2924 2928 +4
+ Misses 1702 1701 -1
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great. Does it also work well for TSs?
Symmetry numbers calculated for TSs in previous checks pass... But I believe it breaks down a bit at that point. This symmetry method works via the connectivity of the RMGMolecule rather than on the positions. So, if we want to get it to work we have to do something like the following:
I make these updates shortly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more tests would be nice. Maybe iterate a list of species, and in another test a list of reaction TS, and their expected symmetry numbers.
Because of the way that symmetry numbers are calculated for RMG objects (based on the graph), we have to reinitialize the TS as a graph with an edge connecting reacting atoms. This is taken care of and an additional test was added.
numbers = self.ase_molecule.numbers | ||
positions = self.ase_molecule.positions | ||
|
||
mol = RMGMolecule() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small clarification, is mol
different from self.rmg_molecule
? can we just use self.rmg_molecule
instead of making a new object that might need more memory!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If ‘self.rmg_molecule’ has coords, I think we should use that. If not, maybe use the ‘update_coords_from’ method to create rmg mol from ase mol?
@skrsna @davidfarinajr “mol” is different than “self.rmg_molecule”. And the
reason why I’m doing it this way is because the “from_xyz” method will add
a bond between reacting atoms because they are positioned close to each
other. e.g. *1 will be bound to *2 and *2 will be bound to *3. This
connectivity is needed for the symmetry estimation because the estimations
are based on the graph not the 3D geometry. If we were to use the
“self.rmg_molecule” we would have the 3D geometry, but we would lack that
bond created with “from_xyz” which is needed for our TS symmetry
estimation. Here are some options:
- “del mol” and other variables once we get the symmetry number (to address
memory issues). But I’m thinking the memory aspect won’t be that much of an
issue even if we left it...
- add a bond between reacting atoms by hand and delete it once we get the
symmetry number. But this just doesn’t make sense to me to hand code that
when methods already exist in RMG
- leave it as is
Thoughts?
On Thu, Nov 21, 2019 at 16:56 davidfarinajr ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In autotst/species.py
<#50 (comment)>
:
>
- return symmetry_number
+ numbers = self.ase_molecule.numbers
+ positions = self.ase_molecule.positions
+
+ mol = RMGMolecule()
If ‘self.rmg_molecule’ has coords, I think we should use that. If not,
maybe use the ‘update_coords_from’ method to create rmg mol from ase mol?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#50?email_source=notifications&email_token=AE24N275ZUNNTBKRZPMS4JTQU372XA5CNFSM4JP2BGR2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCMSVT3A#discussion_r349338178>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AE24N27OTXRQQRYPLSOGOIDQU372XANCNFSM4JP2BGRQ>
.
--
Please excuse any errors, the previous message was sent from a mobile
device.
|
sounds good to me to leave it as it is if making a |
Updated the way that AutoTST determines symmetry numbers. We were using the outdated
symmetry
package to calculate this but it was resulting in errors in determination of symmetry numbers (see #49). This PR updates theautotst.species.Conformer.calculate_symmetry_number
method to use the symmetry number calculated by RMG's Species objects. Tests were updated accordingly as well.