Coot: Difference between revisions

Jump to navigation Jump to search
2,786 bytes added ,  21 January 2010
add 2 Q/A from mailinglist; put Coot devel Q into Q/A section
mNo edit summary
(add 2 Q/A from mailinglist; put Coot devel Q into Q/A section)
Line 371: Line 371:
Alternatively, if you use gnome or xfce4, you can open the theme manager and just make it open the downloaded Glossy_P tarball, and it should add this as a theme.
Alternatively, if you use gnome or xfce4, you can open the theme manager and just make it open the downloaded Glossy_P tarball, and it should add this as a theme.


=How can I get involved with Coot development?=
=Assorted questions and answers (from the mailinglist)=


Join the [[Coot Janitors]] project. This is a project to get new people involved in improving Coot, by acting as a clearing house for simple tasks which need doing, and providing documentation for doing them.
It should be noted that the answers ("A") are from Paul Emsley himself (and were maybe slightly edited).


=Assorted questions and answers (from the mailinglist)=
==Coot development==
 
Q: How can I get involved with Coot development?
 
A: Join the [[Coot Janitors]] project. This is a project to get new people involved in improving Coot, by acting as a clearing house for simple tasks which need doing, and providing documentation for doing them.


It should be noted that the answers ("A") are from Paul Emsley himself (and were maybe slightly edited).


==NCS edits==  
==NCS edits==  
Line 463: Line 466:


A: For the record, you can't refine symmetry-related disulfides in Coot (as of Nov 3, 2009).
A: For the record, you can't refine symmetry-related disulfides in Coot (as of Nov 3, 2009).
==Macros in COOT==
Q: How to use macros in COOT? Do they need to be written in Python or another language that I had not heard of before? Where can I find a low level description of how to write macros with some examples (I know nothing about Python, except that it is fashionable)?
A: The other language is a form of Lisp, called [http://en.wikipedia.org/wiki/Scheme_(programming_language) Scheme]. You can learn about programming python in many ways of course (not least the [http://docs.python.org/tutorial/ python tutorial], which is what I read first). The coot python extensions are described in the documentation. There is a standard trivial formatting change that has to be made to get the syntax right for python, see "Python Scripting" [[http://www.ysbl.york.ac.uk/~lohkamp/coot/wincoot-faq.html|here]]. There is a growing collection of coot scripts in this Wiki article.
==LSQ superpositions==
Q: Do an LSQ superposition using specified residues in multiple chains (superposing one oligomer on another).
A: Something like this then?
clear_lsq_matches()
# specs for reference then moving
add_lsq_match(20, 90, "A",  20, 90, "A", 1)
add_lsq_match(20, 90, "B",  20, 90, "B", 1)
add_lsq_match(15, 75, "D",  15, 75, "D", 1)
apply_lsq_matches(1, 2)
which presumes that the reference molecule is in 1 and the moving molecule 2.
Q: How to do a LSQ superposition of a homologous structure onto my working structure using ± N residues about the current position, where N is a variable (not essential, could be fixed) and the current position is the last residue that I clicked on.
A: That is more involved - and more useful because it  can be dynamic. Something like the following perhaps (in Scheme, just for amusement (not tested)). You will need to set imol-ref, perhaps by reading in the reference pdb, as demonstrated below.  The function is bound to Shift-Y.
(define dynamic-lsq-range-extent 2)  ;; ± 2 residues either side of centre residue
(define imol-ref (read-pdb "reference.pdb"))
;; convert between the input reference chain id and the chain id of
;; the moving molecule that corresponds to that chain
;;
(define (mov-match-chain ref-chain-id)
  ref-chain-id)
(define (dynamic-lsq-match)
  ;; get the current residue and use that to make residue ranges for
  ;; an LSQ fit
  ;;
  (using-active-atom
  (clear-lsq-matches)
  (add-lsq-match (- aa-res-no dynamic-lsq-range-extent)
          (+ aa-res-no dynamic-lsq-range-extent)
          aa-chain-id
          (- aa-res-no dynamic-lsq-range-extent)
          (+ aa-res-no dynamic-lsq-range-extent)
          (mov-match-chain aa-chain-id)
          1)
  (apply-lsq-matches aa-imol imol-ref)))
(add-key-binding "Dynamic LSQ overlay" "Y" dynamic-lsq-match)
1,330

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu