Workflow Type: Galaxy
Frozen
RNA-seq single-read Workflow
Inputs dataset
-
The workflow needs a list of dataset 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";
Inputs values
- forward adapter sequence: 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.
Processing
- 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.
- The three coverage files are converted to bigwig.
Warning
- 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 reads.
- If you have a reverse stranded library,
positive strand coverage
should correspond to genes on the forward strand and uses the reads mapped on the reverse strand.negative strand coverage
should correspond to genes on the reverse strand and uses the reads mapped on the forward strand.
Contribution
@lldelisle wrote the workflow and the tests.
@nagoue updated the tools, made it work in usegalaxy.org, fixed some best practices.
Inputs
ID | Name | Description | Type |
---|---|---|---|
SR fastq input | SR fastq input | Should be a list of single-read RNA-seq fastqs |
|
forward_adapter | forward_adapter | Please use: For R1: - For Nextera: CTGTCTCTTATACACATCTCCGAGCCCACGAGAC - For TrueSeq: GATCGGAAGAGCACACGTCTGAACTCCAGTCAC or AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC |
|
gtf | gtf | gtf compatible with the reference_genome. Mind the UCSC/Ensembl differences in chromosome naming |
|
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 |
|
reference_genome | reference_genome | reference_genome |
|
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 |
|
Steps
ID | Name | Description |
---|---|---|
6 | Cutadapt (remove adapter + bad quality bases) | toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.0+galaxy1 |
7 | get reference_genome as text parameter | toolshed.g2.bx.psu.edu/repos/iuc/compose_text_param/compose_text_param/0.1.1 |
8 | awk command from strand | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1 |
9 | bedtools orientation for forward coverage | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1 |
10 | bedtools orientation for reverse coverage | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1 |
11 | Get cufflinks strandess parameter | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.1.1 |
12 | STAR: map and count | toolshed.g2.bx.psu.edu/repos/iuc/rgrnastar/rna_star/2.7.8a+galaxy1 |
13 | MultiQC | toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.11+galaxy0 |
14 | Extract gene counts | toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/1.1.2 |
15 | Keep only uniquely mapped reads | toolshed.g2.bx.psu.edu/repos/devteam/bamtools_filter/bamFilter/2.5.1+galaxy0 |
16 | 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 |
17 | Compute FPKM | toolshed.g2.bx.psu.edu/repos/devteam/cufflinks/cufflinks/2.2.1.3 |
18 | convert dataset to parameter | param_value_from_file |
19 | Scaled Coverage both strands combined | toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0 |
20 | Scaled Coverage positive | toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0 |
21 | Scaled Coverage negative | toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_genomecoveragebed/2.30.0 |
22 | convert both strands coverage to bigwig | wig_to_bigWig |
23 | convert positive coverage to bigwig | wig_to_bigWig |
24 | convert negative coverage to bigwig | wig_to_bigWig |
Outputs
ID | Name | Description | Type |
---|---|---|---|
output_log | output_log | n/a |
|
reads_per_gene from STAR | reads_per_gene from STAR | n/a |
|
mapped-reads | mapped-reads | n/a |
|
MultiQC webpage | MultiQC webpage | n/a |
|
MultiQC on input dataset(s): Stats | MultiQC on input dataset(s): Stats | n/a |
|
HTS count like output | HTS count like output | n/a |
|
transcripts_expression | transcripts_expression | n/a |
|
genes_expression | genes_expression | n/a |
|
both strands coverage | both strands coverage | n/a |
|
positive strand coverage | positive strand coverage | n/a |
|
negative strand coverage | negative strand coverage | n/a |
|
Version History
v0.1 (earliest) Created 22nd Oct 2022 at 03:01 by WorkflowHub Bot
Updated to v0.1
Frozen
v0.1
30a19f3