Skip to content

Commit de73ec1

Browse files
author
Sebastian Salentin
committed
Merge branch 'development'
2 parents 62f1279 + 50b3141 commit de73ec1

8 files changed

+29
-6
lines changed

CHANGES.txt

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ Changelog
22
---------
33

44
### 1.3.2
5+
* __Processing of protein-peptide interactions via --peptides__
6+
* option to keep modified residues as ligands (--keepmod)
57
* Improved code for reports
68
* Smart ordering of ligand in composite compounds
79
* Fixes handling and visualization of DNA/RNA

DOCUMENTATION.md

+13-1
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,17 @@ PLIP will create subdirectories for each given structure in the output folder.
118118
If in PDB ID mode (`i`), the folder structure will be nested and based on the two middle characters of the PDB ID.
119119
The structure 1vsn in batch processing will have its output files in <outputfolder>/vs/1vsn .
120120

121+
### Detection of protein-peptide interactions
122+
For the detection of ligands, PLIP relies on the separation of ATOM and HETATM entries in the PDB file.
123+
The latter are searched for suitable ligands when running in normal mode.
124+
Peptide ligands, however, are usually deposited as ATOM entries in a separate chain.
125+
PLIP can not detect these entities automatically.
126+
To switch into protein-peptide interaction mode, start PLIP with the option `--peptide`, followed by the peptide chain of interest, e.g.:
127+
128+
```bash
129+
plip -i 5hi4 --peptides I -vx
130+
```
131+
121132
## Changing detection thresholds
122133
The PLIP algorithm uses a rule-based detection to report non-covalent interaction between proteins and their partners.
123134
The current settings are based on literature values and have been refined based on extensive testing with independent cases from mainly crystallography journals, covering a broad range of structure resolutions.
@@ -150,10 +161,11 @@ PLIP offers further command line options which enables you to switch advanced se
150161
* Do not discard alternate locations (`--altlocation`)
151162
* Set debug mode (`--debug`)
152163
* Turn off automatic fixing of errors in PDB files (`--nofix`)
164+
* Keep modified residues as ligands (`--keepmod`)
153165

154166
## Web Service
155167
A web service for analysis of protein-ligand complexes using PLIP is available at
156-
http://projects.biotec.tu-dresden.de/plip-web
168+
http://plip.biotec.tu-dresden.de/
157169
The web site offers advanced functions to search for specific entries from PDB and lists the interaction results in the browser.
158170
Additionally, the service used the BioLiP database to annotate biologically relevant ligands.
159171
The option to change threshold, ligand filtering, and batch processing is only available in the command line tool and with the Python modules.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Joachim Haupt joachim.haupt (at) biotec.tu-dresden.de | https://github.com/vjhau
7777
Melissa F. Adasme Mora melissa.adasme (at) biotec.tu-dresden.de
7878

7979
## PLIP Web Server
80-
Visit our PLIP Web Server on http://projects.biotec.tu-dresden.de/plip-web
80+
Visit our PLIP Web Server on http://plip.biotec.tu-dresden.de/
8181

8282
## Contact Me
8383
Do you have feature requests, found a bug or want to use `PLIP` in your project?

plip/modules/config.py

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
PLUGIN_MODE = False # Special mode for PLIP in Plugins (e.g. PyMOL)
3131
NOFIX = False # Turn off fixing of errors in PDB files
3232
PEPTIDES = [] # Definition which chains should be considered as peptide ligands
33+
KEEPMOD = False
3334

3435
# Configuration file for Protein-Ligand Interaction Profiler (PLIP)
3536
# Set thresholds for detection of interactions

plip/modules/detection.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -372,8 +372,9 @@ def metal_complexation(metals, metal_binding_lig, metal_binding_bs):
372372
final_geom, final_coo, = next_total.geometry, next_total.coordination
373373
rms, excluded = next_total.rms, next_total.excluded
374374
break
375-
elif i == len(all_total) - 1:
376-
final_geom, final_coo, rms, excluded = "NA", "NA", 0.0, []
375+
elif i == len(all_total) - 2:
376+
final_geom, final_coo, rms, excluded = "NA", "NA", float('nan'), []
377+
break
377378

378379
# Record all contact pairing, excluding those with targets superfluous for chosen geometry
379380
only_water = set([x[0].location for x in contact_pairs]) == {'water'}

plip/modules/preparation.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,10 @@ def filter_for_ligands(self):
333333

334334
water = [o for o in pybel.ob.OBResidueIter(self.proteincomplex.OBMol) if o.GetResidueProperty(9)]
335335
# Filter out non-ligands
336-
candidates2 = [a for a in candidates1 if is_lig(a.GetName()) and a.GetName() not in self.modresidues]
336+
if not config.KEEPMOD: # Keep modified residues as ligands
337+
candidates2 = [a for a in candidates1 if is_lig(a.GetName()) and a.GetName() not in self.modresidues]
338+
else:
339+
candidates2 = [a for a in candidates1 if is_lig(a.GetName())]
337340
write_message("%i ligand(s) after first filtering step.\n" % len(candidates2), mtype='debug')
338341

339342
############################################

plip/modules/visualize.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def visualize_in_pymol(plcomplex):
9999
for member in lig_members:
100100
resid, chain, resnr = member[0], member[1], str(member[2])
101101
cmd.select(ligname, '%s or (resn %s and chain %s and resi %s)' % (ligname, resid, chain, resnr))
102-
102+
103103
cmd.show('sticks', ligname)
104104
cmd.color('myblue')
105105
cmd.color('myorange', ligname)

plip/plipcmd

+4
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ if __name__ == '__main__':
209209
parser.add_argument("--peptides", dest="peptides", default=[],
210210
help="Allows to define one or multiple chains as peptide ligands",
211211
nargs="+")
212+
parser.add_argument("--keepmod", dest="keepmod", default=False,
213+
help="Keep modified residues as ligands",
214+
action="store_true")
212215
# Optional threshold arguments, not shown in help
213216
thr = namedtuple('threshold', 'name type')
214217
thresholds = [thr(name='aromatic_planarity', type='angle'),
@@ -241,6 +244,7 @@ if __name__ == '__main__':
241244
config.ALTLOC = arguments.altlocation
242245
config.PEPTIDES =arguments.peptides
243246
config.NOFIX = arguments.nofix
247+
config.KEEPMOD = arguments.keepmod
244248
# Assign values to global thresholds
245249
for t in thresholds:
246250
tvalue = getattr(arguments, t.name)

0 commit comments

Comments
 (0)