Skip to content

Commit

Permalink
Merge remote-tracking branch 'autoupdate/workflows/transcriptomics/rn…
Browse files Browse the repository at this point in the history
…aseq-sr' into update_both_rnaseq
  • Loading branch information
lldelisle committed Sep 15, 2023
2 parents 0e6c447 + 34eb854 commit 4b8a94c
Show file tree
Hide file tree
Showing 4 changed files with 1,196 additions and 557 deletions.
10 changes: 10 additions & 0 deletions workflows/transcriptomics/rnaseq-sr/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## [0.5] 2023-03-17

### Automatic update
- `toolshed.g2.bx.psu.edu/repos/iuc/rgrnastar/rna_star/2.7.8a+galaxy1` was updated to `toolshed.g2.bx.psu.edu/repos/iuc/rgrnastar/rna_star/2.7.10b+galaxy4`

### Manual update
- Use STAR to compute normalized strand splitted coverage
- Propose StringTie to compute FPKM etc...
- Put cufflinks step optional

## [0.4.1] 2023-09-14
- add author in dockstore file

Expand Down
19 changes: 11 additions & 8 deletions workflows/transcriptomics/rnaseq-sr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Inputs dataset

- The workflow needs a list of dataset of fastqsanger.
- The workflow needs a list of datasets of fastqsanger.
- As well as a gtf file with genes
- Optional, but recommended: a gtf file with regions to exclude from normalization in Cufflinks.

Expand All @@ -15,26 +15,29 @@ chrM chrM_gene exon 0 16299 . - . gene_id "chrM_gene_minus"; transcript_id "chrM

## 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.
- forward adapter sequence: this depends on the library preparation. Usually classical Illumina 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 so it will not impact your results.
- 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.
- 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/StringTie.
- cufflinks_FPKM: Whether you want to get FPKM with Cufflinks (pretty long)
- stringtie_FPKM: Whether you want to get FPKM/TPM etc... with Stringtie.

## 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.
- 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 and generate stranded specific normalized coverage (on uniquely mapped reads).
- 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.
- FPKM values for genes and transcripts are computed with cufflinks using correction for multi-mapped reads (this step is optionnal).
- FPKM/TPM values for genes are computed with StringTie (this step is optional).
- 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.
- Coverage unstranded 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.
- If you have a reverse stranded library, `forward` should correspond to genes on the forward strand and uses the reads mapped on the reverse strand. `reverse` should correspond to genes on the reverse strand and uses the reads mapped on the forward strand.

## Contribution

Expand Down
32 changes: 19 additions & 13 deletions workflows/transcriptomics/rnaseq-sr/rnaseq-sr-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
forward_adapter: GATCGGAAGAGCACACGTCTGAACTCCAGTCAC
reference_genome: dm6
strandness: unstranded
cufflinks_FPKM: true
stringtie_FPKM: true
outputs:
output_log:
element_tests:
Expand All @@ -24,7 +26,7 @@
- that: "has_text"
text: "Uniquely mapped reads number |\t871202"
- that: "has_text"
text: "Number of reads mapped to multiple loci |\t91809"
text: "Number of reads mapped to multiple loci |\t91808"
mapped-reads:
element_tests:
GSM461177:
Expand All @@ -37,7 +39,7 @@
cutadapt:
asserts:
has_text:
text: "GSM461177\t4.0\t1057657\t25033\t6191\t1051466\t39133309\t1439589\t37547108\t4.053327051898423"
text: "GSM461177\t4.4\t1057657\t25033\t6191\t1051466\t39133309\t1439589\t37547108\t4.053327051898423"
general_stats:
asserts:
has_text:
Expand All @@ -48,8 +50,8 @@
n: 4
star:
asserts:
has_text:
text: "GSM461177\t1051466.0\t35.0\t871202.0\t82.86\t35.4\t51184.0\t50995.0\t50810.0\t343.0\t12.0\t19.0\t0.48\t0.0\t1.48\t0.0\t1.36\t91809.0\t8.73\t34515.0\t3.28\t0.0\t4.76\t0.37\t0\t50050\t3890"
has_text_matching:
expression: "GSM461177\t1051466.0\t35.0\t871202.0\t82.86\t35.4\t51184.0\t50995.0\t50810.0\t343.0\t12.0\t19.0\t0.48\t0.0\t1.48\t0.0\t1.36\t9180[89].0\t8.73\t34515.0\t3.28\t0.0\t4.76\t0.37\t0\t5005[01]\t3890"
MultiQC webpage:
asserts:
- that: "has_text"
Expand All @@ -72,33 +74,37 @@
asserts:
has_text:
text: "FBgn0010247\t14"
transcripts_expression:
transcripts_expression_cufflinks:
element_tests:
GSM461177:
asserts:
has_text:
text: "FBtr0078104\t-\t-\tFBgn0031217\tCG11377\t-\tchr2L:102379-104142\t1583\t0.626702\t18.291\t9.78604\t26.796\tOK"
genes_expression:
text: "FBtr0078104\t-\t-\tFBgn0031217\tCG11377\t-\tchr2L:102379-104142\t1583\t0.626702\t18.291\t9.78605\t26.796\tOK"
genes_expression_cufflinks:
element_tests:
GSM461177:
asserts:
has_text_matching:
expression: "FBgn0031217\t-\t-\tFBgn0031217\tCG11377\t-\tchr2L:102379-104142\t-\t-\t32.1016\t22.1771\t42.02[0-9]*\tOK"
genes_expression_stringtie:
element_tests:
GSM461177:
asserts:
has_text:
text: "FBgn0031217\t-\t-\tFBgn0031217\tCG11377\t-\tchr2L:102379-104142\t-\t-\t32.1015\t22.1771\t42.0259\tOK"
text: "FBgn0031217\tCG11377\tchr2L\t+\t102380\t104142\t0.994315\t32.391769\t56.255165"
both strands coverage:
element_tests:
GSM461177:
has_size:
value: 6075761
delta: 600000
negative strand coverage:
stranded coverage:
element_tests:
GSM461177:
GSM461177_reverse:
has_size:
value: 3103918
delta: 300000
positive strand coverage:
element_tests:
GSM461177:
GSM461177_forward:
has_size:
value: 3103918
delta: 300000
Loading

0 comments on commit 4b8a94c

Please sign in to comment.