seq-lang / seq

A high-performance, Pythonic language for bioinformatics

Home Page:https://seq-lang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

libhts not found on new install

brendanofallon opened this issue · comments

Howdy, I just downloaded seq (v0.9.11) and tried to run a tiny program, but immediately ran into an issue when executing the program:

$seqc prog.seq path/to/some.bam
CError: libhts.so: cannot open shared object file: No such file or directory

I'm running CentOS Linux release 7.6.1810. Not sure how to fix this one, and couldn't find much in the documentation, but maybe I missed something. Do I need to install certain shared libs or set LD_LIBRARY_PATH appropriately, maybe?

Thanks for your hard work on this! Looks really awesome, I'm excited to try it out.

Not sure, but as you suspect, you might verify libhts is installed.
If you use yum or rpm on CentOS you could try something like rpm -qf libhts.so or yum whatprovides libhts.so to see what package provides libhts and then verify it's installed. A Samtools package might also be an option.

Hey @brendanofallon,
Installing htslib should fix this error -- it's basically the only library Seq uses that doesn't come pre-packaged with the binaries. Something like yum install samtools-libs seems like it should do the trick. As long as the library is in a standard path, Seq should find it on its own. Let me know if this works!

Thanks, sounds easy enough. Maybe worth mentioning this on the "getting started" page. Another wrinkle is that the options mentioned above won't work if the user doesn't have admin privs. libhts could be installed in an alternative location of course, but would seq find it?
Would it be hard to bundle libhts (and maybe libomp) in the release download? That might help resolve these issues, and maybe others regarding versions, etc.

Yes we should definitely this to the docs. We're planning to include libhts in the next major release of Seq; it has a few dependencies that are a bit of a pain to deal with, which is why we've avoided it until now (OpenMP is actually included now, so it shouldn't have to be installed manually).

FYI if you install htslib to a non-standard path, you can simply set the SEQ_HTSLIB environment variable to the path of the library -- then Seq will pick it up.