Hi Xiang-Jun
Using the pseudo-PDb format sounds like one simple option. May be you could just use %15.3f for the floats, not sure if that extra precision in %15.5f would help. But the general problem with this format would be that nost of the structure viewing programs are not going to read it.
The central portion of the PDBML format that you would be interested in is like the following for each atom.
<PDBx:atom_site id="1">
<PDBx:group_PDB>ATOM</PDBx:group_PDB>
<PDBx:type_symbol>N</PDBx:type_symbol>
<PDBx:label_atom_id>N</PDBx:label_atom_id>
<PDBx:label_alt_id xsi:nil="true" />
<PDBx:label_comp_id>GLY</PDBx:label_comp_id>
<PDBx:label_asym_id>A</PDBx:label_asym_id>
<PDBx:label_entity_id>1</PDBx:label_entity_id>
<PDBx:label_seq_id>1</PDBx:label_seq_id>
<PDBx:Cartn_x>13.603</PDBx:Cartn_x>
<PDBx:Cartn_y>47.057</PDBx:Cartn_y>
<PDBx:Cartn_z>32.218</PDBx:Cartn_z>
<PDBx:occupancy>1.00</PDBx:occupancy>
<PDBx:B_iso_or_equiv>24.40</PDBx:B_iso_or_equiv>
<PDBx:auth_seq_id>1</PDBx:auth_seq_id>
<PDBx:auth_comp_id>GLY</PDBx:auth_comp_id>
<PDBx:auth_asym_id>A</PDBx:auth_asym_id>
<PDBx:auth_atom_id>N</PDBx:auth_atom_id>
<PDBx:pdbx_PDB_model_num>1</PDBx:pdbx_PDB_model_num>
</PDBx:atom_site>
Essentially it is the familiar PDB line with each atom property between those tags. Each atom is an atom_site and all the atoms are present between
<PDBx:atom_siteCategory> and </PDBx:atom_siteCategory>
There is a lot of header details in the XML schema that you would not be addressing.
As you see there would be not format restrictions for the coordinate values.
The complete schema is available at
http://pdbml.rcsb.org/schema/pdbx.xsdYou can download any pdb file from RCSB in XML (PDBML) format for more examples. I am sure with time all the graphics programs would start reading this format. At present there is atleast one visualization program that I am aware of (jV released by PDB Japan) that is reading these PDBML files.
Thanks.
Surjit