Software for RNA-Seq analysis on Windows, including creating sample-specific proteoform databases from genomic data
Spritz can be downloaded here.
Spritz uses snakemake and a container runtime to install and run commandline tools for Next-Generation Sequencing (NGS) analysis. These tools include an adapted version of SnpEff to annotate sequence variations and create an annotated protein database in XML format. The combinatorics of producing full-length proteoforms from these annotations is written in mzLib's VariantApplication class.
-
Install a container runtime. Podman is recommended: it is Apache-2.0, needs no paid subscription, and is what Spritz uses by default.
- macOS:
brew install podman, thenpodman machine init && podman machine start - Windows: the Podman installer, or
winget install RedHat.Podman - Linux: your distribution's package manager
Docker still works if you already have it — pass
--container-runtime docker. On a cluster, see Running Spritz on a cluster with Apptainer. - macOS:
-
Allocate resources to the runtime. For Docker there are two ways, described in the Spritz wiki:
- The recommended method requires Windows 10 version 2004 and is more robust. Here, we allocate computer resources to Docker like any other program.
- The alternate method is available on all Windows versions but is less robust. Here, we allocate computer resources to Docker using a virtual machine that's packaged with Docker.
-
Launch Spritz.
Step 1: Input SRA accessions and/or add FASTQ files.
- SRAs are added with the button indicating single-end or paired-end.
- FASTQ files must end with *_1.fastq if single-end, and paired-end sequences must have the same filename other than ending with *_1.fastq and *_2.fastq.
Step 2: Create and customize your Spritz workflow.
Step 3: Run Spritz!
- Environment:
- Windows 10 recommended
- .NET Desktop Runtime 10
- 24 GB RAM recommended
- The installer (Spritz.msi) only works on Windows.
Spritz runs on the commandline on macOS, Linux and Windows by running the published container: see Running Spritz from the command line. It needs a container runtime and nothing else, and it is the route CI exercises on every push.
Running snakemake directly on the host also works on Linux and macOS, and is covered on the same page as the advanced route.
Spritz drives one of three runtimes, all running the same published image:
| Runtime | Use it for | Flag |
|---|---|---|
| Podman | the default; macOS, Windows, Linux, no Docker Desktop | (nothing — it is the default) |
| Docker | you already have it installed | --container-runtime docker |
| Apptainer | HPC clusters, where a root daemon is not permitted | --container-runtime apptainer |
The image is published to both Docker Hub and GitHub
Container Registry (ghcr.io/smith-chem-wisc/spritz). Prefer GHCR on a cluster: Docker Hub rate-limits
anonymous pulls per IP address, and everyone on a login node shares one. Each release also attaches a
.sif for compute nodes with no outbound network.
-
Add SRR629563 to the SRA list.
-
Create the Spritz workflow. Select "release-97" and "homo_sapiens."
-
Run Spritz!
Monitor progress in the Information textbox. The final database named final/combined.spritz.snpeff.protein.withmods.xml.gz can be used to search MS/MS with MetaMorpheus to find variant peptides and proteoforms, possibly with modifications. We recommend performing 1) Calibration, 2) Global PTM Discovery (G-PTM-D), and 3) Search tasks to get the best results.
The final database named final/combined.spritz.snpeff.protein.fasta is generated to contain variant protein sequences, and it may be used in other search software, such as Proteome Discoverer, ProSight, and MASH Explorer.
The final database named final/combined.spritz.snpeff.protein.withdecoys.fasta contains the same variant
protein sequences with decoy sequences appended.
Each database is written in several forms for different search engines, plus two tables describing it.
| File | Use |
|---|---|
*.protein.withmods.xml.gz |
MetaMorpheus. Carries sequence variants and the UniProt modifications transferred onto them. |
*.protein.fasta |
Proteome Discoverer, ProSight, MASH Explorer. Targets only. |
*.protein.withdecoys.fasta |
The same, with decoys appended. |
*.protein.fragpipe.fasta |
FragPipe/Philosopher. Same sequences, headers rewritten to the UniProt form Philosopher parses. |
*.protein.withdecoys.fragpipe.fasta |
The same, with decoys, using Philosopher's rev_ prefix. |
*.protein.accname.tsv |
One row per variant-bearing entry: accession, full name, sequence. |
*.protein.vardesc.tsv |
One row per applied variant, with the SnpEff annotation split into named columns. |
The FASTA header mzLib writes embeds the original VCF line as the protein description, which Philosopher
cannot parse — it requires a description free of commas and other special characters. The .fragpipe.fasta
copies drop that description and the per-variant detail is carried by *.protein.vardesc.tsv instead, keyed
on the same accession, so nothing is lost. Sequences are byte-identical between a database and its
.fragpipe.fasta copy.
*.protein.vardesc.tsv columns follow the SnpEff ANN field
spec: accession, variant, allele, effects,
putative_impact, gene_name, gene_id, feature_type, feature_id, transcript_biotype, rank,
total, hgvs_c, hgvs_p, cdna_position, cdna_length, cds_position, cds_length,
protein_position, protein_length, distance_to_feature, warnings, raw_vcf_line. The last column is
the annotation verbatim, so every parsed field can be checked against its source.
If you use this Spritz, please cite:
Spritz: Cesnik, A. J.; Miller, R. M.; Ibrahim, K.; Lu, L.; Millikin, R. J.; Shortreed, M. R.; Frey, B. L.; Smith, L. M. “Spritz: A Proteogenomic Database Engine.” J. Proteome Res. 2021, 20, 4, 1826–1834. https://pubs.acs.org/doi/abs/10.1021/acs.jproteome.0c00407
The FragPipe-ready header format follows Philosopher's database documentation. Thanks to @MiguelCos, who worked out what FragPipe needed and shared a header adaptation script in issue #221 long before this was built in.
This pipeline uses the following tools:
sra-toolkit: Leinonen, R.; et al. International Nucleotide Sequence Database Collaboration. The Sequence Read Archive. Nucleic Acids Res. 2011, 39 (Database issue), D19-21. https://doi.org/10.1093/nar/gkq1019.fastp: Chen, S.; et al. fastp: an ultra-fast all-in-one FASTQ preprocessor. Bioinformatics 2018, 34 (17), i884-i890. https://academic.oup.com/bioinformatics/article/34/17/i884/5093234hisat2: Kim, D.; et al. Graph-Based Genome Alignment and Genotyping with HISAT2 and HISAT-Genotype. Nat. Biotechnol. 2019, 37 (8), 907-915. https://doi.org/10.1038/s41587-019-0201-4."samtools: Li, H.; et al. The Sequence Alignment/Map format and SAMtools. Bioinformatics 2009, 25 (16), 2078-2079. https://academic.oup.com/bioinformatics/article/25/16/2078/204688.GATK: McKenna, A.; et al. The Genome Analysis Toolkit: A MapReduce Framework for Analyzing next-Generation DNA Sequencing Data. Genome Res. 2010, 20 (9), 1297-1303. https://doi.org/10.1101/gr.107524.110.SnpEff: Cingolani, P.; et al. A Program for Annotating and Predicting the Effects of Single Nucleotide Polymorphisms, SnpEff: SNPs in the Genome of Drosophila Melanogaster Strain W1118; Iso-2; Iso-3. Fly (Austin) 2012, 6 (2), 80-92. https://doi.org/10.4161/fly.19695.StringTie2: Kovaka, S.; et al. Transcriptome assembly from long-read RNA-seq alignments with StringTie2. Genome Biol 2019, 20 (278), 1-13. https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1910-1


