Dear Chimera users, I'm attempting to write a chimera script to automate the process of calculating the relative exposure of residues as per this tutorial: https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/surfnorm.html The script I have is as follows: rc('surface') # defines areaSES of residues rc('defattr C:/Users/Admin/Downloads/areaSESgxg.txt log 0') # define attribute using areaSESgxg.txt for m in chimera.openModels.list(modelTypes=[chimera.Molecule]): for r in m.residues: r.relSESA = r.areaSES/ r.areaSESgxg However, when I run this script, I am receiving this error: [cid:39cc50d4-a627-494c-b0f5-411a7785a9a2] When I run the process using the UI I can successfully calculate relSESA By using the command: "surface" Then using the assign attribute function to assign areaSESgxg.txt Followed by using the calculate attribute function to calculate per residue: residue.areaSES/ residue.areaSESgxg Could you advise on any methods I could use to fix this script to produce the output I am receiving from the UI. Kind regards, David
Hi David, Maybe your structure has ligands, ions, or solvent atoms -- no surface is computed for those and so they don't get an areaSES attribute. You could put in a check if hasattr(r, 'areaSES'): r.relSESA = r.areaSES/ r.areaSESgxg else: print 'Residue has no areaSES', r, 'type', r.type You might be interested instead using our newer program ChimeraX. Chimera often fails to compute molecular surfaces and SES areas for large structures. ChimeraX uses new code that always works. Tom
On Feb 25, 2021, at 5:53 AM, David Leeming <david.leeming@student.manchester.ac.uk> wrote:
Dear Chimera users, I'm attempting to write a chimera script to automate the process of calculating the relative exposure of residues as per this tutorial: https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/surfnorm.html <https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/surfnorm.html>
The script I have is as follows: rc('surface') # defines areaSES of residues rc('defattr C:/Users/Admin/Downloads/areaSESgxg.txt log 0') # define attribute using areaSESgxg.txt for m in chimera.openModels.list(modelTypes=[chimera.Molecule]): for r in m.residues: r.relSESA = r.areaSES/ r.areaSESgxg
However, when I run this script, I am receiving this error: <Outlook-1he3xhiv.png> When I run the process using the UI I can successfully calculate relSESA By using the command: "surface" Then using the assign attribute function to assign areaSESgxg.txt Followed by using the calculate attribute function to calculate per residue: residue.areaSES/ residue.areaSESgxg
Could you advise on any methods I could use to fix this script to produce the output I am receiving from the UI.
Kind regards, David _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu <mailto:Chimera-users@cgl.ucsf.edu> Manage subscription: https://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users <https://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users>
Currently it is not possible to use ChimeraX for this specific workflow, however, because it does not calculate residue solvent-excluded surface (SES) area values. The values supplied for normalization in that page (to calculate % exposed) are SES calculated with the Chimera parameters. These were kindly supplied by another group, as cited in that page. <https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/surfnorm.html > The ChimeraX command "measure sasa" measures solvent-accessible surface (SAS) area and can assign the per-residue and per-atom values as attributes. <https://rbvi.ucsf.edu/chimerax/docs/user/commands/measure.html#sasa> Theoretically somebody could generate the GXG tripeptides as proxy for the fully exposed state and measure SAS for each X in ChimeraX to compile a list of suitable values for normalization to calculate % exposed, but as far as I know, it hasn't been done. Here's diagram showing the difference between SES and SAS for those who may not be familiar with these terms: <https://rbvi.ucsf.edu/chimerax/docs/user/commands/surface.html#surfdefs> Elaine
On Feb 25, 2021, at 9:54 AM, Tom Goddard <goddard@sonic.net> wrote:
Hi David,
Maybe your structure has ligands, ions, or solvent atoms -- no surface is computed for those and so they don't get an areaSES attribute. You could put in a check
if hasattr(r, 'areaSES'): r.relSESA = r.areaSES/ r.areaSESgxg else: print 'Residue has no areaSES', r, 'type', r.type
You might be interested instead using our newer program ChimeraX. Chimera often fails to compute molecular surfaces and SES areas for large structures. ChimeraX uses new code that always works.
Tom
On Feb 25, 2021, at 5:53 AM, David Leeming <david.leeming@student.manchester.ac.uk> wrote:
Dear Chimera users, I'm attempting to write a chimera script to automate the process of calculating the relative exposure of residues as per this tutorial: https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/surfnorm.html
The script I have is as follows: rc('surface') # defines areaSES of residues rc('defattr C:/Users/Admin/Downloads/areaSESgxg.txt log 0') # define attribute using areaSESgxg.txt for m in chimera.openModels.list(modelTypes=[chimera.Molecule]): for r in m.residues: r.relSESA = r.areaSES/ r.areaSESgxg
However, when I run this script, I am receiving this error: <Outlook-1he3xhiv.png> When I run the process using the UI I can successfully calculate relSESA By using the command: "surface" Then using the assign attribute function to assign areaSESgxg.txt Followed by using the calculate attribute function to calculate per residue: residue.areaSES/ residue.areaSESgxg
Could you advise on any methods I could use to fix this script to produce the output I am receiving from the UI.
Kind regards, David _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: https://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
_______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: https://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
participants (3)
-
David Leeming
-
Elaine Meng
-
Tom Goddard