Hi YoungJin, The elbow author, Nigel, is out of email reach this week and next. In the meantime I'll offer what I know...
I am wondering if phenix.elbow can attach H onto phosphate group for refinement. The reason for that, based on different pH environment, phosphate group should have different charges with respect to how many protons attached.
You can try out elbow's capabilities like this: phenix.elbow --key atp --opt Note that you get a slightly different result each time you run it; you may want to try a few runs and compare.
In addition, how can I know normal distance restraints such as ATP?
You can find the ATP restraints definitions like this: phenix.where_mon_lib_list_cif cd <what you see minus the last two components of the path> cd a more ATP.cif If you run phenix.refine, you can inspect the restraints used by looking at the .geo file.
What I only know from the coot is that it shows P-O bond length is 1.61A and P-O bond (delocalized double bond) is 1.5A.
I'm not sure if eblow handles the delocalization. You could run elbow for your molecule to get a starting .cif file, then modify manually following the standard ATP.cif file. Ralf