Giter Site home page Giter Site logo

pyspoa's Introduction

pyspoa

test-pyspoa PyPI version

Python bindings to spoa.

Installation

$ pip install pyspoa

Usage

>>> from spoa import poa
>>>
>>> consensus, msa = poa(['AACTTATA', 'AACTTATG', 'AACTATA'])
>>> consensus
'AACTTATA'
>>> msa
['AACTTATA-', 'AACTTAT-G', 'AAC-TATA-']
>>> print(os.linesep.join(msa))
AACTTATA-
AACTTAT-G
AAC-TATA-

Developer Quick Start

$ git clone --recursive https://github.com/nanoporetech/pyspoa.git
$ cd pyspoa
$ python3 -m venv pyspoa
$ source pyspoa/bin/activate
(pyspoa) $ make build

Licence and Copyright

(c) 2019 Oxford Nanopore Technologies Ltd.

pyspoa is distributed under the terms of the MIT License. If a copy of the License was not distributed with this file, You can obtain one at https://github.com/nanoporetech/pyspoa

Research Release

Research releases are provided as technology demonstrators to provide early access to features or stimulate Community development of tools. Support for this software will be minimal and is only provided directly by the developers. Feature requests, improvements, and discussions are welcome and can be implemented by forking and pull requests. However much as we would like to rectify every issue and piece of feedback users may have, the developers may have limited resource for support of this software. Research releases may be unstable and subject to rapid iteration by Oxford Nanopore Technologies.

pyspoa's People

Contributors

cjw85 avatar iiseymour avatar julibeg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyspoa's Issues

Build order seems to go wrong on Python 3.10.6

It looks like the setup.py might need modernising for recent versions of python. When installing pyspoa from Ubuntu 22.04 in a virtualenv the following error is produced.

Building wheels for collected packages: pyspoa
  Building wheel for pyspoa (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [17 lines of output]
      /root/medeka.venv/lib/python3.10/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
        warnings.warn(
      running bdist_wheel
      running build
      running build_ext
      creating tmp
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/root/medeka.venv/include -I/usr/include/python3.10 -c /tmp/tmprio_7i1g.cpp -o tmp/tmprio_7i1g.o -std=c++14
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/root/medeka.venv/include -I/usr/include/python3.10 -c /tmp/tmpas28wqcb.cpp -o tmp/tmpas28wqcb.o -fvisibility=hidden
      building 'spoa' extension
      creating build
      creating build/temp.linux-x86_64-3.10
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Isrc/include/spoa -Isrc/vendor/cereal/include -I/tmp/pip-install-e72xg4de/pyspoa_c815ff51ab5747138c87d5bde5210736/.eggs/pybind11-2.10.4-py3.10.egg/pybind11/include -I/tmp/pip-install-e72xg4de/pyspoa_c815ff51ab5747138c87d5bde5210736/.eggs/pybind11-2.10.4-py3.10.egg/pybind11/include -I/root/medeka.venv/include -I/usr/include/python3.10 -c pyspoa.cpp -o build/temp.linux-x86_64-3.10/pyspoa.o -DVERSION_INFO="0.0.8" -std=c++14 -fvisibility=hidden
      creating build/lib.linux-x86_64-3.10
      x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.10/pyspoa.o src/build/lib/libspoa.a -o build/lib.linux-x86_64-3.10/spoa.cpython-310-x86_64-linux-gnu.so
      /usr/bin/ld: cannot find src/build/lib/libspoa.a: No such file or directory
      collect2: error: ld returned 1 exit status
      error: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyspoa
  Running setup.py clean for pyspoa
Failed to build pyspoa
ERROR: Could not build wheels for pyspoa, which is required to install pyproject.toml-based projects

A similar error occurs when you attempt to python setup.py build on a new checkout of pyspoa. The solution seems to be to execute make clean; make; python setup.py install, which suggests the instruction to build libspoa.a is now occurring too late in the build process on recent versions of python?

Issue installing pyspoa on remote compute node

Hi, I have been trying to get medaka installed on our remote computing system via pip and have been having issues that seem to be related to pyspoa. Specifically, I get an error (below) that appears to be related to trying to install ZLIB. I tried building pyspoa both with pip and from source and got the same error. I tried building ZLIB directly on its own, and traced the issue to this:

(spoa-test) [nao5@compute-g-17-169 zlib-1.3]$ make install
mkdir: cannot create directory ‘/usr/local/lib/pkgconfig’: Permission denied
make: [install-libs] Error 1 (ignored)
rm -f /usr/local/lib/libz.a
cp libz.a /usr/local/lib

When I installed it again using make install prefix=$HOME I was about to get the install to work, however dropping that line into the build-wheel.sh script in the pyspoa repo still gave the same error. I believe the issue has to do with the wheel expecting to be able to access local directories which our server system does not give write permission, but I'm not really sure how to go about modifying the install to make this work. I have never had this issue installing anything else in the past, so I assume it is somehow specific to the build instructions here. I did manage to install an older version of medaka through conda, but cannot seem to get the newer version up and running.

If it is relevant, the remote nodes run centos 7 and GCC 9.2.0, and I am doing this in a Python 3.10.8 virtual environment (though I tried it with various other python versions and had no success).

error after pip install pyspoa:

(spoa-test) [nao5@compute-g-17-169 sequencing_output]$ pip install pyspoa
Collecting pyspoa
  Using cached pyspoa-0.2.1.tar.gz (52 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: pyspoa
  Building wheel for pyspoa (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for pyspoa (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [45 lines of output]
      running bdist_wheel
      running build
      running build_ext
      -- The CXX compiler identification is GNU 9.2.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /n/app/gcc/9.2.0/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      CMake Error at /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/cmake/data/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
        Could NOT find ZLIB: Found unsuitable version "1.2.7", but required is at
        least "1.2.8" (found /usr/lib64/libz.so, )
      Call Stack (most recent call first):
        /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/cmake/data/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:598 (_FPHSA_FAILURE_MESSAGE)
        /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/cmake/data/share/cmake-3.29/Modules/FindZLIB.cmake:199 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
        build/_deps/bioparser-src/CMakeLists.txt:22 (find_package)
      
      
      -- Configuring incomplete, errors occurred!
      make: *** No targets specified and no makefile found.  Stop.
      creating tmp
      gcc -pthread -B /home/nao5/miniconda3/envs/spoa-test/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -I/home/nao5/miniconda3/envs/spoa-test/include/python3.10 -c /tmp/tmp_hdr91he.cpp -o tmp/tmp_hdr91he.o -std=c++14
      gcc -pthread -B /home/nao5/miniconda3/envs/spoa-test/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -I/home/nao5/miniconda3/envs/spoa-test/include/python3.10 -c /tmp/tmpc6qpuln_.cpp -o tmp/tmpc6qpuln_.o -fvisibility=hidden
      building 'spoa' extension
      creating build
      creating build/temp.linux-x86_64-cpython-310
      gcc -pthread -B /home/nao5/miniconda3/envs/spoa-test/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -O2 -isystem /home/nao5/miniconda3/envs/spoa-test/include -fPIC -Isrc/include/spoa -Isrc/vendor/cereal/include -I/tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include -I/tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include -I/home/nao5/miniconda3/envs/spoa-test/include/python3.10 -c pyspoa.cpp -o build/temp.linux-x86_64-cpython-310/pyspoa.o -DVERSION_INFO=\"0.2.1\" -std=c++14 -fvisibility=hidden
      pyspoa.cpp: In function ‘pybind11::tuple poa(std::vector<std::__cxx11::basic_string<char> >, int, bool, int, int, int, int, int, int, pybind11::object)’:
      pyspoa.cpp:14:40: warning: ‘bool pybind11::handle::operator!=(const pybind11::handle&) const’ is deprecated: Use !obj1.is(obj2) instead [-Wdeprecated-declarations]
         14 |     if (min_coverage != pybind11::none()) {
            |                                        ^
      In file included from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h:12,
                       from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/detail/../cast.h:15,
                       from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/detail/../attr.h:14,
                       from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/detail/class.h:12,
                       from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/pybind11.h:13,
                       from /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/stl.h:12,
                       from pyspoa.cpp:4:
      /tmp/pip-build-env-rn7wq22r/overlay/lib/python3.10/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h:293:10: note: declared here
        293 |     bool operator!=(const handle &h) const { return m_ptr != h.m_ptr; }
            |          ^~~~~~~~
      creating build/lib.linux-x86_64-cpython-310
      g++ -pthread -B /home/nao5/miniconda3/envs/spoa-test/compiler_compat -shared -Wl,--allow-shlib-undefined -Wl,-rpath,/home/nao5/miniconda3/envs/spoa-test/lib -Wl,-rpath-link,/home/nao5/miniconda3/envs/spoa-test/lib -L/home/nao5/miniconda3/envs/spoa-test/lib -Wl,--allow-shlib-undefined -Wl,-rpath,/home/nao5/miniconda3/envs/spoa-test/lib -Wl,-rpath-link,/home/nao5/miniconda3/envs/spoa-test/lib -L/home/nao5/miniconda3/envs/spoa-test/lib build/temp.linux-x86_64-cpython-310/pyspoa.o src/build/lib/libspoa.a -o build/lib.linux-x86_64-cpython-310/spoa.cpython-310-x86_64-linux-gnu.so
      g++: error: src/build/lib/libspoa.a: No such file or directory
      error: command '/n/app/gcc/9.2.0/bin/g++' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyspoa
Failed to build pyspoa
ERROR: Could not build wheels for pyspoa, which is required to install pyproject.toml-based projects

segmentation fault when running test_pyspoa.py

We're trying to install pyspoa with GCC 12.2.0, on top of Python 3.10.8, with pybind11 and spoa 4.0.7, and we're seeing a hard crash when running test_pyspoa:

$ python test_pyspoa.py
Segmentation fault (core dumped)

I figured it was maybe due to a lack of memory, but that seems unlikely since I'm seeing the same problem on a system that has 250GB of RAM available...

When running through GDB, I get the following stack trace, maybe this helps:

Program received signal SIGSEGV, Segmentation fault.
0x00001555553c469e in spoa::Graph::GenerateConsensus[abi:cxx11](std::vector<unsigned int, std::allocator<unsigned int> >*, bool) ()
   from /software/pyspoa/0.2.1-GCC-12.2.0/lib/python3.10/site-packages/spoa.cpython-310-x86_64-linux-gnu.so
Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-225.el8_8.6.x86_64 libxcrypt-4.1.1-6.el8.x86_64
(gdb) bt
#0  0x00001555553c469e in spoa::Graph::GenerateConsensus[abi:cxx11](std::vector<unsigned int, std::allocator<unsigned int> >*, bool) ()
   from /software/pyspoa/0.2.1-GCC-12.2.0/lib/python3.10/site-packages/spoa.cpython-310-x86_64-linux-gnu.so
#1  0x00001555553b1190 in poa (sequences=..., algorithm=<optimized out>, genmsa=<optimized out>, m=<optimized out>, n=<optimized out>, g=-8, e=-6, q=-10, c=-4, min_coverage=...)
    at /software/pybind11/2.10.3-GCCcore-12.2.0/include/pybind11/options.h:28
#2  0x00001555553c20df in pybind11::detail::argument_loader<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object>::call_impl<pybind11::tuple, pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, pybind11::detail::void_type>(pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul>, pybind11::detail::void_type&&) && (f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, this=0x7fffffff0840) at /software/pybind11/2.10.3-GCCcore-12.2.0/include/pybind11/attr.h:105
#3  pybind11::detail::argument_loader<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object>::call<pybind11::tuple, pybind11::detail::void_type, pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object)>(pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object)) && (f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, this=0x7fffffff0840)
    at /software/Python/3.10.8-GCCcore-12.2.0/include/python3.10/charconv.h:1413
#4  pybind11::cpp_function::initialize<pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::tuple, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object, pybind11::name, pybind11::scope, pybind11::sibling, char [1], pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v>(pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::tuple (*)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [1], pybind11::arg const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&)::{lambda(pybind11::detail::function_call&)#3}::operator()(pybind11::detail::function_call&) const (__closure=0x0, call=...)
    at /software/Python/3.10.8-GCCcore-12.2.0/include/python3.10/alloc_traits.h:248
#5  pybind11::cpp_function::initialize<pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::tuple, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object, pybind11::name, pybind11::scope, pybind11::sibling, char [1], pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v>(pybind11::tuple (*&)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::tuple (*)(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, int, bool, int, int, int, int, int, int, pybind11::object), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [1], pybind11::arg const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&, pybind11::arg_v const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call&) ()
    at /software/Python/3.10.8-GCCcore-12.2.0/include/python3.10/alloc_traits.h:223
#6  0x00001555553be022 in pybind11::cpp_function::dispatcher (self=<optimized out>, args_in=0x1555539e6260, kwargs_in=0x0) at /software/Python/3.10.8-GCCcore-12.2.0/include/python3.10/alloc_traits.h:939
#7  0x00001555550ad35d in cfunction_call (func=0x155553e47b50, args=<optimized out>, kwargs=<optimized out>) at ./Python/pycore_bitutils.h:543
#8  0x00001555550aa533 in _PyObject_MakeTpCall (tstate=0x407a50, callable=0x155553e47b50, args=0x155553b99e70, nargs=1, keywords=0x0) at ./Modules/abstract.h:215
#9  0x00001555550a3775 in _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=<optimized out>,
    callable=<optimized out>, tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:112
#10 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:99
#11 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#12 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff0ca0, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#13 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#14 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#15 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#16 0x00001555550b41a3 in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0x155553e86730, func=0x1555539b0280, func@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:332
#17 _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=<optimized out>, args=0x155553e86730, callable=0x1555539b0280, callable@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, tstate=0x407a50,
    tstate@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:114
#18 method_vectorcall (method=<optimized out>, args=0x155553e86738, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/clinic/import.c.h:53
#19 0x00001555550a191c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x1555539fd300, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#20 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x1555539fd300) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#21 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff0fa0, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#22 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#23 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#24 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#25 0x00001555550a1d89 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5eec40, callable=0x155553b465f0, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#26 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x5eec40, callable=0x155553b465f0) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#27 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff1200, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#28 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4198
--Type <RET> for more, q to quit, c to continue without paging--
#29 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#30 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#31 0x00001555550b4270 in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:332
#32 _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, args=0x7fffffff1390,
    args@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, callable=0x155553b467a0, callable@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, tstate=0x407a50,
    tstate@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:114
#33 method_vectorcall (method=<optimized out>, args=0x1555539e6458, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/clinic/import.c.h:83
#34 0x00001555550a4f58 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4277
#35 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#36 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#37 0x00001555550a9e4f in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, nargsf@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<optimized out>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:342
#38 _PyObject_FastCallDictTstate (tstate=0x407a50, callable=0x155553b46950, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at ./Modules/abstract.h:142
#39 0x00001555550b2adf in _PyObject_Call_Prepend (tstate=0x407a50, callable=0x155553b46950, obj=<optimized out>, args=0x155553b879d0, kwargs=<optimized out>) at ./Modules/abstract.h:431
#40 0x000015555514df80 in slot_tp_call (self=self@entry=0x1555539e6320, args=args@entry=0x155553b879d0, kwds=kwds@entry=0x0) at ./Include/gcmodule.c:7494
#41 0x00001555550aa533 in _PyObject_MakeTpCall (tstate=0x407a50, callable=0x1555539e6320, args=0x155553e432d0, nargs=1, keywords=0x0) at ./Modules/abstract.h:215
#42 0x00001555550a3775 in _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=<optimized out>,
    callable=<optimized out>, tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:112
#43 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:99
#44 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#45 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff18e0, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#46 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#47 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#48 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#49 0x00001555550b4270 in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:332
#50 _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, args=0x7fffffff1a70,
    args@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, callable=0x155553b55ab0, callable@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, tstate=0x407a50,
    tstate@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:114
#51 method_vectorcall (method=<optimized out>, args=0x155553b870e8, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/clinic/import.c.h:83
#52 0x00001555550a4f58 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4277
#53 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#54 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#55 0x00001555550a9e4f in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, nargsf@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<optimized out>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:342
#56 _PyObject_FastCallDictTstate (tstate=0x407a50, callable=0x155553b55990, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at ./Modules/abstract.h:142
#57 0x00001555550b2adf in _PyObject_Call_Prepend (tstate=0x407a50, callable=0x155553b55990, obj=<optimized out>, args=0x155553e24310, kwargs=<optimized out>) at ./Modules/abstract.h:431
#58 0x000015555514df80 in slot_tp_call (self=self@entry=0x1555539e63b0, args=args@entry=0x155553e24310, kwds=kwds@entry=0x0) at ./Include/gcmodule.c:7494
#59 0x00001555550aa533 in _PyObject_MakeTpCall (tstate=0x407a50, callable=0x1555539e63b0, args=0x155553e43100, nargs=1, keywords=0x0) at ./Modules/abstract.h:215
#60 0x00001555550a3775 in _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=<optimized out>,
    callable=<optimized out>, tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:112
#61 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:99
#62 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#63 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff1fc0, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#64 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#65 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#66 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#67 0x00001555550b4270 in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:332
#68 _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, args=0x7fffffff2150,
    args@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, callable=0x155553b55ab0, callable@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, tstate=0x407a50,
--Type <RET> for more, q to quit, c to continue without paging--
    tstate@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:114
#69 method_vectorcall (method=<optimized out>, args=0x155553b879b8, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/clinic/import.c.h:83
#70 0x00001555550a4f58 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4277
#71 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#72 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#73 0x00001555550a9e4f in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, nargsf@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<optimized out>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:342
#74 _PyObject_FastCallDictTstate (tstate=0x407a50, callable=0x155553b55990, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at ./Modules/abstract.h:142
#75 0x00001555550b2adf in _PyObject_Call_Prepend (tstate=0x407a50, callable=0x155553b55990, obj=<optimized out>, args=0x155553e57e80, kwargs=<optimized out>) at ./Modules/abstract.h:431
#76 0x000015555514df80 in slot_tp_call (self=self@entry=0x155553e57d90, args=args@entry=0x155553e57e80, kwds=kwds@entry=0x0) at ./Include/gcmodule.c:7494
#77 0x00001555550aa533 in _PyObject_MakeTpCall (tstate=0x407a50, callable=0x155553e57d90, args=0x5edb70, nargs=1, keywords=0x0) at ./Modules/abstract.h:215
#78 0x00001555550a3775 in _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=<optimized out>,
    callable=<optimized out>, tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:112
#79 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:99
#80 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#81 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff26a0, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#82 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#83 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#84 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#85 0x00001555550a1d89 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x155553e42998, callable=0x155553ba3a30, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#86 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x155553e42998, callable=0x155553ba3a30) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#87 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff2900, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#88 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4198
#89 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#90 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#91 0x00001555550a1d89 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x563018, callable=0x1555539b0160, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#92 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x563018, callable=0x1555539b0160) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#93 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff2b60, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#94 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4198
#95 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#96 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#97 0x00001555550a9e4f in _PyFunction_Vectorcall (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<optimized out>, nargsf@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    stack=<optimized out>, func=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:342
#98 _PyObject_FastCallDictTstate (tstate=0x407a50, callable=0x155553ba3b50, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at ./Modules/abstract.h:142
#99 0x00001555550b2929 in _PyObject_Call_Prepend (kwargs=0x0, kwargs@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=0x1555553ec070,
    args@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, obj=0x155553e57dc0, obj@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, callable=0x155553ba3b50,
    callable@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, tstate=0x407a50, tstate@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ./Modules/abstract.h:431
#100 slot_tp_init (self=0x155553e57dc0, args=0x1555553ec070, kwds=0x0) at ./Include/gcmodule.c:7734
#101 0x00001555550aa7ab in type_call (type=<optimized out>, type@entry=0x5cece0, args=args@entry=0x1555553ec070, kwds=kwds@entry=0x0) at ./Python/pycore_pystate.h:731
#102 0x00001555550aa533 in _PyObject_MakeTpCall (tstate=0x407a50, callable=0x5cece0, args=0x155555411ba8, nargs=0, keywords=0x0) at ./Modules/abstract.h:215
#103 0x00001555550a3775 in _PyObject_VectorcallTstate (kwnames=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, nargsf=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, args=<optimized out>,
    callable=<optimized out>, tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:112
#104 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=0x407a50) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:99
#105 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at /tmp/easybuild_build/Python/3.10.8/GCCcore-12.2.0/Python-3.10.8/abstract.c:123
#106 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7fffffff2f20, tstate=<optimized out>) at Objects/ceval_gil.h:5891
#107 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Objects/ceval_gil.h:4213
#108 0x00001555550a07ee in _PyEval_EvalFrame (throwflag=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
    tstate=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at Objects/marshal.c:46
#109 _PyEval_Vector (tstate=0x407a50, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=<optimized out>) at Objects/ceval_gil.h:5065
#110 0x0000155555116479 in PyEval_EvalCode (co=0x155553e2f050, globals=0x155553f1cf00, locals=0x155553f1cf00) at Objects/ceval_gil.h:1134
#111 0x0000155555126e93 in run_eval_code_obj (tstate=0x407a50, co=0x155553e2f050, globals=0x155553f1cf00, locals=0x155553f1cf00) at Modules/find.h:1291
#112 0x00001555551229ba in run_mod (mod=<optimized out>, filename=<optimized out>, globals=0x155553f1cf00, locals=0x155553f1cf00, flags=<optimized out>, arena=<optimized out>) at Modules/find.h:1312
#113 0x000015555501c261 in pyrun_file (fp=fp@entry=0x405370, filename=filename@entry=0x155553f0cdb0, start=start@entry=257, globals=globals@entry=0x155553f1cf00, locals=locals@entry=0x155553f1cf00, closeit=closeit@entry=1, flags=0x7fffffff3268) at Modules/find.h:1208
--Type <RET> for more, q to quit, c to continue without paging--
#114 0x000015555501ba3b in _PyRun_SimpleFileObject (fp=0x405370, filename=0x155553f0cdb0, closeit=1, flags=0x7fffffff3268) at Modules/find.h:456
#115 0x000015555501d763 in _PyRun_AnyFileObject (fp=0x405370, filename=0x155553f0cdb0, closeit=1, flags=0x7fffffff3268) at Modules/find.h:90
#116 0x00001555551332a9 in pymain_run_file_obj (skip_source_first_line=0, filename=0x155553f0cdb0, program_name=0x155553f06b80) at Objects/fileutils.c:353
#117 pymain_run_file (config=0x408b10) at Objects/fileutils.c:372
#118 pymain_run_python (exitcode=0x7fffffff3264) at Objects/fileutils.c:587
#119 Py_RunMain () at Objects/fileutils.c:666
#120 0x0000155555108e67 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Objects/fileutils.c:720
#121 0x0000155554010d85 in __libc_start_main () from /lib64/libc.so.6
#122 0x000000000040106e in _start ()

Could this be a problem in pyspoa itself, or do we need to look elsewhere for a bug (in spoa perhaps)?

pyspoa 0.0.5

CIRI-long seems to depend on pypsoa 0.0.5.
I need to run CIRI-long.
Could you get back pyspoa 0.05?

Kevinzjy commented 2 weeks ago
Hi @kawito , you could first install pyspoa 0.05 by running pip install pyspoa==0.0.5, then try to install CIRI-long again.

I run the below command and get ERROR message:
$ pip install pyspoa==0.0.5
ERROR: Could not find a version that satisfies the requirement pyspoa==0.0.5 (from versions: 0.0.6, 0.0.7, 0.0.8a0, 0.0.8, 0.1.0, 0.2.0, 0.2.1)
ERROR: No matching distribution found for pyspoa==0.0.5

pyspoa does not raise a Python exception when running out of memory

Hi,

thanks for providing this very helpful package. I'm using it to compute a consensus of (potentially) long sequences. As spoa's memory complexity is quadratic it can happen that I run out of memory on my machine. In that case, I would like to catch an exception and return a helpful error message. Something along the lines of:

try:
    cons, msa = poa(sequences)
except MemoryError:
    print("You ran out of memory. Use shorter sequences.")

However, pyspoa does not seem to raise a Python exception when running out of memory:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
/bin/bash: line 1: 111186 Aborted                 (core dumped) ...

As pyspoa is using the pybind11 library, I read what they write about exceptions (https://pybind11.readthedocs.io/en/stable/advanced/exceptions.html) and apparently, an std::bad_alloc exception should be translated to a python MemoryError. I have no idea why that did not work in my case.

Can you reproduce this issue and if yes, do you have an idea how I could catch an memory error in python?

Cheers
David

pyspoa is hardcoded to smith-waterman?

While it seems that algorithm is an option for the poa wrapper, it seems to be hardcoded to smith waterman?
https://github.com/nanoporetech/pyspoa/blob/master/pyspoa.cpp#L7-L11

In other words, specifying the algorithm doesn't do anything, these are all running local alignment I think??:

cons, msa = poa(['GGGGAAAATTTTT', 'GGGGAAATTTTT'], 0)
cons, msa = poa(['GGGGAAAATTTTT', 'GGGGAAATTTTT'], 1)
cons, msa = poa(['GGGGAAAATTTTT', 'GGGGAAATTTTT'], 2)

I'm not sure, but wouldn't the AlignmentType need to be called the above use cases?
if algorithm == 0 --> spoa::AlignmentType::kSW, m, n, g, e, q, c
if algorithm == 1 --> spoa::AlignmentType::kNW, m, n, g, e, q, c
if algorithm == 2 --> spoa::AlignmentType::kOV, m, n, g, e, q, c

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.