RagnarB83 / ash-documentation

Documentation for the Ash code
6 stars 1 forks source link

The difference between chemshell and ASH #1

Open StefanIsSmart opened 2 years ago

StefanIsSmart commented 2 years ago

Hi !

I am a newbie, I am trying to find some tools to do QM/MM or QM/MM MD with protein and Small molecules. I think maybe i can use ORCA&Chemshell&some MD software. But today i find your ASH. Can you tell me what's the difference between ASH and chemshell? And Can I use this to deal with my work? Is this software free?

Thank you!

Best wishes Stefan

RagnarB83 commented 2 years ago

Hi Stefan, ASH is similar in spirit to Chemshell. The software is free and open-source and has only just become available online: https://github.com/RagnarB83/ash You should be able to use ASH in your work. See https://ash.readthedocs.io/en/latest/setup.html on how to setup ASH.

Just be aware that being a young project, there will be things to fix as more users start using the program.

StefanIsSmart commented 2 years ago

Thank you for your reply : )

Because I always use OpenMM to do some MD simulation ,but chemshell do NOT have an interface for openMM. ASH‘s interface for OpenMM and ORCA is very useful for me because it can help me to do QM/MM with ORCA and OpenMM. It sounds like a great job ! And I will try to set up it in my server !

Do you have any relevant literature to introduce ASH? I hope to use it to deal with the interaction analysis of proteins and small molecules. So I hope to know more about it.

I look forward to the further update and development of ASH !

Thank you again! Best wishes :p

RagnarB83 commented 2 years ago

Yes, one of the ideas behind ASH was to simplify and avoid the multiprogram workflows that go into typical QM/MM studies: e.g. protein-setup with programA, classical MD with programB, QM/MM optimization with programC etc. and all the headaches associated with converting files (especially forcefield files) from one program to the other.

Because the OpenMM library is powerful, supports multiple forcefield files, comes with a Python API and allows protein-setup and MD, writing ASH as a Python QM/MM program with an interface to the OpenMM library and with simple interfaces to QM programs made a lot of sense. Furthermore, the interface to ORCA is particularly flexible.

This should in principle allow one to do complex protein QM/MM studies all within one program environment, ASH, (that talks to programs like OpenMM and ORCA behind-the-scenes).

The development of the program began in beginning of 2020 with the idea to write a program that we could use for almost all the research in our group . We've switched to using ASH in our protein QM/MM studies, we were using Chemshell before (with ORCA as QM-program).

There will be a paper written about ASH at some point, hopefully this year. Overall, the program is in the spirit of Chemshell but with different design choices. The QM/MM methodology is standard: additive QM/MM expression with link atoms and charge-shifting.

For now, all the information on the program is in the docs: https://ash.readthedocs.io/en/latest/

For protein MM and QM/MM studies the most important pages are: https://ash.readthedocs.io/en/latest/OpenMM-interface.html https://ash.readthedocs.io/en/latest/Metalloprotein-I.html https://ash.readthedocs.io/en/latest/Metalloprotein-II.html https://ash.readthedocs.io/en/latest/QM-MM-protein.html https://ash.readthedocs.io/en/latest/module_QM-MM.html

Let me know how it works out setting up and using it. Development of the program will continue in multiple directions but right now the priorities are to make sure the program is stable and bug-free and this will require input from users who try to use the program.

There will be something to cite for using the program soon.

StefanIsSmart commented 2 years ago

What is the difference of electronic embedding between Chemshell and ASH? How to use ASH to do some QM/MM MD ?like Umbrella sampling.

RagnarB83 commented 2 years ago

The electronic or electrostatic embedding scheme is identical in Chemshell and ASH, i.e. the electrostatic interaction between QM and MM programs is performed by making the pointcharges available to the QM program which enter as extra "nuclei" in the 1-electron Hamiltonian evaluation of the QM-program. This is the same meaning of electrostatic/electronic embedding in pretty much all QM/MM programs. When the QM-MM boundary goes through a chemical bond, things are a bit more complicated as the choice of boundary-atom strategy (linkatoms etc.) can be different which will affect the details of the electrostatic embedding scheme. But ASH uses a pretty much identical linkatom scheme to Chemshell with a charge-shifting scheme that preserves the dipole.

QM/MM MD is possible but at the moment only regular MD. See this page for the options available: https://ash.readthedocs.io/en/latest/module_dynamics.html The "OpenMM_MD" option mentioned is recommended, the dynamics routines of OpenMM are then used but using the QM/MM forces come from ASH. Umbrella samping in principle should be possible but would have to be performed manually by adding restraining forces to the OpenMMTheory object and all the analysis (WHAM or umbrella integration) would have to done manually as well.

Metadynamics functionality (at QM, MM or QM/MM level) is something I'm particularly interested in to get going in ASH. This requires finishing the half-finished Plumed interface. Umbrella sampling might then also be possible to perform using Plumed as well.

StefanIsSmart commented 2 years ago

The electronic or electrostatic embedding scheme is identical in Chemshell and ASH, i.e. the electrostatic interaction between QM and MM programs is performed by making the pointcharges available to the QM program which enter as extra "nuclei" in the 1-electron Hamiltonian evaluation of the QM-program. This is the same meaning of electrostatic/electronic embedding in pretty much all QM/MM programs. When the QM-MM boundary goes through a chemical bond, things are a bit more complicated as the choice of boundary-atom strategy (linkatoms etc.) can be different which will affect the details of the electrostatic embedding scheme. But ASH uses a pretty much identical linkatom scheme to Chemshell with a charge-shifting scheme that preserves the dipole.

QM/MM MD is possible but at the moment only regular MD. See this page for the options available: https://ash.readthedocs.io/en/latest/module_dynamics.html The "OpenMM_MD" option mentioned is recommended, the dynamics routines of OpenMM are then used but using the QM/MM forces come from ASH. Umbrella samping in principle should be possible but would have to be performed manually by adding restraining forces to the OpenMMTheory object and all the analysis (WHAM or umbrella integration) would have to done manually as well.

Metadynamics functionality (at QM, MM or QM/MM level) is something I'm particularly interested in to get going in ASH. This requires finishing the half-finished Plumed interface. Umbrella sampling might then also be possible to perform using Plumed as well.

https://ash.readthedocs.io/en/latest/module_dynamics.html This part shows that I can use XTB to do qm/mm md . But for me , I would like to do with OpenMM and ORCA. In fact I want to do more kinds of MD with OpenMM and ORCA. Could I do this by create a qmTheory with ORCA and mmTheory with Openmm to create a qmmmObject , and then I Run Openmm_MD with the Object?

RagnarB83 commented 2 years ago

Yes, this is mentioned on the page. ASH is highly modular, you can create a QMMMTheory object using any QMTheory object (ORCA, xTB etc.) and a MMTheory object (OpenMMTheory or NonbondedTheory) and then in principle use that QMMMTheory object as input theory to any job-type function (Singlepoint, geomeTRICOptimizer, OpenMM_MD, Numfreq etc.). In practice there are some limitations to this general approach as e.g. sometimes electrostatic embedding functionality is missing for some QM codes (or the ASH interface is incomplete). But QM/MM using ORCA and OpenMM works.