{"id":26472652,"url":"https://github.com/getwilds/ww-salmon","last_synced_at":"2025-03-19T21:44:07.897Z","repository":{"id":279844496,"uuid":"939756118","full_name":"getwilds/ww-salmon","owner":"getwilds","description":"Self-contained WDL workflow that uses the Salmon RNA-seq computational tool.","archived":false,"fork":false,"pushed_at":"2025-02-27T22:33:32.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-28T02:58:43.133Z","etag":null,"topics":["wdl-workflow","wilds-wdl"],"latest_commit_sha":null,"homepage":"","language":"WDL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getwilds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-27T03:55:47.000Z","updated_at":"2025-02-27T22:33:35.000Z","dependencies_parsed_at":"2025-02-28T03:01:46.929Z","dependency_job_id":"56a92d7d-708a-4c34-a902-d49b7c10529b","html_url":"https://github.com/getwilds/ww-salmon","commit_stats":null,"previous_names":["getwilds/ww-salmon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getwilds%2Fww-salmon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getwilds%2Fww-salmon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getwilds%2Fww-salmon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getwilds%2Fww-salmon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getwilds","download_url":"https://codeload.github.com/getwilds/ww-salmon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244513554,"owners_count":20464597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["wdl-workflow","wilds-wdl"],"created_at":"2025-03-19T21:44:07.159Z","updated_at":"2025-03-19T21:44:07.892Z","avatar_url":"https://github.com/getwilds.png","language":"WDL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ww-salmon RNA-seq Workflow\n[![Project Status: Experimental – Useable, some support, not open to feedback, unstable API.](https://getwilds.org/badges/badges/experimental.svg)](https://getwilds.org/badges/#experimental)\n\n## Overview\n\nThis workflow performs RNA-seq quantification using [Salmon](https://combine-lab.github.io/salmon/), a fast and accurate tool for transcript expression estimation. The workflow is designed to be simple to use while implementing best practices for RNA-seq analysis.\n\n## What this Workflow Does\n\n1. **Builds a Salmon Index** from your reference transcriptome\n2. **Quantifies Transcripts** for each of your RNA-seq samples\n3. **Generates Expression Matrices** combining results from all samples\n\n## Requirements\n\n- [Cromwell](https://github.com/broadinstitute/cromwell) or another WDL-compatible workflow engine\n- Docker (the workflow uses the `combinelab/salmon` container)\n- Input files:\n  - Reference transcriptome (FASTA format)\n  - RNA-seq reads (FASTQ format, can be gzipped)\n\n## Quick Start\n\n1. **Download the WDL file from this repository**:\n\n2. **Create an inputs JSON file** (e.g., `inputs.json`):\n   ```json\n   {\n     \"SalmonRnaSeq.transcriptome_fasta\": \"path/to/transcriptome.fa\",\n     \"SalmonRnaSeq.fastq_r1_files\": [\n       \"path/to/sample1_R1.fastq.gz\",\n       \"path/to/sample2_R1.fastq.gz\"\n     ],\n     \"SalmonRnaSeq.fastq_r2_files\": [\n       \"path/to/sample1_R2.fastq.gz\",\n       \"path/to/sample2_R2.fastq.gz\"\n     ]\n   }\n   ```\n\n3. **Run the workflow** with Cromwell:\n   ```\n   java -jar cromwell.jar run salmon_rnaseq.wdl -i inputs.json\n   ```\n\n## Input Parameters\n\n| Parameter | Description | Required? |\n|-----------|-------------|-----------|\n| `transcriptome_fasta` | Reference transcriptome in FASTA format | Yes |\n| `fastq_r1_files` | Array of FASTQ files for read 1 (or single-end reads) | Yes |\n| `fastq_r2_files` | Array of FASTQ files for read 2 (for paired-end data) | No |\n| `salmon_docker` | Docker image for Salmon (default: \"combinelab/salmon:latest\") | No |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `salmon_index_tar` | Compressed Salmon index (can be reused for future analyses) |\n| `salmon_quant_dirs` | Compressed quantification results for each sample |\n| `merged_tpm_matrix` | Combined TPM values matrix for all samples |\n| `merged_counts_matrix` | Combined read counts matrix for all samples |\n\n## Examples\n\n### For Paired-End Data\n\n```json\n{\n  \"SalmonRnaSeq.transcriptome_fasta\": \"references/gencode.v38.transcripts.fa\",\n  \"SalmonRnaSeq.fastq_r1_files\": [\n    \"samples/sample1_R1.fastq.gz\",\n    \"samples/sample2_R1.fastq.gz\"\n  ],\n  \"SalmonRnaSeq.fastq_r2_files\": [\n    \"samples/sample1_R2.fastq.gz\", \n    \"samples/sample2_R2.fastq.gz\"\n  ]\n}\n```\n\n### For Single-End Data\n\n```json\n{\n  \"SalmonRnaSeq.transcriptome_fasta\": \"references/gencode.v38.transcripts.fa\",\n  \"SalmonRnaSeq.fastq_r1_files\": [\n    \"samples/sample1.fastq.gz\",\n    \"samples/sample2.fastq.gz\"\n  ]\n}\n```\n\n## Common Questions\n\n### How do I get a transcriptome file?\n\nYou can download reference transcriptomes from:\n- [GENCODE](https://www.gencodegenes.org/human/) (human/mouse)\n- [Ensembl](https://www.ensembl.org/info/data/ftp/index.html) (many species)\n- [UCSC Genome Browser](https://genome.ucsc.edu/cgi-bin/hgTables)\n\nFor human, a common choice is the GENCODE reference:\n```\nwget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_38/gencode.v38.transcripts.fa.gz\ngunzip gencode.v38.transcripts.fa.gz\n```\n\n### How do I extract the results?\n\nThe workflow provides compressed output directories for each sample. To extract a specific sample's results:\n\n```bash\ntar -xzf sample1_quant.tar.gz\n```\n\nThis will create a directory `sample1_quant` containing Salmon's output files, including:\n- `quant.sf`: The main quantification results file\n- `logs/`: Directory containing Salmon log files\n- `lib_format_counts.json`: Information about the library type\n\n### What are TPM and counts?\n\n- **TPM (Transcripts Per Million)**: Normalized expression values suitable for comparing expression levels between samples\n- **counts**: Estimated number of fragments/reads from each transcript, suitable for differential expression analysis\n\n## Under the Hood\n\nThis workflow:\n1. Creates a Salmon index from your transcriptome\n2. Processes each sample with optimal settings:\n   - Automatic library type detection\n   - GC bias correction\n   - Sequence-specific bias correction\n   - Mapping validation\n3. Combines results into unified matrices with properly labeled sample names\n\n## Troubleshooting\n\n**Error**: \"Docker image not found\"\n- Solution: Ensure Docker is installed and running\n\n**Error**: \"File not found\"\n- Solution: Check the paths in your inputs.json file\n\n**Error**: \"Memory allocation failed\"\n- Solution: Adjust the `memory_gb` parameters in the WDL file\n\n## Advanced Customization\n\nIf you need to modify the workflow for advanced settings:\n\n1. Edit the runtime parameters at the task level:\n   ```wdl\n   runtime {\n       docker: docker_image\n       memory: \"~{memory_gb} GB\"\n       cpu: cpu\n       disks: \"local-disk ~{disk_size_gb} SSD\"\n       preemptible: 1\n   }\n   ```\n\n2. Add additional Salmon parameters in the command sections if needed\n\n## Need Additional Help?\n\n- [Salmon Documentation](https://salmon.readthedocs.io/en/latest/)\n- [WDL Documentation](https://github.com/openwdl/wdl/blob/main/versions/1.0/SPEC.md)\n- [Cromwell Documentation](https://cromwell.readthedocs.io/en/stable/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetwilds%2Fww-salmon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetwilds%2Fww-salmon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetwilds%2Fww-salmon/lists"}