GFF3 Gene Annotations — 1-Based Inclusive Coordinates (.gff3)
Seven features on a synthetic contig — two genes, an mRNA, two exons and two CDS records — linked by ID and Parent attributes across both strands. GFF3 coordinates are 1-based and inclusive, which is the fact its BED twin exists to contrast.
##gff-version 3
##sequence-region NXCTG01 1 600
# organism: Synthetica exampleensis strain NX-1 (an invented organism). Coordinates are 1-based inclusive.
NXCTG01 NovusExamples gene 101 460 . + . ID=gene0001;Name=nxA;biotype=protein_coding
NXCTG01 NovusExamples mRNA 101 460 . + . ID=mrna0001;Parent=gene0001
NXCTG01 NovusExamples exon 101 220 . + . ID=exon0001;Parent=mrna0001
NXCTG01 NovusExamples exon 301 460 . + . ID=exon0002;Parent=mrna0001
NXCTG01 NovusExamples CDS 121 220 . + 0 ID=cds0001;Parent=mrna0001;phase_note=see column 8
NXCTG01 NovusExamples CDS 301 420 . + 0 ID=cds0002;Parent=mrna0001
NXCTG01 NovusExamples gene 501 580 . - . ID=gene0002;Name=nxB;biotype=ncRNA
Specifications
- Version
- GFF3
- Features
- 7
- Columns
- 9
- Coordinate System
- 1-based inclusive
- Parent Child Links
- true
- Strands
- + and -
- Sequence Region
- NXCTG01 1 600
Testing contract
Expected to pass- Scenario
- Parse the nine columns, build the feature hierarchy from ID and Parent, and compute each exon's length.
- Expected result
- Seven features resolve into two genes with one mRNA carrying two exons, and exon0001 spans 101 to 220 inclusive for a length of 120 bases.
What is a .gff3 file?
GFF3 (General Feature Format version 3) is a tab-delimited format for genome annotations. Each line has nine columns — seqid, source, type, 1-based inclusive start and end, score, strand, phase, and a semicolon-separated attributes column — and parent/child relationships between genes, transcripts, and exons are expressed through ID and Parent attributes. Directives beginning with `##` carry metadata such as the sequence region.
How to use this file
Use an example .gff3 file to test annotation parsers and genome-browser importers, checking that the 1-based inclusive coordinates are not treated as BED's half-open ones, that feature hierarchies reconstruct correctly, and that URL-escaped attribute values are decoded.
How to use this file for testing
“GFF3 Gene Annotations — 1-Based Inclusive Coordinates (.gff3)” is a deterministic Novus Examples fixture for Scientific data, Editor testing. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: 9 columns. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Related files
- fastaFASTA Contigs — One Line Per Record (.fasta)The same four contigs written one sequence per line rather than wrapped, which is how many pipelines emit FASTA and how many line-oriented parsers assume it always looks. Comparing against the wrapped twin proves a parser joins continuation lines instead of taking the first one.

- fastaFASTA Contigs — Wrapped at 60 Columns (.fasta)Four 600-base synthetic contigs wrapped at the conventional 60 columns, with the length and an invented organism name in each header. The sequences come from a fixed seed, so they are reproducible and belong to nothing that exists.

- csvFASTQ Quality Score Reference — Both Encodings Decoded (.csv)Every twelfth base of the six reads with its Phred score, the ASCII character it takes under both offsets, and the error probability that score implies. It converts a quality-encoding argument into a lookup you can diff.

- fastqFASTQ Reads — Phred+33 (Sanger / Illumina 1.8+) (.fastq)Six 60-base reads with Phred+33 quality strings, the modern Sanger encoding used by everything since Illumina 1.8. Quality declines along each read the way real sequencing does, so a mis-decoded offset produces implausible scores rather than plausible ones.

- fastqFASTQ Reads — Phred+64 Legacy Encoding (.fastq)The identical reads and identical quality scores written with the legacy Phred+64 offset used by older Illumina pipelines. Decode it with the modern offset and every base looks 31 points better than it is, which is a silent quality inflation rather than a parse failure.

- fastqIntentionally Corrupt FASTQ — Final Record Missing Its Quality Line (.fastq)An intentionally corrupt FASTQ whose first five records are complete and whose sixth ends after the plus line, leaving no quality string. A four-line-block reader must report an incomplete final record rather than pairing the sequence with an empty quality string.

Generated by generation/scientific.py. Free for any use, no attribution required — license.