Comments (5)
I'm also unsure about that feature, but it sounds like a really good idea. Starting each MacroModel job is definitely the bottle neck.
It would work as long as every structure in the file needs the same datatypes extracted. We'd have to come up with some way to assign relative energies properly, but other than that, it'd be fairly straight forward.
Any ideas on how we do this? Notice anything in their API?
from q2mm.
I have been seeing what macromodel is capable of and it seems we might be able to implement something like this. There are only a few problems:
- Vibrational analysis can not be done on multiple structures in the same *.mae file, so these will still have to be ran independently.
- It seems that a *.mae file with 3 structures will output another *.mae file with the three optimized structures in the same order, and if the *.mmo option is given then it will give a single file with all three structures in order. It does look like there is an option to make multiple *.mmo's but they would follow the naming scheme that macromodel defines.
I'll keep looking into this to see if we can use this because running a minimization followed by energy calculation of 30 structures in a single file takes less than a second to finish.
from q2mm.
Just in case you haven't already, you may want to look into filetypes.Mae.write_com
(writes .q2mm.com file according to datatypes requested) and its relation to filetypes.Mae._index_output_mae
and filetypes.Mae._index_output_mmo
. They're both lists that keep track of where output structures are. It recognizes that certain commands (like MINI, ELST, etc.) produce certain output, and updates these two lists to ensure we know the ordering of the structures.
These lists are then used by filetypes.select_structures
to cherry pick the right structures needed for the given datatype.
For example, using options like -me and -meo simultaneously takes a 3 structure input .mae and gives you a 6 structure output q2mm.mae. This leads to
filetypes.Mae._index_output_mae = ['pre', 'opt']
and the ordering in .q2mm.mae goes
- Structure 1 SP
- Structure 1 geometry optimization
- Structure 2 SP
- Structure 2 geo.
- Structure 3 SP
- Structure 3 geo.
from q2mm.
TL,DR Unless we have multiple licenses to use with MacroModel we really can't take advantage of serial calculations in any meaningful way.
So I'm not sure why I have not realized this before and I am not sure if you (Eric) have known this or not. If we want to compare geometric data or charges we can just use one file and the code already handles them well in both loop.py and compare.py.
With file1.mae containing struct1, file2.mae containing struct 2, file3.mae containing struct 3 and file4.mae containg struct's 1-3, then you get the following. Submitting this will be slow:
python compare.py -c ' -mt file1.mae file2.mae file3.mae' -r ' -jt file1.mae file2.mae file3.mae'
While this command will give the same result but 3 times faster:
python compare.py -c ' -mt file4.mae' -r ' -jt file4.mae'
I think we can do the same thing with energies. Regardless if you do a single energy command (-me) or multiple energy commands (-me and -meo) the code already picks up the correct energies for file4.mae. I think a simple way to use one file would be to use a reference data file (file4.txt with some command X) that contains all of those energies. So it would look like this:
python compare.py -c ' -me file4.mae -meo file4.mae' -r ' -Xe file4.txt -Xeo file4.txt'
But since there are not too many structures to compare with energies this probably won't save much time.
As for eigenvalues and hessian elements we can't do anything about speeding them up from what I gather. The RHHO macromodel command, that does the vibrational analysis, can not be done in a serial manner, or at-least using the BGIN/END or AUTO commands.
from q2mm.
Reference energies don't need to load MacroModel, so that won't help with time savings. That's simply reading a .mae file.
You could speed up calculating MacroModel energies by putting them all in one file, but you would need some other file that says how the energies are grouped. Let me know if you need more explanation.
from q2mm.
Related Issues (20)
- Problem with Hessian options
- Grabbing Eigenvalues HOT 1
- Force Constant Calculation HOT 1
- Exit status 3 from MacroModel HOT 5
- Input for compare.py and loop.py HOT 4
- Setup esp HOT 1
- Strange error reading Gaussian frequencies HOT 7
- Informative ValueError HOT 6
- Simplex HOT 25
- Dangerous torsion-test HOT 4
- License checking HOT 4
- SVD HOT 12
- Hessian inversion HOT 18
- Mass weight Gaussian energy derivative datatypes HOT 3
- loop error HOT 2
- The loop is broken HOT 2
- New method to read Jaguar eigenvalues HOT 1
- true/false properties in .mae file not working HOT 4
- RCA4 and TORC bond attributes not changing after merge HOT 1
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 q2mm.