{"id":23768538,"url":"https://github.com/nci-gdc/gatk4_mutect2_cwl","last_synced_at":"2026-02-14T04:02:19.105Z","repository":{"id":77028636,"uuid":"130721686","full_name":"NCI-GDC/gatk4_mutect2_cwl","owner":"NCI-GDC","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-16T19:44:00.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-09-03T21:51:03.435Z","etag":null,"topics":["bioinformatics","cwl","workflow"],"latest_commit_sha":null,"homepage":null,"language":"Common Workflow Language","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NCI-GDC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"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,"zenodo":null}},"created_at":"2018-04-23T15:54:19.000Z","updated_at":"2025-06-16T19:44:01.000Z","dependencies_parsed_at":"2023-11-21T21:25:09.394Z","dependency_job_id":"623a8684-e6d6-4fd2-85f2-eb5db41b9655","html_url":"https://github.com/NCI-GDC/gatk4_mutect2_cwl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NCI-GDC/gatk4_mutect2_cwl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fgatk4_mutect2_cwl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fgatk4_mutect2_cwl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fgatk4_mutect2_cwl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fgatk4_mutect2_cwl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NCI-GDC","download_url":"https://codeload.github.com/NCI-GDC/gatk4_mutect2_cwl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NCI-GDC%2Fgatk4_mutect2_cwl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29435389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T03:34:37.767Z","status":"ssl_error","status_checked_at":"2026-02-14T03:34:09.092Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bioinformatics","cwl","workflow"],"created_at":"2025-01-01T01:37:21.920Z","updated_at":"2026-02-14T04:02:19.080Z","avatar_url":"https://github.com/NCI-GDC.png","language":"Common Workflow Language","funding_links":[],"categories":[],"sub_categories":[],"readme":"Further documentation available [here](https://docs.google.com/document/d/17NFwGvn4vMEXZV9Qmg30BqAcKrdxBYCOB4pFdkkwIIo/edit#)\n\n# Using this template\n\nThis template repository should be used as the base for new workflow repositories which will use the new Docker packaging scheme.\n\n# CWL Workflow Development\n\n## Pre-requisites\n\n- Docker\n- [just](https://github.com/casey/just)\n- `jq` (recommended)\n\n`just init` will install the correct version of `cwltool`, `jinja-cli`, and `pre-commit`, be sure to have a python3.8+ virtual environment active.\n\n`just build-all` will build and validate all workflows in the repo.\n\n## Just\n\nThe `just` utility is a command runner replacement for `make`.\n\nIt has various improvements over `make` including the ability to list available command with `just -l`:\n\n### Root Justfile\n\n```\nAvailable recipes:\n    build WORKFLOW # Builds individual workflow\n    build-all      # Builds all docker images for each directory with a justfile\n    init\n    pack WORKFLOW  # Builds Docker for WORKFLOW and prints packed JSON\n```\n\nThe root `justfile` provides recipes for Dockerizing workflows locally, while workflow-level `justfiles` provide recipes for building the workflow.\n\n### Workflow Justfile\n\nThe workflow-level `justfile` requires the `ENTRY_CWL` path be updated.\n\n```\n# justfile\nENTRY_CWL := \"workflow.cwl\"\n```\n\nCertain recipes check if the `ENTRY_CWL` file exists, and will show an error message if not.\n\n```\nAvailable recipes:\n    get-dockers          # Formats and prints all Dockers used in workflow\n    get-dockers-template # Prints all dockerPull declarations in unformatted workflow\n    inputs               # Print template input file for workflow\n    pack                 # Pack and apply Jinja templating. Creates cwl.json file\n    validate             # Validates CWL workflow\n```\n\nSome important commands for workflow development:\n\n`just validate` will run cwltool's validation and show any errors in the CWL.\n\n`just inputs` will output a template input file for the workflow.\n\n`just get-dockers-template` will pack the workflow to JSON and print all unique dockerPull declarations.\n\nThis command is useful for building the `dockers.json` file or finding un-templated image strings.\n\n`just get-dockers` will pack the workflow to JSON and apply the Docker formatting.\n\nNo template strings should remain after formatting.\n\n## dockerPull Jinja Templates\n\nFor CommandLineTool workflows utilizing `dockerPull`, the docker image should be specified in CWL as a jinja-compatible template string.\n\n`dockerPull: \"{{ docker_repository }}/image_name:{{ image_name }}\"`\n\n__NOTICE__: Double quotes required\n\nWithin each workflow's `justfile` is the `just pack` command which:\n\n1. Packs the CWL workflow into a temporary JSON file\n2. Uses `jinja-cli` and the `dockers.json` file to replace each template string\n3. Saves the result to `cwl.json`\n\n------\n\n### `dockers.json`\n\n```json\n{\n        \"docker_repository\": \"docker.osdc.io/ncigdc\",\n        \"image_name\": \"abcdef\"\n}\n```\n\nThis JSON file combined with the example string above will result in a final string:\n\n`dockerPull: \"docker.osdc.io/ncigdc/image_name:abcdef`\n\nin the packed cwl.json file.\n\n------\n\nWhile this prevents the CWL from being used directly, it enables easy updating of multiple Docker images for GPAS, and allows external users to supply their own images/tags.\n\n## Repository Structure\n\n### Top-level\n\nThe top level of the workflow repository should contain a `justfile`, `build.sh` script, and a `.gitlab-ci.yml` config.\n\nSmall CWL scripts not specific to any workflow should be stored in a top-level `tools` directory. These can include general shell commands and `CommandLine` workflows to call bioinformatics tools.\n\n__NOTICE__: This `tools` directory will be copied to the root of the Docker image. Relative path references to CWL in tools will remain valid in both the repo filesystem and docker image filesystem.\n\nEventually these tooling CWL scripts will be stored in a common library.\n\nThe `build.sh` script is used to automatically build and publish images in a CI environment.\n\nThe `justfile` contains commands to locally build workflow images, run `just -l` for a full list of commands.\n\nIndividual workflow CWL scripts should be stored within top-level directories named after the workflow.\n\n### Workflow Subdirectory\n\nEach workflow directory should also contain the template justfile and Dockerfile.\n\nThe `ENTRY_CWL` should be updated with the path to the main workflow cwl script, relative to the workflow directory.\n\nThis CWL script will be used as the argument to the `cwltool --pack` command, but can be overwritten using `make pack ENTRY_CWL=...`\n\nThe CWL scripts comprising a workflow can be stored under any manner of directory structure.\n\nIdeally any CWL script referenced by another file is in the same directory or a subdirectory of the calling script. (Essentially do not traverse up a directory, only sideways and/or down).\n\nThis will enable moving an entire subdirectory, if needed, without needing to update any references contained within.\n\n## Workflow Docker Image\n\nThe Docker image for a CWL workflow should be based on the `bio-alpine:cwltool3` image, which provides the bare minimum required to run the `cwltool --pack` command.\n\nEach feature branch commit will be published to the internal `dev-containers.osdc.io`, still accessible via the `docker.osdc.io` proxy.\n\nUpon merging to `main` or `master`, the image(s) will be published to the permanent `containers.osdc.io` and tagged with both the commit hash and a datetime-stamp.\n\nQuay will be depreciated for new workflows and phased out for existing ones.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnci-gdc%2Fgatk4_mutect2_cwl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnci-gdc%2Fgatk4_mutect2_cwl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnci-gdc%2Fgatk4_mutect2_cwl/lists"}