Hi,
I think that I have found a small numerical bug. I can not work out how to debug this as my knowledge of c++ is not what is needs to be. I encounter the error using the python interface with the latest nightly build.
To reproduce the error you can play with the two files and code attached. The file that works with the code is 433.pdb. The file that fails is 434.pdb.
The traceback appears as:
Traceback (most recent call last): File "bug_case.py", line 30, in <module> surface_area = s.get_solvent_accessibility(IMP.core.XYZRs(particles)) File "/opt/imp/lib/python2.5/site-packages/IMP/saxs/__init__.py", line 428, in get_solvent_accessibility def get_solvent_accessibility(self, *args): return _IMP_saxs.SolventAccessibleSurface_get_solvent_accessibility(self, *args) _IMP.UsageException: Passed index not in grid (17, 2, 3)
I suspect it is a numerical instability somewhere as I have a test case that fails where I can modify the file in two ways to create a file that works.
A) I generate a sorter fail (434.cut) case by:
tail -228 434.pdb > 434.cut
B) This calculation will proceed if I generate a slightly shorter file (i.e. remove the first ten lines). This case is generated by:
tail -218 434.pdb > 434.cut
C) The strange part is the calculation will also proceed if the only the first 100 lines are used (i.e. keeping the part that I removed in B ) This case is generated by:
tail -228 434.pdb | head -100 > 434.cut
Any suggestions would be greatly appreciated.
Bryn
I can reproduce the problem. It is, as you suspected, due to numerical issue, in this case with points falling on the edge of the grid used to compute surface areas. I've fixed it in IMP svn (by forcing it to use a valid grid cell). Can I use you script and input as a test case? Thanks.
On Dec 13, 2010, at 4:15 AM, Robert Brynmor Fenwick wrote:
> Hi, > > I think that I have found a small numerical bug. I can not work out how to debug this as my knowledge of c++ is not what is needs to be. I encounter the error using the python interface with the latest nightly build. > > To reproduce the error you can play with the two files and code attached. The file that works with the code is 433.pdb. The file that fails is 434.pdb. > > The traceback appears as: > > Traceback (most recent call last): > File "bug_case.py", line 30, in <module> > surface_area = s.get_solvent_accessibility(IMP.core.XYZRs(particles)) > File "/opt/imp/lib/python2.5/site-packages/IMP/saxs/__init__.py", line 428, in get_solvent_accessibility > def get_solvent_accessibility(self, *args): return _IMP_saxs.SolventAccessibleSurface_get_solvent_accessibility(self, *args) > _IMP.UsageException: Passed index not in grid (17, 2, 3) > > I suspect it is a numerical instability somewhere as I have a test case that fails where I can modify the file in two ways to create a file that works. > > A) I generate a sorter fail (434.cut) case by: > > tail -228 434.pdb > 434.cut > > B) This calculation will proceed if I generate a slightly shorter file (i.e. remove the first ten lines). This case is generated by: > > tail -218 434.pdb > 434.cut > > C) The strange part is the calculation will also proceed if the only the first 100 lines are used (i.e. keeping the part that I removed in B ) This case is generated by: > > tail -228 434.pdb | head -100 > 434.cut > > Any suggestions would be greatly appreciated. > > Bryn > > > -- > R. Bryn Fenwick > robert.fenwick@irbbarcelona.org > Post-doctoral fellow > Chemistry and Molecular Pharmacology Programme > Institute for Research in Biomedicine (IRB Barcelona) > Parc Científic de Barcelona > Baldiri Reixac 10, 08028 Barcelona, SPAIN > Tel. (+34) 9340 20460 > <bug.tgz>_______________________________________________ > IMP-users mailing list > IMP-users@salilab.org > https://salilab.org/mailman/listinfo/imp-users
participants (2)
-
Daniel Russel
-
Robert Brynmor Fenwick