# Luzzati Plot

Jiang Jiansheng jiang at LAPLACE.CSB.YALE.EDU
Wed Jun 14 20:45:47 EST 1995

```
> Hello,
>

> I am trying to plot a Luzzati Plot in X-PLOR. Unfortunately, I do not have
> access to Mathematica Program. Does anyone have any suggestions on how I can
> generate the error curve lines?
>

> Matt

There is, as enclosed at the end of this message, an X-PLOR (version 3.1

only) script file for producing Luzzati curve data for a  given
coordinate error, according to Luzzati Table.

! Luzzati Table (Luzzati, P.V., Acta Cryst. (1952), 5, 802-810).

! R values as a function of coord. error and resolution (Table 2)

One has to notice that the Table depends on centric or acentric
space groups.

In the future version of X-PLOR, we will provide the example file
for automatically estimating coordinates error by matching
the R values to Luzzati curve.

As suggested by Axel Brunger, a cross-validated coordinate error,
i.e., using free R values instead of the conventional R values for
estimating coordinate error by Luzzati Plot would be more objective.

See the review article on our X-PLOR www home page

(http://xplor.csb.yale.edu).
(A.T. Brunger, "The free R value: a more objective statistic for crystallography",
Methods in Enzym. 1995, in press.)

Jiansheng Jiang.

Encl.: "luzzati_curve.inp"

----------------------cut here--------------------------
remarks  file: luzzati_curve.inp
remarks  produce a Luzzati curve for the given coordinate error
remarks  temporary written for version 3.1 by JSJ

{===> specify the coordinate error }
evaluate (\$ESDERR_LUZ=0.25)  {angstrom}

{===> centric space group "TRUE" or acentric space group "FALSE" }
evaluate (\$CENTRIC_SG=FALSE)

{===> the display file for output }
evaluate (\$display="luzzati_curve.list")
set display=\$display end

{ MAKE SURE THE FOLLOWING IS THE SAME AS THAT USED in printing R }

{===> resolution range }
evaluate (\$low_res=5.0)        {* low resolution limits  *}
evaluate (\$high_res=1.8)       {* high resolution limits *}
{===> number of resolution bins }
evaluate (\$mbins=20)

set echo=off end
set mess=off end

display  Luzzati Plot ( \$ESDERR_LUZ )

display  #bin | resolution range | R_luzzati

evaluate (\$Luz_n=\$mbins)
evaluate (\$Luz_low_s=1.0/\$low_res^3)
evaluate (\$Luz_high_s=1.0/\$high_res^3)
evaluate (\$Luz_delta=(\$Luz_high_s-\$Luz_low_s)/\$Luz_n)

evaluate (\$Luz_i=0)
while (\$Luz_i < \$Luz_n) loop main
evaluate (\$Luz_i=\$Luz_i+1)
evaluate (\$Luz_low=1.0/(\$Luz_low_s+(\$Luz_i-1)*\$Luz_delta)^(1/3))
evaluate (\$Luz_high=1.0/(\$Luz_low_s+\$Luz_i*\$Luz_delta)^(1/3))
evaluate (\$Luz_S=2.0/(\$Luz_low+\$Luz_high))

{* match the S value to the first column of Luzzati Table *}
evaluate (\$Luz_match=FALSE)
evaluate (\$Luz_found=FALSE)
evaluate (\$Luz_counter=0)
evaluate (\$Luz_s1=0.0)
evaluate (\$Luz_v1=0.0)
for \$Luz_1 in (

! Luzzati Table (Luzzati, P.V., Acta Cryst. (1952), 5, 802-810).

! R values as a function of coord. error and resolution (Table 2)
!
! <|del_r|>*|s|    R(cent.)     R(acent.)
0.          0.           0.
0.01        0.039        0.025
0.02        0.078        0.050
0.03        0.115        0.074
0.04        0.152        0.098
0.05        0.188        0.122
0.06        0.223        0.145
0.07        0.256        0.168
0.08        0.288        0.191
0.09        0.320        0.214
0.1         0.350        0.237
0.12        0.410        0.281
0.14        0.462        0.319
0.16        0.510        0.353
0.18        0.554        0.385
0.20        0.595        0.414
0.22        0.631        0.44
0.24        0.662        0.463
0.26        0.689        0.483
0.28        0.713        0.502
0.30        0.735        0.518
0.35        0.776        0.548
0.40        0.802        0.564
0.45        0.817        0.574
0.50        0.823        0.580
) loop luz
evaluate (\$Luz_counter=\$Luz_counter+1)
if (\$Luz_counter = 4) then
evaluate (\$Luz_counter=1)
if (\$Luz_found = TRUE) then
evaluate (\$Luz_match=TRUE)
end if
end if
if (\$Luz_match = FALSE) then
if (\$Luz_counter = 1) then
evaluate (\$Luz_s0=\$Luz_s1)
evaluate (\$Luz_s1=\$Luz_1/\$ESDERR_LUZ)
if (\$Luz_s1 > \$Luz_S) then
evaluate (\$Luz_found=TRUE)
end if

elseif (\$Luz_counter = 2) then
{* for centric space groups *}
if (\$CENTRIC_SG = TRUE) then
evaluate (\$Luz_v0=\$Luz_v1)
evaluate (\$Luz_v1=\$Luz_1)
end if
elseif (\$Luz_counter = 3) then
{* for acentric space groups *}
if (\$CENTRIC_SG = FALSE) then
evaluate (\$Luz_v0=\$Luz_v1)
evaluate (\$Luz_v1=\$Luz_1)
end if
end if
end if
end loop luz
if (\$Luz_match = TRUE) then
{* a simple linear inteplolation *}
evaluate (\$Luz_rs=\$Luz_v0+(\$Luz_S-\$Luz_s0)*
(\$Luz_v1-\$Luz_v0)/(\$Luz_s1-\$Luz_s0))
else
evaluate (\$Luz_rs=0.0)
end if

!  display \$Luz_i[i4] \$Luz_high[f6.2]  \$Luz_low[f6.2]  \$Luz_rs[f8.4]
display \$Luz_i \$Luz_high  \$Luz_low  \$Luz_rs

end loop main

stop

```