1,330
edits
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. | ||
= | =Assorted questions and answers (from the mailinglist)= | ||
It should be noted that the answers ("A") are from Paul Emsley himself (and were maybe slightly edited). | |||
= | ==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. | |||
==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) |