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)))
>
|