@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 . }