Python API usage¶
- class isopeptor.isopeptide.Isopeptide(struct_dir, distance=3, fixed_r_asa=None)[source]¶
Handles isopeptide bond prediction running pyjess via the jess_wrapper module and solvent accessible area via the asa module. Stores isopeptide bond predictions as a list of BondElement. Prediction is run for all structures from struct_dir. Structures in .pdb format are directly analysed. If structures are in .cif format, they are first converted into .pdb. If multiple matches with an isopeptide bond signature are detected, only the one with the lowest RMSD is retained.
- struct_dir¶
where pdb/cif files are located
- Type:
str
- distance¶
that specifies permissivity of jess search
- Type:
float
- jess_output¶
that stores jess raw output for debug purposes
- Type:
None | str
- isopeptide_bonds¶
stores isopeptide bonds as BondElement elements
- Type:
list
- fixed_r_asa¶
which ranges between 0 and 1 that fixes r_asa allowing to skip its calculation
- Type:
float | None
Example
>>> # Use a fixed solvent accessible area for a quick prediction: >>> from isopeptor.isopeptide import Isopeptide >>> i = Isopeptide("tests/data/test_structures", distance=1.5, fixed_r_asa=0.1) >>> i.predict() >>> i.isopeptide_bonds[0] BondElement(struct_file=tests/data/test_structures/8beg.pdb, protein_name=8beg, rmsd=0.0, template=8beg_A_590_636_729, chain=A, r1_bond=590, r_cat=636, r2_bond=729, r1_bond_name=LYS, r_cat_name=ASP, r2_bond_name=ASN, bond_type=CnaA-like, r_asa=0.1, probability=0.991)
>>> # Calculate solvent accessible area for a more accurate (and slow) prediction: >>> i = Isopeptide("tests/data/test_structures", distance=1.5) >>> i.predict()
- get_geometry()[source]¶
Get geometry measures (bond length and dihedral angles and map to existing distribution of measures from the database of PDB derived structures).
Example
>>> from isopeptor.isopeptide import Isopeptide >>> i = Isopeptide("tests/data/test_structures", distance=1.5, fixed_r_asa=0.1) >>> i.predict() >>> i.get_geometry() >>> i.print_tabular() protein_name probability chain r1_bond r_cat r2_bond r1_bond_name r_cat_name r2_bond_name bond_type rmsd r_asa template bond_length bond_length_zscore bond_length_allowed pseudo_phi pseudo_psi pseudo_omega phi_psi_likelihood phi_psi_allowed omega_psi_likelihood omega_psi_allowed omega_phi_likelihood omega_phi_allowed 8beg 0.991 A 590 636 729 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_590_636_729 1.33 0.024 True 92.305 -123.286 -0.032 -8.706 True -7.801 True -8.797 True 8beg 0.991 A 756 806 894 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_756_806_894 1.328 0.0 True -114.423 -130.136 44.142 -10.503 False -10.472 True -10.503 False 8beg 0.991 A 922 973 1049 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_922_973_1049 1.333 0.061 True 70.944 -131.258 17.005 -9.737 True -8.997 True -9.882 True 8beg 0.991 A 1076 1123 1211 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_1076_1123_1211 1.341 0.159 True 102.317 -124.836 2.258 -8.286 True -7.882 True -8.233 True 5dz9 0.991 A 556 606 703 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_3_53_150 1.291 -0.451 True 109.407 -112.845 -8.356 -7.72 True -7.722 True -7.884 True 5dz9 0.991 A 730 776 861 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_177_223_308 1.332 0.049 True 97.334 -122.501 6.356 -8.391 True -7.892 True -8.633 True 4z1p 0.991 A 3 53 150 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_3_53_150 1.291 -0.451 True 109.407 -112.845 -8.356 -7.72 True -7.722 True -7.884 True 4z1p 0.991 A 177 223 308 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_177_223_308 1.332 0.049 True 97.334 -122.501 6.356 -8.391 True -7.892 True -8.633 True 7woi 0.909 B 57 158 195 LYS GLU ASN CnaB-like 0.314 0.1 5j4m_A_47_139_172 1.312 -0.195 True -148.85 71.47 179.899 -9.376 True -9.126 True -9.675 True 1amx 0.882 A 176 209 293 LYS ASP ASN CnaA-like 0.353 0.1 2f68_X_176_209_293 3.345 24.598 False 96.887 -147.455 66.383 -10.918 False -14.477 False -25.835 False 7woi 0.875 A 203 246 318 LYS ASP ASN CnaA-like 0.363 0.1 4hss_A_187_224_299 1.336 0.098 True 136.992 -158.356 4.495 -14.872 False -12.529 False -9.337 True 7woi 0.838 B 355 435 466 LYS GLU ASN CnaB-like 0.403 0.1 8f70_A_299_386_437 1.36 0.39 True 71.106 149.083 171.017 -11.508 False -9.75 True -11.537 False 6to1_af 0.607 A 13 334 420 LYS ASP ASN CnaA-like 0.565 0.1 5mkc_A_191_600_695 2.928 19.512 False 83.132 -155.408 131.186 -13.496 False -51.581 False -15.775 False
- predict()[source]¶
Predict isopeptide bonds by 1. running jess template-based search, 2. calculating asa, 3. predicting isopeptide bond probability with logistic regression.
- print_tabular()[source]¶
Print isopeptide bonds in a tabular format
Example
>>> from isopeptor.isopeptide import Isopeptide >>> i = Isopeptide("tests/data/test_structures", distance=1.5, fixed_r_asa=0.1) >>> i.predict() >>> i.print_tabular() protein_name probability chain r1_bond r_cat r2_bond r1_bond_name r_cat_name r2_bond_name bond_type rmsd r_asa template 8beg 0.991 A 590 636 729 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_590_636_729 8beg 0.991 A 756 806 894 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_756_806_894 8beg 0.991 A 922 973 1049 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_922_973_1049 8beg 0.991 A 1076 1123 1211 LYS ASP ASN CnaA-like 0.0 0.1 8beg_A_1076_1123_1211 5dz9 0.991 A 556 606 703 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_3_53_150 5dz9 0.991 A 730 776 861 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_177_223_308 4z1p 0.991 A 3 53 150 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_3_53_150 4z1p 0.991 A 177 223 308 LYS ASP ASN CnaA-like 0.0 0.1 4z1p_A_177_223_308 7woi 0.909 B 57 158 195 LYS GLU ASN CnaB-like 0.314 0.1 5j4m_A_47_139_172 1amx 0.882 A 176 209 293 LYS ASP ASN CnaA-like 0.353 0.1 2f68_X_176_209_293 7woi 0.875 A 203 246 318 LYS ASP ASN CnaA-like 0.363 0.1 4hss_A_187_224_299 7woi 0.838 B 355 435 466 LYS GLU ASN CnaB-like 0.403 0.1 8f70_A_299_386_437 6to1_af 0.607 A 13 334 420 LYS ASP ASN CnaA-like 0.565 0.1 5mkc_A_191_600_695
- save_csv(output_table='results.csv')[source]¶
Save isopeptide bond results in .csv format.
- Parameters:
output_table (str) – path to output table
- Return type:
None
Example
>>> from isopeptor.isopeptide import Isopeptide >>> i = Isopeptide("tests/data/test_structures", distance=1.5, fixed_r_asa=0.1) >>> i.predict() >>> i.save_csv() >>> # Or with geometry evaluation >>> i.get_geometry() >>> i.save_csv()