Replies: 1 comment
-
Structs struct Bgzf
struct KstringT
struct SamHdrT
struct HtsOpt
struct HtsFile
struct HtsFormat
struct HtsFormatVersion
struct HtsThreadPool
struct HtsPairPosT
struct HtsPair64T
struct HtsPair64MaxT
struct HtsReglistT
struct HtsItrT
struct HtsItrTBins
struct Bam1T
struct Bam1CoreT
struct BamPileup1T
struct HtsBaseMod
struct TbxConfT
struct TbxT
struct BcfHdrT
struct BcfIdpairT
struct BcfIdinfoT
struct BcfHrecT
struct Bcf1T
struct BcfDecT
struct BcfInfoT
struct BcfFmtT
struct BcfVariantT Enums enum HtsLogLevel
enum HtsFmtOption
enum HtsFormatCategory
enum HtsExactFormat
enum HtsCompression
enum CramContentType |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Here, let's consider how to update htslib.cr when htslib is updated.
(1) Install crystal_lib and make sure it works.
(2) Next, use crystal_lib to automatically generate the bindings. (llvm needed)
The created htslib bindings are in a single file.
This can lead to poor readability, becuse, htslib consists of various files formats such as sam, bam, vcf, bcf, tabix, etc.
(3) Format file
(4) Problems with generated C bindings
This is a serious problem. crystal_lib cannot parse bitfields. htslib structures often contain bitfields. Therefore, the bitfields need to be commented out. This fix currently needs to be done manually.
Perform automatic code formatting with the crystal command.
Other than automatic formatting, manual code formatting may not be recommended here. It certainly makes the code more readable, but it is best to avoid doing that every time htslib is upgraded.
Beta Was this translation helpful? Give feedback.
All reactions