Maybe something like this - where by default it just does a rigid body, but if 
morph is set to “Y” it does a more extensive morph at three different radii:

set_refinement_immediate_replacement(1) #Accept rigid body without prompting.
mol_id=13 #Which molecule should we modify?
r1=20
r2=10
r3=5
r1_cycles=10
r2_cycles=5
r3_cycles=5
morph="N" #Do extensive morph?
do_rigid="Y"
if do_rigid=="Y":
        for ch_id in chain_ids(mol_id): #Rigid body refine each chain first.
                rigid_body_refine_by_atom_selection(mol_id, "//%s//"%(ch_id))
                accept_regularizement()
if morph=="Y": #Sequential morph_chain at three radii.
        for ch_id in chain_ids(mol_id):
                for n1 in range(1,r1_cycles):
                        morph_fit_chain(mol_id, "%s"%(ch_id), r1)
                for n2 in range(1,r2_cycles):
                        morph_fit_chain(mol_id, "%s"%(ch_id), r2)
                for n3 in range(1,r3_cycles):
                        morph_fit_chain(mol_id, "%s"%(ch_id), r3)
set_refinement_immediate_replacement(0) #Return to default behavior.


On Dec 29, 2013, at 9:51 AM, Oliver Clarke <olibcla...@gmail.com> wrote:

> Thanks Paul - Initially I tried rigid body + 10 cycles of morph_fit_chain at 
> a radius of 11 Å - that seemed to work better than rigid body alone, although 
> some of the larger domain shifts are still not corrected. 
> 
> Perhaps I need a larger radius for that - I’ll try doing 10 cycles at a 
> radius of 20 Å, followed by 5 each at 10 Å and 5 Å. 
> 
> Regarding blurred maps, is there any way to adjust the sharpening factor on 
> the fly in a script, in such a manner that it can be returned to normal 
> afterwards?
> 
> Also, Coot seems to write out a copy of the pdb to the coot-backup directory 
> after every cycle of morph_chain - is there any way to turn off this 
> behavior? Normally it would be fine, but with a few hundred operations that 
> adds up to several GB of backup files, which probably slows down the whole 
> process somewhat.
> 
> Cheers,
> Oliver.
> On Dec 29, 2013, at 6:21 AM, Paul Emsley <pems...@mrc-lmb.cam.ac.uk> wrote:
> 
>> On 29/12/13 02:51, Oliver Clarke wrote:
>>> 
>>> 
>>> I agree that normally rigid body refinement of each chain wouldn’t be very 
>>> useful - I’m using this script in a situation where we have a large complex 
>>> of many subunits that we need to fit to a quite low-resolution map (of a 
>>> related complex from another species),
>> 
>> Sounds familiar :-)  (... as may be apparent at the Study Weekend).
>> 
>>> and an initial round of rigid body fitting seemed to be helpful on 
>>> individual chains but was quite laborious when performed manually for each 
>>> chain.
>> 
>> Eeek. Yes...
>> 
>> Also consider Jiggle Fit.
>> 
>>> This script seemed to help with that, and I was adding morph_fit_chain in 
>>> the hope that it would correct errors in the curvature of helices, or the 
>>> orientation of two domains within a multi-domain protein.
>> 
>> OK, for the orientation of domains you need a larger radius, performed on 
>> the chain.  For the curvature of helices you need (I would imagine) a 
>> smaller radius performed on a residue selection.
>> 
>>> 
>>> Yes, that was the problem - It works when I replace chain_id with ch_id.
>>> 
>> 
>> good.
>> 
>>> So you would suggest calling morph_chain several times in succession?
>> 
>> Definitely.  That and the residue selection version.
>> 
>>> That makes sense, because the modifications from one round were quite 
>>> subtle. I’ll give it a go with 5-10 rounds and see how it works.
>>> 
>>> 
>> 
>> Also, I found that fitting into blurred maps at the early stages (large 
>> radius) was beneficial.
>> 
>> It is not yet clear to me what's the best relationship of the round number, 
>> resolution, and the radii.
>> 
>> Paul.
>> 
>> 
>> <morph-residues-gui.scm>
> 

Reply via email to