Composite Example Script
Jump to navigation
Jump to search
(define *reference-data-dir* (string-append (getenv "HOME") "/" "data/rnase")) ;; alternatively, we can do it in this directory (define *reference-data-dir* ".") (define pdb-1 (append-dir-file *reference-data-dir* "tutorial-modern.pdb")) (define mtz-1 (append-dir-file *reference-data-dir* "rnasa-1.8-all_refmac1.mtz")) (define loop-count-limit 5) ; how many loops shall we do? (set-graphics-window-size 700 600) (set-graphics-window-position 10 22) (add-status-bar-text "Reading PDB file") (set-colour-map-rotation-on-read-pdb-c-only-flag 1) (sleep 1) (let loop ((loop-count 0)) (if (< loop-count loop-count-limit) (let ((pdb-mol (read-pdb pdb-1))) (sleep 1) (rotate-y-scene 900 0.03) ;; void spin_zoom_trans(int axis, int nstep, float stepsize, ;; float zoom_by, float x_rel, float y_rel, float z_rel); (add-status-bar-text "Zooming in...") (spin-zoom-trans 2 500 0.2 0.4 18 -2 -3) (rotate-y-scene 2400 0.03) ; add electron density (add-status-bar-text "Making and Displaying Map...") (set-density-size 12.00) (let ((map-mol (make-and-draw-map mtz-1 "/RNASE3GMP/COMPLEX/FWT" "/RNASE3GMP/COMPLEX/PHWT" "" 0 0))) (rotate-y-scene 300 0.06) (set-clipping-back 1) (set-clipping-front 1) (rotate-y-scene 300 0.06) (set-clipping-back 2) (set-clipping-front 2) (rotate-y-scene 300 0.06) (set-clipping-back 3) (set-clipping-front 3) (rotate-y-scene 300 0.06) (set-clipping-back 4) (set-clipping-front 4) (rotate-y-scene 300 0.06) (set-clipping-back 5) (set-clipping-front 5) (rotate-y-scene 600 0.06) ;; -7.1 4.4 -1.64 gets us to 89A CB (spin-zoom-trans 2 200 0.4 0.8 -7.1 4.4 -1.64) (rotate-z-scene 900 0.20) (rotate-y-scene 1500 0.08) (auto-fit-best-rotamer 89 "" "" "A" pdb-mol map-mol 0 1.0) (rotate-y-scene 1500 0.08) ;; now refine (set-refinement-immediate-replacement 1) (turn-off-backup pdb-mol) (refine-zone pdb-mol "A" 89 89 "") (accept-regularizement) (rotate-y-scene 1500 0.08) ;; let's change the contour level down a bit (change-contour-level 0) (change-contour-level 0) (change-contour-level 0) ;; lets go to the ligand site: ;; (52.27 11.08 8.37) is where we are ;; (55.13 10.69 19.82) is where we want to be ;; 2.9 -0.4 11.45 (spin-zoom-trans 2 200 0.4 1.0 2.9 -0.4 11.45) ;; updates the map? Yes. (set-rotation-centre 55.13 10.69 19.82) (rotate-x-scene 500 0.08) (rotate-y-scene 1500 0.08) (let ((ligand-mol (get-monomer "3GP"))) (turn-off-backup ligand-mol) (delete-residue-hydrogens ligand-mol "A" 1 "" "") (set-bond-thickness ligand-mol 5) (rotate-y-scene 900 0.1) ; orients the view so the base is side-on (set-dragged-refinement-steps-per-frame 1) (refine-zone ligand-mol "A" 1 1 "") (accept-regularizement) (rotate-y-scene 500 0.08) ;; mask the ligand site (mask-map-by-molecule map-mol ligand-mol 1) (let ((ligand-map-mol (+ ligand-mol 1))) (toggle-display-map map-mol 0) (rotate-y-scene 1000 0.08) (toggle-display-map map-mol 0) ; on (toggle-display-map ligand-map-mol 0) ; off ;; the sulphate site is at (70 19 18.6) ;; we are currently at (55.13 10.69 19.82) ;; -15 8.4 1.2 (spin-zoom-trans 2 200 0.4 1.0 -15 8.4 1.2) (set-rotation-centre 70 19 18.6) (rotate-y-scene 500 0.08) (place-typed-atom-at-pointer "SO4") ; created molecule 3 (let ((phosphate-1-mol (+ ligand-mol 1))) (set-bond-thickness phosphate-1-mol 5) (rotate-y-scene 1500 0.08) (refine-zone phosphate-1-mol "" 1 1 "") (accept-regularizement) (rotate-y-scene 1500 0.08) ;; terminal loop centre 59.5 2.2 -5.2 (spin-zoom-trans 2 200 0.6 1.0 -10 -17 -23) ;; update the density (apply set-rotation-centre (rotation-centre)) (rotate-y-scene 2100 0.08) ;; fit loop (fit-gap pdb-mol "A" 94 96 "QTC") (rotate-y-scene 2100 0.08) ;; turn off density (toggle-display-map map-mol 0) ;; zoom out (spin-zoom-trans 2 200 0.6 3.0 0 0 0) ;; add waters (add-status-bar-text "Adding waters") (execute-find-waters-real map-mol pdb-mol 0 1.0) ; gives dialog (rotate-y-scene 2100 0.08) ;; turn on density (toggle-display-map map-mol 0) ;; we are at 59.5 2.2 -5.2 ;; Zoom in on a water: at (35.45 11.2 12.5) (spin-zoom-trans 2 200 0.6 0.3 -24 9 17.3) (apply set-rotation-centre (rotation-centre)) (rotate-y-scene 2100 0.08) ;; skeletonization, unit cell? ;; zoom out so that we leave in about the same ;; zoom that we started with (spin-zoom-trans 2 100 0.6 3 0 0 0) (close-molecule pdb-mol) (close-molecule map-mol) (close-molecule ligand-mol) (close-molecule phosphate-1-mol) (loop (+ loop-count 1)) )))))))