Good point! With 9 parameters there must be a zillion combinations that produce a decent fit. But even if they are chosen to be similar they have no physical meaning, right?
Cheers, Oliver. -----Ursprüngliche Nachricht----- Von: Tim Gruene [mailto:t...@shelx.uni-ac.gwdg.de] Gesendet: Dienstag, 18. September 2012 15:32 An: Oliver Einsle Cc: CCP4BB@JISCMAIL.AC.UK Betreff: Re: [ccp4bb] Series termination effect calculation. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello Oliver, when you fit the values from ICA Tab 6.1.1.1 with gnuplot, the values of C and N become much more comparable. c(C) = 0.017 and especially c(N) = 0.025 > 0!!! for C: Final set of parameters Asymptotic Standard Error ======================= ========================== a1 = 0.604126 +/- 0.02326 (3.85%) a2 = 2.63343 +/- 0.03321 (1.261%) a3 = 1.52123 +/- 0.03528 (2.319%) a4 = 1.2211 +/- 0.02225 (1.822%) b1 = 0.185807 +/- 0.00629 (3.385%) b2 = 14.6332 +/- 0.1355 (0.9263%) b3 = 41.6948 +/- 0.5345 (1.282%) b4 = 0.717984 +/- 0.01251 (1.743%) c = 0.0171359 +/- 0.002045 (11.93%) for N: Final set of parameters Asymptotic Standard Error ======================= ========================== a1 = 0.723788 +/- 0.04334 (5.988%) a2 = 3.24589 +/- 0.04074 (1.255%) a3 = 1.90049 +/- 0.04422 (2.327%) a4 = 1.10071 +/- 0.0413 (3.752%) b1 = 0.157345 +/- 0.007552 (4.8%) b2 = 10.106 +/- 0.1041 (1.03%) b3 = 30.0211 +/- 0.3946 (1.314%) b4 = 0.567116 +/- 0.01914 (3.376%) c = 0.0252303 +/- 0.003284 (13.01%) In 1967, Mann only calculated to sin \theta/lambda = 0, ... 1.5, and their tabulated values do indeed fit decently within that range, but not out to 6A. I thought this was notworthy, and I am curious which values for these constants refinement programs use nowadays. Maybe George, Garib, Pavel, and Gerard may want to comment? Cheers, Tim On 09/18/2012 10:11 AM, Oliver Einsle wrote: > Hi there, > > I was just pointed to this thread and should comment on the > discussion, as actually made the plots for this paper. James has > clarified the issue much better than I could have, and indeed the > calculations will fail for larger Bragg angles if you do not assume a > reasonable B-factor (I used B=10 for the plots). > > Doug Rees has pointed out at the time that for large theta the c-term > of the Cromer/Mann approximation becomes dominant, and this is where > chaos comes in, as the Cromer/Mann parameters are only derived from a > fit to the actual HF-calculation. They are numbers without physical > meaning, which becomes particularly obvious if you compare the > parameters for C and N: > > > C: 2.3100 20.8439 1.0200 10.2075 1.5886 0.5687 0.8650 > 51.6512 0.2156 N: 12.2126 0.0057 3.1322 9.8933 2.0125 > 28.9975 1.1663 0.5826 -11.5290 > > The scattering factors for these are reasonably similar, but the > c-values are entirely different. The B-factor dampens this out and > this is an essential point. > > > > For clarity: I made the plots using Waterloo Maple with the following > code: > > restart; SF :=Matrix(17,9,readdata("scatter.dat",float,9)); > > biso := 10; e := 1; AFF := > (e)->(SF[e,1]*exp(-SF[e,2]*s^2)+SF[e,3]*exp(-SF[e,4]*s^2) > +SF[e,5]*exp(-SF[e,6]*s^2)+SF[e,7]*exp(-SF[e,8]*s^2) > +SF[e,9])*exp(-biso*s^2/4); > > H := AFF(1); C := AFF(2); N := AFF(3); Ox := > AFF(4); S := AFF(5); Fe := AFF(6); Fe2 := AFF(7); Fe3 := > AFF(8); Cu := AFF(9); Cu1 := AFF(10); Cu2 := AFF(11); Mo > := AFF(12); Mo4 := AFF(13); Mo5 := AFF(14); Mo6 := AFF(15); > > // Plot scattering factors > > plot([C,N,Fe,S], s=0..1); > > > // Figure 1: > > rho0 := (r) -> Int((4*Pi*s^2)*Fe2*sin(2*Pi*s*r)/(2*Pi*s*r), > s=0..1/dmax); dmax := 1.0; plot (rho0, -5..5); > > > // Figure 1 (inset): Electron Density Profile > > rho := (r,f) > ->(Int((4*Pi*s^2)*f*sin(2*Pi*s*r)/(2*Pi*s*r),s=0..1/dmax)); > cofactor:= 9*rho(3.3,S) + 6*rho(2.0,Fe2) + 1*rho(3.49,Mo6) + > 1*rho(3.51,Fe3); plot(cofactor, dmax=0.5..3.5); > > > The file scatter.dat is simply a collection of some form factors, > courtesy of atomsf.lib (see attachment). > > > > Cheers, > > Oliver. > > > > Am 9/17/12 11:24 AM schrieb "Tim Gruene" unter > <t...@shelx.uni-ac.gwdg.de>: > > Dear James et al., > > so to summarise, the answer to Niu's question is that he must add a > factor of e^(-Bs^2) to the formula of Cromer/Mann and then adjust the > value of B until it matches the inset. Given that you claim > rho=0.025e/A^3 (I assume for 1/dmax approx. 0) for B=12 and the inset > shows a value of about 0.6, a somewhat higher B-value should work. > > Cheers, Tim > > On 09/17/2012 08:32 AM, James Holton 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_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.htm >>>>>>> l) >>>>>>> >>>>>>> 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/ iD8DBQFQWHfUUxlJ7aRr7hoRAr4VAJ4isN0PLYafsdZgVOYseV+MricBVgCfftQd 4a7EpBF1hud6sM6L0SxBXqE= =ijgy -----END PGP SIGNATURE-----