Skip to main content

v2.10.0 Release

· 3 min read

New file format for synteny tracks - PIF

This release adds a new synteny file format PIF ("pairwise indexed format"). It is essentially a small transformation of PAF ("pairwise mapping format") that allows querying the format using tabix.

Preparing a new PIF file

To prepare a PIF file, you can use the @jbrowse/cli tool:

Old workflow

minimap target.fa query.fa > query_vs_target.paf
jbrowse add-assembly target.fa
jbrowse add-assembly query.fa
gzip query_vs_target.paf # optionally gzip paf
jbrowse add-track query_vs_target.paf.gz -a query,target


minimap target.fa query.fa > query_vs_target.paf
jbrowse add-assembly target.fa
jbrowse add-assembly query.fa
jbrowse make-pif query_vs_target.paf # generates pif in same folder
jbrowse add-track query_vs_target.pif.gz -a query,target

Conceptually, the PIF file is just a tabix file that allows querying the PAF from either the query->target or the target->query.

Note: We have not yet improved the amount of data needed to view whole-genome overviews of the whole genome alignment, but we anticipate looking into this soon

Impact of using PIF vs PAF

This screenshot shows the example impact of loading a synteny track in the linear genome view: the indexed PIF track allows only a small amount of data to be downloaded, and so it is rendered much quicker. The data is exactly the same as a PAF file

Share link for the screenshot above

Other new features in this release

  • added ability to create highlighted regions from the bookmark widget
  • click-and-drag or wheel side-scroll in the 'synteny area' of the linear synteny view. additionally, right context click on synteny features
  • added support for lzma compression in CRAM files (via @gmod/cram@v2.0.0)


To install JBrowse 2 for the web, you can download the link above, or you can use the JBrowse CLI to automatically download the latest version. See the JBrowse web quick start for more details.

yarn run v1.22.19 $ lerna-changelog --silent --silent --next-version 2.10.0

2.10.0 (2023-12-15)

🚀 Enhancement

  • core
    • #4138 Speed up large FromConfigAdapter usages with alternative adapter id calculation (@cmdcolin)
    • #4114 Improve pluginManager.jexl typescript definition (@cmdcolin)
  • Other
    • #4135 Split "recently used tracks" local storage keys by view assemblies (@cmdcolin)
    • #4003 Adds the ability to highlight regions using the bookmarks widget (@carolinebridge-oicr)
    • #4123 Remove session.notify after using the Add track workflow (@cmdcolin)
    • #3859 Add new pairwise indexed PAF adapter format with CLI creation workflow (@cmdcolin)
    • #4109 Allow right clicking synteny features (@cmdcolin)
    • #4110 Scroll both panels of the linear synteny view when side scrolling the middle panel (@cmdcolin)
    • #4108 Convert to floating-ui for tooltips for small speedup (@cmdcolin)
    • #4107 Refactors and bundle size improvements (@cmdcolin)
  • app-core, core
    • #4134 Add ability to click and drag synteny area of synteny view to side scroll (@cmdcolin)

🐛 Bug Fix

  • Other
  • core
    • #4136 Fix "Export SVG" feature in next 14 (@cmdcolin)
    • #4125 Fix internet accounts not being shown in file selector after page refresh and hide HTTP basic internet accounts (@cmdcolin)
  • app-core, embedded-core
    • #4121 Fix view menu checkboxes not responding in some cases (@cmdcolin)

📝 Documentation

  • app-core, product-core, web-core

🏠 Internal

Committers: 2