<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>All,</div><div><br></div><div>I'm trying to figure out why a pdb input to pdb2gmx results in coordinates that are scaled by a factor of 0.1. That is, if a line in the PDB file reads</div><div><br></div><div><br></div><div><font class="Apple-style-span" face="Courier">ATOM 1 N ALA B 3 -1.221 20.481 12.450 1.00 34.64 N</font></div><div><br></div><div>then the corresponding line in the .gro file reads </div><div><br></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"> 3ALA N 1 -0.122 2.048 1.245</font></div><div><br></div><div>The culprit seems to be the following lines in <font class="Apple-style-span" face="Courier">pdbio.c:</font></div><div><br></div><div><div><font class="Apple-style-span" face="Courier">static int read_atom(t_symtab *symtab,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> char line[],int type,int natom,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> t_atoms *atoms,rvec x[],int chainnum,gmx_bool bChange)</font></div></div><div><font class="Apple-style-span" face="Courier">{</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">// do stuff</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><div><font class="Apple-style-span" face="Courier"> x[natom][XX]=strtod(xc,NULL)*0.1; /*all coordinates scaled by 0.1... why?*/</font></div><div><font class="Apple-style-span" face="Courier"> x[natom][YY]=strtod(yc,NULL)*0.1;</font></div><div><font class="Apple-style-span" face="Courier"> x[natom][ZZ]=strtod(zc,NULL)*0.1;</font></div></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">//do more stuff</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">}</font></div><div><br></div><div><br></div><div>There's also a line in the output function that multiplies all incoming coordinates by 10 before writing it to output:</div><div><br></div><div><div><font class="Apple-style-span" face="Courier">void write_pdbfile_indexed(FILE *out,const char *title,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> t_atoms *atoms,rvec x[],</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> int ePBC,matrix box,char chainid,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> int model_nr, atom_id nindex, atom_id index[],</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> gmx_conect conect, gmx_bool bTerSepChains)</font></div></div><div><font class="Apple-style-span" face="Courier">{</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">//do stuff...</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><div><font class="Apple-style-span" face="Courier">fprintf(out,pdbform,pdbtp[type],(i+1)%100000,nm,resnm,ch,resnr,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> (resic == '\0') ? ' ' : resic,</font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-tab-span" style="white-space:pre"> </span> 10*x[i][XX],10*x[i][YY],10*x[i][ZZ],occup,bfac,atoms->atom[i].elem);</font></div><div><font class="Apple-style-span" face="Courier"> </font></div></div><div><font class="Apple-style-span" face="Courier">// do more stuff...</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">}</font></div><div><br></div><div><br></div><div>Can someone tell me why this coordinate scaling occurs? And why the scale factor is a single hard-coded number than, say, something that depends on the input?</div><div><br></div><br><div apple-content-edited="true">
<div>Radhakrishna Bettadapura</div><div>PhD candidate,</div><div>Dept. of Mechanical Engineering/Computational Visualization Center,</div><div>University of Texas at Austin</div><div><a href="http://users.ices.utexas.edu/~brrk">http://users.ices.utexas.edu/~brrk</a></div>
</div>
<br></body></html>