{"@id":"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","retrievedFrom":{"repoUrl":"https://github.com/Barski-lab/workflows.git","branch":"cf84038de256c7ca98657ad81734d1aca1dad8c1","path":"tools/soupx-subworkflow.cwl","packedId":null,"type":"GITHUB","rawUrl":"https://raw.githubusercontent.com/Barski-lab/workflows/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","url":"https://github.com/Barski-lab/workflows/blob/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl"},"retrievedOn":"2026-11-01T05:53:32.608+00:00","lastCommit":"cf84038de256c7ca98657ad81734d1aca1dad8c1","label":"SoupX (workflow) - an R package for the estimation and removal of cell free mRNA contamination","doc":"Wrapped in a workflow SoupX tool for easy access to Cell Ranger pipeline compressed outputs.\n","inputs":{"fdr":{"doc":"FDR cutoff for expression ratio plots","type":"Float (Optional)"},"round_counts":{"doc":"Round adjusted counts to integers","type":"Boolean (Optional)"},"genelist_file":{"doc":"Target genes list. Headerless text file with 1 gene per line","type":"File (Optional)"},"output_prefix":{"doc":"Output prefix","type":"String (Optional)"},"expression_threshold":{"doc":"Expression threshold for displaying target genes on a plot (expression > threshold)","type":"Float (Optional)"},"matrix_format_version":{"doc":"Output matrix format version. Corresponds to the latest Cell Ranger matrix format","type":"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#matrix_format_version/matrix_format_version (Optional)"},"raw_feature_bc_matrices_folder":{"doc":"Compressed folder with unfiltered feature-barcode matrices","type":"File"},"secondary_analysis_report_folder":{"doc":"Compressed folder with secondary analysis results","type":"File"},"filtered_feature_bc_matrix_folder":{"doc":"Compressed folder with filtered feature-barcode matrices","type":"File"}},"outputs":{"soupx_stderr_log":{"doc":"SoupX stderr log","type":"File"},"soupx_stdout_log":{"doc":"SoupX stdout log","type":"File"},"raw_gene_expression_plots":{"doc":"Raw gene expression plots","type":"File (Optional)"},"contamination_estimation_plot":{"doc":"Contamination estimation plot","type":"File"},"adjusted_gene_expression_plots":{"doc":"Adjusted gene expression plots","type":"File (Optional)"},"adjusted_feature_bc_matrices_h5":{"doc":"Adjusted feature-barcode matrices in HDF5 format","type":"File"},"adjusted_feature_bc_matrices_folder":{"doc":"Compressed folder with adjusted feature-barcode matrices in MEX format","type":"File"},"raw_to_adjusted_gene_expression_ratio_plots":{"doc":"Raw to adjusted gene expression ratio plots","type":"File (Optional)"},"raw_gene_expression_to_pure_soup_ratio_plots":{"doc":"Raw gene expression to pure soup ratio plots","type":"File (Optional)"}},"steps":{"estimate_contamination":{"label":"SoupX - an R package for the estimation and removal of cell free mRNA contamination","doc":"In droplet based, single cell RNA-seq experiments, there is always a certain amount of background\nmRNAs present in the dilution that gets distributed into the droplets with cells and sequenced\nalong with them. The net effect of this is to produce a background contamination that represents\nexpression not from the cell contained within a droplet, but the solution that contained the cells.\n\nThis collection of cell free mRNAs floating in the input solution (henceforth referred to as\n“the soup”) is created from cells in the input solution being lysed. Because of this, the soup looks\ndifferent for each input solution and strongly resembles the expression pattern obtained by summing\nall the individual cells.\n\nThe aim of this package is to provide a way to estimate the composition of this soup, what fraction\nof UMIs are derived from the soup in each droplet and produce a corrected count table with the soup\nbased expression removed.\n\nThe method to do this consists of three parts:\n\n- Calculate the profile of the soup.\n- Estimate the cell specific contamination fraction.\n- Infer a corrected expression matrix.  \n","run":"soupx.cwl","runType":"COMMANDLINETOOL","sources":{"estimate_contamination":{"sourceIDs":["extract_count_matrices_to_folder"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/fdr":{"sourceIDs":["fdr"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/round_counts":{"sourceIDs":["round_counts"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/genelist_file":{"sourceIDs":["genelist_file"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/output_prefix":{"sourceIDs":["output_prefix"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/expression_threshold":{"sourceIDs":["expression_threshold"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#estimate_contamination/matrix_format_version":{"sourceIDs":["matrix_format_version"]}}},"extract_count_matrices_to_folder":{"run":"soupx-subworkflow.cwl#extract_count_matrices_to_folder/4a3b5fda-a77d-449e-97c8-2922899d80ee","runType":"COMMANDLINETOOL","sources":{"extract_count_matrices_to_folder":{"sourceIDs":["secondary_analysis_report_folder"]},"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl#extract_count_matrices_to_folder/compressed_files":{"sourceIDs":["filtered_feature_bc_matrix_folder"]}}},"compress_adjusted_feature_bc_matrices_folder":{"doc":"Compresses input directory to tar.gz\n","run":"tar-compress.cwl","runType":"COMMANDLINETOOL","sources":{"compress_adjusted_feature_bc_matrices_folder":{"sourceIDs":["estimate_contamination"]}}}},"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    \"round_counts\" [fillcolor=\"#94DDF4\",label=\"round_counts\"];\n    \"expression_threshold\" [fillcolor=\"#94DDF4\",label=\"expression_threshold\"];\n    \"fdr\" [fillcolor=\"#94DDF4\",label=\"fdr\"];\n    \"secondary_analysis_report_folder\" [fillcolor=\"#94DDF4\",label=\"secondary_analysis_report_folder\"];\n    \"raw_feature_bc_matrices_folder\" [fillcolor=\"#94DDF4\",label=\"raw_feature_bc_matrices_folder\"];\n    \"genelist_file\" [fillcolor=\"#94DDF4\",label=\"genelist_file\"];\n    \"output_prefix\" [fillcolor=\"#94DDF4\",label=\"output_prefix\"];\n    \"matrix_format_version\" [fillcolor=\"#94DDF4\",label=\"matrix_format_version\"];\n    \"filtered_feature_bc_matrix_folder\" [fillcolor=\"#94DDF4\",label=\"filtered_feature_bc_matrix_folder\"];\n  }\n  subgraph cluster_outputs {\n    rank = \"same\";\n    style = \"dashed\";\n    labelloc = \"b\";\n    label = \"Workflow Outputs\";\n    \"raw_to_adjusted_gene_expression_ratio_plots\" [fillcolor=\"#94DDF4\",label=\"raw_to_adjusted_gene_expression_ratio_plots\"];\n    \"contamination_estimation_plot\" [fillcolor=\"#94DDF4\",label=\"contamination_estimation_plot\"];\n    \"adjusted_feature_bc_matrices_h5\" [fillcolor=\"#94DDF4\",label=\"adjusted_feature_bc_matrices_h5\"];\n    \"soupx_stdout_log\" [fillcolor=\"#94DDF4\",label=\"soupx_stdout_log\"];\n    \"soupx_stderr_log\" [fillcolor=\"#94DDF4\",label=\"soupx_stderr_log\"];\n    \"raw_gene_expression_plots\" [fillcolor=\"#94DDF4\",label=\"raw_gene_expression_plots\"];\n    \"adjusted_feature_bc_matrices_folder\" [fillcolor=\"#94DDF4\",label=\"adjusted_feature_bc_matrices_folder\"];\n    \"raw_gene_expression_to_pure_soup_ratio_plots\" [fillcolor=\"#94DDF4\",label=\"raw_gene_expression_to_pure_soup_ratio_plots\"];\n    \"adjusted_gene_expression_plots\" [fillcolor=\"#94DDF4\",label=\"adjusted_gene_expression_plots\"];\n  }\n  \"extract_count_matrices_to_folder\" [label=\"extract_count_matrices_to_folder\"];\n  \"estimate_contamination\" [label=\"SoupX - an R package for the estimation and removal of cell free mRNA contamination\"];\n  \"compress_adjusted_feature_bc_matrices_folder\" [label=\"compress_adjusted_feature_bc_matrices_folder\"];\n  \"secondary_analysis_report_folder\" -> \"extract_count_matrices_to_folder\" [label=\"compressed_files\"];\n  \"raw_feature_bc_matrices_folder\" -> \"extract_count_matrices_to_folder\" [label=\"compressed_files\"];\n  \"filtered_feature_bc_matrix_folder\" -> \"extract_count_matrices_to_folder\" [label=\"compressed_files\"];\n  \"extract_count_matrices_to_folder\" -> \"estimate_contamination\" [label=\"feature_bc_matrices_folder\"];\n  \"fdr\" -> \"estimate_contamination\" [label=\"fdr\"];\n  \"round_counts\" -> \"estimate_contamination\" [label=\"round_counts\"];\n  \"expression_threshold\" -> \"estimate_contamination\" [label=\"expression_threshold\"];\n  \"matrix_format_version\" -> \"estimate_contamination\" [label=\"matrix_format_version\"];\n  \"genelist_file\" -> \"estimate_contamination\" [label=\"genelist_file\"];\n  \"output_prefix\" -> \"estimate_contamination\" [label=\"output_prefix\"];\n  \"estimate_contamination\" -> \"compress_adjusted_feature_bc_matrices_folder\" [label=\"folder_to_compress\"];\n  \"estimate_contamination\" -> \"raw_to_adjusted_gene_expression_ratio_plots\";\n  \"estimate_contamination\" -> \"contamination_estimation_plot\";\n  \"estimate_contamination\" -> \"adjusted_feature_bc_matrices_h5\";\n  \"estimate_contamination\" -> \"soupx_stdout_log\";\n  \"estimate_contamination\" -> \"soupx_stderr_log\";\n  \"estimate_contamination\" -> \"raw_gene_expression_plots\";\n  \"compress_adjusted_feature_bc_matrices_folder\" -> \"adjusted_feature_bc_matrices_folder\";\n  \"estimate_contamination\" -> \"raw_gene_expression_to_pure_soup_ratio_plots\";\n  \"estimate_contamination\" -> \"adjusted_gene_expression_plots\";\n}\n","licenseLink":"https://spdx.org/licenses/Apache-2.0","permalink":"https://w3id.org/cwl/view/git/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","packed":false,"visualisationXdot":"/graph/xdot/github.com/Barski-lab/workflows/blob/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","visualisationPng":"/graph/png/github.com/Barski-lab/workflows/blob/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","visualisationSvg":"/graph/svg/github.com/Barski-lab/workflows/blob/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","roBundle":"/robundle/github.com/Barski-lab/workflows/blob/cf84038de256c7ca98657ad81734d1aca1dad8c1/tools/soupx-subworkflow.cwl","licenseName":"Apache License 2.0"}