Missing OPLS-AA Parameters for ClO₄⁻ in EMC (Perchlorate Ion Not Recognized)

Hi all,

I am trying to build a liquid mixture containing perchlorate anions (ClO₄⁻), Na⁺ ions, acetonitrile, DMSO, water, and benzaldehyde (BAL) using the OPLS-AA 2024 force field in EMC.

EMC works correctly on my PC for common molecules such as DMSO, ACN, water, and BAL. However, when I add ClO₄⁻, EMC stops with missing-rule errors:

Warning: no rule found for {group, site} = {CLO4, 0}.
Warning: no rule found for {group, site} = {CLO4, 1}.
Warning: no rule found for {group, site} = {CLO4, 2}.
Warning: no rule found for {group, site} = {CLO4, 3}.
Warning: no rule found for {group, site} = {CLO4, 4}.
Error: core/fields.c:433 FieldsApply:
       Missing rules.
       Program aborted.

My current .esh input is:

#=======================================================
ITEM    OPTIONS
replace         true
field           opls-aa
number          true
field_charge    false
density         0.3
focus           true
build_dir       .
ITEM    END
#=======================================================
ITEM    SHORTHAND
    BAL:c=o     [c-0.09]1([H+0.09])[c-0.09]([H+0.09])[c-0.09]([H+0.09])[c+0.04]([c-0.09]([H+0.09])[c-0.09]1([H+0.09]))[c+0.39]([H+0.00])=[O-0.43],10
    SPCE:c=o    [O-0.848]([H+0.424])([H+0.424]),40
    ACN:c=o     [C-0.233]([H+0.108])([H+0.108])([H+0.108])[C+0.402]#[N-0.493],10
    NA:c=o      [Na+1.000],10
    CLO4:c=o    [Cl+1.4]([O-0.6])([O-0.6])([O-0.6])([O-0.6]),10
ITEM    END
#=======================================================

For reference, I have attached the relevant OPLS-AA field files which I use for making acetonitrile, DMSO, and BAL.

I am still a beginner with EMC, so I am unsure how to properly add a new molecule type to the OPLS-AA field files. Could anyone advise which entries should be added to the EMC OPLS-AA .define, .top, and .prm files to support atomistic ClO₄⁻?

Any guidance or example of adding a new ion or molecule to EMC would be greatly appreciated.

Thank you.

opls-aa.define (105.6 KB)

opls-aa.prm (65.4 KB)

opls-aa.top (18.3 KB)

Dear User,

The original OPLS-AA parameter set does not include parameters for perchlorate. A search for these parameters resulted in papers by the Acevedo group:

  • S.V. Sambasivarao, O. Acevedo, “Development of OPLS-AA Force Field Parameters for 68 Unique Ionic Liquids”, J. Chem. Theory Comput., 2009, 5, 1038-1050 (https://doi.org/10.1021/ct900009a).

  • B. Doherty, X. Zhong, S. Gathiaka, B. Li, O. Acevedo, “Revisiting OPLS Force Field Parameters for Ionic Liquid Simulations”, J. Chem. Theory Comput., 2017, 13, 6131-6145 (https://doi.org/10.1021/acs.jctc.7b00520).

which include parameters for perchlorate. These parameters can also be found in GROMACS form at GitHub (GitHub - orlandoacevedo/IL: Ionic liquid force field parameters (OPLS-2009IL and OPLS-VSIL) · GitHub). I added the necessary entries to opls-aa.define to generate opls-aa.prm and opls-aa.top to reflect the aformentioned literature. Normally, the .define file in combination with a Perl script is used to generate .prm and .top. Unfortunately, the code to generate .prm and .top files from a .define file is currently not suited for a broader public. However, this does not mean you could not add the necessary entries to .prm and .top yourself. I created types cl4o and o1cl to constitute perchlorates. Look for the entries containing these two types to understand the logic. You will find additions in .prm under MASS, EQUIVALENCE, INCREMENT, NONBOND, BOND, and ANGLE. Entries are added to PRECEDENCE and RULES for .top. The resulting files are given by

opls-aa.define (112.1 KB)
opls-aa.prm (66.6 KB)
opls-aa.top (20.1 KB)

You can use these files to overwrite the originals in $EMC_ROOT/field/opls/2024.

I used the following for testing:

# Options section

ITEM	OPTIONS

replace		true
field		2024/opls-aa
ntotal		1000
density		1
number		true
focus		true
pdb_licorice	true
emc_execute	true

ITEM	END	# OPTIONS

# Shorthand section

ITEM	SHORTHAND

salt		[Na+].[Cl](:O)(:O)(:O)(:O),10
water		O,1000

ITEM	END	# SHORTHAND