keiserlab / e3fp

3D molecular fingerprints
GNU Lesser General Public License v3.0
121 stars 33 forks source link

Unknown boost::python C++ error. Is this from mpi? #8

Closed elcaceres closed 8 years ago

elcaceres commented 8 years ago

Decided to re-run a script that worked about 2 months ago. e3fp and python-utilities are all up-to-date

time nice -n 19 python $E3FP_GENERATE -o $OUT_DIR_BASE -b 1024 --first 8 -p $PROCS --parallel_mode processes -r 1.671 -m 5 --stereo True --overwrite --verbose -l $LOG_FILE -v $SDF_FILES

Running e3fp/fingerprints/generate.py the error: terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' terminate called after throwing an instance of 'boost::python::error_already_set' ^CTraceback (most recent call last): File "/srv/home/ecaceres/labgits/e3fp/e3fp/fingerprint/generate.py", line 308, in run(sdf_files, _kwargs) File "/srv/home/ecaceres/labgits/e3fp/e3fp/fingerprint/generate.py", line 242, in run para.run(fprints_dict_from_sdf, data_iterator, _run_kwargs) File "/srv/home/ecaceres/labgits/python_utilities/parallel.py", line 255, in run results = [x for x in self.run_gen(_args, _kwargs)] File "/srv/home/ecaceres/labgits/python_utilities/parallel.py", line 304, in result_iterator = (x for x in self.concurrent_run( File "/srv/home/ecaceres/labgits/python_utilities/parallel.py", line 354, in concurrent_run job = executor.submit(func, _data, _kwargs) File "/srv/home/ecaceres/my-sea-env/lib/python2.7/site-packages/concurrent/futures/process.py", line 336, in submit self._result_queue.put(None) File "/srv/soft/python/versions/python-2.7.6/lib/python2.7/multiprocessing/queues.py", line 104, in put self._notempty.acquire()

Tried running on serial as well.

terminate called after throwing an instance of 'boost::python::error_already_set' ./generate_e3fp_from_sdf.sh: line 28: 13632 Aborted (core dumped)

sethaxen commented 8 years ago

Okay, this looked familiar. Pretty sure it's due to a bug I introduced a while back and eradicated from everywhere but apparently this method. I've pushed a fix, so please pull the changes and let me know if it's still having problems.

Also, since you're just coming back to this after a while, I've made some changes to default settings for the fingerprint generator, so take a point to run '--help' and make sure the parameters you're passing are still doing everything you want.

elcaceres commented 8 years ago

Awesome! That worked. Thanks a bunch!

As a heads up, I'm getting the following errors from fp generation when I grep:

AttributeError: 'str' object has no attribute 'formast' 2015-12-10 01:40:15,070|ERROR|Error running: ('/srv/home/ecaceres/chembl20_minibatching/datasets/e3fp_conformers/all_chembl_mid_mwcutoff800_conformers_rms0.5_first10/CHEMBL233984.sdf.bz2',) AttributeError: 'str' object has no attribute 'formast' 2015-12-10 01:40:15,070|ERROR|Error running: ('/srv/home/ecaceres/chembl20_minibatching/datasets/e3fp_conformers/all_chembl_mid_mwcutoff800_conformers_rms0.5_first10/CHEMBL1080106.sdf.bz2',) AttributeError: 'str' object has no attribute 'formast'

sethaxen commented 8 years ago

Good catch! Fixed in 4313368.

elcaceres commented 8 years ago

Awesome! Now another...

/srv/home/ecaceres/labgits/e3fp/e3fp/fingerprint/array_ops.py:36: RuntimeWarning: invalid value encountered in divide u /= mag /srv/home/ecaceres/labgits/e3fp/e3fp/fingerprint/fprinter.py:846: RuntimeWarning: invalid value encountered in less long_angle[np.fabs(long_angle) < EPS] = 0. # perfect right angles /srv/home/ecaceres/labgits/e3fp/e3fp/fingerprint/fprinter.py:862: RuntimeWarning: invalid value encountered in less pole_inds = np.where(np.pi/2 - long_angle < POLAR_CONE_RAD)

sethaxen commented 8 years ago

So that's due to normalizing the [0,0,0] vector. I remember I didn't catch that and return the 0,0,0 vector for a reason, probably because I couldn't think of a scenario where that ever should happen, and i didn't want to hide the error. But my memory is probably wrong, and I'll look into this.

