This repository contains a pipeline for identifying antibody escape mutations in viruses passaged with antibodies. The pipeline is agnostic to the virus. The sequencing data must be Illumina, paired-end, and not amplified with virus-specific primers. Additionally, sequencing runs must be provided for the viral 'Stock'.
Currently, the pipeline is running with data from HMPV and RSV-A. Experiments were performed by Evelyn Harris in the Boonyaratanakornkit lab.
Clone the pipeline from GitHub.
git clone https://github.com/jbloomlab/Virus-Antibody-Passaging.git
cd Virus-Antibody-PassagingInstall the required software using conda or mamba. If you don't have either of these installed, follow the instructions here to install them.
conda env create --file environment.yml
conda activate antibody-passagingNote, this pipeline is specifically configured for Fred Hutch Cancer Center's rhino server. It's possible to run on other platforms, but not tested for them.
Edit the samples.csv file in the configuration directory with your samples. For example, here's the first row of samples.csv:
| Virus | Run | R1 | R2 |
|---|---|---|---|
| RSV-A | Stock | /path/to/run/samples_R1.fastq.gz | /path/to/run/samples_R2.fastq.gz |
There are four columns in the samples.csv table.
- Virus: The name of the virus you're sequencing.
- Run: The name of the condition (Stock, Untreated, Antibody-1, ect...).
- R1: The absolute path to the R1 sequencing run.
- R2: The absolute path to the R2 sequencing run.
Note, there must be at least one entry for Stock for each Virus. Otherwise, you won't be able to make a Stock consensus sequence to align the remaining conditions to.
After you've added an entry for each of your samples, you need to edit the pipeline.yml configuration file. This file is in YAML format (check out this reference if you're unfamiliar).
You'll need to update pipeline.yml with a fasta reference and gff file for each virus in samples.csv. Make sure the name in pipeline.yml is the same as the name in samples.csv.
#### ------------------------- Genomes ------------------------ ####
RSV-A:
ref: configuration/reference/KT992094_truncated.fasta
gff: configuration/reference/KT992094_truncated.gff
#### ------------------------- Params ------------------------ ####Finally, add the corresponding ref and gff files to your pipeline. It doesn't matter where you put them as long as the path is correct in pipeline.yml. However, I'd recommend adhering to the current structure (/configuration/reference/).
The pipeline is written in snakemake and run as such. First, check that everything looks correct with a 'dry-run' (nothing is actually run).
snakemake --dry-runIf you get an error at this point, there's likely a problem with the configuration. If you don't get an error, run the pipeline by submitting it to slurm.
Note, if you're in a FH lab other than the Bloom lab, you'll need to update profiles/config.yaml with the name of your lab's slurm account:
default-resources:
slurm_account: bloom_j <----- Change this to your lab's account
partition: campus-new
runtime: 10800
cpus_per_task: 1
mem_mb: 4000
And run the analysis like so:
sbatch run_analysis.bashAfter the pipeline runs, the results will be deposited in results/. This folder contains all of the intermediate data including alignments for each sample and virus. The main figures summarizing the depth and variants for each sample are organized by virus and are located in results/summary/<virus>.