-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Because C has 6 electrons and without thermal vibrations (T=0/B=0) I thought you'd catch all six of them with a box of 1A side length. Is this too simple thinking? Tim On 09/20/2012 02:19 PM, Ian Tickle 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 <[log in to unmask]> > wrote: 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 >>>> <[log in to unmask]> 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 >>>>>>>> <[log in to unmask]> 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/ iD8DBQFQWxBkUxlJ7aRr7hoRAjKVAKDQPJCupdUU9sNfXawtPY6LK24z8QCglI6/ vGuvDiN/4rUSH7jOkUBUX3U= =Tbus -----END PGP SIGNATURE-----