• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

clintval / vartovcf / 39886296310
98%

Build:
DEFAULT BRANCH: main
Ran 23 Oct 2026 01:51AM UTC
Jobs 1
Files 14
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Oct 2026 01:50AM UTC coverage: 98.098% (-0.2%) from 98.28%
39886296310

push

github

web-flow
refactor!: replace rust-htslib with noodles (#161)

* refactor!: write VCF headers and records without rust-htslib

Format the header and each record line in a new vcf module instead of
building htslib records and having htslib print them. The module writes
what htslib wrote: ##fileformat, then the header lines in the order they
were pushed with repeats dropped, and record fields with a missing value
as `.`, an empty one left out, and floats as htslib's kputd prints them.
The float formatting was compared with kputd over every 32-bit float.

The header is no longer formatted through a temporary file, so the
--tmp-dir help names only the records sorting spills.

BREAKING CHANGE: tumor_only_header and tumor_normal_header return a
vcf::Header, contigs_to_vcf_header, fasta_contigs_to_vcf_header and
fasta_path_to_vcf_header take one, gt_value returns vcf::GenotypeAllele
values, and the missing-value trait is vcf::Numeric.

* refactor: read the reference FASTA with noodles-bgzf instead of htslib

Read a window of bases from the byte the FASTA index places its first
base at, keeping each printable character other than a space, as
htslib's faidx reads them, so a line with trailing whitespace reads the
same. A bgzipped FASTA is read through its .gzi index with noodles-bgzf.
A contig the index lists twice is read from its first entry, as htslib
read it.

* refactor!: write and index bgzipped output with noodles, not rust-htslib

Write a .gz output with noodles-bgzf and index it as `tabix -p vcf`
does, with noodles-csi and noodles-tabix: a record spans its POS to the
end of its REF allele, or to a later INFO END, and the records of a
contig must be together, sorted and within what the index addresses.
Refusing them now names the contig and the positions. A CSI index takes
its depth from the longest ##contig line as tabix does, and sets each
bin's offset to the linear index's at the bin's first window, as htslib
does, so a reader does not skip a longer record tha... (continued)

1000 of 1026 new or added lines in 7 files covered. (97.47%)

1 existing line in 1 file now uncovered.

4280 of 4363 relevant lines covered (98.1%)

165232.6 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
93.56
-0.59% src/lib/reference.rs
7
96.46
0.79% src/lib/output.rs
6
98.34
src/lib/vcf.rs
1
97.43
-0.01% src/lib/mod.rs

Coverage Regressions

Lines Coverage ∆ File
1
98.35
-0.68% src/lib/fai.rs
Jobs
ID Job ID Ran Files Coverage
1 39886296310.1 23 Oct 2026 01:51AM UTC 14
98.1
GitHub Action Run
Source Files on build 39886296310
  • Tree
  • List 14
  • Changed 8
  • Source Changed 8
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39886296310
  • 3f198475 on github
  • Prev Build on main (#39820411076)
  • Next Build on main (#39901213645)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc