In message <[EMAIL PROTECTED]>
[EMAIL PROTECTED] 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)))

Reply via email to