CSB5 / lofreq

LoFreq Star: Sensitive variant calling from sequencing data
http://csb5.github.io/lofreq/
Other
100 stars 30 forks source link

Convert lofreq to use the HTSlib API instead of the legacy samtools API #86

Closed jmarshall closed 4 years ago

jmarshall commented 4 years ago

For your consideration, this pull request converts src/lofreq/*.c to use HTSlib functions directly rather than via the old samtools 0.1.x API. The old API has been unmaintained for many years and this conversion means that the lofreq code will need only HTSlib, not HTSlib and Samtools.

This compiles and runs but has not been heavily tested.

I've also updated the configure script to use the same ./configure --with-htslib=DIR configure option as used by Samtools. This enables it to build against either an HTSlib source directory or an installation directory in which HTSlib has already been installed. It would be possible to augment it so that the previous ./configure HTSLIB=/path was a synonym of this, but at the moment it prints an error message suggesting --with-htslib be used instead.

Fixes #28 and fixes #52 et al.

andreas-wilm commented 4 years ago

This is amazing John! Thank you so much! I meant to do this a long while back, but changed jobs and my spare time goes into https://github.com/andreas-wilm/lofreq3. Your contribution extends the shelf life of this version substantially. Thanks again!

This compiled at first try against a conda install of 1.10.1. I will test this against all data sets I still have access to after New Year's and will merge then.

andreas-wilm commented 4 years ago

Couldn't wait...