jewettaij / moltemplate

A general cross-platform tool for preparing simulations of molecules and complex molecular assemblies
http://www.moltemplate.org
MIT License
257 stars 99 forks source link

Atom type not found in the oplsaa.lt #83

Open EnthusiasticTeslim opened 2 years ago

EnthusiasticTeslim commented 2 years ago

Thank you very much for the great work! I am trying to build an lt file for the Sodium dodecyl sulfate (SDS) molecule. When I checked the lt file, there is no atom type that corresponds to the elements (C, O, S) in the charged head group of SDS system. After a deep online search, I found some useful papers (see link below) with relevant information about its LJ parameters (and others). Is it possible for you to help add them to the oplsaa.lt or guide me on how to go about it? Thanks.

https://pubs.acs.org/doi/10.1021/acs.jctc.7b00181

https://pubs.acs.org/doi/full/10.1021/acs.jctc.9b00947

EnthusiasticTeslim commented 2 years ago

Update: I read a paper (ref: https://pubs.acs.org/doi/full/10.1021/jp963460g) and got the inspiration to model the -CH2-O-SO3 as to -CH2-O-PO3 (available in oplsaa.lt). In the existing oplsaa.lt, I am able to find the needed atom types and my plan is to create a new atom type for the S (in -CH2-O-SO3). Will it make sense to create a separate lt file or just edit the main oplsaa.lt file?

jewettaij commented 2 years ago

Hi Enthusiastic! There are several ways to do this: 1) Directly modify the original "oplsaa.lt" file, adding lines to the "In Settings", "Data Bonds By Type", "Data Angles By Type", "Data Dihedrals By Type", and "Data Impropers By Type" (if necessary) to define the S atom's mass and Lennard-Jones parameters, and include bonded interactions between the C, O, S atoms. If you put the new "oplsaa.lt" file in the directory with your other LT files, then moltemplate.sh should preferentially read your local custom version of "oplsaa.lt" instead. (Let me know if that does not happen.) 2) If you eventually want to share your modified file with others, it might be cleaner to try something similar to what I did with the LOPLS force field file loplsaa.lt, which extends the OPLSAA force field with additional atom types. Whenever users want to include these extra atom types, they import "loplsaa.lt" (instead of "oplsaa.lt"), but the still use "inherits OPLSAA" (not "inherits LOPLS") at the top of their molecule (or molecular subunit) definition. For an more detailed usage example, see here and here. 3) If you only want to do this for a specific molecule (and not modify the force field), you can simply add custom "Data Bonds", "Data Angles", "Data Dihedrals", and "Data Impropers sections (if applicable) to define the bonds, angles, dihedrals, and impropers involving the S, O, C. atoms. (You will still need to add an entry to the "Data Masses" section, and "In Settings" section to define the properties of the S atom.) The custom bond, angles, dihedrals, and impropers will override whatever interactions these atoms would otherwise participate in due to the force-field ("oplsaa.lt" file). There's an example of a water molecule with explicitly defined bonds an angles here. In that example, all of the bonds and angles were explicitly listed. But you can just list some of them (the ones involving the S atom), and let the force-field ("oplsaa.lt") handle the rest. Hope this helps. -Andrew

EnthusiasticTeslim commented 2 years ago

Thanks for the detailed explanation. I will try out your suggestions.