JBrowse 2 · Build Your Own examples

A hosted genome

jbrowseHub fetches a genome, its tracks and its gene search by name.

View source — 52 lines
import {
  EmbedProvider,
  LocationBox,
  Toolbar,
  TrackStack,
  TrackToggle,
} from '@jbrowse/display-ui/embed'
import { useCreateViewState } from '@jbrowse/react-linear-genome-view2'
import { observer } from 'mobx-react'

const hubTracks = [
  { id: 'hg38-ncbiRefSeqCurated', label: 'RefSeq genes' },
  { id: 'hg38-cpgIslandExt', label: 'CpG islands' },
  { id: 'my_phylop', label: 'My own file' },
]

const GenomeByName = observer(function GenomeByName() {
  const state = useCreateViewState({
    jbrowseHub: 'hg38',
    tracks: [
      {
        trackId: 'my_phylop',
        name: 'phyloP 100-way conservation',
        uri: 'https://jbrowse.org/demos/phylop/hg38.phyloP100way.brca1.bw',
        displayDefaults: { height: 80, color: '#3a7ca5' },
      },
    ],
    view: {
      loc: 'BRCA1',
      tracks: ['my_phylop', 'hg38-ncbiRefSeqCurated'],
    },
  })
  if (!state) {
    return null
  }
  const { view } = state.session
  return (
    <EmbedProvider session={state.session}>
      <Toolbar>
        <LocationBox view={view} />
        {hubTracks.map(({ id, label }) => (
          <TrackToggle key={id} view={view} trackId={id}>
            {label}
          </TrackToggle>
        ))}
      </Toolbar>
      <TrackStack view={view} />
    </EmbedProvider>
  )
})

export default GenomeByName