Rules in TraPPE-UA force field

Dear EMC,

I use trappe-ua force field for a simple acetamide molecule. When I examine the final results I see that the nitrogen is assigned a type “n3h2” , which is sp3 in amines with two connected H, but I was expecting the “n3mh2” - sp3 in amides with two connected H.

I also used the option “field_debug reduced” in *.esh file to see how the rules were applied to assign the atom types:

ITEM OPTIONS

replace true
mass true
density 0.5
number true
field trappe
field_debug reduced
build_dir .
pdb_compress false

ITEM END

ITEM GROUPS

mol CC(N)=O

ITEM END

ITEM CLUSTERS

mol mol,2

ITEM END

and below is the relevant part associated with nitrogen type assignment:

mol:2 N(C(C)(=O))(H)(H)

core/field/apply/rules.c:202 [n3, no]
Debug: core/field/rule.c:425 112 n3 0 N(c)(c)(C(=O)(O))
Debug: core/field/rule.c:425 112 n3 0 N(c)(C(=O)(O))(C)
Debug: core/field/rule.c:425 112 n3 0 N(C(=O)(O))(C)(C)
Debug: core/field/rule.c:425 79 n3 0 N(C)(C)(C)
Debug: core/field/rule.c:425 104 n3mh2 0 N(C(=O))(H)(H)
Debug: core/field/rule.c:425 111 n3mh 0 N(c)(C(=O)(O))(H)
Debug: core/field/rule.c:425 111 n3mh 0 N(C(=O)(O))(C)(H)
Debug: core/field/rule.c:425 103 n3mh 0 N(C(=O))(C)(H)
Debug: core/field/rule.c:425 81 n3h2 0 N(C)(H)(H)
core/field/apply/rules.c:204 match =

{id → 134, type → 59, reference → 81, element → “N”,
connect → {
{element → “C”, test → {flag → {bond → single}}},
{element → “H”, test → {flag → {bond → single}}},
{element → “H”, test → {flag → {bond → single}}}}}

core/field/apply/rules.c:364 match = 0x1c71740
core/field/apply/rules.c:430 type[2] = n3h2

The rule for “n3mh2” seems to fit perfectly to the chemical environment of a given nitrogen, i.e. N(C(=O))(H)(H), but for some reason it is ignored and continues until it reaches the rule for the amine nitrogen “n3h2”.

I would appreciate it so much if someone can suggest how to deal with this issue.
Thanks a lot in advance!

Dear Chemistry2010,

Thank you for reporting the issue The cause of what you experience is a mistake in the rule for type “n3mh2”. The rule should be N(C(=O)(C))(H)(H) instead of N(C(=O))(H)(H). You would have to do the same for type “n3mh”, i.e. the correct rule is N(C(=O)(C))(C)(H). You can change out the rules in either trappe-ua.top or trappe-ua.define. In the latter case, you will have to run convert.sh in the same directory to create both .prm and .top files.

I will update the issue in the next release of EMC.

Pieter