I knew that I was missing something obvious. Thanks Paul. Although as it turns out, in Python the arguments are switched around (the first one is a list and the second one is imol_ref).
Thanks! Then, for the record, the function that I wanted to write goes something like this: def merge_fragments(): def merge_2_fragments(res1,res2): mol_daughter=[res2[1]] mol_ref=res1[1] merge_molecules(mol_daughter,mol_ref) user_defined_click(2,merge_2_fragments) add_simple_coot_menu_menuitem(menu, "Merge two fragments (click two fragments)", lambda func: merge_fragments()) Oliver. On Apr 3, 2014, at 5:04 AM, Paul Emsley <pems...@mrc-lmb.cam.ac.uk> wrote: > On 03/04/14 04:45, Oliver Clarke wrote: >> Hi all, >> >> Is the functionality of ‘Calculate-->Merge Molecules’ available from the >> scripting interface? > > Yes. >> >> I couldn’t find it in the manual. There is a function named merge_molecules, >> but I don’t know what arguments it takes and it does not do what I would >> expect - I’d like it to take two mol_ids and merge the second one with the >> first, but that does not seem to be the case. > > Recall that you can merge many molecules with a "first" molecule, then you're > golden. > > merge_molecules(imol_ref, [imol_daughter]) > > Although not written in python, I believe that the documentation hints that > the second argument is a list of molecule numbers. > >> >> I’d like this function so I can write a little shortcut that will allow me >> to click on two fragments and join them, rather than having to scroll >> through the list of mol_ids of various newly placed helices etc. >> >> I guess I could use replace_fragment if I add a dummy atom to the first >> molecule and then replace it with the second - > > Yikes! :-) > > HTH, > > Paul. >