-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VCF Overhaul #105
VCF Overhaul #105
Conversation
…ent and convert that data
Codecov Report
@@ Coverage Diff @@
## develop #105 +/- ##
===========================================
+ Coverage 80.40% 83.82% +3.41%
===========================================
Files 40 40
Lines 2822 3424 +602
===========================================
+ Hits 2269 2870 +601
- Misses 553 554 +1
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything needs to be run through dfmt
also
…ere changed to be more descriptive.
… and VCFRecord to None as all methods should correctly unpack underlying bcf1_t data
Alright I added several changes to the enums. They now refer directly to the htslib I also changed the default Still todo:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ALmost there. There were a few conversations not addressed (minor stuff) and a few you did comment on that I replied to.
The only major change I am requesting is no-copy VCFRecord, to match SAMRecord ; I could be persuaded either way on INFO and FORMAT structs
These structs now hold references to underlying info and format data. It follows a scheme similar to Cigar and TagValue (scheme in develop not in this branch vcf_overhaul). They increment and decrement the VCFRecord refct via a pointer they recieve via ctor.
…rsion to VCFHeader with unittest
…t is already tomorrow (wouldn't have worked tomorrow anyway)
I think this should be ready to go. |
Lots of changes went into this.
fixes #96.
New Features:
HeaderRecord
wrapper struct for gettingVCFHeader
records in a structured format along with getters and setters andVCFHeader
can now accept this type to add to a header.removeHeaderLines
.VCFReader
toVCFHeader
as appropriate.InfoField
andFormatField
wrapper structs to get and transform VCF format and info data into D types (data is copied).getInfos
andgetFormats
) to return a hashmap of all info and format data using new wrapper structs.removeInfo
.BCF*
enums.Though I did introduce a lot of new features, I have tried to leave old functionality behind. (Though with the reorganization and the enums, the API will change for most of
dhtslib.vcf
).Fixes:
addFormat
andaddInfo
functions.VCFHeader
functionsVCFReader
now obeys Phobos Range rules, fixes VCFReader doesn't conform to Range rules #69dhtslib.vcf
modules is >= 92%, fixes dhtslib.vcf.record poor test coverage #94Concerns:
hts_log
and have the function return, sometimes we report errors throughhts_log
and have the function throw an exception, or sometimes we just throw an exception. We should decide formally on how this should be done across the whole package, Functional styleOptional
andResult
return types #99 probably relevant.