QC + Mapping + Counting (single+paired) - Ref Based RNA Seq - Transcriptomics - GTN

transcriptomics-ref-based/qc-mapping-counting-paired-and-single

Author(s)
Bérénice Batut, Mallory Freeberg, Mo Heydarian, Anika Erxleben, Pavankumar Videm, Clemens Blank, Maria Doyle, Nicola Soranzo, Peter van Heusden, Lucille Delisle
version Version
7
last_modification Last updated
Nov 24, 2025
license License
MIT
galaxy-tags Tags
transcriptomics

Features
Tutorial
hands_on Reference-based RNA-Seq data analysis
workflow Other workflows associated with this material
Workflow Testing
Tests: ✅
Results: Not yet automated
FAIRness purl PURL
https://gxy.io/GTN:W00245
RO-Crate logo with flask Download Workflow RO-Crate Workflowhub cloud with gears logo View on WorkflowHub
Launch in Tutorial Mode question
galaxy-download Download
flowchart TD
  0["ℹ️ Input Collection\nsingle fastqs"];
  style 0 stroke:#2c3143,stroke-width:4px;
  1["ℹ️ Input Collection\npaired fastqs"];
  style 1 stroke:#2c3143,stroke-width:4px;
  2["ℹ️ Input Dataset\nDrosophila_melanogaster.BDGP6.32.109_UCSC.gtf.gz"];
  style 2 stroke:#2c3143,stroke-width:4px;
  3["Cutadapt: remove bad quality bp"];
  0 -->|output| 3;
  4["Flatten paired collection for Falco"];
  1 -->|output| 4;
  5["Cutadapt"];
  1 -->|output| 5;
  6["STAR: map single reads"];
  2 -->|output| 6;
  3 -->|out1| 6;
  7["Merge fastqs for Falco"];
  4 -->|output| 7;
  0 -->|output| 7;
  8["Merge Cutadapt reports"];
  5 -->|report| 8;
  3 -->|report| 8;
  9["STAR: map paired reads"];
  2 -->|output| 9;
  5 -->|out_pairs| 9;
  10["count reads per gene for SR"];
  6 -->|mapped_reads| 10;
  2 -->|output| 10;
  11["Falco"];
  7 -->|output| 11;
  12["Combine cutadapt results"];
  8 -->|output| 12;
  cab760db-5c9d-4a3c-b768-998bfbac6b57["Output\nmultiqc_cutadapt_html"];
  12 --> cab760db-5c9d-4a3c-b768-998bfbac6b57;
  style cab760db-5c9d-4a3c-b768-998bfbac6b57 stroke:#2c3143,stroke-width:4px;
  13["Merge STAR logs"];
  9 -->|output_log| 13;
  6 -->|output_log| 13;
  14["Merge STAR counts"];
  6 -->|reads_per_gene| 14;
  9 -->|reads_per_gene| 14;
  15["Merge STAR BAM"];
  6 -->|mapped_reads| 15;
  9 -->|mapped_reads| 15;
  802017f4-fb1a-4243-b50d-2ed46f746f11["Output\nSTAR_BAM"];
  15 --> 802017f4-fb1a-4243-b50d-2ed46f746f11;
  style 802017f4-fb1a-4243-b50d-2ed46f746f11 stroke:#2c3143,stroke-width:4px;
  16["merge coverage unique strand 1"];
  6 -->|signal_unique_str1| 16;
  9 -->|signal_unique_str1| 16;
  17["merge coverage unique strand 2"];
  6 -->|signal_unique_str2| 17;
  9 -->|signal_unique_str2| 17;
  18["count fragments per gene for PE"];
  9 -->|mapped_reads| 18;
  2 -->|output| 18;
  1527b5d7-1681-4934-9d9e-3a5f86ae0fee["Output\nfeatureCounts_gene_length"];
  18 --> 1527b5d7-1681-4934-9d9e-3a5f86ae0fee;
  style 1527b5d7-1681-4934-9d9e-3a5f86ae0fee stroke:#2c3143,stroke-width:4px;
  19["Combine FastQC results"];
  11 -->|text_file| 19;
  791893e6-6e65-49fe-b71f-4a7b6482e0ce["Output\nmultiqc_falco_html"];
  19 --> 791893e6-6e65-49fe-b71f-4a7b6482e0ce;
  style 791893e6-6e65-49fe-b71f-4a7b6482e0ce stroke:#2c3143,stroke-width:4px;
  20["Combine STAR Results"];
  13 -->|output| 20;
  204e3f6c-6f54-46f0-b07c-1f31113265e7["Output\nmultiqc_star_html"];
  20 --> 204e3f6c-6f54-46f0-b07c-1f31113265e7;
  style 204e3f6c-6f54-46f0-b07c-1f31113265e7 stroke:#2c3143,stroke-width:4px;
  21["🛠️ Subworkflow\ncount STAR"];
  style 21 fill:#edd,stroke:#900,stroke-width:4px;
  2 -->|output| 21;
  14 -->|output| 21;
  7b7c698b-4808-4b45-adf1-686f8d273d18["Output\nGene length"];
  21 --> 7b7c698b-4808-4b45-adf1-686f8d273d18;
  style 7b7c698b-4808-4b45-adf1-686f8d273d18 stroke:#2c3143,stroke-width:4px;
  5fee8aff-4023-43f1-a653-f5af5357d798["Output\ncounts_from_star"];
  21 --> 5fee8aff-4023-43f1-a653-f5af5357d798;
  style 5fee8aff-4023-43f1-a653-f5af5357d798 stroke:#2c3143,stroke-width:4px;
  bd3388e6-5b45-4fdc-9780-3efd1c34ebf8["Output\ncounts_from_star_sorted"];
  21 --> bd3388e6-5b45-4fdc-9780-3efd1c34ebf8;
  style bd3388e6-5b45-4fdc-9780-3efd1c34ebf8 stroke:#2c3143,stroke-width:4px;
  22["Run JBrowse2 to check BAM"];
  15 -->|output| 22;
  2 -->|output| 22;
  23["🛠️ Subworkflow\nmore QC"];
  style 23 fill:#edd,stroke:#900,stroke-width:4px;
  2 -->|output| 23;
  15 -->|output| 23;
  3ea82568-5698-49a7-88fe-91381070aac2["Output\nmultiqc_dup_html"];
  23 --> 3ea82568-5698-49a7-88fe-91381070aac2;
  style 3ea82568-5698-49a7-88fe-91381070aac2 stroke:#2c3143,stroke-width:4px;
  b306cb12-a275-4c6d-b609-47fdc208864b["Output\nmultiqc_reads_per_chrom_html"];
  23 --> b306cb12-a275-4c6d-b609-47fdc208864b;
  style b306cb12-a275-4c6d-b609-47fdc208864b stroke:#2c3143,stroke-width:4px;
  3375d63c-cdc3-4fbb-8a55-6f504c934918["Output\nmultiqc_gene_body_cov_html"];
  23 --> 3375d63c-cdc3-4fbb-8a55-6f504c934918;
  style 3375d63c-cdc3-4fbb-8a55-6f504c934918 stroke:#2c3143,stroke-width:4px;
  f2eed352-ca21-4d65-8810-f5a1d3c282b4["Output\nmultiqc_read_distrib_html"];
  23 --> f2eed352-ca21-4d65-8810-f5a1d3c282b4;
  style f2eed352-ca21-4d65-8810-f5a1d3c282b4 stroke:#2c3143,stroke-width:4px;
  24["🛠️ Subworkflow\nDetermine strandness"];
  style 24 fill:#edd,stroke:#900,stroke-width:4px;
  15 -->|output| 24;
  2 -->|output| 24;
  16 -->|output| 24;
  17 -->|output| 24;
  14 -->|output| 24;
  9727824a-3eb2-4430-92d1-b3c40c3041d1["Output\npgt"];
  24 --> 9727824a-3eb2-4430-92d1-b3c40c3041d1;
  style 9727824a-3eb2-4430-92d1-b3c40c3041d1 stroke:#2c3143,stroke-width:4px;
  105313d8-e31a-405d-8fcd-cc5fd93275e2["Output\nmultiqc_star_counts_html"];
  24 --> 105313d8-e31a-405d-8fcd-cc5fd93275e2;
  style 105313d8-e31a-405d-8fcd-cc5fd93275e2 stroke:#2c3143,stroke-width:4px;
  fb810859-f2d0-43f8-ac7c-5c714c5c6805["Output\ninferexperiment"];
  24 --> fb810859-f2d0-43f8-ac7c-5c714c5c6805;
  style fb810859-f2d0-43f8-ac7c-5c714c5c6805 stroke:#2c3143,stroke-width:4px;
  25["merge counts from featureCounts"];
  10 -->|output_short| 25;
  18 -->|output_short| 25;
  c82388f8-cb09-4fdf-8a0e-03cdad579f37["Output\nfeatureCounts"];
  25 --> c82388f8-cb09-4fdf-8a0e-03cdad579f37;
  style c82388f8-cb09-4fdf-8a0e-03cdad579f37 stroke:#2c3143,stroke-width:4px;
  26["merge featureCounts summary"];
  10 -->|output_summary| 26;
  18 -->|output_summary| 26;
  27["Sort counts to get gene with highest count on feature Counts"];
  25 -->|output| 27;
  6aeb4dd1-445f-4c66-b1ce-4bb8faac53db["Output\nfeatureCounts_sorted"];
  27 --> 6aeb4dd1-445f-4c66-b1ce-4bb8faac53db;
  style 6aeb4dd1-445f-4c66-b1ce-4bb8faac53db stroke:#2c3143,stroke-width:4px;
  28["Combine read asignments statistics"];
  26 -->|output| 28;
  fc72242a-f23c-4ceb-9a8b-5280343ea5d6["Output\nmultiqc_featureCounts_html"];
  28 --> fc72242a-f23c-4ceb-9a8b-5280343ea5d6;
  style fc72242a-f23c-4ceb-9a8b-5280343ea5d6 stroke:#2c3143,stroke-width:4px;

Inputs

Input Label
Input dataset collection single fastqs
Input dataset collection paired fastqs
Input dataset Drosophila_melanogaster.BDGP6.32.109_UCSC.gtf.gz

Outputs

From Output Label
toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.27+galaxy4 MultiQC Combine cutadapt results
__MERGE_COLLECTION__ Merge collections Merge STAR BAM
toolshed.g2.bx.psu.edu/repos/iuc/featurecounts/featurecounts/2.1.1+galaxy0 featureCounts count fragments per gene for PE
toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.27+galaxy4 MultiQC Combine FastQC results
toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.27+galaxy4 MultiQC Combine STAR Results
count STAR
more QC
Determine strandness
__MERGE_COLLECTION__ Merge collections merge counts from featureCounts
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy2 Sort Sort counts to get gene with highest count on feature Counts
toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.27+galaxy4 MultiQC Combine read asignments statistics

Tools

Tool Links
Cut1
__FLATTEN__
__MERGE_COLLECTION__
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy2
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.5+galaxy2
toolshed.g2.bx.psu.edu/repos/devteam/picard/picard_MarkDuplicates/3.1.1.0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/devteam/samtools_idxstats/samtools_idxstats/2.0.7
toolshed.g2.bx.psu.edu/repos/fubar/jbrowse2/jbrowse2/3.6.5+galaxy1
toolshed.g2.bx.psu.edu/repos/iuc/falco/falco/1.2.4+galaxy0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/featurecounts/featurecounts/2.1.1+galaxy0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/gtftobed12/gtftobed12/357 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/length_and_gc_content/length_and_gc_content/0.1.2 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.27+galaxy4
toolshed.g2.bx.psu.edu/repos/iuc/pygenometracks/pygenomeTracks/3.9+galaxy0
toolshed.g2.bx.psu.edu/repos/iuc/rgrnastar/rna_star/2.7.11b+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.2+galaxy0
toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/rseqc_geneBody_coverage/5.0.3+galaxy0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/rseqc_infer_experiment/5.0.3+galaxy0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/rseqc_read_distribution/5.0.3+galaxy0 View in ToolShed

