https://github.com/ajodeh-juma/rvfv-typing-tutorial

Lineage assignment of RVFV genomic sequences

https://github.com/ajodeh-juma/rvfv-typing-tutorial

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: ncbi.nlm.nih.gov
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Lineage assignment of RVFV genomic sequences

Basic Info
  • Host: GitHub
  • Owner: ajodeh-juma
  • Language: Python
  • Default Branch: master
  • Size: 51.8 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 3 years ago · Last pushed about 3 years ago

https://github.com/ajodeh-juma/rvfv-typing-tutorial/blob/master/

---
title: README.md
tags: ["RVFV", "typing", "lineage", "segment"]
---
# **Rift Valley fever lineage assignment**
---
###### ***Trainers***: [John Juma](https://github.com/ajodeh-juma), Tulio de Oliveira
---

- [Introduction](#introduction)
- [Scope](#scope)
- [Set-Up](#setup)
    - [Input data](#input-data)


## Introduction
Rift Valley fever (RVFV) is a febrile zoonotic disease with epidemic potential in sub-Saharan Africa.
RVF was first reported in the great rift valley region of Kenya in a town called Naivasha following 
an 'abortion storm' in a sheep farm.
The disease is often transmitted through bites from infected mosquitoes. The causative agent, Rift 
Valley fever virus (RVFV) can be transmitted to both livestock and animals. RVF leads to death, and is
a great concern to public and livestock health personnel. Currently, there are 15 known circulating lineages designated
A-O ([Grobelaar et al. 2011](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3311189/)).

## Scope
In this short tutorial, we will walk through the lineage assignemnt of RVFV genomic sequences using
the web application available as part of the Genome Detective suite of typing tools 
and a command line implementation in a domain specific language.


## Prerequisite

For the web application programme, no prerequisite knowledge in command line/UNIX is required
However, for the command line implementation, familiarity with basic Linux command-line is required.


### Set-Up
For RVFV typing on the web, we will access the tool via [Genome Detective](https://www.genomedetective.com/app/typingtool/rvfv/)
while for the command line, we will install the tool from the [github repository](https://github.com/ajodeh-juma/rvfvtyping).

1. Clone the [github repository](https://github.com/ajodeh-juma/rvfvtyping) as indicated below:
   ```
   cd ~/Downloads
   git clone https://github.com/ajodeh-juma/rvfvtyping.git
   cd rvfvtyping
   conda env create -n rvfvtyping-env -f environment.yml
   conda activate rvfvtyping-env
   ```


#### ***Input data***
We will retrieve publicly available genomic sequence data from [NCBI](https://www.ncbi.nlm.nih.gov/) using customized
steps. The file `RVFV.combined.csv` contains a list of RVFV strains and each of the 3 genomic segment
accession numbers as well as related metadata. The first column is the name of the RVFV `strain`. Columns `2`, `3` and `4` 
are the `accessions` for the `L`, `M` and `S` genomic segments sequences.


1. Clone the tutorial repository
   ```
   cd ~/Downloads
   git clone https://github.com/ajodeh-juma/rvfv-typing-tutorial.git
   cd rvfv-typing-tutorial
   ```
   
2. We will create separate directories (for each genomic segment and partial glycoprotein gene) to store the genomic sequences in `fasta` format retrieved from NCBI.

    ```
    mkdir -p ./{S,M,L,Gn}
    ```

3. Extract `L` segment accessions
   ```
   awk -F ',' '{if (NR==1) printf "accession\n"; else printf "%s\n", $2}' RVFV.combined.csv > L/L-segment-accessions.txt
   ```


4. Retrieve the sequences using auxilliary python script provided 
   ```
   python scripts/accessionsToSequences.py \
        --accessions L/L-segment-accessions.txt \
        --fasta L/L-segment.fasta \
        --database nucleotide \
        --out_dir L/data \
        --cleanup True
   ```


5. Extract `M` segment accessions
   ```
   awk -F ',' '{if (NR==1) printf "accession\n"; else printf "%s\n", $3}' RVFV.combined.csv > M/M-segment-accessions.txt
   ```


6. Retrieve the sequences using auxilliary python script provided 
   ```
   python scripts/accessionsToSequences.py \
        --accessions M/M-segment-accessions.txt \
        --fasta M/M-segment.fasta \
        --database nucleotide \
        --out_dir M/data \
        --cleanup True
   ```


5. Extract `S` segment accessions
   ```
   awk -F ',' '{if (NR==1) printf "accession\n"; else printf "%s\n", $4}' RVFV.combined.csv > S/S-segment-accessions.txt
   ```


6. Retrieve the sequences using auxilliary python script provided 
   ```
   python scripts/accessionsToSequences.py \
        --accessions S/S-segment-accessions.txt \
        --fasta S/S-segment.fasta \
        --database nucleotide \
        --out_dir S/data \
        --cleanup True
   ```
   
The retrieved sequences in `FASTA` format can be found in `L/data`, `M/data` and `S/data` directories

We can proceed to assign lineages of the sequences using the commandline typing tool.

7. Change to the pipeline directory
   ```
   cd ../rvfvtyping
   ```

8. Assign lineages to the `L` segment sequences using the appropriate classifier (segment)

    ```
    nextflow run main.nf \
        --input "../rvfv-typing-tutorial/L/data/*.fasta" \
        --segment L \
        --skip_diamond \
        --outdir output-dir/L \
        -work-dir work-dir/L
    ```
   
9. Assign lineages to the `M` sequences using the appropriate classifier (segment)

    ```
    nextflow run main.nf \
        --input "../rvfv-typing-tutorial/M/data/*.fasta" \
        --segment M \
        --skip_diamond \
        --outdir output-dir/M \
        -work-dir work-dir/M
    ```
   
10. Assign lineages to the `S` sequences using the appropriate classifier (segment)

    ```
    nextflow run main.nf \
        --input "../rvfv-typing-tutorial/S/data/*.fasta" \
        --segment S \
        --skip_diamond \
        --outdir output-dir/S \
        -work-dir work-dir/S
    ```
    
    
We can still use the glycoprotein gene (located in the M segment) classifier to assign lineages.


11. Assign lineages to the M segment sequences using the partial glycoprotein (Gn) gene classifier

    ```
    nextflow run main.nf \
        --input "../rvfv-typing-tutorial/M/data/*.fasta" \
        --segment Gn \
        --skip_diamond \
        --outdir output-dir/Gn \
        -work-dir work-dir/Gn
    ```

12. We can combine the lineages report to see how each classifier performed in the lineage assignment process

    ```
    python ../rvfv-typing-tutorial/scripts/combineLineages.py \
        --metadata ../rvfv-typing-tutorial/RVFV.combined.csv \
        --s output-dir/S/report/lineages.csv \
        --m output-dir/M/report/lineages.csv \
        --l output-dir/L/report/lineages.csv \
        --gn output-dir/Gn/report/lineages.csv \
        --prefix test \
        --outDir ../rvfv-typing-tutorial/
    ```

Owner

  • Name: JJ
  • Login: ajodeh-juma
  • Kind: user
  • Location: Nairobi, KE

A biologist with interest in computational biology and bioinformatics.

GitHub Events

Total
Last Year