[AMBER] Ambertool16 - MCPB.py angle cut off and Error with Pdbsearcher.py

From: Bilal Nizami <nizamibilal1064.gmail.com>
Date: Mon, 4 Jul 2016 10:39:33 +0200

Hello Amber users,

I am using PdbSearcher.py from Ambertool16 to determine the Calcium
environement that exist in all the mettaloproteins in a local copy of PDB
databse (~1000000 pdbs).

In 2010 paper (http://pubs.acs.org/doi/abs/10.1021/ct1002626) describing
MCPB, Harding's Metal-Donor bond length is mentioned for few residues
surrounding metal center. I am wondering which cut off to use, because any
​ of the​
residue could be present in the vicinity. Any suggestions?

Secondly, I have noticed some errors with PdbSearcher.py

For many metalloprotein containing the search metal (I tried with Zn, Ca
and Mn), it throws following error

*Traceback (most recent call last):*
* File "/home/bnizami/amber16/bin/PdbSearcher.py", line 195, in <module>*
* geo, georms = det_geo(mccrds)*
* File "/home/bnizami/amber16/lib/python2.7/site-packages/msmtmol/cal.py",
line 99, in det_geo*
* metcrd = crds[0]*
*IndexError: list index out of range *

​I looked up in the ​PdbSearcher.py source code, it seems that following
condition fails for the PDB, that the metal is not within the cut off

*if (disij >= 0.1) and (disij <= radiusij) and (elmtj != 'H')*

I think, this part could be written inside a try-except block to avoid the
program termination in case metal is found but cutoff criteria is failed.
To further test, i tried cutoff values like 2.9 and 3 Angstrom by -c flag
to PdbSearcher.py. Again, this worked for the some pdbs, but failed for
some to get the geometry with the following error:

Find metal center DDNXXY
Traceback (most recent call last):
  File "/home/bnizami/amber16/bin/PdbSearcher.py", line 195, in <module>
    geo, georms = det_geo(mccrds)
  File "/home/bnizami/amber16/lib/python2.7/site-packages/msmtmol/cal.py",
line 223, in det_geo
    angrms = round(angrms3, 3)
UnboundLocalError: local variable 'angrms3' referenced before assignment

In my opinion, the reason for this error is line line 223 in cal.py 'angrms
= round(angrms3, 3)', where probably 'angrms3' should be 'angrms'. Because
angrms3 is assigned value inside the condition "elif len(crds) == 5:
#5-Coordinated, 10 angles", in case the condition is not met and condition
"elif len(crds) == 8: #8-Coordinated, 28 angles" at line 225 is satisfied,
which leads to referencing the unassigned angrms3 at line 223.

Kind Regards,

*Bilal Nizami*
School of Health Sciences
University of KwaZulu-Natal
South Africa
Linkedin:  za.linkedin.com/pub/bilal-nizami/49/673/790/
Email: 214573074.stu.ukzn.ac.za
AMBER mailing list
Received on Mon Jul 04 2016 - 02:00:02 PDT
Custom Search