Oh, I think I see what you mean now. You want to do the rot/trans by
hand - and in coot you can only move a residue range (up to a whole
chain).
No. There is no way to do that. It's on the list :)
A work-around is to by hand rot/trans a fragment and then LSQ match the
moving molecule on to the fragment. Bleugh. It should be better.
Paul.
Daniel Pomeranz Krummel wrote:
> Paul and Adam,
>
> Thanks for the comments.
>
> I am actually trying to rotate/translate or position the complex into a
> map, thus not to do lsq.
>
> Adam's approach is quite arduous. Is there a simpler way, Paul?
>
>
>
>
>
>> In message <[log in to unmask]>
>> [log in to unmask] writes:
>>
>>> Hello
>>>
>>> I would like to rotate/translate a multi-subunit complex, each subunit
>>> having a different chain name. Is there a way (maybe a script) that
>>> allows
>>> this to be done in Coot without attempting to change to a single chain
>>> name?
>>>
>> I presume that the rotation/translation matrix (m in this case)
>> is given by a LSQ match. If so, you can use the following.
>> If not, you can supply the rotation/translation matrix directly
>> to the transform-coords-molecule function.
>>
>> a rotation/translation matrix is a
>> (list
>> (list m11 m12 m13
>> m12 m12 m23
>> m31 m32 m33)
>> (list t1 t2 t3))
>>
>> Paul.
>>
>>
>> ;; Set these for your case:
>> ;;
>> ;; match residues 10 to 20 in "B" chain of moving molecule to residues
>> ;; 11 to 21 in chain "A" of reference molecule. The final 2 means "CA
>> ;; match" 0 means "all atom)
>> (define match-params '(11 21 "A" 10 20 "B" 2))
>> (define ref-mol 0)
>> (define moving-mol 2)
>>
>> (clear-lsq-matches)
>> (apply add-lsq-match match-params)
>> (let* ((rc (copy-molecule moving-mol))
>> (m (apply-lsq-matches ref-mol rc)))
>> (delete-molecule rc)
>> (if m
>> (transform-coords-molecule moving-mol m)))
>>
>>
>
>
|