Syn-CpG-Spacer: A Panel web app for synonymous recoding of viral genomes with CpG dinucleotides

J Open Source Softw. 2024 Apr 3;9(96):6332. doi: 10.21105/joss.06332.

Abstract

Vertebrate genomes contain lower than expected frequencies of the CpG dinucleotide. Consequently, many vertebrate viruses have evolved to mimic this composition, possibly in order to evade host antiviral defences (Greenbaum et al., 2008). For example, the antiviral protein ZAP binds CpGs in viral single stranded RNA with specific spacing requirements (Gonçalves-Carneiro et al., 2022), though CpGs are also likely depleted in viral genomes due to other selective pressures (Forni et al., 2023). Increasing CpG abundance by synonymous recoding could facilitate attenuation of viruses without compromising their epitope antigenicity by changing non-CpG codons to alternatives containing CpG without changing the overall amino acid sequence (Gonçalves-Carneiro et al., 2022; Le Nouën et al., 2019; Sharp et al., 2023). There are three ways CpGs can be synonymously introduced in codons: at positions 1-2 for arginine (e.g. AGA → CGA), 2-3 for several amino acids (e.g. ACA → ACG), or in a 3-1 split configuration, if a subsequent codon begins with a G (e.g. ATA-GCA → ATC-GCA). Syn-CpG-Spacer is a Python progressive web app (PWA) (MDN Web Docs, 2023) made with the Panel library (Panel Development Team, 2024) that allows for consistent recoding of viral sequences and applying biologically relevant constraints. These include setting a minimum gap between CpG's, optimising for an average CpG gap, protecting cis-acting regulatory signals from modification, and modulating the A-content in the overall sequence. The app features a sequence viewer made with the Bokeh library (Bokeh Development Team, 2024) that highlights CpG dinucleotides, allowing for efficient analysis of the resulting distribution of CpGs. This is complemented by a statistical data table. Utilising Biopython (Cock et al., 2009) modules, the user can load their sequence as a FASTA file and download the outputs as an alignment in the same format. As a PWA running on Pyodide (The Pyodide development team, 2023), the code is only executed in the user's browser and they can install the app onto their machine for offline use.