#version #tracking #membership #across #group #relationship #tracker

vtracker

For tracking the relationship between group membership changes across versions

1 stable release

1.0.0 May 15, 2023

#5 in #relationship

GPL-3.0 license

67KB
1K SLoC

Rust 870 SLoC // 0.1% comments Python 209 SLoC // 0.5% comments

VTracker

PyPI PyPI - Python Version codecov.io

For tracking the relationship between group membership changes across versions.

Installation

  • PyPI: pip install vtracker

Usage

  1. Instantiate the VTracker class and specify the versions from oldest to newest.
  2. Populate the tracker with each unique entity, and specify the state of the entity at each of the versions. Missing versions have the state of 'Not Present'.

Consider the following example which generates the JSON required to display the following D3 Sankey diagram similar to that of the GTDB Taxon History tool:

from vtracker import VTracker

vt = VTracker(('R80', 'R83', 'R86.2', 'R89', 'NCBI'))
vt.add('G000210735', {'R80': 's__Faecalibacterium prausnitzii_B',
                      'R83': 's__Faecalibacterium prausnitzii_B',
                      'R86.2': 's__Faecalibacterium prausnitzii_B',
                      'R89': 's__Faecalibacterium prausnitzii_G',
                      'NCBI': 's__Faecalibacterium prausnitzii'})

vt.add('G003287485', {'R89': 's__Faecalibacterium prausnitzii_G',
                      'NCBI': 's__Faecalibacterium prausnitzii'})

vt.add('G003287505', {'R89': 's__Faecalibacterium prausnitzii_G',
                      'NCBI': 's__Faecalibacterium prausnitzii'})

vt.add('G003293635', {'R89': 's__Faecalibacterium prausnitzii_G',
                      'NCBI': 's__Faecalibacterium prausnitzii'})

vt.add('G003508795', {'R80': 's__Faecalibacterium prausnitzii_B',
                      'R83': 's__Faecalibacterium prausnitzii_B',
                      'R86.2': 's__Faecalibacterium prausnitzii_B',
                      'R89': 's__Faecalibacterium prausnitzii_G'})
                      
sankey_json = vt.as_sankey_json()

Sankey diagram example

No runtime deps