EI-CoreBioinformatics / portcullis

Splice junction analysis and filtering from BAM files
https://ei-corebioinformatics.github.io/portcullis/
GNU General Public License v3.0
39 stars 9 forks source link

Using Portcullis on RHEL7 #33

Closed beechwood13 closed 5 years ago

beechwood13 commented 6 years ago

Hi,

I would like to try Portcullis on a server running Red Hat Enterprise Linux 7.

Unfortunately, I have problems when running it.

First, I compiled Portcullis from the source downloaded from Github. Compiling and installation finished without error using Python3.6 When running portcullis, the first two steps (prepare and junction analysis) will be completed, but the third step (junction filtering) fails I got the following error messages:


Loading junctions from portcullis_out/2-junc/portcullis_all.junctions.tab ... done. Found 176184 junctions.

Self training mode activated.

Traceback (most recent call last): File "/usr/local/PORTCULLIS/scripts/portcullis/portcullis/rulefilter.py", line 3, in import argparse File "/usr/local/lib/python3.6/argparse.py", line 93, in from gettext import gettext as , ngettext File "/usr/local/lib/python3.6/gettext.py", line 49, in import locale, copy, io, os, re, struct, sys File "/usr/local/lib/python3.6/struct.py", line 13, in from _struct import * ImportError: /usr/local/lib/python3.6/lib-dynload/_struct.cpython-36m-x86_64-linux-gnu.so: undefined symbol: PyByteArray_Type

Portcullis completed. Total runtime: 202.5s

../lib/include/portcullis/python_helper.hpp(159): Throw in function void portcullis::PyHelper::execute(std::string, int, char*) Dynamic exception type: boost::exception_detail::clone_impl std::exception::what: std::exception [portcullis::PortcullisPythonError] = Unexpected python error

I made a second try and installed Portcullis using conda (provided by Anaconda3-5.1.0). The results are the same in this case (prepare and junction analysis steps complete, junction filtering fails). I got the following error message using the conda installed portcullis executable:


Throw location unknown (consider using BOOST_THROW_EXCEPTION) Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector > std::exception::what: bad lexical cast: source type value could not be interpreted as target

I am wondering whether it would be possible to find a solution to fix these problems in either case (with or without conda) ?

Thanks

lucventurini commented 6 years ago

Hello, would you be able to check which version of Boost is present on the cluster (both from the source and conda installations). This should give us a first pointer to solve the issue.

Thanks

maplesond commented 6 years ago

Hi @beechwood13, and @lucventurini, I suspect this isn't a boost issue as the error is a boost exception reporting that it can't correctly convert a value loaded from the portcullis junction tab file. You will need the python pandas module available, but this should be present with anaconda, if maybe not in your original installation. Maybe if you could email me a copy of your junction file to daniel.mapleson@earlham.ac.uk, which will likely be called something like "2-junc/portcullis.junctions.all.tab", then I can try running on my machine to see if I can reproduce or suggest a workaround.

beechwood13 commented 6 years ago

Hi, Thank you for your quick response! boost and boost-devel 1.53.0-26 are installed (both from regular RHEL7 rpm packages)

beechwood13 commented 6 years ago

Hi @maplesond,

I would be happy if you could check my *junctions.all.tab file. Unfortunatelly, it is too big (>40 MB) to send by email. Thanks

lucventurini commented 6 years ago

Hi @beechwood13, if you have a DropBox account you could share a folder with us (lucventurini@gmail.com is my email) to transfer the relevant files. Alternatively you could position the junction file in your Public directory, and forward us the link to the shared resource. Thanks

beechwood13 commented 6 years ago

I will share these files via DropBox soon. The log files of "make check" (test_full.log & test-suite.log) have been emailed to daniel.mapleson@earlham.ac.uk

Thanks

maplesond commented 6 years ago

Thanks for sending this and for the testing logs. This implies it is nothing to do with your particular dataset and is specifically to do with the python setup and configuration. Could you also email me your config.h and config.log file please?

beechwood13 commented 6 years ago

Thanks for your feedback. config.h and config.log have been sent to you by email

jrodnz commented 6 years ago

@maplesond We have been running into the same error after installing portcullis with conda. Please let us know if a work-around or solution have been found. Our servers run CentOS Linux 7, conda env.

maplesond commented 6 years ago

Hi @jrodnz and @beechwood13, Thanks for feedback on this. Strangely, I can't reproduce this from source but when installed via conda I can reproduce the same error now (this was on mint 18 so it looks like it's not an OS issue). I'll investigate and get back to you both when I've got a solution.

jrodnz commented 6 years ago

@maplesond Thanks! Another update that we tried a docker version compiled from source rather than with conda and it gives the error message below when trying to run portcullis --help:

root@723ad7spl354:~/portcullis-Release-1.1.0# portcullis --help ../lib/include/portcullis/portcullis_fs.hpp(158): Throw in function portcullis::PortcullisFS::PortcullisFS(const char) Dynamic exception type: boost::exception_detail::clone_impl std::exception::what: std::exception [portcullis::FileSystemError] = Could not find Portcullis scripts at the expected installed location: /usr/local/lib/python3.5/local

maplesond commented 6 years ago

Hi @jrodnz, Sorry for the delay getting back to you. Hopefully, if you try compiling from source now (develop branch), that issue should be gone.

jrodnz commented 6 years ago

Thanks, @maplesond! Our team will try this and I will let you know how we go.

jrodnz commented 6 years ago

@maplesond Great news--we were able to get the dev version to work in docker! Thank you for solving the issue. We are looking forward to getting our mikado results soon now :)

maplesond commented 6 years ago

Excellent. Glad I could help @jrodnz.

@beechwood13, I think from offline discussions there were this some outstanding issues. Should I leave this ticket open?

beechwood13 commented 6 years ago

Hi @maplesond, Thank you for your support, help, and responsiveness! I would be happy to check the next stable version - which is hopefully will come soon !

Vita-github commented 4 years ago

Hi @maplesond !

I have a similar problem, the error message is:

../lib/include/portcullis/python_helper.hpp(167): Throw in function void portcullis::PyHelper::execute(std::__cxx11::string, int, char*) Dynamic exception type: boost::exception_detail::clone_impl std::exception::what: std::exception [portcullis::PortcullisPythonError] = Unexpected python error

What can I do about it?

Best, Vita