the test limit is perhaps over-tight

data eps/0.0001/

Phil


On 2 Apr 2015, at 00:34, Dale Tronrud <de...@daletronrud.com> 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