>
> good enough to pass the orthonormal test.

.. scratch that, it passes sometimes and still fails for other
structures/chains. So I'm still in search of a higher-precision export

Shane

On Wed, Apr 15, 2015 at 11:44 AM, Shane Caldwell <shane.caldwel...@gmail.com
> wrote:

> Hi Bernhard, thanks for the pointer. It looks like most of the coot ncs
> functions don't print the matrix values, which made exporting them tricky,
> especially because I'm pretty new to scripting in Python.
>
> I have 4 chains, and
> ncs_ghosts(0) just spits out
>
> result is [['NCS found from matching Chain B onto Chain A', 'B', 'A',
> False, False], ['NCS found from matching Chain C onto Chain A', 'C', 'A',
> False, False], ['NCS found from matching Chain D onto Chain A', 'D', 'A',
> False, False]]
>
> However, after playing around, I was able to extract the matrix from coot
> using single_manual_ncs_ghosts, and while it's still at only limited
> precision, it's good enough to pass the orthonormal test.
>
> Running coot > coot.log and then running the python:
>
> single_manual_ncs_ghosts(0,start,end,"A","B")
>
> where start and end were my residue numbers, wrote out :
>
> INFO:: coordinates transformed by orthonal matrix:
> |   0.07272,    0.9909,   -0.1131|
> |    0.9973,  -0.07361, -0.003729|
> |  -0.01202,   -0.1125,   -0.9936|
> (     41.44,    -39.63,     77.24)
> INFO:: fractional coordinates matrix:
> |   0.06948,     1.063,   -0.4001|
> |    0.9013,  -0.07361,   -0.2467|
> |    -0.012,   -0.1243,   -0.9903|
> (    0.6896,   -0.3967,    0.8545)
>
> Which is good enough for now, though it does feel like repairing the
> dining room chair with duct tape. If anyone knows a cleaner way to get
> these values, It'd be great to know!
>
> Shane
>
> On Wed, Apr 8, 2015 at 6:08 AM, B.Lohkamp <b.lohk...@gmail.com> wrote:
>
>>
>> Just for completeness, of course (!?) you can get something like this in
>> Coot. In terms of return value and accuracy (>>3 digits) I would use the
>> scripting function:
>>
>> ncs_ghosts(imol)      - pythonic
>>
>> (ncs-ghosts imol)      - schemey
>>
>> imol - your protein with NCS
>>
>>
>> Bernhard
>>
>>  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 <de...@daletronrud.com
>>> <mailto: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
>>>
>>>
>>>
>>
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> http://www.avast.com
>>
>>
>

Reply via email to