sethaxen commented 8 years ago

Do you know which molecule you hit this error on?

elcaceres commented 8 years ago

Sorry, no idea. There were a whole bunch of the u /= mag at the beginning and a few of the long angle/pole inds pairs. But, I can get you my error molecules if it helps?

2015-12-10 19:04:06,987|ERROR|Error generating fingerprints for CHEMBL2069840. 2015-12-10 19:04:06,989|ERROR|Error generating fingerprints for CHEMBL1269877. 2015-12-10 19:04:06,988|ERROR|Error generating fingerprints for CHEMBL593753. 2015-12-10 19:04:06,988|ERROR|Error generating fingerprints for CHEMBL549357. 2015-12-10 19:04:06,988|ERROR|Error generating fingerprints for CHEMBL129946. 2015-12-10 19:04:06,989|ERROR|Error generating fingerprints for CHEMBL522461. 2015-12-10 19:04:06,990|ERROR|Error generating fingerprints for CHEMBL1172336. 2015-12-10 19:04:06,990|ERROR|Error generating fingerprints for CHEMBL405319. 2015-12-10 19:04:06,991|ERROR|Error generating fingerprints for CHEMBL1683467. 2015-12-10 19:04:06,987|ERROR|Error generating fingerprints for CHEMBL247389. 2015-12-10 19:04:06,992|ERROR|Error generating fingerprints for CHEMBL77665. 2015-12-10 19:04:07,003|ERROR|Error generating fingerprints for CHEMBL2376144. 2015-12-10 19:04:06,989|ERROR|Error generating fingerprints for CHEMBL105952. 2015-12-10 19:04:07,009|ERROR|Error generating fingerprints for CHEMBL501683. 2015-12-10 19:04:07,010|ERROR|Error generating fingerprints for CHEMBL233160. 2015-12-10 19:04:07,011|ERROR|Error generating fingerprints for CHEMBL276104. 2015-12-10 19:04:07,033|ERROR|Error generating fingerprints for CHEMBL203433. 2015-12-10 19:04:06,991|ERROR|Error generating fingerprints for CHEMBL2324275. 2015-12-10 19:04:07,071|ERROR|Error generating fingerprints for CHEMBL202650. 2015-12-10 19:04:07,000|ERROR|Error generating fingerprints for CHEMBL2029902. 2015-12-10 19:04:07,000|ERROR|Error generating fingerprints for CHEMBL465592. 2015-12-10 19:04:07,001|ERROR|Error generating fingerprints for CHEMBL258627. 2015-12-10 19:04:07,001|ERROR|Error generating fingerprints for CHEMBL139427. 2015-12-10 19:04:07,002|ERROR|Error generating fingerprints for CHEMBL428698. 2015-12-10 19:04:07,003|ERROR|Error generating fingerprints for CHEMBL14950. 2015-12-10 19:04:06,987|ERROR|Error generating fingerprints for CHEMBL206939. 2015-12-10 19:04:07,002|ERROR|Error generating fingerprints for CHEMBL1743817. 2015-12-10 19:04:06,999|ERROR|Error generating fingerprints for CHEMBL2337777. 2015-12-10 19:04:07,011|ERROR|Error generating fingerprints for CHEMBL315290. 2015-12-10 19:04:07,012|ERROR|Error generating fingerprints for CHEMBL331185. 2015-12-10 19:04:07,033|ERROR|Error generating fingerprints for CHEMBL382296. 2015-12-10 19:04:06,999|ERROR|Error generating fingerprints for CHEMBL312766. 2015-12-10 19:04:07,032|ERROR|Error generating fingerprints for CHEMBL427297. 2015-12-10 19:04:07,009|ERROR|Error generating fingerprints for CHEMBL3144607. 2015-12-10 19:04:07,010|ERROR|Error generating fingerprints for CHEMBL526688.

sethaxen commented 8 years ago

Yes! That helps, thanks. You get one error message for each process. I'll try to tease out if this is a problem.

sethaxen commented 8 years ago

Oh actually, please send me the sdf file for one of the molecules. Thanks!

sethaxen commented 8 years ago

@elcaceres , turns out this was an expected error (almost all of your molecules should cause this), and a later line of code handles it. It definitely didn't affect your fingerprints. I just added a bit to suppress this warning where it's expected, so let me know if you come across it anymore.