Neutralizing NH4+ with explicit hydrogens

User 331d7f5c0b

03-08-2009 21:03:41

Hi,


Why is [H][N+]([H])([H])[H] neutralized to [NH4] (a free-radical form) and not N, which is the result of neutralizing [NH4+]?


Moses

ChemAxon e08c317633

04-08-2009 09:20:35

"[H][N+]([H])([H])[H]" neutralization should result ammonia ("[H]N([H])[H]"), and this is exactly what I get with Standardizer 5.2.3.1

$ standardize -c "neutralize" "[H][N+]([H])([H])[H]"
[H]N([H])[H]


Zsolt

User 331d7f5c0b

10-08-2009 18:08:04










Zsolt wrote:

"[H][N+]([H])([H])[H]" neutralization should result ammonia ("[H]N([H])[H]"), and this is exactly what I get with Standardizer 5.2.3.1

$ standardize -c "neutralize" "[H][N+]([H])([H])[H]"
[H]N([H])[H]


Zsolt



 


Hi Zsolt,


I made sure this time to test on the latest JChem (5.2.3_2), using:


 


Molecule m = new MolHandler("[H][N+]([H])([H])[H]");


return (new Standardizer("neutralize")).standardize(m).toFormat("smiles");


 


That does produce [H]N([H])[H]. However, if you do:


 


return (new Standardizer("neutralize")).standardize(m).toFormat("smiles:u");


 


You get [NH4], which is incorrect. You get the same with "smiles:-H". So I guess the problem is not with the Standardizer, but with Molecule's toFormat method or whatever it calls. I also tried:


(new Standardizer("neutralize..removeexplicitH")).standardize(m).toFormat("smiles");


which also returns [NH4]. Finally, I tried this:


 


Molecule m = new MolHandler("[H]N([H])[H]");


return (new Standardizer("removeexplicitH")).standardize(m).toFormat("smiles");


 


and that also returns [NH4], so I'm guessing that's the actual problem. Please let me know if I'm missing something.


 


Moses


 

ChemAxon e08c317633

12-08-2009 11:32:50

Hi Moses,


It's indeed a bug. We have fixed it, the fix will be available in JChem 5.2.4.


Thanks for the report.


Zsolt