Alright, thanks! It's a good thing, then, I spent the afternoon brushing up
on matrices.

I guess the next, probably more general question for the bb is: which
utilities export an NCS transformation matrix with more precision?
*superpose* and *gesamt* only export three decimals, though I'm sure they
use greater precision under the hood. I'm not opposed to exporting from
coot or pymol either, I just haven't figured out how to do this yet - what
would be the simplest way to calculate and export an NCS transformation
matrix?

Shane

On Wed, Apr 1, 2015 at 7:34 PM, Dale Tronrud <[email protected]> wrote:

>
>    I think you are on the right track - There are not enough decimal
> points in your matrix elements to pass the orthonormal test.  This test
> checks that the length of each row (x^2+y^2+z^2) is equal to one and the
> dot product of each row with every other row is equal to zero.  If the
> values on your NCS statement are in row order I calculate 0.999337 for
> the length of the first row.  If the program is testing if this is equal
> to one to four decimal points you lose.
>
>    You have to add more digits, but just adding zeros isn't going to
> accomplish much.  The best solution is to get your ncs program to report
> its matrix with more digits -- three is pitiful.  Failing that you could
> calculate one element of each row from the other two to ensure the
> length is equal to one at a higher level of precision and hope this
> doesn't mess up the dot product test.  You'll end up with one number in
> each row having more than three decimal places.
>
> Dale Tronrud
>
> On 4/1/2015 2:52 PM, Shane Caldwell wrote:
> > Hi ccp4bb,
> >
> > I'm trying to solve a problem I never quite figured out in the past. I'd
> > like to use the *sortwater* utility to send my picked waters to various
> > protein chains, and to give them the same residue number if they are
> > NCS-equivalent, as the manual outlines.
> >
> > http://www.ccp4.ac.uk/html/sortwater.html
> >
> > The first part goes off perfectly, partitioning the waters into their
> > respective chains. Where I run into problems is bringing in NCS. I can't
> > get the program to recognize the transformation matrix. I can calculate
> > the matrix using *superpose*, and manually input these (limited
> > precision) values into my script, which looks like:
> >
> > NCS B C MATRIX 0.072 0.997 -0.012 0.991 -0.073 -0.113 -0.113 -0.004
> > -0.994 37.502 -35.283 81.276
> >
> > and it returns
> >
> >  WARNING:  **** Matrix is not orthonormal ****
> >
> >
> > My linear algebra is very limited, and I don't know exactly what this
> > means in the context of this program, though I suspect it could be
> > either linked to converting to fractional coordinates (I'm in a
> > monoclinic system), or a product of the limited precision of the matrix
> > values.
> >
> > Using the identity matrix, like so:
> >
> > NCS B C MATRIX 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000
> > 0.00000 1.00000 0.000 0.000 0.000
> >
> > doesn't trigger the warning. These values have more digits, but adding
> > extra zeroes to the original matrix as a very crude workaround still
> > returns the error.
> >
> > So, I'm now stuck trying to parse what's going on. I know *sortwater*
> > also takes O datablocks as matrix input, and that's something I could
> > look into (especially if calculating in a different program might get me
> > better precision). Although, I'm not sure the format is a factor given
> > the identity matrix is accepted as a keyword input.
> >
> > Skimming the archives, I get the sense this isn't something that many
> > users do any more. I have quite a few structures with hundreds of waters
> > each and I'd like to get the waters organized, but doing it by hand will
> > take a very long time. Any help getting this program running would be
> > greatly appreciated!
> >
> >
> > Shane Caldwell
> > McGill University
>

Reply via email to