1 of 35

ga4gh.org

2 of 35

GKS: The Two Toolkits

Andreas Prlić & Larry Babb (and Alex Wagner)

ga4gh.org

3 of 35

Agenda (draft)

  • Introduction

  • Biocommons Toolkit

  • VRS-Python Toolkit

  • Performance requirements, integrations with seq collections, etc..
    • Seq collections - how does seqrepo support or not ? (Andy)

ga4gh.org

4 of 35

Biocommons Toolkit

ga4gh.org

5 of 35

BioCommons Hackathon 2023 - SeqRepo

ga4gh.org

6 of 35

BioCommons Hackathon 2023 - UTA

  • Dockerizing
  • Documentation updates!
    • It’s possible to do developer setup on MacOS now

ga4gh.org

7 of 35

BioCommons Hackathon 2023 - UTA

  • Alignment
    • Avoid using uta-align to re-align every exon
    • Now use 2 new files from NCBI (that have not been available previously)
    • Work on re-building the exon-alignment and CDS start/stop merge

We are here!

This is the goal!

ga4gh.org

8 of 35

BioCommons Hackathon 2023 - UTA

  • GitHub Action

ga4gh.org

9 of 35

BioCommons Hackathon 2023 - AnyVar

  • Added vrs-python translator backend to anyvar
  • Improved anyvar setup documentation
  • Added definite CNV HGVS translation to vrs-python
  • Added definite CNV HGVS storage in anyvar
  • Updated anyvar object models to vrs-python 2.0
  • Identified a bug in ga4gh_digest function
  • Added support for definite/indefinite range intervals in hgvs
  • Added support for unbalanced range intervals in hgvs

ga4gh.org

10 of 35

BioCommons Hackathon 2023 - HGVS Parsing

ga4gh.org

11 of 35

BioCommons Hackathon 2023

ga4gh.org

12 of 35

High Throughput Sequence Retrieval and Alignment Operations

ga4gh.org

13 of 35

Public dataset sizes

If it takes ~ 1 hour to normalize/register all variants in a full WGS VCF, that’s too slow for a high throughput lab.

ga4gh.org

14 of 35

Refget and sequence collections - a refresher

Refget v2

GA4GH Standard to access reference sequences & metadata

Generates unique identifiers based on sequence content

Supports common unique identifiers such as those from public sequence repositories

Sequence Collections

Collate groups of sequences

Same identifier generation code to build a single identifier

Uses an array storage system to simplify checksum generation and separate properties

Applies to genomes, proteomes, transcriptomes

ga4gh.org

15 of 35

Refget v2 and seqrepo REST

What changed in v2 of refget (the latest approved version)

  1. Support namespaced identifiers preferring CURIE-style IDs (similar to seqrepo)
    • refseq:NP_001274413.1
    • ga4gh:SQ.aKF498dAxcJAqme6QYQ7EZ07-fiw8Kw2
  2. md5 and sequence sha512t24u identifiers can be passed through without namespaces
  3. sha512t24u the preferred checksum algorithm
    • MD5 is still encouraged for CRAM compatibility
  4. Adopting GA4GH /service-info

ga4gh.org

16 of 35

Sequence collections - the structure

JSON object where each sequence collection attribute is a property of the JSON

ga4gh.org

17 of 35

Sequence collections

JSON object where each sequence collection attribute is a property of the JSON

ga4gh.org

18 of 35

Computing sequence identifiers

General algorithm

Normalisation: convert JSON into unique string representation

Using RFC8785: JSON Canonicalization Scheme (JCS)

Hashing: SHA512 truncated to the first 24 bits and converted to base64

seqcol

Normalisation

Hashing

digest

ga4gh.org

19 of 35

Sequence collections - pangenomes

Pangenome & T2T-CHM13 demo

When we have these, we can digest and make identifiers for pangenomes

Non-collated & non-inherent

ga4gh.org

20 of 35

Sequence collections - next steps

  • Areas to be finalised with the spec

  • Other areas to be finalised
    • Adoption of sequence collections
    • Identified EVA (Tim Cezard) and Ensembl (Andy Yates) as potential implementers both at EMBL-EBI
    • Looking for other adopters beyond EMBL-EBI

ga4gh.org

21 of 35

Cool Seq Tool

  • Common Operations On Lots-of Sequences Tool
  • Data Sources
    • SeqRepo: Fast access to sequence data
    • UTA: Transcript alignment data
    • PyLiftover: Liftover between assemblies (GRCh37 ←→ GRCh38)
  • Super Cool Functions
    • Alignment mapper (p → c → g)
    • Liftover to preferred MANE compatible transcript
    • Genomic coordinates ← → Transcript exon

ga4gh.org

22 of 35

VRS-Python Toolkit

ga4gh.org

23 of 35

VRS sounds great but…

ga4gh.org

24 of 35

gnomAD VRS pilot: VCF-Annotator pipeline

  • VCF annotation with VRS Ref and Alt IDs in the info field of a VCF using VRS-Python.

  • Annotates ~1,211 alleles/second

  • Worked with gnomAD team to add VRS into v3 hail tables

ga4gh.org

25 of 35

VRS v1.3 at scale: gnomAD

Added VRS for all 759.3 million variants in gnomAD v3 Hail Tables, plus reference alleles.�Over 1.5 billion VRS v1.3 Alleles, now searchable by range and computed identifier.

ga4gh.org

26 of 35

VRS population frequency

ga4gh.org

27 of 35

gnomAD Hail Utils to retrieve VRS population Frequency Statements

gnomAD utilities maintained by TGG @ Broad Institute:

https://github.com/broadinstitute/gnomad_methods/�Example notebook:�https://github.com/theferrit32/gnomad_methods/blob/gks-example-notebook/notebooks/gnomad-gks-v1.ipynb

New function gnomad_gks will annotate a range of variants with VRS Variation and VA frequency structures

Returned structure:

{

"locus": <hail locus>,

"alleles": <[ref .. alts]>,

"gks_vrs_variant": <VRS Variation>,

"gks_va_freq": <VA CohortAlleleFrequency Statement>

}

ga4gh.org

28 of 35

MaveDB: generalizing the SeqRepo model to map sequences

  • GA4GH sequence digests for MaveDB target sequences are registered with SeqRepo

  • Downstream VRS-Python methods can be utilized to construct normalized VRS alleles and haplotypes

ga4gh.org

29 of 35

Plans and experience from active project teams

ga4gh.org

30 of 35

Epic’s experiences with community tools

  • Using VRS to match patient variants against knowledgebases
  • Using homegrown VRS classes and HGVS parser for compatibility with languages and databases used by our infrastructure

hg19 VCF

hg38 VCF

VRS-formatted

patient variants

VRS-formatted

knowledgebases

variant matching

ga4gh.org

31 of 35

Epic’s experiences with community tools

  • Using pyliftover and bioutils.normalize for liftover and normalization
    • Works well for ~95% of cases
    • A single location in hg19 can liftover to multiple regions in hg38
    • Edge cases with changes in reference alleles

C

C

123

125

C

C

123

126

C

C

C

123

126

C

hg19 chr1

hg38 chr1

OR

ga4gh.org

32 of 35

VarCat

ga4gh.org

33 of 35

Thank you

ga4gh.org

34 of 35

ga4gh.org

35 of 35

ga4gh.org