Comments (7)
Glad you're finding xyz2mol useful!
Molecules with many nitro and phosphate groups will take long and there isn't really a general way to speed it up without changing the entire approach.
One could make some hacks that identify these specific groups and deal with them differently but I am reluctant to put that in the official version of the code. Let me know if you want to implement it locally and I can give you some tips.
I also note that xyz2mol didn't identify the bonding correctly on the second molecule. Maybe removing the Huckel option will fix it. In general it's a good idea to use both and visually inspect those where they differ as a sanity check.
from xyz2mol.
Alright, thanks a lot!
I think it should be fine for now since only very few structures seem to be effected.
I will try to use the script to analyze 3d structures generated with a generative model. There shouldn't be too many nitro and phosphate groups as they are also rare in the training data. But if the process slows down too much I will get back to you and think about implementing the hacks.
Also, I will keep the sanity check with and without Huckel option in mind, thanks for the hint!
In general, I do not require the script to obtain the correct bonding in all cases as long as it detects the bonding correctly in the vast majority of the cases (and it seems to accomplish that on the training data, we'll see how it performs on generated structures which can be more inaccurate).
from xyz2mol.
I just tried the second example without Huckel and it finished in less than a second and obtained the correct bonding (however, the first example also takes a long time without Huckel).
Is there a general rule which of the two approaches is faster/more reliable or does it strongly depend on the structure?
It would be nice to decide for either one of them without manually checking the results if they differ, but this would of course only make sense if one approach is superior (on average) in obtaining the correct bonding.
from xyz2mol.
In my experience, the Huckel option is more reliable. In fact, I was really surprised to see that it failed for molecule 2. Molecules with many nitro groups will always take a long time, but it's hard to predict in general.
Anyway, just be aware that xyz2mol will occasionally screw up and it's hard to predict if and when it happens.
from xyz2mol.
Thanks again!
Is it always the same lines of code where molecules get stuck when it takes so long, e.g. a loop?
I am thinking about implementing a kill switch that raises a timeout error if the calculations take longer than e.g. 5 minutes.
from xyz2mol.
it is the loop over valences
in AC2BO
that can take a long time.
from xyz2mol.
Okay, I should be fine with handling these special cases then.
Keep up the good work!
from xyz2mol.
Related Issues (20)
- Purpose of 1.3 multiplier in checking covalent bonds HOT 2
- Stranger case when convert xyz file to mol HOT 5
- missing support for boron atoms HOT 1
- Problem with assignment of charges HOT 4
- 'charge_OK' referenced before assignment HOT 1
- Failure for Ruthenium complexes HOT 2
- `--sdf` argument HOT 1
- Release on conda HOT 25
- Valence greater than 4 HOT 1
- typo? HOT 2
- NameError: name 'defaultdict' is not defined HOT 5
- Parsing nciatlas geometries HOT 1
- Add UserWarning for incorrect charge?
- atomic valence of O atom inconsistent with RDkit HOT 2
- Convert xyz file with several structures in it (different molecules or same molecule, conformers) HOT 2
- how does this relate to rdkit.Chem.rdmolfiles.MolFromXYZBlock and rdkit.Chem.rdmolfiles.MolFromXYZFile ? HOT 1
- Propyl radical gives empty list of molecules HOT 4
- sdf file is empty while converting from xyz file HOT 12
- Comparison with OpenBabel?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xyz2mol.