Skip to contents

v2.4.0

  • Date: 2026-10-XX

  • Data bundle 20261017

    • ClinVar (2026-10)
    • GENCODE v50 (VEP v116.3); GENCODE v19 remains the gene reference for grch37
    • CIViC (2026-10-05)
    • NCI Thesaurus (26.09d)
    • Pfam 38.2 (2026_01)
    • dbNSFP v5.4 (August 2026)
    • CPIC (2026-08-03) - allele definitions/function, genotype-to-phenotype mappings and prescribing recommendations
  • Pharmacogenomics

    • Pharmacogenomic variants (--pgx_findings) are now identified from CPIC allele definitions (matched on chromosome/position/alleles), rather than ClinVar classifications (drug response/pathogenic) - data bundles without CPIC data fall back to the ClinVar-based approach
      • Only variants defining CPIC alleles with altered function are reported
      • Alleles defined by multiple variants (e.g. TPMT *3A, DPYD HapB3) are marked as partial when not all defining variants are found in the sample
      • New columns in TSV/Excel output (pharmacogenomic findings): PGX_ALLELE, PGX_ALLELE_COMPLETE, PGX_ALLELE_FUNCTION, PGX_ACTIVITY_VALUE
    • CPIC phenotypes (e.g. DPYD Intermediate Metabolizer, activity score 1.0) are inferred for genes with detected altered function alleles, and mapped to CPIC prescribing recommendations for cancer-relevant drugs (fluoropyrimidines, thiopurines, rasburicase):
      • The absence of variants in the input VCF does not confirm a normal function genotype - genes without detected altered function alleles are not assigned a phenotype
      • Unless detected, a second allele is assumed to be of normal function (reference), and two different alleles are assumed to be in trans
      • The phenotype is Not determined when detected variants only partially define an allele, or when more altered function alleles are found than expected
      • For multi-gene recommendations (thiopurines - TPMT and NUDT15), genes without detected altered function alleles are assumed to be normal metabolizers
    • New report sections with CPIC phenotypes and prescribing recommendations, in the HTML report, PDF report, and Excel workbook (sheets PHARMACOGENOMIC_PHENOTYPES and PHARMACOGENOMIC_RECOMMENDATIONS)
    • G6PD added to the pharmacogenes assessed with --pgx_findings (CPIC guideline for rasburicase)
    • New argument --sex (FEMALE, MALE or UNKNOWN; default: UNKNOWN) - sex of the sample, used for interpretation of X-linked pharmacogenomic findings:
      • MALE: G6PD genotypes interpreted as hemizygous (single allele), heterozygous chrX calls in G6PD are flagged in the report
      • FEMALE: G6PD genotypes interpreted as diploid (e.g. heterozygous carriers of deficient alleles - phenotype Variable)
      • UNKNOWN: no G6PD phenotype or rasburicase recommendation is reported
    • Sample sex is listed in the SETTINGS sheet of the Excel workbook
    • New argument --age - age of the subject (whole years) at the time of testing; --sex and --age are listed in the Subject options group (previously Sample options) of the command-line interface. The age is shown with sex on the PDF cover page and in the PDF settings, and listed in the SETTINGS sheet of the Excel workbook (Subject age at testing (years); Sample sex renamed to Subject sex)
    • Report layout: pharmacogenomic findings are presented per gene (alteration(s), CPIC diplotype, e.g. TPMT *1/*3C, genotype, phenotype and activity score), with variant-level details (CPIC allele and allele function, consequence, ClinVar, dbSNP, gnomAD) available per gene, followed by the prescribing recommendations. Assumptions (positions without called variants assumed homozygous reference, phase not assessed) are stated once for the section
  • PDF report

    • A PDF report (Quarto/Typst) is now generated by default in addition to the HTML report (opt out with the new argument --no_pdf), including a section on pharmacogenomic findings (CPIC phenotypes and prescribing recommendations)
  • Key findings summary

    • The summary of findings (value boxes in the HTML report, KPI boxes on the PDF cover page) is replaced by a templated Key findings text, shared by the HTML report (top of report) and the PDF report (cover page), in line with PCGR: pathogenic/likely pathogenic variants and VUS first, followed by supporting findings (variant classification overview, secondary findings, genomic biomarkers with evidence levels A/B, CPIC pharmacogenomic phenotypes, GWAS hits)
    • The rules for content and ordering are described in the documentation section of the reports (Key findings summary)

v2.3.0

  • Date: 2026-06-22

  • Major data updates

    • ClinVar (2026-06)
    • dbNSFP (v5.3)
    • CIViC (2026-06-20)
    • GENCODE v49 (VEP v115)
  • Variant classification updates

    • Complete revision and much simplified implementation for ACMG/AMP variant classification, still point-based, but more coherent to criteria outlined in ClinGen’s Criteria Specification Registry, considering e.g. 
      • gene-specific allele frequency thresholds for different criteria (BA1/BS1/PM2/PM1/PM4)
      • Not relying on allele frequencies from one specified subpopulation, but rather considering all frequencies across gnomAD subpopulations (groupmax approach, as recommended by ClinGen SVI working group)
      • PM2 supporting not given weight in accumulating pathogenicity score due to limited evidence for pathogenicity by mere rarity
      • refined handling of PVS1 criterion for loss-of-function (LOF) variants according to PVS1 decision tree
      • revised MaxEntScan (MES) thresholds for LOF variants in the neighbourhood of canonical splice donor/acceptor sites.
    • All virtual panel genes in HTML report display in alphabetic order, ignoring confidence levels (PanelApp genes)
    • New column ACMG_CODE in TSV output files, indicating which ACMG criteria that were met for each variant (‘|’-separated list)
    • Renamed column CPSR_CLASSIFICATION_SOURCE → ASSERTION_AUTHORITY in TSV output to better reflect its role (values: ClinVar or CPSR)
    • Renamed column CANCER_PHENOTYPE to CLINVAR_PHENOTYPE_CANCER in TSV output, to clarify that this annotation is based on ClinVar phenotype associations
    • Added new column ASSERTION_RATIONALE in TSV output, providing a human-readable explanation for why a given assertion authority was chosen (e.g. “Novel variant (absent from ClinVar)”, “ClinVar review status: 2 gold stars”, “Conflicting ClinVar interpretations”)
    • Simplified population allele frequency arguments for variant classification:
      • Removed --pop_gnomad (previously required to select a single gnomAD subpopulation, e.g. nfe) and --maf_upper_threshold (global MAF filter)
      • Replaced by a single argument --max_af_gnomad, which applies an upper frequency threshold across all gnomAD subpopulations rather than one selected population — consistent with the ClinGen SVI groupmax approach already used internally for BA1/BS1/PM2 criteria
    • New argument --clinvar_trust_level (integer, 0–4) replacing --classify_all, giving fine-grained control over the degree to which existing ClinVar classifications override CPSR’s own ACMG/AMP result:
      • 0: ClinVar fully trusted; CPSR only overrides conflicted records (default)
      • 1: CPSR overrides zero gold star ClinVar records
      • 2: CPSR overrides zero- and single gold star ClinVar records
      • 3: CPSR overrides low-star and non-cancer-phenotype ClinVar records
      • 4: CPSR always classifies, ClinVar records never take precedence
  • Interactive HTML report tables migrated from DT (DT::datatable) to reactable (reactable::reactable):

    • All classification, secondary findings, pharmacogenomics, biomarker, and GWAS variant tables now use reactable
  • Tables feature a collapsible detail row per variant with full annotation context, reducing visual clutter in the main view

  • Dedicated hidden search index column aggregates nested evidence text fields (HTML biomarker tables) for full-text search across all evidence items

  • Excel workbook — SETTINGS and DATA_VERSIONS sheets

    • Two new sheets are prepended to the Excel workbook output (.xlsx), before VIRTUAL_PANEL:
      • SETTINGS — key run parameters in a three-column SECTION / PARAMETER / VALUE layout, covering: CPSR/PCGR versions, genome assembly, sample ID, variant classification settings (gnomAD MAF threshold, ClinVar trust level, secondary findings, pharmacogenomics findings, GWAS hits, noncoding filter), and VEP settings (transcript set, pick order)
      • DATA_VERSIONS — one row per reference dataset used in the run, with columns DATABASE / VERSION / DESCRIPTION / URL / LICENSE; mirrors the “Dataset versions” callout in the HTML Documentation section
  • Infrastructure: major refactor of GitHub Actions workflow

    • moving to gitflow development mode, with main branch for stable releases, and dev branch for development
    • switch to rattler-build from conda mambabuild
      • also requires moving to the required rattler format for the conda recipe
    • switch to conda-incubator/setup-miniconda (from mamba-org/setup-micromamba)
    • pkgdown’s auto development mode allows us to keep a dev website with documentation for the latest development version of cpsr, which is now available at https://sigven.github.io/cpsr/dev/ (previously only stable versions were available on the website)

v2.2.5

  • Date: 2025-09-17
  • Patch to safeguard missing gnomAD frequencies in the non-cancer subset, using the general/global gnomAD frequencies as a fallback - improved assignment of ACMG criteria BA1/BS1/PM2
    • Supplement gnomAD exome AFs with genome-based AF’s when running in VEP, i.e. adding the --af_gnomadg by default
    • Added interactive filtering for global gnomAD frequencies in HTML datatables
    • Added gnomADg_AF (global gnomAD MAF) column in TSV output files

v2.2.4

  • Date: 2025-09-08
  • Patch to avoid duplicate matches of PVS1 criteria

v2.2.1

  • Date: 2025-03-23
  • Patch to fix bug with non-standard ClinVar significance levels (Drug Response, Risk Factor)

v2.2.0

  • Date: 2025-03-22
  • Major data updates
    • ClinVar (2025-03)
    • dbNSFP (v5.0)
    • CIViC (2025-03-13)
    • GENCODE v47 (VEP v113)
    • PanelApp (2025-02)
    • UniProt KB (2025-01)
    • Cancer Gene Census (v101)
  • Added more cancer susceptibility genes to panel zero (ATG12, BIK, CHD1L, CMTR2, CPAP, HAVCR2, LLGL2, MYO3A, MYO5B, PAH, TTC7A)
  • Added a pharmacogenetic findings option (--pgx_findings), which will include pharmacogenetic findings in the HTML report (within the Genomic biomarkers section)
    • For now, this is implemented very simple, not considering star alleles, but merely focusing on pathogenic variants or drug-response related variants in DPYD, TPMT, and NUDT15
  • Two new TSV output files: <sample_id>.cpsr.<genome_assembly>.pgx_findings.tsv.gz and <sample_id>.cpsr.<genome_assembly>.biomarker_evidence.tsv.gz
  • Cleaned the display of virtual panel genes in Excel output, added PHARMACOGENETIC_FINDINGS sheet
  • Multiple cosmetic changes to HTML report - e.g. collapsed call-out blocks
  • Improved the variant classification algorithm
    • addition of new criterion: disruption of essential nucleotides (ACMG_PM6)
    • improved matching against pathogenic/benign codons (ClinVar)

v2.1.2

v2.1.1

  • Date: 2024-10-11

  • Cosmetic fixes in HTML report

v2.1.0

  • Date: 2024-09-29
  • Major data updates
    • ClinVar (2024-09)
    • dbNSFP (v4.8)
    • CIViC (2024-09-18)
  • Adjusted thresholds for CPSR variant classification based on calibration against ClinVar (Sept 2024 release)
  • Added link to chosen virtual panel in HTML report
  • Created new column ALTERATION in variant tables of HTML report, a joint annotation of HGVSp and HGVSc

v2.0.3

  • Date: 2024-08-01
  • Fixed bug for properly copying in quarto templates

v2.0.1

  • Date: 2024-07-07
  • Fixed bug for chrM variants in input - not properly annotated by VEP, and not correctly processed in pcgrr. Any mitochondrial variants found in input VCF are now removed during VCF pre-processing.

v2.0.0

  • Date: 2024-06-26
  • Data updates
    • ClinVar
    • GWAS catalog
    • CIViC
    • GENCODE
    • Cancer Gene Census
    • PanelApp
    • Disease Ontology/EFO
    • UniProt KB
Added/changed
  • New report generation framework - quarto
    • multiple options related to Rmarkdown output are now deprecated
  • Re-organized data bundle structure
    • Users need to download an assembly-specific VEP cache separately from PCGR/CPSR, and provide its path to the new required argument --vep_dir in the cpsr command
  • Re-engineered data bundle generation pipeline
  • Improved data bundle documentation
    • An HTML report with an overview of the contents of the data bundle is shipped with the reference data itself, also available here (grch38).
  • Cleaned up code base for reporting and classification
  • A multi-sheet Excel workbook output with variant classifications and biomarker findings are provided, suitable e.g. for aggregation of results across samples
  • Singularity/Apptainer support
  • argument name changes to cpsr:
    • --pcgr_dir is now named --refdata_dir
    • --clinvar_ignore_noncancer is now named --clinvar_report_noncancer, meaning that variants found in ClinVar, yet attributed to non-cancer related phenotypes, are now excluded from reporting by default)
    • --vep_gencode_all is now named --vep_gencode_basic, meaning that the gene variant annotation is now using all GENCODE transcripts by default, not only the basic set)
    • --preserved_info_tags is now named --retained_info_tags
    • --basic is now named --no_reporting
  • LOFTEE plugin in VEP removed as loss-of-function variant classifier (due to low level of maintenance, and outdated dependency requirements). For now, a simplified LoF-annotation is used as a replacement, looking primarily at CSQ types (stop_gained, frameshift_variant, splice_acceptor_variant, splice_donor_variant). Furthermore, frameshift/stop-gain variants that are found within the last 5% of the coding sequence length are deemed non-LOF, as are splice donor variants not disrupting the canonical site (GC>GT). An even more advanced LoF-annotation is planned for a future release.
  • Biomarkers are matched much more comprehensively than in previous versions, matching at the genomic level, codon, exon, amino acid and gene level (both principal and non-principal transcript matches)
  • Some bugs in the retrieval of secondary variant findings have been fixed
Removed
  • Options for configuring Rmarkdown output, i.e. --report_theme, report_nonfloating_toc, report_table_display argument in the cpsr command is deprecated
  • --gwas_p_value
  • --no_vcf_validate - VCF validation is simplified, not relying on the strict vcf-validator

v1.0.1

  • Date: 2022-11-11
Added
  • Logo

v1.0.0

  • Date: 2022-02-25

  • Data updates

    • ClinVar
    • GWAS catalog
    • CIViC
    • CancerMine
    • KEGG
    • Disease Ontology/EFO
    • Open Targets Platform,
    • UniProt KB
    • GENCODE
  • Improved detection of secondary variant findings

  • CPSR is now implemented as a dedicated R package, depending also on the pcgrr R package. Running the complete CPSR workflow relies upon installation of PCGR.

v0.6.2

  • Date: 2021-06-30

  • Data updates: ClinVar, PanelApp, GWAS catalog, CIViC, CancerMine, dbNSFP, KEGG, Disease Ontology/EFO, Open Targets Platform, UniProt KB, GENCODE

  • Software upgrades: R v4.1, Bioconductor v3.13, VEP (104) ++

  • Improved GWAS track for cancer phenotypes

Changed
  • TOML-based configuration for CPSR is abandoned, all options to CPSR are now configured through the command-line parameters
Added
  • Command-line options

    • Previously set in TOML file
      • --pop_gnomad
      • --report_theme
      • --preserved_info_tags (previously custom_tags (TOML))
      • --custom_list_name
      • --gwas_p_value
      • --vcfanno_n_proc (previously n_vcfanno_proc (TOML))
      • --vep_n_forks (previously n_vep_forks (TOML))
      • --vep_pick_order
      • --vep_no_intergenic (previously vep_skip_intergenic (TOML))
    • New options
      • --report_nonfloating_toc (NEW) - add the TOC at the top of the HTML report, not floating at the left of the document
      • --report_table_display (NEW) - choose level of comprehensiveness in interactive data tables (full versus light (default))
  • Improved support for noncoding variant interpretation, primarily in the context of variants of uncertain significance (VUS). Annotations will show variants that disrupt/create microRNA target sites (dbMTS), and variants that overlap transcription factor binding sites (critical and non-critical positions). Genomic conservation scores (GERP) are also provided.

  • Approx. 100 protein-coding genes have been appended to the CPSR superpanel (panel 0)

Fixed
Removed
  • Command-line Options
    • --conf - configuration file

v0.6.1

  • Date: 2020-11-30
Added
  • Increased number of genes in panel 0: All genes in 42 virtual panels related to cancer conditions in Genomics England PanelApp now also contributes toward panel 0
  • Added option in main script (--clinvar_ignore_noncancer) that will exclude any query variants (from HTML report and TSV/JSON output) that have been reported and classified for non-cancer related conditions only (in ClinVar)
    • this to exclude variants associated with non-cancer related phenotypes
  • For the variant biomarker table, the resolution of the reported biomarker mapping is highlighted with designated background colors for the gene (exact/codon - black vs. exon/gene - orange)
Fixed
  • Bug in GWAS hits retrieval, Issue #30
  • Custom VCF tags (as specified by user in configuration file) not shown in output TSV files
Changed
  • Removed DisGeNET annotations from output (associations from Open Targets Platform serve same purpose)
  • Renamed report section Genomic Biomarkers to Variant Biomarkers
  • Option --incidental_findings changed back to --secondary_findings - recommended term to use according to ACMG
  • Removed MOD (mechanism-of-disease) from TSV output file

v0.6.0rc

  • Date: 2020-09-24

  • Data updates: ClinVar, GWAS catalog, GENCODE, CIViC, CancerMine, UniProt KB, dbNSFP, Pfam, KEGG, Open Targets Platform, Genomics England PanelApp

  • Software updates: VEP 101

Fixed
  • Duplicated entries in incidental findings
Changed
  • All arguments to cpsr.py are now non-positional
  • Arguments to cpsr.py are divided into two groups: required and optional
  • secondary_findings is now coined incidental_findings
  • Option gwas:gwas_hits in CPSR configuration file is now optional argument --gwas_findings in cpsr.py
  • Option classification:clinvar_cpsr in CPSR configuration file is now optional argument --classify_all in cpsr.py
  • Option maf_imits:maf_gnomad in CPSR configuration file is now optional argument --maf_upper_threshold in cpsr.py
  • Option secondary_findings:show_sf in CPSR configuration file is now optional argument --incidental_findings in cpsr.py
  • Virtual panels is now displayed through HTML (previously static ggplot plot)
  • Settings section of report is now divived into three:
    • Sample metadata
    • Report configuration
    • Virtual panel
  • Classifications of genes as tumor suppressors/oncogenes are now based on a combination of CancerMine citation count and presence in Network of Cancer Genes
Added
  • Missing ACMG/AMP criterion for classification of silent and intronic variants outside of splice regions (ACMG_BP7)
  • Missing ACMG/AMP criterion for classification of variants in promoter and untranslated regions (ACMG_BP3)
  • Possibility to create custom virtual panel - any combination of genes from panel 0 provided as a single-column text file with argument --custom_list
  • Ensured that non-empty datatables pr. tier (ClinVar and Non-ClinVar) are set as the active tab
  • Improved documentation of variant classification in the References section
  • DOIs available for all references

v0.5.2

  • Date: 2019-11-18
Changed
  • Definition of pathogenic range (wrt to variant frequency) takes into account population- and position-specific allele numbers - no longer defined only by allele counts (i.e. AC) but by AC and AN
  • Moved virtual panel identifier from positional argument to optional argument (--panel_id) in cpsr.py
Added
  • Ability to analyze custom panels, provided through option --custom_panel. Needs to be defined as BED file with four columns, i.e. chromosome, start, stop, genesymbol

v0.5.1

  • Date: 2019-10-14
Fixed
  • Bug in cpsr_validate_input.py, GitHub Issue
  • Bug when there are zero variants with a ‘PASS’ status in VCF - omitting report generation

v0.5.0

  • Date: 2019-09-23
Fixed
  • Bug in implementation of ACMG/AMP criteria; genes without a known loss-of-function mechanism were handled inappropriately
  • Bug in assignment of heterozygous/homozygous states (input VCF)
  • Bug in implementation of ACMG_PS1 - Same amino acid change as previously pathogenic variant
  • Improved consequence prioritisation for variants with transcript consequences in multiple, distinct cancer predisposition genes
  • Upper MAF threshold (as given by user) only applied for unclassified (i.e. non-ClinVar variants)
  • Handling of non-coding variants (synonymous, upstream_variants) in the report, no longer excluded
Added
  • Section on genomic biomarkers; indicating which variants in the query VCF that overlaps with existing germline biomarkers (CIViC)