Comments (8)
Sure. Although these are really requirements of htslib
rather than octopus per se. I'll update the docs for the next release in any case.
from octopus.
You're right, it was only cmake that used these extra dependencies. Octopus compiled fine after this patch and without the extra dependencies.
from octopus.
This patch causes a bunch of link errors if using htslib 1.4 or greater on OSX and Linux. In fact, I remember this is why I added these now in commits 5e50a22 and a0408c7.
from octopus.
Sounds like a linking problem with your htslib, it should be linking in its dependencies implicitly. I'm using linux and my htslib v1.6 is appropriately linked. Could be some bugs possible if explicitly linking against a different version to what htslib is compiled against? Not sure.
from octopus.
Do you recall how you installed htslib? I just installed the latest develop
version manually and continue to encounter link errors when installing octopus without explicitly finding htslib's dependencies. I agree it's weird, and shouldn't be necessary.
from octopus.
Although this guide on writing CMake find modules suggests library dependencies should explicitly be found themselves...
from octopus.
Strange, what does ldd say on your library? I'm compiling using nix, which doesn't do anything special (the build expression is here). My ldd shows the library correctly linked against its dependencies:
[nix-shell:~]$ ldd /nix/store/cgj7cxnnl8jmp2qppsaxnrbwa57wv657-htslib-1.6/lib/libhts.so.2
ldd: warning: you do not have execution permission for `/nix/store/cgj7cxnnl8jmp2qppsaxnrbwa57wv657-htslib-1.6/lib/libhts.so.2'
linux-vdso.so.1 (0x00007fff02bbc000)
liblzma.so.5 => /nix/store/8b6gq3ay5i968i5jxzdk6x0jazxg508g-xz-5.2.3/lib/liblzma.so.5 (0x00007f175fdad000)
libbz2.so.1 => /nix/store/m9fm5ls687zxwc2299acrw9i5k3vi0n8-bzip2-1.0.6.0.1/lib/libbz2.so.1 (0x00007f175fb9d000)
libz.so.1 => /nix/store/qwihrwyc72qd57grhqmfzkvvpd8611yf-zlib-1.2.11/lib/libz.so.1 (0x00007f175f986000)
libm.so.6 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libm.so.6 (0x00007f175f63a000)
libcurl.so.4 => /nix/store/78nh8kaacpcka6w6x0fpirlaxidyy0qa-curl-7.57.0/lib/libcurl.so.4 (0x00007f175f3bc000)
libcrypto.so.1.0.0 => /nix/store/6dvn6wjy79yxsbz05sgcm8xplbidq5s6-openssl-1.0.2n/lib/libcrypto.so.1.0.0 (0x00007f175ef81000)
libpthread.so.0 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libpthread.so.0 (0x00007f175ed63000)
libc.so.6 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libc.so.6 (0x00007f175e9b0000)
/nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib64/ld-linux-x86-64.so.2 (0x00007f1760280000)
libnghttp2.so.14 => /nix/store/lc45jlqa3ra7y34nz148bmdiv8jaw0qm-nghttp2-1.24.0-lib/lib/libnghttp2.so.14 (0x00007f175e78a000)
libssh2.so.1 => /nix/store/4plv316zazflkbnz1yv92il3v5sjjk2i-libssh2-1.8.0/lib/libssh2.so.1 (0x00007f175e55c000)
libssl.so.1.0.0 => /nix/store/6dvn6wjy79yxsbz05sgcm8xplbidq5s6-openssl-1.0.2n/lib/libssl.so.1.0.0 (0x00007f175e2ee000)
libdl.so.2 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libdl.so.2 (0x00007f175e0ea000)
I also just tried compiling htslib quickly on a fresh ubuntu image (./configure && make) and that also seemed to link correctly:
root@7a77cbe15932:/tmp/htslib-1.6# ldd libhts.so
linux-vdso.so.1 => (0x00007ffeb30ea000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f5c24c30000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f5c24a20000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5c24806000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5c244fd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5c242e0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5c23f16000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5c23d12000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5c250fa000)
from octopus.
Sorry for the delayed response. I found the problem. It was because on my system, the static htslib version (libhts.a
) was being used, which requires dependencies be explicitly linked otherwise there are unresolved symbols. On your system, the dynamic version (libhts.so
) was being selected, so no need to link the dependencies. I've modified the installation process to default to always find the dynamic version, in which case CMake won't try to find the dependencies. There is still the option to statically link (--static
) command to install.py
. These changes are available in v0.3.3-alpha.
from octopus.
Related Issues (20)
- can not download the forest files HOT 1
- Remove depreciated inheritance of std::unary_function
- Call in high heterozygotes
- VCF file is empty
- info on UL nanpore reads HOT 2
- Forest file is still not available for donwloading "std::bad_alloc Error" HOT 9
- Population-level variant calling using accessions with complex ploidy level
- Will octopus add a mode using paired information to compose a linked debruijn graph?
- Can octopus add a feature to add supported read query names of the variants in the INFO field of the output VCF file? HOT 1
- Position of maternal or paternal haplotypes in Octopus after performing TRIO analyses HOT 1
- Models for NovaseqX?
- Encountered an exception during calling 'std::bad_alloc' HOT 2
- training data & regions of the genome used for somatic random forest model
- Build failures on `gcc-13`: `option_collation.cpp:1298: error: redundant move in initialization`
- Build fails, is there a singularity? HOT 1
- ERROR in reading reference index. HOT 2
- Starting Call Set Refinement (CSR) filtering provokes RAM overload HOT 2
- Use with Nanopore long reads HOT 2
- After recompiling from source get error 'Phred: negative error [2024-07-15 12:55:12] <EROR> probability -0.000000' HOT 2
- Binaries compiled for AVX-512 cores do not process the whole genome. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from octopus.