On 12/16/10 03:06, Ian Tickle wrote:
> Dale
> 
>> The reward of the
>> full calculation is that all the complications you describe disappear.
>> An atom that sits 0.001 A from a special position is not unstable
>> in the least.
> 
> That's indeed a very interesting observation, I have to admit that I
> didn't think that would be achievable.  But there must still be some
> threshold of distance at which even that fails?  Presumably within
> rounding error?  Or are you saying (I assume you aren't!) that you can
> even refine all co-ordinates of an atom exactly on a special position?
>  Say the x and z co-ordinates of an atom at (0,y,0) in monoclinic?
> Presumably the atom would have to be given a random push one way or
> the other (random number generators are generally not a feature of
> crystallographic refinement programs, with the obvious exception of
> simulated annealing!)?
> 

   To be frank, I wrote this code about 15 years ago, it works, and
I've not given any thought to atoms on special positions since.  I'll
have to go back to my notes and code to dig up the exact method.
Anyone with a copy of TNT can look up the code.  I am, however, not
in the least concerned about what happens when an atom falls exactly
on a special position because I just don't think that any part of a
protein model can be considered "exact".  If I have a model with two
atoms, of occ=1/2 each, sitting 0.0001 A apart - it fits the density
and I think everyone knows what that model means, or at least they
should. If you decide to shove them each 0.00005 A and call them a
single atom with occ=1, your model will fit the density just as well
and I have no problem with that either.

   By the way, the refinement issue has nothing to do with special
positions.  The instability you observe occurs any time you build two
atoms into the same bit of density.  If your model has two atoms, at
a general position, with exactly the same coordinates the Normal
matrix will have a singularity.  The problem doesn't come up much
because we normally choose not to build such models.  It can be an
issue in models with disorder where different conformations interpenetrate
each other but the stereochemical restraints usually come to the
rescue then.

> ?  I always avoid programing tests of a == b for real numbers
>> because the round-off errors will always bite you at some point.
>> This means that a test of an atom exactly on a special position
>> can't be done reliably in floating point math.
> 
> Obviously common sense has to be applied here and tests for strict
> floating-point equality studiously avoided.  But this is very easily
> remedied, my optimisation programs are full of tests like
> IF(ABS(X-Y).LT.1E-6) THEN ... and I'm certain so are yours (assuming
> of course you still program in Fortran!).  This implies that in the
> case that an atom is off-axis and disordered you have to take care not
> to place it within say a few multiples of rounding error of the axis,
> since then it might be indeed be confused with one 'on' the special
> position.  However if someone claims that an atom sits within say
> 10*rounding error of an axis as distinct from being on the axis, then
> a) there's no way that can be proved, and b) it would be
> indistinguishable from being on the s.p. and the difference in terms
> of structure factors and maps would be insignificant anyway, so it may
> as well be on-axis.

   If the difference is insignificant, it may as well be off-axis.  I
guess if the difference is insignificant it just comes down to personal
preferences.

Dale Tronrud

> 
> I think this is how the Oxford CRYSTALS software (
> http://www.xtl.ox.ac.uk/crystals.html ), which has been around for at
> least 30 years, deals with this issue, so I can't accept that it can't
> be made to work, even if I haven't got all the precise details
> straight of how it's done in practice.
> 
>>   Your preferred assumption is that any atom "near enough" to
>> a special position is really on the special position and should
>> have an occupancy of one.  My assumption is that no atom is every
>> EXACTLY on the special position and if they are close enough to
>> their symmetry image to forbid coexistence the occupancy should
>> be 1/n.  I think either assumption is reasonable but, of course,
>> prefer mine for what I consider practical reasons.  It helps that
>> I have to code to make mine work.
> 
> Whichever way it's done is only a matter of convention (clearly both
> ways work just as well), however I would reiterate that my main
> concern here is that convention and practice appear to have parted
> company in this particular instance!
> 
> Cheers
> 
> -- IAn

Reply via email to