Pytms: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(Created page with "NB! This page has been created pro forma and the page content is pending, but will follow in the near future.")
 
(created content for Pytms page)
Line 1: Line 1:
NB! This page has been created pro forma and the page content is pending, but will follow in the near future.
{{Infobox script-repo
|type      = plugin
|filename  = pytms.py
|author    = [[User:Andwar|Andreas Warnecke]]
|license  = GPL-2.0
}}
[[Image:pytms.gif|right|PyTMs example: PTMs in red]]
 
'''PyTMs''' is a PyMOL plugin that enables to easily introduce a set of common post-translational modifications (PTMs) into protein models.<br>
Latest version: '''1.1'''<br>
 
==Installation==
* For instruction on setting up plugins see [[Git intro]] or [[Plugin Manager]]
PyTMS can be [https://github.com/andwar/Pymol-script-repo/blob/master/plugins/pytms.py downloaded separately], or together with the [https://github.com/Pymol-Scripts/Pymol-script-repo pymol-script-repository]<br>
The '''pytms.py''' file should be placed in the '''plugins''' folder.
 
==Using the GUI==
In PyMOL, navigate to: <u>P</u>lugin --> PyTMs<br>
[[Image:pytms_menu.png|500 px|PyTMs GUI]]<br>
The supported PTM can be selected from the left panel. The options will appear on the right. For help, click the help button.<br>
Note that available objects/selection can be selected using the buttons or be entered into the field. Target atoms are automatically sub-selected and do not need to be specified.
 
 
==PyMOL API functions==
{| class="wikitable"
!colspan="5;"|List of functions
|- style="text-align:center;"
! scope="col"| PTM
! scope="col"| PyTMs API command
! scope="col"| p.PTM property selector *
! scope="col"| Target amino acid(s)
! scope="col"| Modifyable N-terminus? **
|-
! scope="row"| acetylation
| style="text-align:center;"| acetylate
| style="text-align:center;"| acetylation
| style="text-align:center;"| Lysine
| style="text-align:center;"| Yes, biologically relvant
|-
! scope="row"| carbamylation
| style="text-align:center;"| carbamylate
| style="text-align:center;"| carbamylation
| style="text-align:center;"| Lysine
| style="text-align:center;"| Yes, implemented
|-
! scope="row"| citrullination
| style="text-align:center;"| citrullinate
| style="text-align:center;"| citrullination
| style="text-align:center;"| Arginine
| style="text-align:center;"| No
|-
! scope="row"| cysteine oxidations
| style="text-align:center;"| oxidize_cys
| style="text-align:center;"| oxidation_cys
| style="text-align:center;"| Cysteine /(Seleno-)
| style="text-align:center;"| No
|-
! scope="row"| malondialdehyde adducts
| style="text-align:center;"| mda_modify
| style="text-align:center;"| MDA
| style="text-align:center;"| Lysine
| style="text-align:center;"| Yes, biologically relevant
|-
! scope="row"| methionine oxidation
| style="text-align:center;"| oxidize_met
| style="text-align:center;"| oxidation_met
| style="text-align:center;"| Methionine /(Seleno-)
| style="text-align:center;"| No
|-
! scope="row"| methylation
| style="text-align:center;"| methylate
| style="text-align:center;"| methylation
| style="text-align:center;"| Lysine
| style="text-align:center;"| Yes, implemented
|-
! scope="row"| nitration
| style="text-align:center;"| nitrate
| style="text-align:center;"| nitration
| style="text-align:center;"| Tyrosine (Tryptophan)
| style="text-align:center;"| No
|-
! scope="row"| proline hydroxylation
| style="text-align:center;"|hydroxy_pro
| style="text-align:center;"| hydroxylation_pro
| style="text-align:center;"| Proline
| style="text-align:center;"| No
|-
! scope="row"| phosphorylation
| style="text-align:center;"| phosphorylate
| style="text-align:center;"| phosphorylation
| style="text-align:center;"| Serine, Threonine, Tyrosine
| style="text-align:center;"| No
|}
* (*) requires incentive PyMOL version 1.7, or higher
* (**) N-terminal modifiactions excluding Proline
* Note that each function has an '''individual help description''', callable by entering, e.g.:
help citrullinate
 
 
==Selections and custom property selectors==
PTM amino acids have altered names, and altered/added atoms are identifyable by unique names.<br>
The nomenclature is adapted mostly from [http://www.rcsb.org/pdb/home/home.do RCSB].
<syntaxhighlight lang="python">
Examples
select resn CIR # citrullines
select resn NIY # nitro-tyrosines
# etc. ...
</syntaxhighlight>
* Note that more information can be found in the associated help of individual functions
* Hint: using the [[label]] command is a convenient way to get hold of the names of atoms or residues
 
 
Incentive PyMOL (> version 1.7) support custom property selectors.<br>
PyTMs supports these by intoducting the property '''p.PTM''' selector (cf. table above), which will select the altered PTM atoms:<br>
<syntaxhighlight lang="python">
# To select a PTM, use e.g.:
select p.PTM in nitration #selects nitro groups
select p.PTM in * #selects any PTM
</syntaxhighlight>
 
 
==PyTMs in python scripts==
In simple API scripts, the API commands can be used directly.<br>
For use in python scripts PyTMs can also be imported, e.g.:
<syntaxhighlight lang="python">
import pmg_tk.startup.pytms
pmg_tk.startup.pytms.mda_modify()
</syntaxhighlight>
 
 
==Basic residue-based optimization, animation, vdW clashes, surface selections==
{|
|- style="vertical-align:top;"
|
Some functions (MDA & phosphorylation) support basic structure optimization that is used to position PTMs in more favorable locations.
Note that this optimization is based solely on sterical vdW strain and currently ignores charge. Due to interation of testing, there may be a significant calculation time associated with this procedure.
The optimization can be followed in the console and graphically in the PyMOL window (only in case the GUI is used). There is an option to animate the states from original to final after calculation for reference (cf. example).<br>
Note that the presence of hydrogens will significantly affect both the calculation during optimization and the display of vdW clashes!<br>
 
 
All functions support the display of vdW clashes after modification to allow assessment of potential steric interactions/displacements.<br>
This is essentially an integrated version of the original [[show_bumps| show_bumps script]] by Thomas Holder.<br>
Note that a dedicated '''display vdW strain''' function is available to perform this in retrospect, or on unmodified models.
 
 
PyTMs also enables the user to sub-select surface accessible residues. This corresponds to an integrated version of [[FindSurfaceResidues]] by Jason Vertrees. This option is enables by providing the required cutoff (in A^2).
 
| text-align:center;" | '''Animation of optimization with sterical vdW clashes:'''<br>[[Image:pytms_optimization_animation.gif|pytms example: optimization, animation, clashes]]
|}
 
 
 
 
==Hints==
* console output appears first in the PyMOL console prior to the API interface
* when using the GUI menu, the modification process can be followed in the display window
 
 
==References==
The original citation can be found on [http://www.ncbi.nlm.nih.gov/pubmed/25431162 PubMED]
A current (non-repository) version of PyTMs can be downloaded here: [https://github.com/andwar/Pymol-script-repo/blob/master/plugins/pytms.py pytms.py]<br>
In case of suggestions, questions or feedback please feel free to contact me: [[User:Andwar]]
 
 
==SEE ALSO==
[[Git intro]] [[Plugin_manager]]
 
[[Category:Script_Library]]
[[Category:Biochemical_Properties]]
[[Category:UI_Scripts]]
[[Category:Biochemical_Scripts]]

Revision as of 06:06, 4 December 2014

Type PyMOL Plugin
Download pytms.py
Author(s) Andreas Warnecke
License GPL-2.0
This code has been put under version control in the project Pymol-script-repo
PyTMs example: PTMs in red

PyTMs is a PyMOL plugin that enables to easily introduce a set of common post-translational modifications (PTMs) into protein models.
Latest version: 1.1

Installation

PyTMS can be downloaded separately, or together with the pymol-script-repository
The pytms.py file should be placed in the plugins folder.

Using the GUI

In PyMOL, navigate to: Plugin --> PyTMs
PyTMs GUI
The supported PTM can be selected from the left panel. The options will appear on the right. For help, click the help button.
Note that available objects/selection can be selected using the buttons or be entered into the field. Target atoms are automatically sub-selected and do not need to be specified.


PyMOL API functions

List of functions
PTM PyTMs API command p.PTM property selector * Target amino acid(s) Modifyable N-terminus? **
acetylation acetylate acetylation Lysine Yes, biologically relvant
carbamylation carbamylate carbamylation Lysine Yes, implemented
citrullination citrullinate citrullination Arginine No
cysteine oxidations oxidize_cys oxidation_cys Cysteine /(Seleno-) No
malondialdehyde adducts mda_modify MDA Lysine Yes, biologically relevant
methionine oxidation oxidize_met oxidation_met Methionine /(Seleno-) No
methylation methylate methylation Lysine Yes, implemented
nitration nitrate nitration Tyrosine (Tryptophan) No
proline hydroxylation hydroxy_pro hydroxylation_pro Proline No
phosphorylation phosphorylate phosphorylation Serine, Threonine, Tyrosine No
  • (*) requires incentive PyMOL version 1.7, or higher
  • (**) N-terminal modifiactions excluding Proline
  • Note that each function has an individual help description, callable by entering, e.g.:
help citrullinate


Selections and custom property selectors

PTM amino acids have altered names, and altered/added atoms are identifyable by unique names.
The nomenclature is adapted mostly from RCSB.

Examples
select resn CIR # citrullines
select resn NIY # nitro-tyrosines
# etc. ...
  • Note that more information can be found in the associated help of individual functions
  • Hint: using the label command is a convenient way to get hold of the names of atoms or residues


Incentive PyMOL (> version 1.7) support custom property selectors.
PyTMs supports these by intoducting the property p.PTM selector (cf. table above), which will select the altered PTM atoms:

# To select a PTM, use e.g.:
select p.PTM in nitration #selects nitro groups
select p.PTM in * #selects any PTM


PyTMs in python scripts

In simple API scripts, the API commands can be used directly.
For use in python scripts PyTMs can also be imported, e.g.:

import pmg_tk.startup.pytms
pmg_tk.startup.pytms.mda_modify()


Basic residue-based optimization, animation, vdW clashes, surface selections

Some functions (MDA & phosphorylation) support basic structure optimization that is used to position PTMs in more favorable locations. Note that this optimization is based solely on sterical vdW strain and currently ignores charge. Due to interation of testing, there may be a significant calculation time associated with this procedure. The optimization can be followed in the console and graphically in the PyMOL window (only in case the GUI is used). There is an option to animate the states from original to final after calculation for reference (cf. example).
Note that the presence of hydrogens will significantly affect both the calculation during optimization and the display of vdW clashes!


All functions support the display of vdW clashes after modification to allow assessment of potential steric interactions/displacements.
This is essentially an integrated version of the original show_bumps script by Thomas Holder.
Note that a dedicated display vdW strain function is available to perform this in retrospect, or on unmodified models.


PyTMs also enables the user to sub-select surface accessible residues. This corresponds to an integrated version of FindSurfaceResidues by Jason Vertrees. This option is enables by providing the required cutoff (in A^2).

Animation of optimization with sterical vdW clashes:
pytms example: optimization, animation, clashes



Hints

  • console output appears first in the PyMOL console prior to the API interface
  • when using the GUI menu, the modification process can be followed in the display window


References

The original citation can be found on PubMED A current (non-repository) version of PyTMs can be downloaded here: pytms.py
In case of suggestions, questions or feedback please feel free to contact me: User:Andwar


SEE ALSO

Git intro Plugin_manager