Ideas to identify zwitterions?

User 70fe4ac955

21-05-2014 13:42:50



I'm trying to identify ALL zwitterions in a large set of molecules (at ph 7.4). I've tried isoelectric point and played around with some charge functions, but i can't quite get a good algorithms to find the zwitterions effectively

(in general i am more ok with false positives than false negatives; i.e. i want to include ALL zwitterions and i can  eliminate some extra compounds by hand later as long as the number is not ridiculously large)

i first tried the following

evaluate –x mol –e “isoelectric point()>0”
demo.mol | mview –

However that is not very efficient because it  includes all compounds that just go from ionized to neutral at any pH. 

I tried narrowing the gap to something like. But 1) i can't get that to work :) and 2) clearly can't be 100% sure that that will capture all zwitterions.

evaluate –x mol –e “isoelectric point()>2 & isoelectric point()<12” demo.mol | mview –

I also tried to think of a way to use partial charges for this, but i haven't come up with anything yet.

If anyone has any ideas, i'd really appreciate it.

ChemAxon 5433b8e56b

22-05-2014 09:36:25


I have moved your question to the Calculator Plugins related topic, my colleagues will answer your question here soon.


ChemAxon d51151248d

23-05-2014 14:00:28

Dear Shlaffen, 

There are two approaches you can follow. The first (the more relevant for you I think) is that you calculate the microspecies present at a given pH, and then calculate the average charge for them. This can be done with the 'averagemicrospecies' function in cxcalc.

For example:

./cxcalc averagemicrospeciescharge -H 7.4 -p 3  "CC(N)C(O)=O"
id Charge
1 7,400 -0,008

If the result is 0, the molecules behaves as a zwitterion at the given pH.

The other way is to use the 'formalcharge' function in cxcalc, which is able to calculate the total charge of a given microspecies. In your case this is less relevant, since you don't know the microspecies distribution at the given pH. However, this function might be useful if you have to handle given microspecies.

For example:

./cxcalc formalcharge "CC([NH3+])C([O-])=O"
id Formal charge
1 0

Best wishes,