Print

Print


Jason Porta wrote:
> I am currently refining a 3 ang structure and would like to do rigid body
> refinement treating each residue as a separate rigid body.
>

Here's how you'd do it in Coot, but I'd be surprised if this was better
that the "Fit Protein" function already built in (you'll need 0.6-pre).

Calculate -> Run Script...

Paul.


-----

;; set this
(define imol-protein 0)

(define (fit-protein-rigid-body-fit-function res-spec imol-map)
  (let ((imol     (list-ref res-spec 0))
    (chain-id (list-ref res-spec 1))
    (res-no   (list-ref res-spec 2))
    (ins-code (list-ref res-spec 3)))
    (let ((res-name (residue-name imol chain-id res-no ins-code)))
      (if (string? res-name)
      (if (not (string=? res-name "HOH"))
          (begin
        (with-auto-accept
         (set-go-to-atom-chain-residue-atom-name chain-id res-no "CA")
         (rotate-y-scene 10 0.3) ; n-frames frame-interval(degrees)
         (rigid-body-refine-zone res-no res-no chain-id imol)
         (rotate-y-scene 10 0.3))))))))

(set! *continue-multi-refine* #t)
(interruptible-fit-protein imol-protein fit-protein-rigid-body-fit-function)