Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0 release announcement #4749

Merged
merged 1 commit into from
Jan 29, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
[skip ci] v3.0.0 announcement
Misc

Add phase set parsing

Accomodate phase set (PS) with random colors

Add potato demo
  • Loading branch information
cmdcolin committed Jan 29, 2025
commit a697443c6fd179485b1b6c7f3fe7805143411903
53 changes: 53 additions & 0 deletions test_data/config_demo.json
Original file line number Diff line number Diff line change
@@ -4467,6 +4467,39 @@
},
"assemblyNames": ["hg19"]
},
{
"type": "AlignmentsTrack",
"trackId": "hg002_cram",
"name": "HG002 CRAM nanopore+whatshap",
"assemblyNames": ["hg19"],
"category": ["GIAB"],
"adapter": {
"type": "CramAdapter",
"cramLocation": {
"uri": "https://s3.amazonaws.com/jbrowse.org/genomes/hg19/hg002/HG002_ONTrel2_16x_RG_HP10xtrioRTG.cram",
"locationType": "UriLocation"
},
"craiLocation": {
"uri": "https://s3.amazonaws.com/jbrowse.org/genomes/hg19/hg002/HG002_ONTrel2_16x_RG_HP10xtrioRTG.cram.crai",
"locationType": "UriLocation"
},
"sequenceAdapter": {
"type": "BgzipFastaAdapter",
"fastaLocation": {
"uri": "https://jbrowse.org/genomes/hg19/fasta/hg19.fa.gz",
"locationType": "UriLocation"
},
"faiLocation": {
"uri": "https://jbrowse.org/genomes/hg19/fasta/hg19.fa.gz.fai",
"locationType": "UriLocation"
},
"gziLocation": {
"uri": "https://jbrowse.org/genomes/hg19/fasta/hg19.fa.gz.gzi",
"locationType": "UriLocation"
}
}
}
},
{
"type": "AlignmentsTrack",
"trackId": "Pairend_StrandSpecific_51mer_Human_hg19.chr1.TS.bam",
@@ -4739,6 +4772,26 @@
}
},
"assemblyNames": ["hg1"]
},
{
"type": "VariantTrack",
"trackId": "NA12878.whatshap.strandseq-pacbio-phasing.2017-07-19.vcf",
"name": "NA12878.whatshap.strandseq-pacbio-phasing.2017-07-19.vcf",
"adapter": {
"type": "VcfTabixAdapter",
"vcfGzLocation": {
"uri": "https://jbrowse.org/genomes/hg38/NA12878/NA12878.whatshap.strandseq-pacbio-phasing.2017-07-19.vcf.gz",
"locationType": "UriLocation"
},
"index": {
"location": {
"uri": "https://jbrowse.org/genomes/hg38/NA12878/NA12878.whatshap.strandseq-pacbio-phasing.2017-07-19.vcf.gz.tbi",
"locationType": "UriLocation"
},
"indexType": "TBI"
}
},
"assemblyNames": ["hg38"]
}
],
"connections": [],
122 changes: 122 additions & 0 deletions website/release_announcement_drafts/v3.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
Hello all!

This release announces v3.0.0 of JBrowse 2. Is not a dramatic change like the
jbrowse 1 -> jbrowse 2 transition, it's much more incremental, and in fact, you
can go on calling it JBrowse 2...as a point of comparison, ggplot2 is on v3.5.1
right now :)

We decided to make a major bump due to some small "breaking" changes that could
affect plugin and embedded library users in particular.

But for most users, this release should have nothing but the usual bugfixes and
improvements! And there are a lot of these!

Without further ado, here are some highlights!

## Improved rendering of phased VCF in multi-variant view

Phased variants offer a unique opportunity to see "which parent" particular
parents came from

