Skip to content

Examples

Eight datasets, each here because it is the only one that shows a particular thing. Between them they exercise every check gb-qc runs, at every severity that check can reach.

Every flag on these pages is measured, not asserted. The reports are generated by running gb-qc over the committed data — the same commands each page shows you — and the build fails if a flag stops matching what the example declares. If a page says six checks fail, six checks failed on the run that produced the report you can open beside it.

Start here

If you read one, read hidden-motif. Every summary statistic passes; the entire difference between its classes is six positions wide inside a 398-position sequence. It is the case the interactive per-position plot exists for, and the clearest demonstration that a clean-looking summary is not the same as a clean dataset.

If you want to know what "fine" looks like first, read clean-dataset.

All eight

Example What it shows Worst flag
clean-dataset The control. Every check passes, AU-ROC 0.50–0.54 Pass
composition-bias Six checks fail, and 6% of the test set is already in training Fail
hidden-motif A bias six positions wide inside 398 positions Fail
variable-length Why most positions go unscored, and an N that only one class has Fail
length-bias Length alone separating the classes, on a continuous label Warning
paired-sequences Two sequence columns in one row, and the merged report Fail
fasta-classes One FASTA file per class, label from the filename Fail
enhancers The quickstart dataset, with a little real leakage Warning

Which check does what, and where to see it fail

A check you have never seen fail is hard to reason about. This is where each one does.

Check Fails in Warns in
Unique bases variable-length
Sequence Duplications within Labels paired-sequences composition-bias, enhancers, variable-length
Duplicate Sequences between Labels composition-bias, paired-sequences, variable-length
Sequence lengths length-bias
Per sequence GC content composition-bias, fasta-classes enhancers
Per sequence nucleotide content composition-bias, fasta-classes enhancers, length-bias
Per sequence dinucleotide content composition-bias, fasta-classes enhancers, hidden-motif, length-bias
Per position nucleotide content composition-bias, hidden-motif enhancers
Per position reversed nucleotide content composition-bias, hidden-motif enhancers
Data Leakage composition-bias clean-dataset, enhancers, variable-length

That table is read off the reports themselves, so it cannot fall out of step with them. Two gaps in it are worth stating rather than leaving as blanks.

Nothing fails the length check — the empty cell in its row is real. The closest any example comes is length-bias at AU-ROC 0.631, a Warning. The README leads with "your negatives are shorter than your positives" because it is the easiest bias to introduce and the most embarrassing to ship, not because every benchmark has it.

Unique bases has no Warning. It is a yes-or-no question — either the two classes use the same set of characters or they do not — so it never lands in between. Note what it is not: a dataset where both classes contain N passes. What fails is the asymmetry.