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> >