jaredsampson / pymolprobity

A MolProbity-style visualization plugin for PyMOL
MIT License
11 stars 3 forks source link

Bug: Error parsing vectorlist for some PDBs probe output from within Flipkin. #1

Closed jaredsampson closed 7 years ago

jaredsampson commented 7 years ago

For example, PDB 1cex results in the following in Open-Source PyMOL 1.7.6.0 and PyMOLProbity version 0.1 (25fd078)

PyMOL>fetch 1cex
[...]
PyMOL>reduce_obj 1cex
WARNING: A 213 SER N    H atom too close to  A 212 GLY C    by 0.0107972A
        you may need to adjust using -METALBump or -NONMETALBump.
INFO:pmg_tk.startup.pymolprobity_dev.main:Generated Reduce output with flips for '1cex'.
INFO:pmg_tk.startup.pymolprobity_dev.main:Processed Reduce output to extract list of flips.
ERROR:pmg_tk.startup.pymolprobity_dev.main:get_object: '1cex' not in plugin objects dict.
PyMOL>flipkin_obj 1cex
 Skipping iteration; node with all states disabled
 Skipping iteration; node with all states disabled
INFO:pmg_tk.startup.pymolprobity_dev.main:Generated Flipkin output for '1cex'.
Traceback (most recent call last):
  File "/usr/local/Cellar/pymol/1.7.6.0_1/libexec/lib/python2.7/site-packages/pymol/parser.py", line 256, in parse
    self.result=apply(layer.kw[0],layer.args,layer.kw_args)
  File "/Users/jared/.pymol/startup/pymolprobity_dev/main.py", line 724, in flipkin_object
    o.kin['flipkinNQ'] = process_flipkin_output(flipkinNQ_raw)
  File "/Users/jared/.pymol/startup/pymolprobity_dev/main.py", line 601, in process_flipkin_output
    return kinemage.process_kinemage(kinstr)
  File "/Users/jared/.pymol/startup/pymolprobity_dev/kinemage.py", line 327, in process_kinemage
    data = KEYWORD_HANDLERS[base_keyword](lines, copy.copy(context))
  File "/Users/jared/.pymol/startup/pymolprobity_dev/points.py", line 680, in process_vectorlist
    vectors = _parse_bonds_vectorlist_body(lines[1:])
  File "/Users/jared/.pymol/startup/pymolprobity_dev/points.py", line 603, in _parse_bonds_vectorlist_body
    b = float(atom_sel[20:27].replace('B', ''))
ValueError: invalid literal for float(): 9.22 t

This happens regardless of whether Flipkin is using latest probe or phenix.probe.

The atom info string format that causes the above error is

 og aser A 120  0.73B9.22 tmpcA2P6n

(note leading space), where tmpXXX is the temporary file name created as input to Probe.