|
From: Thomas H. <th...@th...> - 2022-07-08 17:44:33
|
The second argument must be a string, so just put quotes around it:
cmd.label('CAs', '"%s%s" % (one_letter[resn],resi)')
This also works:
cmd.label('CAs', 'f"{oneletter}{resi}"')
Cheers,
Thomas
On Fri, Jul 8, 2022 at 6:09 PM sunyeping via PyMOL-users
<pym...@li...> wrote:
>
> Dear all,
>
> I want to label residues with the resn+resi, and I tried the following command
>
> one_letter ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \
> 'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y', \
> 'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A', \
> 'GLY':'G', 'PRO':'P', 'CYS':'C'}
>
> select CAs, obj & n. CAs
> label CAs, "%s%s" % (one_letter[resn],resi)
>
>
> These work find. However, when I write these in a script and the last two commands are written as:
>
> cmd.select('CAs', 'obj & n. CAs')
>
> cmd.label('CAs', "%s%s" % (one_letter[resn],resi))
>
> it gives the following error:
>
> NameError: name 'resn' is not defined
>
>
> So could anyone tell me how to correctly use the cmd.label command?
>
> Thank you very much in advance
>
>
> _______________________________________________
> PyMOL-users mailing list
> Archives: http://www.mail-archive.com/pym...@li...
> Unsubscribe: https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe
|