Hi Tim, I'm not sure I understand your argument either. Anyway, I hope this Ralf's paper (and references therein) will make it more clear:
http://cci.lbl.gov/~rwgk/my_papers/CCN_2011_01_electron_density.pdf All the best, Pavel On Thu, Sep 20, 2012 at 5:19 AM, Ian Tickle <ianj...@gmail.com> wrote: > Tim, I don't follow your argument: why should the density be 6A^-3 at > the centre of a C atom? > > -- Ian > > On 20 September 2012 10:39, Tim Gruene <t...@shelx.uni-ac.gwdg.de> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > tg@slartibartfast:~/tmp$ phenix.python run.py > > 0.001 627.413 -4.01639e+06 303880 > > 0.1 275.984 275.247 435.678 > > 0.5 92.2049 92.206 93.6615 > > 1 47.8941 47.8936 47.9421 > > 10 3.54414 3.54415 3.5439 > > 100 0.217171 0.21717 0.21714 > > > > weird numbers. A proper description would have 6e/A^3 for a C at > > x=(0,0,0) with B=0. How are these numbers 'not inaccurate'? > > > > Cheers, > > Tim > > > > On 09/19/2012 06:47 PM, Pavel Afonine wrote: > >> Hi James, > >> > >> using dynamic N-Gaussian approximation to form-factor tables as > >> described here (pages 27-29): > >> > >> http://cci.lbl.gov/publications/download/iucrcompcomm_jan2004.pdf > >> > >> and used in Phenix since 2004, avoids both: singularity at B=0 and > >> inaccurate density values (compared to the raw forma-factor tables) > >> for B->0. > >> > >> Attached is the script that proves this point. To run, simply > >> "phenix.python run.py". > >> > >> Pavel > >> > >> On Sun, Sep 16, 2012 at 11:32 PM, James Holton <jmhol...@lbl.gov> > >> wrote: > >> > >>> Yes, the constant term in the "5-Gaussian" structure factor > >>> tables does become annoying when you try to plot electron density > >>> in real space, but only if you try to make the B factor zero. If > >>> the B factors are ~12 (like they are in 1m1n), then the electron > >>> density 2.0 A from an Fe atom is not -0.2 e-/A^3, it is 0.025 > >>> e-/A^3. This is only 1% of the electron density at the center of > >>> a nitrogen atom with the same B factor. > >>> > >>> But if you do set the B factor to zero, then the electron density > >>> at the center of any atom (using the 5-Gaussian model) is > >>> infinity. To put it in gnuplot-ish, the structure factor of Fe > >>> (in reciprocal space) can be plotted with this function: > >>> Fe_sf(s)=Fe_a1*exp(-Fe_b1*s*s)**+Fe_a2*exp(-Fe_b2*s*s)+Fe_a3*** > >>> exp(-Fe_b3*s*s)+Fe_a4*exp(-Fe_**b4*s*s)+Fe_c > >>> > >>> where: Fe_c = 1.036900; Fe_a1 = 11.769500; Fe_a2 = 7.357300; > >>> Fe_a3 = 3.522200; Fe_a4 = 2.304500; Fe_b1 = 4.761100; Fe_b2 = > >>> 0.307200; Fe_b3 = 15.353500; Fe_b4 = 76.880501; and "s" is > >>> sin(theta)/lambda > >>> > >>> applying a B factor is then just multiplication by exp(-B*s*s) > >>> > >>> > >>> Since the terms are all Gaussians, the inverse Fourier transform > >>> can actually be done analytically, giving the real-space version, > >>> or the expression for electron density vs distance from the > >>> nucleus (r): > >>> > >>> Fe_ff(r,B) = \ > >>> +Fe_a1*(4*pi/(Fe_b1+B))**1.5***safexp(-4*pi**2/(Fe_b1+B)*r*r) \ > >>> +Fe_a2*(4*pi/(Fe_b2+B))**1.5***safexp(-4*pi**2/(Fe_b2+B)*r*r) \ > >>> +Fe_a3*(4*pi/(Fe_b3+B))**1.5***safexp(-4*pi**2/(Fe_b3+B)*r*r) \ > >>> +Fe_a4*(4*pi/(Fe_b4+B))**1.5***safexp(-4*pi**2/(Fe_b4+B)*r*r) \ > >>> +Fe_c *(4*pi/(B))**1.5*safexp(-4*pi****2/(B)*r*r); > >>> > >>> Where here applying a B factor requires folding it into each > >>> Gaussian term. Notice how the Fe_c term blows up as B->0? This > >>> is where most of the series-termination effects come from. If you > >>> want the above equations for other atoms, you can get them from > >>> here: > >>> http://bl831.als.lbl.gov/~**jamesh/pickup/all_atomsf.**gnuplot< > http://bl831.als.lbl.gov/~jamesh/pickup/all_atomsf.gnuplot> > >>> > >>> > > http://bl831.als.lbl.gov/~**jamesh/pickup/all_atomff.**gnuplot< > http://bl831.als.lbl.gov/~jamesh/pickup/all_atomff.gnuplot> > >>> > >>> This "infinitely sharp spike problem" seems to have led some > >>> people to conclude that a zero B factor is non-physical, but > >>> nothing could be further from the truth! The scattering from > >>> mono-atomic gasses is an excellent example of how one can observe > >>> the B=0 structure factor. In fact, gas scattering is how the > >>> quantum mechanical self-consistent field calculations of electron > >>> clouds around atoms was experimentally verified. Does this mean > >>> that there really is an infinitely sharp "spike" in the middle > >>> of every atom? Of course not. But there is a "very" sharp > >>> spike. > >>> > >>> So, the problem of "infinite density" at the nucleus is really > >>> just an artifact of the 5-Gaussian formalism. Strictly speaking, > >>> the "5-Gaussian" structure factor representation you find in > >>> ${CLIBD}/atomsf.lib (or Table 6.1.1.4 in the International Tables > >>> volume C) is nothing more than a curve fit to the "true" values > >>> listed in ITC volume C tables 6.1.1.1 (neutral atoms) and 6.1.1.3 > >>> (ions). These latter tables are the Fourier transform of the > >>> "true" electron density distribution around a particular > >>> atom/ion obtained from quantum mechanical self-consistent field > >>> calculations (like those of Cromer, Mann and many others). > >>> > >>> The important thing to realize is that the fit was done in > >>> _reciprocal_ space, and if you look carefully at tables 6.1.1.1 > >>> and 6.1.1.3, you can see that even at REALLY high angle > >>> (sin(theta)/lambda = 6, or 0.083 A resolution) there is still > >>> significant elastic scattering from the heavier atoms. The > >>> purpose of the "constant term" in the 5-Gaussian representation > >>> is to try and capture this high-angle "tail", and for the really > >>> heavy atoms this can be more than 5 electron equivalents. In > >>> real space, this is equivalent to saying that about 5 electrons > >>> are located within at least ~0.03 A of the nucleus. That's a > >>> very short distance, but it is also not zero. This is because > >>> the first few shells of electrons around things like a Uranium > >>> nucleus actually are very small and dense. How, then, can we > >>> have any hope of modelling heavy atoms properly without using a > >>> map grid sampling of 0.01A ? Easy! The B factors are never > >>> zero. > >>> > >>> Even for a truly infinitely sharp peak (aka a single electron), > >>> it doesn't take much of a B factor to spread it out to a > >>> reasonable size. For example, applying a B factor of 9 to a > >>> point charge will give it a full-width-half max (FWHM) of 0.8 A, > >>> the same as the "diameter" of a carbon atom. A carbon atom with > >>> B=12 has FWHM = 1.1 A, the same as a "point" charge with B=16. > >>> Carbon at B=80 and a point with B=93 both have FWHM = 2.6 A. As > >>> the B factor becomes larger and larger, it tends to dominate the > >>> atomic shape (looks like a single Gaussian). This is why it is > >>> so hard to assign atom types from density alone. In fact, with > >>> B=80, a Uranium atom at 1/100th occupancy is essentially > >>> indistinguishable from a hydrogen atom. That is, even a modest B > >>> factor pretty much "washes out" any sharp features the atoms > >>> might have. Sometimes I wonder why we bother with "form > >>> factors" at all, since at modest resolutions all we really need > >>> is Z (the atomic number) and the B factor. But, then again, I > >>> suppose it doesn't hurt either. > >>> > >>> > >>> So, what does this have to do with series termination? Series > >>> termination arises in the inverse Fourier transform (making a map > >>> from structure factors). Technically, the "tails" of a Gaussian > >>> never reach zero, so any sort of "resolution cutoff" always > >>> introduces some error into the electron density calculation. > >>> That is, if you create an arbitrary electron-density map, convert > >>> it into structure factors and then "fft" it back, you do _not_ > >>> get the same map that you started with! How much do they differ? > >>> Depends on the RMS value of the high-angle structure factors that > >>> have been cut off (Parseval's theorem). The "infinitely sharp > >>> spike" problem exacerbates this, because the B=0 structure > >>> factors do not tend toward zero as fast as a Gaussian with the > >>> "atomic width" would. > >>> > >>> So, for a given resolution, when does the B factor get "too > >>> sharp"? Well, for "protein" atoms, the following B factors will > >>> introduce an rms error in the electron density map equal to about > >>> 5% of the peak height of the atoms when the data are cut to the > >>> following resolution: d B 1.0 <5 1.5 8 2.0 27 2.5 45 3.0 65 > >>> 3.5 86 4.0 >99 > >>> > >>> smaller B factors than this will introduce more than 5% error at > >>> each of these resolutions. Now, of course, one is often not > >>> nearly as concerned with the average error in the map as you are > >>> with the error at a particular point of interest, but the above > >>> numbers can serve as a rough guide. If you want to see the > >>> series-termination error at a particular point in the map, you > >>> will have to calculate the "true" map of your model (using a > >>> program like SFALL), and then run the map back and forth through > >>> the Fourier transform and resolution cutoff (such as with SFALL > >>> and FFT). You can then use MAPMAN or Chimera to probe the > >>> electron density at the point of interest. > >>> > >>> But, to answer the OP's question, I would not recommend trying to > >>> do fancy map interpretation to identify a mystery atom. Instead, > >>> just refine the occupancy of the mystery atom and see where that > >>> goes. Perhaps jiggling the rest of the molecule with "kick maps" > >>> to see how stable the occupancy is. Since refinement only does > >>> forward-FFTs, it is formally insensitive to series termination > >>> errors. It is only map calculation where series termination can > >>> become a problem. > >>> > >>> Thanks to Garib for clearing up that last point for me! > >>> > >>> -James Holton MAD Scientist > >>> > >>> > >>> > >>> On 9/15/2012 3:12 AM, Tim Gruene wrote: > >>> > >> Dear Ian, > >> > >> provided that f(s) is given by the formula in the Cromer/Mann > >> article, which I believe we have agreed on, the inset of Fig.1 of > >> the Science article we are talking about is claimed to be the graph > >> of the function g, which I added as pdf to this email for better > >> readability. > >> > >> Irrespective of what has been plotted in any other article > >> meantioned throughout this thread, this claim is incorrect, given > >> a_i, b_i, c > 0. > >> > >> I am sure you can figure this out yourself. My argument was not > >> involving mathematical programs but only one-dimensional calculus. > >> > >> Cheers, Tim > >> > >> On 09/14/2012 04:46 PM, Ian Tickle wrote: > >> > >>>>>> On 14 September 2012 15:15, Tim Gruene > >>>>>> <t...@shelx.uni-ac.gwdg.de> wrote: > >>>>>> > >>>>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > >>>>>>> > >>>>>>> Hello Ian, > >>>>>>> > >>>>>>> your article describes f(s) as sum of four Gaussians, > >>>>>>> which is not the same f(s) from Cromer's and Mann's paper > >>>>>>> and the one used both by Niu and me. Here, f(s) contains > >>>>>>> a constant, as I pointed out to in my response, which > >>>>>>> makes the integral oscillate between plus and minus > >>>>>>> infinity as the upper integral border (called 1/dmax in > >>>>>>> the article Niu refers to) goes to infinity). > >>>>>>> > >>>>>>> Maybe you can shed some light on why your article uses a > >>>>>>> different f(s) than Cromer/Mann. This explanation might > >>>>>>> be the answer to Nius question, I reckon, and feed my > >>>>>>> curiosity, too. > >>>>>>> > >>>>>> Tim & Niu, oops yes a small slip in the paper there, it > >>>>>> should have read "4 Gaussians + constant term": this is > >>>>>> clear from the ITC reference given and the > >>>>>> $CLIBD/atomsf.lib table referred to. In practice it's > >>>>>> actually rendered as a sum of 5 Gaussians after you > >>>>>> multiply the f(s) and atomic Biso factor terms, so unless > >>>>>> Biso = 0 (very unphysical!) there is actually no constant > >>>>>> term. My integral for rho(r) certainly doesn't oscillate > >>>>>> between plus and minus infinity as d_min -> zero. If yours > >>>>>> does then I suspect that either the Biso term was forgotten > >>>>>> or if not then a bug in the integration routine (e.g. can > >>>>>> it handle properly the point at r = 0 where the standard > >>>>>> formula for the density gives 0/0?). I used QUADPACK > >>>>>> ( > http://people.sc.fsu.edu/~**jburkardt/f_src/quadpack/**quadpack.html< > http://people.sc.fsu.edu/~jburkardt/f_src/quadpack/quadpack.html> > >>>>>> > >>>>>> > > ) > >>>>>> which seems pretty good at taking care of such > >>>>>> singularities (assuming of course that the integral does > >>>>>> actually converge). > >>>>>> > >>>>>> Cheers > >>>>>> > >>>>>> -- Ian > >>>>>> > >>>>>> - -- - -- > >> Dr Tim Gruene Institut fuer anorganische Chemie Tammannstr. 4 > >> D-37077 Goettingen > >> > >> GPG Key ID = A46BEE1A > >> > >>>> > >>> > > > > - -- > > - -- > > Dr Tim Gruene > > Institut fuer anorganische Chemie > > Tammannstr. 4 > > D-37077 Goettingen > > > > GPG Key ID = A46BEE1A > > > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v1.4.12 (GNU/Linux) > > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > > > iD8DBQFQWuRdUxlJ7aRr7hoRAix4AJ9u/dT5RQuuL9wY0+2BTQre9TdsywCeJ5Jg > > uWoFQGip/L4ZTbGQvaMAIHQ= > > =Gdhk > > -----END PGP SIGNATURE----- >