2.2. Read-level Quality Controls#
LongRNAqc+ is a workflow intended to look at base reads quality rather than collapsed reads, and to easily compare multiple samples on Terra. Taking an aligned BAM as input for a sample, it runs a long-read adapted version of RNAqc<>, SQANTI3, and optionally IsoQuant.
Once multiple samples have been processed, a downstream workflow can be run on a selection of samples to generate a comparison report based on the Sqanti3 outputs.
Main workflow: LongRNAqcPlusFromBAM#
Workflow configuration for runnning the main workflow over cloud platforms supporting Cromwell like Terra can be found here:-
Dockstore : LongRNAqcPlusFromBAM.wdlGithub: LongRNAqcPlusFromBAMTest Data can be found here (public, requester-pays) : (add download link from github or gs here)
Input arguments for LongRNAqcPlusFromBAM
Option name |
example value |
description |
|---|---|---|
sampleName |
this.sample_name |
Replace “sample_name” with the column that contains the name of the samples in the sample table. |
inputBAM |
this.sorted_BAM |
Replace “sorted_BAM” with the column that contains the path to the sorted BAM alignment in the sample table. |
inputBAMIndex |
this.sorted_BAM_index |
Replace “sorted_BAM_index” with the column that contains the path to the sorted BAM alignment index in the sample table. |
chromosomesList |
“chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10, chr11,chr12,chr13,chr14,chr15,chr16,chr17,chr18, chr19,chr20,chr21,chr22,chr23,chrX,chrY” |
Comma-separated list of chromosome names as named in the reference you used for the alignments and provide as input in this workflow. Any read aligning outside of these chromosomes will be filtered. |
dataType |
“pacbio_ccs” |
Argument of the same name in IsoQuant, one of “assembly”, “pacbio_ccs”, “nanopore”. |
allowNonPrimary |
FALSE |
(true/false) Whether to process non primary alignments as additional duplicate reads for the Sqanti3 classification. |
BAMToGTFConversionMethod |
“cDNACupcake” |
One of “cDNACupcake” or “CTAT-LR”. Defines which tool is used for the BAM to GTF conversion to provide a GTF as input to Sqanti3. |
cagePeak |
“refs/refTSS/refTSS_v4.1_human_coordinate.hg38.bed” |
Reference CAGE peak file from refTSS specific to the organism. Hg38 and mm39 are available in the mdl-refs buckets. |
polyAMotifs |
“refs/polyA_motifs/mouse_and_human.polyA_motif.txt” |
File with a list of known polyA motifs in Human and Mouse (one entry per line). |
referenceFasta |
“refs/GRCh38/GRCh38_no_alt.fa” |
Reference FASTA file for the assembly. |
referenceGTF |
“refs/GRCh38/GRCh38.gencode.v39.annotation.gtf” |
Reference GTF file for the assembly |
referenceGTF_DB |
“refs/GRCh38/GRCh38.gencode.v39.annotation.db” |
Optional argument. DB file generated from the referenceGTF file by IsoQuant. If not provided, will be generated by the workflow. |
collapsedReferenceGTF |
“refs/GRCh38/GRCh38.gencode.v39.collapsed.gtf” |
Reference GTF file for the assembly collapsed with [collapse_annotation.py](broadinstitute/gtex-pipeline) for LongRNAqc. |
LongRNAqc+ Plotting#
Workflow configuration for runnning LongRNAqc+ on Terra can be found here:-
Dockstore : LongRNAqcPlotting:mainGithub: LongRNAqcPlotting.wdlTest Data can be found here (public, requester-pays) : add file path
Example of input arguments for LongRNAqc+ workflow for alignment with human ref genome
1{
2 "LongRNAqcPlotting.classificationFile":"${this.sqantiClassificationTSV}",
3 "LongRNAqcPlotting.junctionFile":"${this.sqantiJunctionsTSV}",
4 "LongRNAqcPlotting.includeSaturation":"${false}",
5 "LongRNAqcPlotting.outputPrefix":"LongRNAqcPlots",
6 "LongRNAqcPlotting.sampleName":"${this.samples.sample_id}"
7 }
Example of plots generated as a part of the output_report.pdf populated in `QC_plots` field
Fig. 4 Normalized transcript length distriubtions - FS# |
Fig. 5 Normalized transcript length distriubtions - NIC# |
Fig. 6 Isoform Distribution across SQANTI Structural Categories# |
Fig. 7 Isoform Distribution Across FSM’s and Samples# |