@prefix dcterms: .
@prefix np: .
@prefix npx: .
@prefix ns1: .
@prefix orcid: .
@prefix prov: .
@prefix rdfs: .
@prefix schema: .
@prefix sub: .
@prefix this: .
@prefix xsd: .
sub:Head {
this: a np:Nanopublication;
np:hasAssertion sub:assertion;
np:hasProvenance sub:provenance;
np:hasPublicationInfo sub:pubinfo .
}
sub:assertion {
sub:config-1 dcterms:identifier "config.yml";
schema:text """samples: samples.csv
ref:
species: \"Drosophila melanogaster\"
genome: \"\"
annotation: \"\"
accession: \"GCF_000001215.4\"
ensembl_species: \"\" # e.g., \"homo_sapiens\"
build: \"\" # e.g., \"GRCh38\"
release: \"\" # e.g., \"105\"
read_filter:
min_length: 200
minimap2:
index_opts: \"\"
opts: \"\"
maximum_secondary: 100
secondary_score_ratio: 1.0
samtools:
samtobam_opts: \"-b\"
bamsort_opts: \"\"
bamindex_opts: \"\"
bamstats_opts: \"\"
quant:
salmon_libtype: \"U\"
deseq2:
fit_type: \"\"
design_factors:
- \"condition\"
lfc_null: 1.0
alt_hypothesis: \"greaterAbs\"
point_width: 20
mincount: 10
alpha: 0.05
threshold_plot: 10
colormap: \"Blues\"
figtype: \"png\"
batch_effect:
- \"\"
isoform_analysis:
FLAIR: true
qscore: 1
exp_thresh: 10
col_opts: \"--annotation_reliant generate --generate_map --stringent\"
protein_annotation:
lambda: false
uniref: \"https://ftp.imp.fu-berlin.de/pub/lambda/index/lambda3/gen_0/uniref50_20230713.lba.gz\"
num_matches: 3""" .
sub:dataset a schema:Dataset;
ns1:describesWorkflow "RAjHDlPDghZzc9ZvQ3uJQNJ9Jd_KAYzZt7dk5PXKgjRyE";
ns1:description """This workflow performs differential expression analysis of RNA-seq data obtained from Oxford Nanopore long-read sequencing technology.
First a transcriptome FASTA is constructed using gffread [https://github.com/gpertea/gffread]. Reads are then mapped to the transcriptome with the long-read optimized alignment tool minimap2 [https://github.com/lh3/minimap2].
Next quantification is performed using salmon [https://github.com/COMBINE-lab/salmon] before normalization and differential expression analysis are conducted by PyDESeq2 [https://github.com/owkin/PyDESeq2].
The workflow can optionally analyze splice-isoforms through integrating the FLAIR [https://github.com/BrooksLabUCSC/flair] workflow.
Additionaly, NanoPlot [https://github.com/wdecoster/NanoPlot] is employed to analyze initial sequencing data and QualiMap [https://github.com/EagleGenomics-cookbooks/QualiMap] is used to evaluate mapping results.""";
ns1:generatedAt "2026-04-17T15:19:46.851430+00:00"^^xsd:dateTime;
ns1:hasConfigurationSection sub:workflow-configuration .
sub:job-1-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode10";
ns1:ruleName "alignment_qa" .
sub:job-10-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode13/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:job-11-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode15/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:job-12-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode16/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:job-13-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode10_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-14-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode11_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-15-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode12_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-16-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode13_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-17-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode15_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-18-bam_sort a ns1:WorkflowJob;
ns1:hasOutput "sorted_alignments/barcode16_sorted.bam";
ns1:ruleName "bam_sort" .
sub:job-19-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode10.txt";
ns1:ruleName "bam_stats" .
sub:job-2-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode11";
ns1:ruleName "alignment_qa" .
sub:job-20-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode11.txt";
ns1:ruleName "bam_stats" .
sub:job-21-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode12.txt";
ns1:ruleName "bam_stats" .
sub:job-22-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode13.txt";
ns1:ruleName "bam_stats" .
sub:job-23-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode15.txt";
ns1:ruleName "bam_stats" .
sub:job-24-bam_stats a ns1:WorkflowJob;
ns1:hasOutput "QC/bamstats/barcode16.txt";
ns1:ruleName "bam_stats" .
sub:job-25-build_flair_genome_index a ns1:WorkflowJob;
ns1:hasOutput "index/flair_genome_index.mmi";
ns1:ruleName "build_flair_genome_index" .
sub:job-26-build_minimap_index a ns1:WorkflowJob;
ns1:hasOutput "index/transcriptome_index.mmi";
ns1:ruleName "build_minimap_index" .
sub:job-27-correct_transcriptome a ns1:WorkflowJob;
ns1:hasOutput "transcriptome/corrected_transcriptome.fa";
ns1:ruleName "correct_transcriptome" .
sub:job-28-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode10_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-29-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode11_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-3-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode12";
ns1:ruleName "alignment_qa" .
sub:job-30-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode12_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-31-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode13_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-32-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode15_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-33-count_reads a ns1:WorkflowJob;
ns1:hasOutput "counts/barcode16_salmon/quant.sf";
ns1:ruleName "count_reads" .
sub:job-34-deseq2 a ns1:WorkflowJob;
ns1:hasOutput "de_analysis/condition_wt_vs_mt_MA_plot.svg", "de_analysis/condition_wt_vs_mt_count_heatmap.svg",
"de_analysis/condition_wt_vs_mt_dispersion_plot.svg", "de_analysis/condition_wt_vs_mt_l2fc.tsv",
"de_analysis/condition_wt_vs_mt_sample_heatmap.svg", "de_analysis/condition_wt_vs_mt_top_count_heatmap.svg";
ns1:ruleName "deseq2" .
sub:job-35-deseq2_init a ns1:WorkflowJob;
ns1:hasOutput "de_analysis/all.rds", "de_analysis/normcounts.tsv";
ns1:ruleName "deseq2_init" .
sub:job-36-download_ncbi_annotation a ns1:WorkflowJob;
ns1:hasOutput "references/ncbi_dataset_annotation.zip";
ns1:ruleName "download_ncbi_annotation" .
sub:job-37-download_ncbi_genome a ns1:WorkflowJob;
ns1:hasOutput "references/ncbi_dataset_genome.zip";
ns1:ruleName "download_ncbi_genome" .
sub:job-38-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode10_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-39-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode11_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-4-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode13";
ns1:ruleName "alignment_qa" .
sub:job-40-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode12_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-41-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode13_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-42-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode15_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-43-filter_reads a ns1:WorkflowJob;
ns1:hasOutput "filter/barcode16_filtered.fq";
ns1:ruleName "filter_reads" .
sub:job-44-flair_align a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/align/flair.bam", "iso_analysis/align/flair.bam.bai",
"iso_analysis/align/flair.bed";
ns1:ruleName "flair_align" .
sub:job-45-flair_collapse a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/collapse/flair.isoforms.bed", "iso_analysis/collapse/flair.isoforms.fa";
ns1:ruleName "flair_collapse" .
sub:job-46-flair_correct a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/align/flair_all_corrected.bed";
ns1:ruleName "flair_correct" .
sub:job-47-flair_diffexp a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/diffexp/genes_deseq2_QCplots_wt_v_mt.pdf", "iso_analysis/diffexp/genes_deseq2_wt_v_mt.tsv",
"iso_analysis/diffexp/isoforms_deseq2_QCplots_wt_v_mt.pdf", "iso_analysis/diffexp/isoforms_deseq2_wt_v_mt.tsv",
"iso_analysis/diffexp/isoforms_drimseq_wt_v_mt.tsv";
ns1:ruleName "flair_diffexp" .
sub:job-48-flair_plot_isoforms a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/plots";
ns1:ruleName "flair_plot_isoforms" .
sub:job-49-flair_quantify a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/quantify/flair.counts.tsv";
ns1:ruleName "flair_quantify" .
sub:job-5-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode15";
ns1:ruleName "alignment_qa" .
sub:job-50-genome_to_transcriptome a ns1:WorkflowJob;
ns1:hasOutput "references/genomic.fa.fai", "transcriptome/transcriptome.fa";
ns1:ruleName "genome_to_transcriptome" .
sub:job-51-get_annotation a ns1:WorkflowJob;
ns1:hasOutput "references/genomic.gff";
ns1:ruleName "get_annotation" .
sub:job-52-get_genome a ns1:WorkflowJob;
ns1:hasOutput "references/genomic.fa";
ns1:ruleName "get_genome" .
sub:job-53-gff_to_gtf a ns1:WorkflowJob;
ns1:hasOutput "references/standardized_genomic.gtf";
ns1:ruleName "gff_to_gtf" .
sub:job-54-iso_analysis_report a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/report/isoforms", "iso_analysis/report/usage";
ns1:ruleName "iso_analysis_report" .
sub:job-55-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode10.sam";
ns1:ruleName "map_reads" .
sub:job-56-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode11.sam";
ns1:ruleName "map_reads" .
sub:job-57-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode12.sam";
ns1:ruleName "map_reads" .
sub:job-58-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode13.sam";
ns1:ruleName "map_reads" .
sub:job-59-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode15.sam";
ns1:ruleName "map_reads" .
sub:job-6-alignment_qa a ns1:WorkflowJob;
ns1:hasOutput "QC/qualimap/barcode16";
ns1:ruleName "alignment_qa" .
sub:job-60-map_reads a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode16.sam";
ns1:ruleName "map_reads" .
sub:job-61-merge_read_counts a ns1:WorkflowJob;
ns1:hasOutput "merged/all_counts.tsv";
ns1:ruleName "merge_read_counts" .
sub:job-62-reads_manifest a ns1:WorkflowJob;
ns1:hasOutput "iso_analysis/reads_manifest.tsv";
ns1:ruleName "reads_manifest" .
sub:job-63-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode10.bam";
ns1:ruleName "sam_to_bam" .
sub:job-64-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode11.bam";
ns1:ruleName "sam_to_bam" .
sub:job-65-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode12.bam";
ns1:ruleName "sam_to_bam" .
sub:job-66-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode13.bam";
ns1:ruleName "sam_to_bam" .
sub:job-67-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode15.bam";
ns1:ruleName "sam_to_bam" .
sub:job-68-sam_to_bam a ns1:WorkflowJob;
ns1:hasOutput "alignments/barcode16.bam";
ns1:ruleName "sam_to_bam" .
sub:job-69-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode10/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-7-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode10/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:job-70-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode11/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-71-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode12/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-72-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode13/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-73-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode15/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-74-sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/barcode16/NanoPlot-report.html";
ns1:ruleName "sample_qa_plot" .
sub:job-75-standardize_gff a ns1:WorkflowJob;
ns1:hasOutput "references/standardized_genomic.gff";
ns1:ruleName "standardize_gff" .
sub:job-76-total_sample_qa_plot a ns1:WorkflowJob;
ns1:hasOutput "NanoPlot/NanoPlot-report.html";
ns1:ruleName "total_sample_qa_plot" .
sub:job-77-transcriptid_to_gene a ns1:WorkflowJob;
ns1:hasOutput "merged/all_counts_gene.tsv", "merged/transcriptid_to_gene_plot.svg";
ns1:ruleName "transcriptid_to_gene" .
sub:job-8-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode11/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:job-9-alignment_qa_report a ns1:WorkflowJob;
ns1:hasOutput "qualimap/barcode12/qualimapReport.html";
ns1:ruleName "alignment_qa_report" .
sub:workflow-configuration rdfs:label "from workflow configuration";
ns1:hasConfigurationFile sub:config-1 .
}
sub:provenance {
sub:assertion prov:generatedAtTime "2026-04-17T17:19:48.418353"^^xsd:dateTime;
prov:wasAttributedTo orcid:0000-0003-2408-7588 .
}
sub:pubinfo {
this: dcterms:created "2026-04-17T15:19:46.851430+00:00"^^xsd:dateTime;
dcterms:creator orcid:0000-0003-2408-7588;
npx:hasNanopubType schema:Dataset;
npx:signedBy orcid:0000-0003-2408-7588;
rdfs:label "Snakemake workflow metadata: RAjHDlPDghZzc9ZvQ3uJQNJ9Jd_KAYzZt7dk5PXKgjRyE";
prov:generatedAtTime "2026-04-17T17:19:48.418353"^^xsd:dateTime;
prov:wasAttributedTo orcid:0000-0003-2408-7588 .
sub:sig npx:hasAlgorithm "RSA";
npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkOFUnnRCp/k9/0ugvx8zQJ+Qc675W1Ug6F839+xvJ2QsSBu4iOJ1O2kJCmb3tALp3gJOt8sffRot3VrfY1hbgXxL7BVtDsfHHmXVff4YCeg5Ycdn5cDpLawDpAdYwMhK0LwIkZ3fwH9/o9JniYKXLV/jpF9bMKyiw/6tqlCHaMW1r8gzZzoxVIAakwvlABoY0iNoToLTlBRXEI4mLUNjDMnMwQgfh1KXMxMruNjW3wJyeDEIfa2ooAt0E4CRM9pkrEb37NzD9Jz8aSUFFY6BvIxF4ixK7rm6IUDvQ76LqXkEmgSeRv1kw7gnCe9wV/wHd0ZeW4heoBXmLHX3MvHfjwIDAQAB";
npx:hasSignature "EY7zqSpVioJESS2rVe69TiAJj50TpZXJWXG5lTJvxYfi2zJb7c7N9rwA52maMFZsqvY2/AfqBO6fRcjQ5hDCiFisBtqcXw9rCU/8Oia9HQo/+wWLYKP4IbYX144l+IRLIhiNAOsYa/S+aG+gbCRaSwW0Yeem99qx2L80lDsKvcEs/Vb7LxgBNj08lYGYzZ4PucmUGY6l9/LX3bBPGH8MCaPxCjO2s+QS3G4PLVo+2KUR+zrV+BDlKPc+tnaB44fPwCIQO9L9QXJiAFCyCS9lhXCocCXW2g/2LIlut8QSR4RyVZSJKcRPEv/hGFf9SkQ+ca9v6cK2NUw4TAI1jHTBeQ==";
npx:hasSignatureTarget this:;
npx:signedBy orcid:0000-0003-2408-7588 .
}