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:
ClinVarorCPSR) - 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
- Removed
- 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
- 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.
-
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), beforeVIRTUAL_PANEL:-
SETTINGS— key run parameters in a three-columnSECTION / PARAMETER / VALUElayout, 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 columnsDATABASE / VERSION / DESCRIPTION / URL / LICENSE; mirrors the “Dataset versions” callout in the HTML Documentation section
-
- Two new sheets are prepended to the Excel workbook output
(
-
Infrastructure: major refactor of GitHub Actions workflow
- moving to gitflow development mode, with
mainbranch for stable releases, anddevbranch 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)
- moving to gitflow development mode, with
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_gnomadgby default - Added interactive filtering for global gnomAD frequencies in HTML datatables
- Added
gnomADg_AF(global gnomAD MAF) column in TSV output files
- Supplement gnomAD exome AFs with genome-based AF’s when running in
VEP, i.e. adding the
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 theGenomic biomarkerssection)- 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.gzand<sample_id>.cpsr.<genome_assembly>.biomarker_evidence.tsv.gz - Cleaned the display of virtual panel genes in Excel output, added
PHARMACOGENETIC_FINDINGSsheet - 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.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
ALTERATIONin variant tables of HTML report, a joint annotation ofHGVSpandHGVSc
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_dirin thecpsrcommand
- Users need to download an assembly-specific VEP cache separately
from PCGR/CPSR, and provide its path to the new required argument
- 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_diris now named--refdata_dir -
--clinvar_ignore_noncanceris 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_allis 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_tagsis now named--retained_info_tags -
--basicis 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_displayargument in thecpsrcommand is deprecated --gwas_p_value-
--no_vcf_validate- VCF validation is simplified, not relying on the strict vcf-validator
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(previouslycustom_tags(TOML)) --custom_list_name--gwas_p_value-
--vcfanno_n_proc(previouslyn_vcfanno_proc (TOML)) -
--vep_n_forks(previouslyn_vep_forks (TOML)) --vep_pick_order-
--vep_no_intergenic(previouslyvep_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))
-
- Previously set in TOML file
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
- Code typo (issue #33)
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_findingschanged 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
Changed
- All arguments to
cpsr.pyare now non-positional - Arguments to
cpsr.pyare divided into two groups: required and optional -
secondary_findingsis now coinedincidental_findings - Option gwas:gwas_hits in CPSR
configuration file is now optional argument
--gwas_findingsincpsr.py - Option classification:clinvar_cpsr in CPSR
configuration file is now optional argument
--classify_allincpsr.py - Option maf_imits:maf_gnomad in CPSR
configuration file is now optional argument
--maf_upper_thresholdincpsr.py - Option secondary_findings:show_sf in CPSR
configuration file is now optional argument
--incidental_findingsincpsr.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) incpsr.py
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
