Version 32 (modified by 7 years ago) ( diff ) | ,
---|
Notes on calling variants in RNA-seq data with GATK
- RNAseq includes reads mapped across splice junctions and is associated with high variability of coverage, so typical variant calling pipelines (for DNA) can lead to lots of false positives and negatives.
- GATK is currently the gold standard for calling variants in RNA-seq data. See a detailed description of their workflow here: https://gatkforums.broadinstitute.org/gatk/discussion/3892/the-gatk-best-practices-for-variant-calling-on-rnaseq-in-full-detail
- A main difference between calling variants in RNA vs DNA sequencing reads with GATK, is for RNA-seq data the STAR aligner is used to perform a 2-pass read mapping step, which was shown to have superior SNP sensitivity in a comparison of the most common mapping tools (https://www.nature.com/nmeth/journal/v10/n12/full/nmeth.2722.html)
Using GATK to call variants from RNA-seq reads
This example pipeline starts with a single-end short-read fastq file (Reads_1.fq).
Note that GATK requires Java 1.7 (so you may need to adjust your path to point to that version, if an older version is the default).
For example, this can be added to ~/.bashrc:
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
1 - Run the STAR 2 pass procedure to map reads to the reference genome.
Index the reference genome for First Pass.
Create folder, "FirstPass" before running these commands.
To generate genome index files for STAR:
bsub STAR --runMode genomeGenerate --genomeDir /path/to/GenomeDirFirstPass --genomeFastaFiles /path/to/genome/fasta1 --sjdbGTFfile /path/to/GTF/FileName.gtf --sjdbOverhang 100 --runThreadN 8
To map:
Run this command within the FirstPass directory
bsub STAR --genomeDir /path/to/GenomeDirFirstPass --readFilesIn /path/to/read1.fastq --outFileNamePrefix whateverPrefix --runThreadN 8
Index the reference genome for Second Pass.
Create folder, "SecondPass" before running these commands.
To generate the 2nd pass genome index files for STAR:
bsub STAR --runMode genomeGenerate --genomeDir /path/to/GenomeDir2ndPass --genomeFastaFiles /path/to/genome/fasta1 --sjdbFileChrStartEnd /path/to/first/pass/directory/SJ.out.tab --sjdbGTFfile /path/to/GTF/FileName.gtf --sjdbOverhang 100 --runThreadN 8
To map:
Run this command within the SecondPass directory
Input format: fastq ; output format: SAM bsub STAR --genomeDir /path/to/GenomeDir2ndPass --readFilesIn /path/to/read1.fastq --outFileNamePrefix whateverPrefix --runThreadN 8
The parameters included in the above sample commands are:
- --sjdbOverhang Specifies the length of the genomic sequence around the annotated junction to be used in constructing the splice junctions database. For short reads (<50) use readLength - 1, otherwise a generic value of 100 will work as well (see manual for more info).
- --sjdbGTFfile <GTF_file.gtf> Supplies STAR with a GTF file during the genomeGenerate step. Combined with the --sjdbScore <n> option during mapping, this will bias the alignment toward annotated junctions, and reduces alignment to pseudogenes.
- --runMode <alignReads, genomeGenerate> "alignReads" does the actual mapping. "genomeGenerate" generates the genomeDir required for mapping (default = alignReads).
- --genomeDir </path/to/GenomeDir> Specifies the path to the directory used for storing the genome information created in the genomeGenerate step.
- --genomeFastaFiles <genome FASTA files> Specifies genome FASTA files to be used.
- --sjdbFileChrStartEnd <output from first pass> path to the file with genomic coordinates for introns
- --readFilesIn <read1.fastq read2.fastq> Specifies the fastq files containing the reads, can be single-end or paired-end.
- --runThreadN <n> Specifies the number of threads to use.
2 - Replace ReadGroups, mark duplicate reads , clip intron overhangs and reassign mapping qualities withPicard Tools