RNA-seq paired-end Workflow
The workflow needs a list of dataset pairs of fastqsanger.
As well as a gtf file with genes
Optional, but recommended: a gtf file with regions to exclude from normalization in Cufflinks.
- For instance a gtf that masks chrM for the mm10 genome:
chrM chrM_gene exon 0 16299 . + . gene_id "chrM_gene_plus"; transcript_id "chrM_tx_plus"; exon_id "chrM_ex_plus"; chrM chrM_gene exon 0 16299 . - . gene_id "chrM_gene_minus"; transcript_id "chrM_tx_minus"; exon_id "chrM_ex_minus";
- adapter sequences: this depends on the library preparation. Usually classical RNA libraries are Truseq and ISML (relatively new Illumina library) is Nextera. If you don't know, use FastQC to determine if it is Truseq or Nextera. If the read length is relatively short (50bp), there is probably no adapter.
- reference_genome: this field will be adapted to the genomes available for STAR
- strandness: For stranded RNA, reverse means that the read is complementary to the coding sequence, forward means that the read is in the same orientation as the coding sequence. This will help you to get from STAR only the counts corresponding to your library preparation. This is also used for the stranded coverage and for FPKM computation with cufflinks.
- The workflow will remove adapters and low quality bases and filter out any read smaller than 15bp
- The filtered reads are mapped with STAR with ENCODE parameters (for long RNA-seq but I use it for short also). STAR is also used to count reads per gene.
- A multiQC is run to have an overview of the QC. This can also be used to get the strandness.
- FPKM values for reads and transcripts are computed with cufflinks using correction for multi-mapped reads.
- The BAM is filtered to keep only uniquely mapped reads (tag NH:i:1).
- Coverage unstranded, and each strand independently is computed with bedtools and normalized to the number of million uniquely mapped reads (in order to compute stranded coverage the BAM is modified so second mate in pairs matches orientation of the first mate in pairs).
- The three coverage files are converted to bigwig.
- The coverage stranded output depends on the strandness of the library:
- If you have an unstranded library, stranded coverages are useless
- If you have a forward stranded library, the label matches the orientation of the first read in pairs.
- If you have a reverse stranded library, the label matches the orientation of the second read in pairs.
|PE fastq input||PE fastq input||Should be a list of paired-end RNA-seq fastqs||n/a|
|forward_adapter||forward_adapter||Please use: For R1: - For Nextera: CTGTCTCTTATACACATCTCCGAGCCCACGAGAC - For TrueSeq: GATCGGAAGAGCACACGTCTGAACTCCAGTCAC or AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC||n/a|
|reverse_adapter||reverse_adapter||Please use: For R2: - For Nextera: CTGTCTCTTATACACATCTGACGCTGCCGACGA - For TruSeq: GATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT or AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT||n/a|
|gtf||gtf||gtf compatible with the reference_genome. Mind the UCSC/Ensembl differences in chromosome naming||n/a|
|strandness||strandness||For stranded RNA, reverse means that the read is complementary to the coding sequence, forward means that the read is in the same orientation as the coding sequence||n/a|
|gtf with regions to exclude from FPKM normalization||gtf with regions to exclude from FPKM normalization||Could be a gtf with for example one entry for the chrM forward and one entry for the chrM reverse||n/a|
|0||PE fastq input||Should be a list of paired-end RNA-seq fastqs|
|1||forward_adapter||Please use: For R1: - For Nextera: CTGTCTCTTATACACATCTCCGAGCCCACGAGAC - For TrueSeq: GATCGGAAGAGCACACGTCTGAACTCCAGTCAC or AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC|
|2||reverse_adapter||Please use: For R2: - For Nextera: CTGTCTCTTATACACATCTGACGCTGCCGACGA - For TruSeq: GATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT or AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT|
|4||gtf||gtf compatible with the reference_genome. Mind the UCSC/Ensembl differences in chromosome naming|
|5||strandness||For stranded RNA, reverse means that the read is complementary to the coding sequence, forward means that the read is in the same orientation as the coding sequence|
|6||gtf with regions to exclude from FPKM normalization||Could be a gtf with for example one entry for the chrM forward and one entry for the chrM reverse|
|7||Cutadapt (remove adapter + bad quality bases)||toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.0+galaxy1|
|8||get reference_genome as text parameter||toolshed.g2.bx.psu.edu/repos/iuc/compose_text_param/compose_text_param/0.1.1|
|9||awk command from strand||toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1|
|10||bedtools orientation for forward coverage||toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1|
|11||bedtools orientation for reverse coverage||toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1|
|12||Get cufflinks strandess parameter||toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1|
|13||STAR: map and count||toolshed.g2.bx.psu.edu/repos/iuc/rgrnastar/rna_star/2.7.8a+galaxy1|
|15||Extract gene counts||toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/1.1.2|
|16||Keep only uniquely mapped reads||toolshed.g2.bx.psu.edu/repos/devteam/bamtools_filter/bamFilter/2.5.1+galaxy0|
|17||get scaling factor||This step get 1 / millions of uniquely mapped reads toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/1.1.2|
|20||convert dataset to parameter||param_value_from_file|
|21||Scaled Coverage both strands combined||toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0|
|22||Scaled Coverage positive||toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0|
|23||Scaled Coverage negative||toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0|
|24||convert both strands coverage to bigwig||wig_to_bigWig|
|25||convert positive coverage to bigwig||wig_to_bigWig|
|26||convert negative coverage to bigwig||wig_to_bigWig|
Created: 25th Oct 2022 at 03:01
Last updated: 1st Dec 2022 at 03:01
Last used: 7th Dec 2022 at 00:40