Skip to content

Track Viewer Component

The Track Viewer is the main interactive component for visualizing biosynthetic gene clusters.

Overview

The Track Viewer provides a zoomable, pannable interface for exploring gene clusters with annotations, domains, and other features.

Basic Usage

As a Vue Component

vue
<template>
  <TrackViewer
    :data="bgcData"
    :options="viewerOptions"
    @gene-click="handleGeneClick"
  />
</template>

<script setup>
import { TrackViewer } from 'bgc-viewer';
import { ref } from 'vue';

const bgcData = ref(null);
const viewerOptions = ref({
  width: 800,
  height: 400,
  showDomains: true
});

const handleGeneClick = (gene) => {
  console.log('Gene clicked:', gene);
};
</script>

As a Web Component

html
<script type="module">
  import 'bgc-viewer/web-components';
</script>

<bgc-track-viewer
  data-url="/api/data/NC_003888"
  width="800"
  height="400">
</bgc-track-viewer>

Props / Attributes

PropertyTypeDefaultDescription
dataObjectnullBGC data object
dataUrlStringnullURL to fetch BGC data
widthNumber800Viewer width in pixels
heightNumber400Viewer height in pixels
showDomainsBooleantrueShow protein domains
showLabelsBooleantrueShow gene labels
colorSchemeString'default'Color scheme name

Events

EventPayloadDescription
gene-clickGene objectFired when a gene is clicked
domain-clickDomain objectFired when a domain is clicked
region-selectRegion objectFired when a region is selected
zoom-changeZoom levelFired when zoom level changes

Interactive Demo

::: demo Track Viewer Demo

vue
<template>
  <div>
    <TrackViewer
      :data="sampleData"
      :options="options"
      @gene-click="selectedGene = $event"
    />
    <div v-if="selectedGene" class="gene-info">
      <h3>Selected Gene: {{ selectedGene.name }}</h3>
      <p>{{ selectedGene.description }}</p>
    </div>
  </div>
</template>

<script setup>
import { ref } from 'vue';

const sampleData = ref({
  // Sample BGC data
});

const options = ref({
  width: 700,
  height: 300
});

const selectedGene = ref(null);
</script>

:::

Customization

Color Schemes

You can customize colors using CSS variables:

css
bgc-track-viewer {
  --gene-color: #4a90e2;
  --domain-color: #f39c12;
  --background-color: #ffffff;
}

Custom Renderers

javascript
const viewer = new TrackViewer({
  customRenderers: {
    gene: (gene, ctx) => {
      // Custom gene rendering logic
    },
    domain: (domain, ctx) => {
      // Custom domain rendering logic
    }
  }
});

API Reference

Methods

render()

Renders or re-renders the visualization.

javascript
viewer.render();

zoomTo(region)

Zooms to a specific genomic region.

javascript
viewer.zoomTo({ start: 1000, end: 5000 });

reset()

Resets the view to initial state.

javascript
viewer.reset();

exportSVG()

Exports the current view as SVG.

javascript
const svg = viewer.exportSVG();

See Also

Released under the MIT License.