I run a study-group (made up from data-scientists, math, and physics people who are quite tech-literate) who’ve decided to learn molecular modeling techniques. The team is looking for a good introductory (and open-source) package that’d help focus our study. We’ve looked at ASE, Gromacs, Pyquante etc…and read a bunch of papers; but it’s still unclear for us - as beginners - what framework would be best to try to learn first.
To be more concrete, I’m not even sure if I understand the limits and capabilities of these various tools. At this stage of our study, just some basic shape modeling (H2O, CH4, HCl) feels like a really straightforward goal to aim for…but I can’t seem to find any tutorials on these tools that’d help us do that.
Of course i realize these are SUPER-BASIC problems compared to what the pros are doing. Just trying to find a way to learn by replicating basic prior results.
We’re fast learners, capable coders and decent enough at higher math. The team also has a fairly strong command of quantum mechanics. We just don’t have all that much computational chemistry background. Hope that doesn’t sound arrogant that we’re trying to learn it on our own outside a University, but sometimes that kind of thing is possible nowadays!
Would so love to be able to learn just how to model water molecules with some Python! Would ASE be the right starting place?
Hi @krowney, welcome!
I don’t think I can give a full answer to this question, but some general information for context that may be helpful:
You’ve posted this question in the “Materials Project” category. The Materials Project (materialsproject.org) is a long-running project that develops open-source tools (pymatgen, atomate, fireworks, etc.) and provides open-source data (via our website and API) on primarily inorganic crystalline materials. To do the actual calculations, we primarily use the paid VASP code, but we have interfaces with other codes too.
There are obviously a great many different modeling techniques out there, and I would not be able to do them all justice here. I think for a beginner, I would recommend one of either (1) a plane-wave basis DFT code, if you’re interested in simulating crystals or other periodic systems, e.g. VASP, ABINIT, Quantum Espresso, CASTEP etc., (2) a localized basis DFT code for molecules, e.g. Q-Chem, NWChem, etc., or (3) a classical molecular dynamics code, useful for larger systems and very dynamic models, such as LAMMPS (see the #lammps category here), etc.
Codes such as pymatgen or ASE are often good “glue” codes, i.e. they’re written in a higher level language like Python and provide standardized interfaces to some of these underlying codes. I offer my bias as a pymatgen developer as a code geared towards high-throughput calculations, but ASE is also excellent and provides many good “calculator” interfaces to common codes, and is highly recommended.
If you’re more interested in methods development, there are some codes like HORTON which is less about running calculations at-scale or practical applications, and is more about offering a sandbox to iterate on methods.
All of these tools, methods, etc. have important and essential limitations and caveats, so becoming familiar with the literature is really important. If you’re interested in molecules rather than crystals, this recent review is excellent, although opinionated, so consulting various sources is useful.
I really appreciate the time you took to give me such a thorough and patient answer.
Quite useful. Thanks very much!
I think we’d like to learn DFT methods, then start by applying them to some super-basic molecular models (e.g. compute nucleic distances for H2/O2/I2 etc…) as a concrete project to focus on.
Sounds like I have mistakenly stumbled into the wrong group here, so i’ll likely need to politely duck out soon just to avoid cluttering the board. If, though, you have any recommendations on other online groups that focus on matters like these; I’d be grateful for any ideas you may have.
best wishes and thank you again,