To use these workflows in Galaxy you can either click the links to download the workflows, or you can right-click and copy the link to the workflow which can be used in the Galaxy form to import workflows.

Importing into Galaxy

Below are the instructions for importing these workflows directly into your Galaxy server of choice to start using them!
Hands On: Importing a workflow
  1. Click on galaxy-workflows-activity Workflows in the Galaxy activity bar (on the left side of the screen, or in the top menu bar of older Galaxy instances). You will see a list of all your workflows
  2. Click on galaxy-upload Import at the top-right of the screen
  3. Provide your workflow
    • Option 1: Paste the URL of the workflow into the box labelled “Archived Workflow URL”
    • Option 2: Upload the workflow file in the box labelled “Archived Workflow File”
  4. Click the Import workflow button

Below is a short video demonstrating how to import a workflow from GitHub using this procedure:

Video: Importing a workflow from URL

Version History

Version Commit Time Comments
12 de4b69f9e 2025-11-14 16:23:38 also update the paired and single workflow
11 f81845b85 2025-01-21 10:07:17 Use Falco instead of FastQC in ref-based tutorial
10 9a19075e2 2024-10-18 13:22:04 Update ref-based workflows
9 a1251f286 2024-07-05 09:38:54 Removed 'comments' tags
8 d804d52ac 2024-07-05 09:22:56 Updated tools in 'QC + Mapping + Counting (single+paired)' workflow
7 41dead43e 2023-05-02 10:31:07 add mo orcid to workflows
6 36eb5cf82 2023-04-28 17:26:00 update workflows and tests
5 8fc9c9026 2023-04-25 07:46:15 add creators and licence to workflows
4 dc21d9ddb 2023-04-22 08:29:08 update images and results, rearrange workflow for part1
3 9921a8623 2023-04-21 12:37:10 Update first part of the tutorial
2 4d2f611a6 2022-04-28 15:20:51 subset BAM before gene body coverage
1 8bf6877e4 2022-04-15 11:16:13 add workflow for PE and SE in parallel

For Admins

Installing the workflow tools

wget https://training.galaxyproject.org/training-material/topics/transcriptomics/tutorials/ref-based/workflows/qc-mapping-counting-paired-and-single.ga -O workflow.ga
workflow-to-tools -w workflow.ga -o tools.yaml
shed-tools install -g GALAXY -a API_KEY -t tools.yaml
workflow-install -g GALAXY -a API_KEY -w workflow.ga --publish-workflows