![Screenshot From 2025-01-25 15-03-21](https://github.com/user-attachments/assets/a9308a40-ab74-48c0-9ab6-035b50a1ae0b)
Screenshot showing the "phased mode" for the multi-variant matrix display, here
showing a "trio VCF" with child and parents. You can visually see which blocks
the child inherited from which parents. This inspection can also be useful for
plant breeders to ensure regions that their crosses inherited particular gnomic
regions from a particular parent line

We can also render "phased sets" if the VCF is not completely phased (detects PS
tag in genotypes)

![image](https://github.com/user-attachments/assets/63fa9f59-d54b-4f66-852d-4d8592ff95ec)

Screenshot showing phase set rendering of a phased VCF. This is nearly
completely phased so just showing green, but each phase set would get a unique
color. The black entries are unphased variants (which could be filtered out, but
this is not done currently)

## Improved rendering of polyploid VCF in multi-variant view

![image](https://github.com/user-attachments/assets/58138b02-4d20-487b-af77-68b2d038dedc)

Screenshot showing the "polyploid" rendering of the multi-variant display.

Polyploid variant calls can look like `0/2/./1` indicating one match to the
reference (0), two alts (1,2), and one missing call (.).

- Yellow indicates missingness
- Grey indicates reference
- Blue indicates the ALT===1
- Red is ALT!==1

Each of these is a spectrum that increases in darkness, so darker blue indicates
more ALT===1, darker red indicates more ALT!==1, darker yellow is more uncalled,
etc.

## Adding VCF sample metadata from TSV

![image](https://github.com/user-attachments/assets/ba7b99ab-53eb-4719-a6de-1cf9ff16511a)

Screnshot showing multi-sample matrix display, with the population colors coming
from a "sample TSV" file

Config

```json
{
"type": "VariantTrack",
"trackId": "1kGP_high_coverage_Illumina.chr1.filtered.SNV_INDEL_SV_phased_panel.vcf",
"name": "1kGP_high_coverage_Illumina.chr1.filtered.SNV_INDEL_SV_phased_panel.vcf",
"assemblyNames": ["hg19"],
"adapter": {
"type": "VcfTabixAdapter",
"vcfGzLocation": {
"uri": "https://ftp-trace.ncbi.nlm.nih.gov/1000genomes/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz"
},
"index": {
"location": {
"uri": "https://ftp-trace.ncbi.nlm.nih.gov/1000genomes/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz.tbi"
}
},
"samplesTsvLocation": {
"uri": "https://jbrowse.org/genomes/hg19/1000g.sorted.csv.gz"
}
}
}
```

## Improved UI for opening synteny tracks

It has always been a little tricky to open synteny tracks

We now allow support adding synteny tracks via the default "Add track" workflow,
and make it easier to specify the query and target assembly names

![image](https://github.com/user-attachments/assets/913fd8b9-9d4e-4d44-88d7-ba3e70fd54f4)

Screnshot showing the default add track workflow with new UI for choosing target
and query assemblies for PAF tracks

![image](https://github.com/user-attachments/assets/75da5058-50cc-413e-aee9-e57362d2d0c0)

Screenshot showing the add track workflow in the Linear synteny view import
form, also showing new UI for choosing query and target assmblies

## New "turbo zoom" buttons

In working with users, we noticed people having to click the zoom buttons or
fiddle with the slider a lot. To aid this, we added a small dropdown for quickly
doing 10x, 50x, and 100x zooms

![image](https://github.com/user-attachments/assets/2ee0305e-d617-4ec3-8957-8ec1d906feff)

## For developers: some "breaking" changes

1. We changed the "filehandle" type used in data adapters. We now use
generic-filehandle2 which is simpler and does not require a node.js polyfill
on the web
2. Upgrading React 18 -> React 19 in our main webapp. This drops support for
React 17, and may have some other implications

If you are a plugin or embedded user, and experience problems with upgrading,
let us know!
3 changes: 3 additions & 0 deletions website/src/pages/demos.mdx
Original file line number Diff line number Diff line change
@@ -58,6 +58,9 @@ desktop.
- <Link extra="?config=https%3A%2F%2Fjbrowse.org%2Fdemos%2Fplant_synteny_demo%2Fconfig2.json&session=share-pARmvLazem&password=ZPOwE">
{'Multi-way synteny demo (grape vs peach vs cacao)'}
</Link>
- <Link extra="?config=/genomes/potato/config.json">
{'Tetraploid potato multi-sample VCF rendering'}
</Link>

**Conference and other guided demos**

Loading