{"@id":"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","retrievedFrom":{"repoUrl":"https://github.com/hubmapconsortium/salmon-rnaseq.git","branch":"81e4484986251c48e3edbf5e1f141ab68677b8bd","path":"pipeline.cwl","packedId":null,"type":"GITHUB","rawUrl":"https://raw.githubusercontent.com/hubmapconsortium/salmon-rnaseq/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","url":"https://github.com/hubmapconsortium/salmon-rnaseq/blob/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl"},"retrievedOn":"2026-09-25T19:52:40.562+00:00","lastCommit":"81e4484986251c48e3edbf5e1f141ab68677b8bd","label":"scRNA-seq pipeline using Salmon and Alevin","inputs":{"assay":{"label":"scRNA-seq assay","type":"String"},"img_dir":{"label":"Directory containing TIFF image data (for Visium assay)","type":"Directory (Optional)"},"threads":{"label":"Number of threads for Salmon","type":"Integer"},"organism":{"type":"String (Optional)"},"fastq_dir":{"label":"Directory containing FASTQ files","type":"Directory[]"},"barcode_file":{"type":"File (Optional)"},"metadata_dir":{"label":"Directory containing metadata, including gpr slide file (for Visium assay)","type":"Directory (Optional)"},"keep_all_barcodes":{"type":"Boolean (Optional)"},"expected_cell_count":{"type":"Integer (Optional)"}},"outputs":{"qc_report":{"label":"Quality control report in JSON format","type":"File"},"umap_plot":{"label":"UMAP dimensionality reduction plot","type":"File"},"fastqc_dir":{"label":"Directory of FastQC output files, mirroring input directory structure","type":"Directory[]"},"sdata_zarr":{"label":"SpatialData object serialized in zarr format","type":"File (Optional)"},"ripley_plot":{"type":"File (Optional)"},"spatial_plot":{"label":"Slide-seq bead plot, colored by Leiden cluster","type":"File (Optional)"},"salmon_output":{"label":"Full output of `salmon alevin`","type":"Directory"},"deepscence_plot":{"type":"File"},"dispersion_plot":{"label":"Gene expression dispersion plot","type":"File"},"raw_count_matrix":{"label":"Unfiltered count matrix from Alevin, converted to H5AD, with intronic counts as separate columns","type":"File (Optional)"},"count_matrix_h5ad":{"label":"Unfiltered count matrix from Alevin, converted to H5AD, spliced and unspliced counts, scenesence scores","type":"File"},"genome_build_json":{"label":"Genome build information in JSON format","type":"File"},"scanpy_qc_results":{"label":"Quality control metrics from Scanpy","type":"File"},"umap_density_plot":{"label":"UMAP dimensionality reduction plot, colored by cell density","type":"File"},"co_occurrence_plot":{"type":"File (Optional)"},"filtered_data_h5ad":{"label":"Full data set of filtered results","doc":"Full data set of filtered results: expression matrix, coordinates in dimensionality-reduced space (PCA and UMAP), cluster assignments via the Leiden algorithm, and marker genes for one cluster vs. rest","type":"File"},"squidpy_spatial_plot":{"type":"File (Optional)"},"scvelo_annotated_h5ad":{"label":"scVelo-annotated h5ad file, including cell RNA velocity","type":"File (Optional)"},"centrality_scores_plot":{"type":"File (Optional)"},"deepscence_binary_plot":{"label":"Umap with coloring by DeepScence binary results","type":"File"},"squidpy_annotated_h5ad":{"type":"File (Optional)"},"interaction_matrix_plot":{"type":"File (Optional)"},"marker_gene_plot_logreg":{"label":"Cluster marker genes, logreg method","type":"File"},"marker_gene_plot_t_test":{"label":"Cluster marker genes, t-test","type":"File"},"deepscence_continuous_plot":{"label":"Umap with coloring by DeepScence scores","type":"File"},"scvelo_embedding_grid_plot":{"label":"scVelo velocity embedding grid plot","type":"File (Optional)"},"neighborhood_enrichment_plot":{"type":"File (Optional)"}},"steps":{"fastqc":{"label":"Runs fastQC on each fastq file in fastq directory","run":"steps/fastqc.cwl","runType":"COMMANDLINETOOL","sources":{"fastqc":{"sourceIDs":["threads"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#fastqc/fastq_dir":{"sourceIDs":["fastq_dir"]}}},"deepscence":{"label":"Identify and score scenescent cells","run":"steps/deepscence.cwl","runType":"COMMANDLINETOOL","sources":{"deepscence":{"sourceIDs":["organism"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#deepscence/h5ad_file":{"sourceIDs":["salmon_quantification"]}}},"scanpy_analysis":{"label":"Dimensionality reduction and clustering","run":"steps/scanpy-analysis.cwl","runType":"COMMANDLINETOOL","sources":{"scanpy_analysis":{"sourceIDs":["deepscence"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#scanpy_analysis/assay":{"sourceIDs":["assay"]}}},"scvelo_analysis":{"label":"RNA velocity analysis via scVelo","run":"steps/scvelo-analysis.cwl","runType":"COMMANDLINETOOL","sources":{"scvelo_analysis":{"sourceIDs":["deepscence"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#scvelo_analysis/assay_name":{"sourceIDs":["assay"]}}},"squidpy_analysis":{"label":"Dimensionality reduction and clustering","run":"steps/squidpy-analysis.cwl","runType":"COMMANDLINETOOL","sources":{"squidpy_analysis":{"sourceIDs":["img_dir"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#squidpy_analysis/assay":{"sourceIDs":["assay"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#squidpy_analysis/h5ad_file":{"sourceIDs":["scanpy_analysis"]}}},"compute_qc_results":{"label":"Compute QC metrics","run":"steps/compute-qc-metrics.cwl","runType":"COMMANDLINETOOL","sources":{"compute_qc_results":{"sourceIDs":["scanpy_analysis"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#compute_qc_results/assay":{"sourceIDs":["assay"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#compute_qc_results/salmon_dir":{"sourceIDs":["salmon_quantification"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#compute_qc_results/primary_matrix_path":{"sourceIDs":["deepscence"]}}},"salmon_quantification":{"label":"Salmon quantification, FASTQ -> H5AD count matrix","run":"steps/salmon-quantification.cwl","runType":"WORKFLOW","sources":{"salmon_quantification":{"sourceIDs":["fastq_dir"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/assay":{"sourceIDs":["assay"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/img_dir":{"sourceIDs":["img_dir"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/threads":{"sourceIDs":["threads"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/organism":{"sourceIDs":["organism"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/barcode_file":{"sourceIDs":["barcode_file"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/metadata_dir":{"sourceIDs":["metadata_dir"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/keep_all_barcodes":{"sourceIDs":["keep_all_barcodes"]},"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl#salmon_quantification/expected_cell_count":{"sourceIDs":["expected_cell_count"]}}}},"cwltoolVersion":"3.1.20230201224320","visualisationDot":"digraph workflow {\n  graph [\n    bgcolor = \"#eeeeee\"\n    color = \"black\"\n    fontsize = \"10\"\n    labeljust = \"left\"\n    clusterrank = \"local\"\n    ranksep = \"0.22\"\n    nodesep = \"0.05\"\n  ]\n  node [\n    fontname = \"Helvetica\"\n    fontsize = \"10\"\n    fontcolor = \"black\"\n    shape = \"record\"\n    height = \"0\"\n    width = \"0\"\n    color = \"black\"\n    fillcolor = \"lightgoldenrodyellow\"\n    style = \"filled\"\n  ];\n  edge [\n    fontname=\"Helvetica\"\n    fontsize=\"8\"\n    fontcolor=\"black\"\n    color=\"black\"\n    arrowsize=\"0.7\"\n  ];\n  subgraph cluster_inputs {\n    rank = \"same\";\n    style = \"dashed\";\n    label = \"Workflow Inputs\";\n    \"barcode_file\" [fillcolor=\"#94DDF4\",label=\"barcode_file\"];\n    \"assay\" [fillcolor=\"#94DDF4\",label=\"scRNA-seq assay\"];\n    \"fastq_dir\" [fillcolor=\"#94DDF4\",label=\"Directory containing FASTQ files\"];\n    \"keep_all_barcodes\" [fillcolor=\"#94DDF4\",label=\"keep_all_barcodes\"];\n    \"threads\" [fillcolor=\"#94DDF4\",label=\"Number of threads for Salmon\"];\n    \"expected_cell_count\" [fillcolor=\"#94DDF4\",label=\"expected_cell_count\"];\n    \"img_dir\" [fillcolor=\"#94DDF4\",label=\"Directory containing TIFF image data (for Visium assay)\"];\n    \"metadata_dir\" [fillcolor=\"#94DDF4\",label=\"Directory containing metadata, including gpr slide file (for Visium assay)\"];\n    \"organism\" [fillcolor=\"#94DDF4\",label=\"organism\"];\n  }\n  subgraph cluster_outputs {\n    rank = \"same\";\n    style = \"dashed\";\n    labelloc = \"b\";\n    label = \"Workflow Outputs\";\n    \"centrality_scores_plot\" [fillcolor=\"#94DDF4\",label=\"centrality_scores_plot\"];\n    \"filtered_data_h5ad\" [fillcolor=\"#94DDF4\",label=\"Full data set of filtered results\"];\n    \"spatial_plot\" [fillcolor=\"#94DDF4\",label=\"Slide-seq bead plot, colored by Leiden cluster\"];\n    \"ripley_plot\" [fillcolor=\"#94DDF4\",label=\"ripley_plot\"];\n    \"squidpy_spatial_plot\" [fillcolor=\"#94DDF4\",label=\"squidpy_spatial_plot\"];\n    \"scvelo_annotated_h5ad\" [fillcolor=\"#94DDF4\",label=\"scVelo-annotated h5ad file, including cell RNA velocity\"];\n    \"deepscence_continuous_plot\" [fillcolor=\"#94DDF4\",label=\"Umap with coloring by DeepScence scores\"];\n    \"co_occurrence_plot\" [fillcolor=\"#94DDF4\",label=\"co_occurrence_plot\"];\n    \"marker_gene_plot_t_test\" [fillcolor=\"#94DDF4\",label=\"Cluster marker genes, t-test\"];\n    \"neighborhood_enrichment_plot\" [fillcolor=\"#94DDF4\",label=\"neighborhood_enrichment_plot\"];\n    \"deepscence_plot\" [fillcolor=\"#94DDF4\",label=\"deepscence_plot\"];\n    \"umap_density_plot\" [fillcolor=\"#94DDF4\",label=\"UMAP dimensionality reduction plot, colored by cell density\"];\n    \"sdata_zarr\" [fillcolor=\"#94DDF4\",label=\"SpatialData object serialized in zarr format\"];\n    \"fastqc_dir\" [fillcolor=\"#94DDF4\",label=\"Directory of FastQC output files, mirroring input directory structure\"];\n    \"count_matrix_h5ad\" [fillcolor=\"#94DDF4\",label=\"Unfiltered count matrix from Alevin, converted to H5AD, spliced and unspliced counts, scenesence scores\"];\n    \"interaction_matrix_plot\" [fillcolor=\"#94DDF4\",label=\"interaction_matrix_plot\"];\n    \"genome_build_json\" [fillcolor=\"#94DDF4\",label=\"Genome build information in JSON format\"];\n    \"deepscence_binary_plot\" [fillcolor=\"#94DDF4\",label=\"Umap with coloring by DeepScence binary results\"];\n    \"squidpy_annotated_h5ad\" [fillcolor=\"#94DDF4\",label=\"squidpy_annotated_h5ad\"];\n    \"raw_count_matrix\" [fillcolor=\"#94DDF4\",label=\"Unfiltered count matrix from Alevin, converted to H5AD, with intronic counts as separate columns\"];\n    \"salmon_output\" [fillcolor=\"#94DDF4\",label=\"Full output of `salmon alevin`\"];\n    \"scvelo_embedding_grid_plot\" [fillcolor=\"#94DDF4\",label=\"scVelo velocity embedding grid plot\"];\n    \"scanpy_qc_results\" [fillcolor=\"#94DDF4\",label=\"Quality control metrics from Scanpy\"];\n    \"umap_plot\" [fillcolor=\"#94DDF4\",label=\"UMAP dimensionality reduction plot\"];\n    \"dispersion_plot\" [fillcolor=\"#94DDF4\",label=\"Gene expression dispersion plot\"];\n    \"marker_gene_plot_logreg\" [fillcolor=\"#94DDF4\",label=\"Cluster marker genes, logreg method\"];\n    \"qc_report\" [fillcolor=\"#94DDF4\",label=\"Quality control report in JSON format\"];\n  }\n  \"fastqc\" [label=\"Runs fastQC on each fastq file in fastq directory\"];\n  \"scanpy_analysis\" [label=\"Dimensionality reduction and clustering\"];\n  \"squidpy_analysis\" [label=\"Dimensionality reduction and clustering\"];\n  \"salmon_quantification\" [label=\"Salmon quantification, FASTQ -> H5AD count matrix\", fillcolor=\"#F3CEA1\"];\n  \"deepscence\" [label=\"Identify and score scenescent cells\"];\n  \"compute_qc_results\" [label=\"Compute QC metrics\"];\n  \"scvelo_analysis\" [label=\"RNA velocity analysis via scVelo\"];\n  \"threads\" -> \"fastqc\" [label=\"threads\"];\n  \"fastq_dir\" -> \"fastqc\" [label=\"fastq_dir\"];\n  \"deepscence\" -> \"scanpy_analysis\" [label=\"h5ad_file\"];\n  \"assay\" -> \"scanpy_analysis\" [label=\"assay\"];\n  \"img_dir\" -> \"squidpy_analysis\" [label=\"img_dir\"];\n  \"scanpy_analysis\" -> \"squidpy_analysis\" [label=\"h5ad_file\"];\n  \"assay\" -> \"squidpy_analysis\" [label=\"assay\"];\n  \"fastq_dir\" -> \"salmon_quantification\" [label=\"fastq_dir\"];\n  \"organism\" -> \"salmon_quantification\" [label=\"organism\"];\n  \"expected_cell_count\" -> \"salmon_quantification\" [label=\"expected_cell_count\"];\n  \"assay\" -> \"salmon_quantification\" [label=\"assay\"];\n  \"keep_all_barcodes\" -> \"salmon_quantification\" [label=\"keep_all_barcodes\"];\n  \"metadata_dir\" -> \"salmon_quantification\" [label=\"metadata_dir\"];\n  \"barcode_file\" -> \"salmon_quantification\" [label=\"barcode_file\"];\n  \"threads\" -> \"salmon_quantification\" [label=\"threads\"];\n  \"img_dir\" -> \"salmon_quantification\" [label=\"img_dir\"];\n  \"organism\" -> \"deepscence\" [label=\"organism\"];\n  \"salmon_quantification\" -> \"deepscence\" [label=\"h5ad_file\"];\n  \"scanpy_analysis\" -> \"compute_qc_results\" [label=\"secondary_matrix_path\"];\n  \"assay\" -> \"compute_qc_results\" [label=\"assay\"];\n  \"deepscence\" -> \"compute_qc_results\" [label=\"primary_matrix_path\"];\n  \"salmon_quantification\" -> \"compute_qc_results\" [label=\"salmon_dir\"];\n  \"deepscence\" -> \"scvelo_analysis\" [label=\"spliced_h5ad_file\"];\n  \"assay\" -> \"scvelo_analysis\" [label=\"assay_name\"];\n  \"squidpy_analysis\" -> \"centrality_scores_plot\";\n  \"scanpy_analysis\" -> \"filtered_data_h5ad\";\n  \"scanpy_analysis\" -> \"spatial_plot\";\n  \"squidpy_analysis\" -> \"ripley_plot\";\n  \"squidpy_analysis\" -> \"squidpy_spatial_plot\";\n  \"scvelo_analysis\" -> \"scvelo_annotated_h5ad\";\n  \"scanpy_analysis\" -> \"deepscence_continuous_plot\";\n  \"squidpy_analysis\" -> \"co_occurrence_plot\";\n  \"scanpy_analysis\" -> \"marker_gene_plot_t_test\";\n  \"squidpy_analysis\" -> \"neighborhood_enrichment_plot\";\n  \"deepscence\" -> \"deepscence_plot\";\n  \"scanpy_analysis\" -> \"umap_density_plot\";\n  \"squidpy_analysis\" -> \"sdata_zarr\";\n  \"fastqc\" -> \"fastqc_dir\";\n  \"deepscence\" -> \"count_matrix_h5ad\";\n  \"squidpy_analysis\" -> \"interaction_matrix_plot\";\n  \"salmon_quantification\" -> \"genome_build_json\";\n  \"scanpy_analysis\" -> \"deepscence_binary_plot\";\n  \"squidpy_analysis\" -> \"squidpy_annotated_h5ad\";\n  \"salmon_quantification\" -> \"raw_count_matrix\";\n  \"salmon_quantification\" -> \"salmon_output\";\n  \"scvelo_analysis\" -> \"scvelo_embedding_grid_plot\";\n  \"compute_qc_results\" -> \"scanpy_qc_results\";\n  \"scanpy_analysis\" -> \"umap_plot\";\n  \"scanpy_analysis\" -> \"dispersion_plot\";\n  \"scanpy_analysis\" -> \"marker_gene_plot_logreg\";\n  \"compute_qc_results\" -> \"qc_report\";\n}\n","licenseLink":"https://spdx.org/licenses/GPL-3.0","permalink":"https://w3id.org/cwl/view/git/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","packed":false,"visualisationXdot":"/graph/xdot/github.com/hubmapconsortium/salmon-rnaseq/blob/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","visualisationPng":"/graph/png/github.com/hubmapconsortium/salmon-rnaseq/blob/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","visualisationSvg":"/graph/svg/github.com/hubmapconsortium/salmon-rnaseq/blob/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","roBundle":"/robundle/github.com/hubmapconsortium/salmon-rnaseq/blob/81e4484986251c48e3edbf5e1f141ab68677b8bd/pipeline.cwl","licenseName":"GNU General Public License v3.0 only"}