Supported file types
Every track reads data through an adapter whose type selects the reader, and
the file's extension picks that type. Find your format in the tables below for
the adapter that reads it and a link to its full config docs. Most adapters
accept the uri shorthand, and a track over a format
listed here can skip both keys — see
the whole-track shorthand.
The uri shorthand
Most adapters accept a uri shorthand: give the data file location and the
adapter resolves the companion index by appending the standard suffix (.bai
for a .bam, .crai for a .cram, .fai for a .fa, .tbi for a tabix
.gz, and so on).
{
"type": "AlignmentsTrack",
"trackId": "sample_bam",
"name": "Sample reads",
"assemblyNames": ["hg38"],
"adapter": {
"type": "BamAdapter",
"uri": "https://example.com/sample.bam"
}
}
jbrowse add-track https://example.com/sample.bam \
--trackId sample_bam \
--name "Sample reads" \
--assemblyNames hg38
In JBrowse Desktop, or in any running JBrowse Web session, open a view on this track’s assembly, then File → Open track..., choose Add track from pasted JSON, and paste:
{
"type": "AlignmentsTrack",
"trackId": "sample_bam",
"name": "Sample reads",
"assemblyNames": ["hg38"],
"adapter": {
"type": "BamAdapter",
"uri": "https://example.com/sample.bam"
}
}
- Spell out the slot form (
bamLocationplusindex.location) only when the index is named differently or lives elsewhere. An adapter that takes an endpoint, a set of files, or another adapter has no shorthand; each adapter's config page states which keys it accepts above its slot table - Use CSI over TBI/BAI for a chromosome longer than 512 Mb (some plant and
animal genomes; CRAM's
.craihas no such limit). BAM and the tabix-indexed adapters (VCF, GFF3, BED, BEDGRAPH, MAF, PAF) acceptcsi: true:
{
"type": "VariantTrack",
"trackId": "variants_csi",
"name": "Variants",
"assemblyNames": ["hg38"],
"adapter": {
"type": "VcfTabixAdapter",
"uri": "https://example.com/variants.vcf.gz",
"csi": true
}
}
jbrowse add-track-json '{
"type": "VariantTrack",
"trackId": "variants_csi",
"name": "Variants",
"assemblyNames": ["hg38"],
"adapter": {
"type": "VcfTabixAdapter",
"uri": "https://example.com/variants.vcf.gz",
"csi": true
}
}'
In JBrowse Desktop, or in any running JBrowse Web session, open a view on this track’s assembly, then File → Open track..., choose Add track from pasted JSON, and paste:
{
"type": "VariantTrack",
"trackId": "variants_csi",
"name": "Variants",
"assemblyNames": ["hg38"],
"adapter": {
"type": "VcfTabixAdapter",
"uri": "https://example.com/variants.vcf.gz",
"csi": true
}
}
The whole-track shorthand
Every format in the tables below is one JBrowse recognizes by its extension, and that inference runs on a track config too:
{
"trackId": "sample_bam",
"uri": "https://example.com/sample.bam",
"assemblyNames": ["hg38"]
}
jbrowse add-track-json '{
"trackId": "sample_bam",
"uri": "https://example.com/sample.bam",
"assemblyNames": ["hg38"]
}'
In JBrowse Desktop, or in any running JBrowse Web session, open a view on this track’s assembly, then File → Open track..., choose Add track from pasted JSON, and paste:
{
"trackId": "sample_bam",
"uri": "https://example.com/sample.bam",
"assemblyNames": ["hg38"]
}
The Track type column below names what the track becomes, the Adapter column
names what it reads through, name defaults to the file name, and a config
declaring exactly one assembly supplies assemblyNames. Write any of those keys
yourself to override the guess: an explicit type picks a track type the
extension would not, and an adapter block replaces the guessed one outright. A
format the tables do not list needs the full form, and so does a file whose
extension names one format while it holds another
(the shortest track).
Sequence / assembly
Sequence adapters go in an assembly, not a track.
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| Bgzipped FASTA (.fa.gz + .fai + .gzi) | BgzipFastaAdapter | assembly sequence | |
| chrom.sizes | ChromSizesAdapter | assembly sequence | Names and lengths only, no sequence |
| Indexed FASTA (.fa + .fai) | IndexedFastaAdapter | assembly sequence | |
| Plain FASTA (.fa, no index) | UnindexedFastaAdapter | assembly sequence | Read entirely into memory; prefer an indexed form for large genomes |
| UCSC 2bit | TwoBitAdapter | assembly sequence |
Most configs name no sequence adapter: give the assembly a name and a
sequence-file uri, and JBrowse picks the adapter from the extension and
derives the index siblings.
{
"name": "hg38",
"uri": "https://example.com/genome.fa"
}
jbrowse add-assembly https://example.com/genome.fa \
--name hg38
In JBrowse Desktop, Open new genome on the start screen (or File → Open genome... in a session), then Open from a URL and paste, one per line:
https://example.com/genome.fa
https://example.com/genome.fa.fai
JBrowse reads the format off the file name. Then fill in:
- Genome name:
hg38
Alignments
Read alignments are an AlignmentsTrack
(alignments track config).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BAM | BamAdapter | AlignmentsTrack | |
| CRAM | CramAdapter | AlignmentsTrack | |
| Htsget BAM | HtsgetBamAdapter | AlignmentsTrack | Less exercised than plain BAM/CRAM; prefer an indexed file where possible |
| SAM | SamAdapter | AlignmentsTrack | Unindexed, so the whole file is loaded into memory; prefer BAM or CRAM for sequencing-scale data |
Feature / annotation
Gene models, repeats, and other interval features are a FeatureTrack. The
plain (non-tabix) GFF3, GTF and BED adapters load the whole file into memory, so
prefer the tabix or BigBed forms past small files.
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BED (plain) | BedAdapter | FeatureTrack | Loaded entirely into memory; for small files |
| BED (tabix) | BedTabixAdapter | FeatureTrack | |
| BigBed | BigBedAdapter | FeatureTrack | |
| GFF3 (plain) | Gff3Adapter | FeatureTrack | Loaded entirely into memory; for small files |
| GFF3 (tabix) | Gff3TabixAdapter | FeatureTrack | |
| GTF (plain) | GtfAdapter | FeatureTrack | Loaded entirely into memory; for small files |
| GTF (tabix) | GtfTabixAdapter | FeatureTrack |
GTF gene models
GTF has no spanning gene line, so the GTF adapters build the gene model
themselves: lines sharing a transcript_id group under a transcript, and
transcripts sharing a gene_id under a gene.
aggregateField names the
attribute that labels the gene, and jbrowse sort-gff sorts a GTF for tabix too
(quickstart).
Quantitative / signal
Coverage and other numeric signals are a QuantitativeTrack
(quantitative and
multi-quantitative track config).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BedGraph (plain) | BedGraphAdapter | QuantitativeTrack | Loaded entirely into memory; for small files |
| BedGraph (tabix) | BedGraphTabixAdapter | QuantitativeTrack | |
| BigWig | BigWigAdapter | QuantitativeTrack | |
| GC content | GCContentAdapter | QuantitativeTrack | Computed from the assembly sequence, no data file |
| Multiple BigWigs | MultiWiggleAdapter | MultiQuantitativeTrack |
Variants
VCF and other variant-like data is a VariantTrack
(variant track config for SVTYPE coloring
and the multi-sample displays).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BEDPE | BedpeAdapter | VariantTrack | Paired/breakend records, e.g. SV calls or Hi-C loops |
| Split VCF (one file per refName) | SplitVcfTabixAdapter | VariantTrack | |
| STAR-Fusion | StarFusionAdapter | VariantTrack | |
| VCF (plain) | VcfAdapter | VariantTrack | Loaded entirely into memory; for small files |
| VCF (tabix) | VcfTabixAdapter | VariantTrack |
Synteny / comparative
Synteny adapters back the dotplot and linear synteny views
(synteny track config). Plain PAF loads
entirely into memory; jbrowse make-pif converts a large alignment to PIF,
which fetches only the alignments in view
(large alignments,
PIF format).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BLAST tabular | BlastTabularAdapter | SyntenyTrack | |
| Chain (UCSC liftOver / lastz) | ChainAdapter | SyntenyTrack | |
| Delta (MUMmer / nucmer) | DeltaAdapter | SyntenyTrack | |
| Indexed PAF (PIF) | PairwiseIndexedPAFAdapter | SyntenyTrack | Built by jbrowse make-pif; fetches only the visible region |
| MashMap | MashMapAdapter | SyntenyTrack | |
| MCScan anchors | MCScanAnchorsAdapter | SyntenyTrack | Gene-level synteny; also needs one BED per assembly |
| MCScan blocks | MCScanBlocksAdapter | SyntenyTrack | Multi-genome, reference-anchored; also needs one BED per assembly |
| MCScan simple anchors | MCScanSimpleAnchorsAdapter | SyntenyTrack | Gene-level synteny; also needs one BED per assembly |
| Multi-genome indexed PAF (PIF) | MultiGenomeIndexedPAFAdapter | SyntenyTrack | The tabix-indexed form of multi-genome PAF |
| Multi-genome PAF | MultiGenomePAFAdapter | SyntenyTrack | PanSN-prefixed; all-vs-all or a star against one reference, in one file |
| PAF | PAFAdapter | SyntenyTrack | Loaded entirely into memory; convert to PIF for large alignments |
| Several pairwise alignments sharing one genome | MultiPairwiseSyntenyAdapter | SyntenyTrack | One anchor genome aligned to each of N others, as N pairwise files |
Multiple alignment (MAF)
Multiple-species alignments are a MafTrack
(MAF track config for the samples array and the
zoom-out tier).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| BigMaf | BigMafAdapter | MafTrack | |
| Indexed MAF (bgzip + .tai) | BgzipMafAdapter | MafTrack | A published whole-genome multiple alignment, read by locus |
| MAF (tabix) | MafTabixAdapter | MafTrack | |
| TAF (bgzipped Taffy) | BgzipTaffyAdapter | MafTrack |
Hi-C
| Format | Adapter | Track type |
|---|---|---|
| .hic contact matrix | HicAdapter | HicTrack |
See Hi-C track config. Loop and interaction
calls are BEDPE, which loads as a VariantTrack (see Variants).
GWAS / LD
See GWAS track config.
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| GWAS results (bgzipped, tabix-indexed BED-like) | GWASAdapter | GWASTrack | |
| PLINK LD (plain .ld) | PlinkLDAdapter | LDTrack | PLINK LD table; for regional analyses |
| PLINK LD (tabix-indexed .ld.gz) | PlinkLDTabixAdapter | LDTrack | For chromosome-scale or genome-wide LD |
Text searching
Text-search adapters power the location search box (text searching).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| JBrowse 1 names index | JBrowse1TextSearchAdapter | aggregateTextSearchAdapters / textSearching | From JBrowse 1 generate-names.pl |
| Trix index (.ix/.ixx) | TrixTextSearchAdapter | aggregateTextSearchAdapters / textSearching | Built by jbrowse text-index |
Inline data
A FromConfig adapter embeds a small dataset directly in config.json
(FromConfig adapters).
| Format | Adapter | Track type | Notes |
|---|---|---|---|
| Inline features | FromConfigAdapter | FeatureTrack | Features written straight into config.json |
| Inline regions | FromConfigRegionsAdapter | assembly sequence | refNames and sizes only, no sequence |
| Inline sequence | FromConfigSequenceAdapter | assembly sequence | Each feature's seq holds the bases for its region |
Computed from the reference
Three adapters scan the sequence of whatever assembly the track is displayed
against and emit the hits as features, so the track config names neither a file
nor a sequence. All three are FeatureTracks, and
each adapter page opens with a whole track config:
- MotifListAdapter — a named motif list (restriction enzymes)
- CrisprGuideAdapter — CRISPR guide RNAs
- SequenceSearchAdapter — a single regex
The sequence search guide drives them from the view menu.