← SkillSafe / Coord Desk

Genomic coordinates, checked for off-by-one and assembly mismatches before you convert them

Paste BED, VCF, GFF, SAM, an interval_list, a UCSC or MAF table, or region strings. The browser puts every record on one 0-based axis, works out each format's basis, the contig names and the assembly the evidence points at, normalises VCF alleles and converts to the format you need — free, before you sign in. Then a bioinformatician reviews it: every flag answered, the commands to run, what to check after.

All three examples ship with a saved model run, so you can see the whole result without signing in and without spending a credit.

nothing pasted yet
Everything is computed in your browser. Nothing uploads until you run.
Paste coordinates to price the run.

What this does, and what it does not

Every genomics format picks a coordinate convention, and they do not agree. BED and UCSC tables count from 0 and exclude the end; VCF, GFF, SAM, interval_lists and the region strings genome browsers show count from 1 and include it. A conversion that forgets which is which moves every interval by one base and nothing complains. The engine here reads each line by its own format, decides its basis from the specification, the header names or the evidence — a start of 0 proves a file is 0-based; a column of start == end looks like 1-based single bases — and puts every record on one 0-based half-open axis before converting anything. The converted text is then read back with the same parser and every interval matched to the record it came from, so the download is checked, not just written.

The other silent failure is the assembly. The engine weighs what the paste itself says: ##contig, @SQ and ##sequence-region lengths against GRCh37 and GRCh38, ##reference lines, RefSeq accession versions, alt and decoy contig spellings, hg19's 16,571 bp chrM, and any position that runs past a chromosome's end on one build but not the other. It also normalises VCF alleles as far as that is possible without the reference, and flags records of different formats that sit exactly one base apart.

The model does what rules cannot: it weighs that evidence for your pipeline, answers every flag, names the issues with line numbers, writes the commands — rename, split, normalise, convert, sort, index — and says what to check afterwards. It does not lift coordinates between assemblies and never invents a length or an accession. Nothing is sent anywhere until you press the button. Nothing to hand? Load the , the or the .