In case it is useful to anyone else, this function seems to work fine:
def mutate_residue_range_by_click_a():
def mutate_residue_range_by_click_b(res1,res2):
if (res1[1]!=res2[1]) or (res1[2]!=res2[2]) or (res1[3]==res2[3]):
info_dialog("Start and end points must be in the same mol and chain!")
else:
if (res1[3] > res2[3]):
res_start=res2[3]
res_end=res1[3]
n=res_end-res_start+1
else:
res_start=res1[3]
res_end=res2[3]
n=res_end-res_start+1
mol_id=res1[1]
ch_id=res1[2]
target_seq=n*"A"
turn_off_backup(mol_id)
mutate_residue_range(mol_id,ch_id,res_start,res_end,target_seq)
for n in range(res_start,res_end+1):
set_residue_name(mol_id,ch_id,n,"","UNK")
turn_on_backup(mol_id)
user_defined_click(2,mutate_residue_range_by_click_b)
add_simple_coot_menu_menuitem(menu,
"Mutate range to UNK (click start and end)", lambda func:
mutate_residue_range_by_click_a())
> On Jun 27, 2015, at 12:39 PM, Clarke, Oliver <[email protected]> wrote:
>
> That should work for the moment, thanks Bernhard! I can’t use it with
> mutate_residue_range because there is no single letter code, but I can loop
> through all residues in a range sequentially and mutate to ala and then set
> the residue name, so that works fine.
>
> I would still ultimately favor making it a standard residue with three letter
> code UNK and single letter code X - it allows for easy specification of
> ambiguity, and it is the PDB-sanctioned way of representing an amino acid of
> unknown identity.
>
> I would also suggest being able to set this as the default type for new
> residues - it allows easy recognition of amino acids that are as yet
> unassigned, and avoids confusion with alanine.
>
> Cheers,
> Oliver.
>> On Jun 27, 2015, at 8:44 AM, Bernhard Lohkamp <[email protected]> wrote:
>>
>>
>> How about using:
>>
>> set_residue_name(int imol, const char *chain_id, int res_no, const char
>> *ins_code, const char *new_residue_name)
>>
>> B
>>
>> On 26/06/2015 18:36, Oliver Clarke wrote:
>>> Hi all,
>>>
>>> Would it be possible to add "UNK" to the list of standard residues one can
>>> mutate to? Currently mutate doesn't seem to work using "UNK" as the target
>>> res type, and I would like to add it to a function for mutating a residue
>>> range to poly-UNK.
>>>
>>> This is useful where one has a structure containing regions that have
>>> assignable sequence, and regions where the sequence register is unclear, so
>>> as to differentiate the two.
>>>
>>> Cheers,
>>> Oliver.
>>>
>>
>> --
>> ***************************************************
>>
>> Dr. Bernhard Lohkamp
>> Associate Professor/Docent
>> Div. Molecular Structural Biology
>> Dept. of Medical Biochemistry and Biophysics (MBB)
>> Karolinska Institutet
>> S-17177 Stockholm
>> Sweden
>>
>> phone: (+46) 08-52487651
>> fax: (+46) 08-327626
>> email: [email protected]
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> https://www.avast.com/antivirus
>>
>