155 lines
4.6 KiB
Markdown
155 lines
4.6 KiB
Markdown
# RGB EPP
|
|
|
|
Reference Genome based Exon Phylogeny Pipeline
|
|
|
|
License: GPL-2.0-only
|
|
|
|
Author: Guoyi Zhang
|
|
|
|
## Requirements
|
|
|
|
### External software
|
|
|
|
- fastp
|
|
- spades.py (provided by spades)
|
|
- diamond
|
|
- bowtie2
|
|
- samtools
|
|
- bcftools
|
|
- exonerate (optional, only for --codon)
|
|
- java
|
|
- macse (default recognized path: /usr/share/java/macse.jar)
|
|
- trimal
|
|
|
|
### Internal software
|
|
|
|
- sortdiamond (default recognized path: /usr/bin/sortdiamond)
|
|
- delstop (default recognized path: /usr/bin/delstop)
|
|
|
|
## Arguments
|
|
|
|
### Details
|
|
|
|
```
|
|
-c --config config file for software path (optional)
|
|
-g --genes gene file path (optional, if -r is specified)
|
|
-f --functions functions type (optional): all clean assembly
|
|
map postmap varcall consen codon align trim
|
|
-h --help show this information
|
|
-l --list list file path
|
|
-m --memory memory settings (optional, default 16 GB)
|
|
-r --reference reference genome path
|
|
-t --threads threads setting (optional, default 8 threads)
|
|
--codon Only use the codon region (optional)
|
|
--fastp Fastp path (optional)
|
|
--spades Spades python path (optional)
|
|
--diamond Diamond python path (optional)
|
|
--sortdiamond SortDiamond python path (optional)
|
|
--bowtie2 Bowtie2 path (optional)
|
|
--samtools Samtools path (optional)
|
|
--bcftools Bcftools path (optional)
|
|
--exonerate Exonerate path (optional)
|
|
--macse Macse jarfile path (optional)
|
|
--delstop Delstop path (optional)
|
|
--trimal Trimal path (optional)
|
|
for example: ./RGBEPP -f all -l list -t 8 -r reference.fasta
|
|
```
|
|
|
|
### Directories Design
|
|
|
|
```
|
|
.
|
|
├── 00_raw
|
|
├── 01_fastp
|
|
├── 02_spades
|
|
├── 03_bowtie2
|
|
├── 04_bam
|
|
├── 05_vcf
|
|
├── 06_consen
|
|
├── 07_macse
|
|
├── 08_trimal
|
|
├── list
|
|
├── gene
|
|
├── reference.aa.fasta
|
|
└── RGBEPP
|
|
```
|
|
|
|
Each directory corresponds to each function.
|
|
|
|
`00_raw` should conatin all raw fastq.gz data.
|
|
|
|
### Text Files
|
|
|
|
`list` is the text file containing all samples, if your raw data is following the style ${list_name}\_R1.fastq.gz and ${list_name}\_R2.fastq.gz, ${list_name} is what you should list in `list` file. The easy way to get it in Linux/Unix system is the following command
|
|
|
|
```
|
|
cd 00_raw
|
|
ls | sed "s@_R[12].fastq.gz@@g" | uniq > ../list
|
|
cd ..
|
|
```
|
|
|
|
`genes` is the text file containing all gene names from the reference fasta file. The easy way to get it in Linux/Unix system is the following command
|
|
|
|
```
|
|
grep '>' Reference.fasta | sed "s@>@@g" > genes
|
|
```
|
|
|
|
`reference.aa.fasta` can be replaced by another other name, but it must contain reference amino acids genome in fasta format
|
|
|
|
## Process
|
|
|
|
### RGBEPP functions
|
|
|
|
- Function clean: Quality control + trimming (fastp)
|
|
- Function assembly: de novo assembly (spades)
|
|
- Function map: local nucleic acids alignment search against amino acids subject sequence (diamond, sortdiamond), mapping raw reads to its scaffolds sequences (bowtie2)
|
|
- Function postmap: Sorting and marking the read read alignment (samtools)
|
|
- Function varcall: variant calling and filtering (bcftools)
|
|
- Function consen: get consensus fasta file from vcf files (bcftools), then sort sequences based on gene name and taxa name (RGBEPP)
|
|
- Function codon (optional): only extract the exon sequence (exonerate)
|
|
- Function align: multiple sequence align based on condon (macse)
|
|
- Function trim: trimming based on codon (trimal, delstop)
|
|
|
|
### Arguments reuqirements for functions
|
|
|
|
| Functions | -g/--gene | -l/--list | -r/--reference |
|
|
| --------- | --------- | --------- | -------------- |
|
|
| clean | | ✔ | |
|
|
| assembly | | ✔ | |
|
|
| map | | ✔ | ✔ |
|
|
| postmap | | ✔ | |
|
|
| varcall | | ✔ | |
|
|
| consen | ✔ | ✔ | |
|
|
| codon | ✔ | | ✔ |
|
|
| align | ✔ | | |
|
|
| trim | ✔ | | |
|
|
|
|
|
|
### Downstream process
|
|
|
|
- concatenate sequences via SeqCombGo or catsequences or sequencematrix
|
|
- coalescent / concatenated phylogeny
|
|
|
|
## Inner software
|
|
|
|
### sortdiamond
|
|
|
|
Usage: `sortdiamond diamond_output.m8 generated.fasta sseq,qstart,qend,bitscore/evalue,qseq(optional, default 1,6,7,11,17, start from 0) bitscore/evalue(optional, default bitscore)`
|
|
|
|
Default sseq is column 2, qstart is column 8, etc.
|
|
|
|
Diamond default output format (--outfmt 6) does not contain qseq, you must custom the output format under output format 6.
|
|
|
|
### delstop
|
|
|
|
`delstop <fasta_aa> <fasta_nt> --delete`
|
|
|
|
Delete StopCondon generated by Macse. fasta_aa and fasta_nt should be macse output files, `--delete` should be used when downstream software is tirmal
|
|
|
|
### splitfasta
|
|
|
|
Usage: `splitfasta sample.fasta`
|
|
|
|
It always creates directories in the path that you run the splitfasta, and puts split fasta into the directory.
|
|
|
|
|