moleculekit icon indicating copy to clipboard operation
moleculekit copied to clipboard

SmallMol issue with writing multiple frames

Open stefdoerr opened this issue 4 years ago • 0 comments

from moleculekit.smallmol.smallmol import SmallMol
sm = SmallMol('CCOO')
sm.generateConformers(10)
for i in range(10):
  sm.write(f'/tmp/stefan{i}.pdb', frames=i)

crashes with

NameError                                 Traceback (most recent call last)
<ipython-input-17-aeef6cceb0cb> in <module>
      1 for i in range(10):
----> 2     sm.write(f'/tmp/stefan{i}.pdb', frames=[i,])
      3 

~/Work/moleculekit/moleculekit/smallmol/smallmol.py in write(self, fname, frames, merge)
    601         else:
    602             mol = self.toMolecule()
--> 603             mol.write(fname, frames)
    604 
    605     def view(self, *args, **kwargs):

~/Work/moleculekit/moleculekit/molecule.py in write(self, filename, sel, type, **kwargs)
   1309         if not (sel is None or (isinstance(sel, str) and sel == "all")):
   1310             src = self.copy()
-> 1311             src.filter(sel, _logger=False)
   1312 
   1313         if type in _WRITERS:

~/Work/moleculekit/moleculekit/molecule.py in filter(self, sel, _logger)
    784 
    785         if not isinstance(s, np.ndarray) or s.dtype != bool:
--> 786             raise NameError("Filter can only work with string inputs or boolean arrays")
    787         return self.remove(np.invert(s), _logger=_logger)
    788 

NameError: Filter can only work with string inputs or boolean arrays

stefdoerr avatar Apr 06 '20 16:04 stefdoerr