{"id":37649970,"url":"https://github.com/umccr/dracarys","last_synced_at":"2026-01-16T11:32:04.505Z","repository":{"id":46044441,"uuid":"436568875","full_name":"umccr/dracarys","owner":"umccr","description":":dragon_face: DRAGEN workflow tidying :fire:","archived":false,"fork":false,"pushed_at":"2025-12-02T12:56:27.000Z","size":15311,"stargazers_count":1,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-05T09:53:04.395Z","etag":null,"topics":["cancer-genomics","dragen","multiqc","qc","r-package","r6"],"latest_commit_sha":null,"homepage":"https://umccr.github.io/dracarys/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umccr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-09T10:10:44.000Z","updated_at":"2025-12-02T12:56:31.000Z","dependencies_parsed_at":"2023-02-19T02:15:52.640Z","dependency_job_id":"ae993830-f510-47a9-9fc4-b845750cd867","html_url":"https://github.com/umccr/dracarys","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/umccr/dracarys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umccr%2Fdracarys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umccr%2Fdracarys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umccr%2Fdracarys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umccr%2Fdracarys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umccr","download_url":"https://codeload.github.com/umccr/dracarys/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umccr%2Fdracarys/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: 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":["cancer-genomics","dragen","multiqc","qc","r-package","r6"],"created_at":"2026-01-16T11:32:03.193Z","updated_at":"2026-01-16T11:32:04.500Z","avatar_url":"https://github.com/umccr.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n- [🔥 dracarys - UMCCR Workflow\n  Tidying](#fire-dracarys---umccr-workflow-tidying)\n  - [🏆 Aim](#trophy-aim)\n  - [🍕 Installation](#pizza-installation)\n  - [✨ Supported Workflows](#sparkles-supported-workflows)\n  - [🌀 CLI](#cyclone-cli)\n  - [🚕 Running](#taxi-running)\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n# 🔥 dracarys - UMCCR Workflow Tidying\n\n![](https://emojis.slackmojis.com/emojis/images/1643515659/16823/flying_dragon.gif?1643515659 \"Dragon Flying\")\n\n- Docs: \u003chttps://umccr.github.io/dracarys/\u003e\n\n[![Conda\ninstall](https://anaconda.org/umccr/r-dracarys/badges/version.svg)](https://anaconda.org/umccr/r-dracarys)\n[![Conda\ninstall](https://anaconda.org/umccr/r-dracarys/badges/latest_release_date.svg)](https://anaconda.org/umccr/r-dracarys)\n\n## 🏆 Aim\n\nGiven a directory with results from a DRAGEN/UMCCR workflow, {dracarys}\nwill grab files of interest and transform them into ‘tidier’ structures\nfor output into TSV/Parquet/RDS format for downstream ingestion into a\ndatabase/data lake. See supported [workflows](#supported-workflows),\n[running](#running) examples, and [CLI](#cli) options in the sections\nbelow.\n\n## 🍕 Installation\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nR\n\u003c/summary\u003e\n\n``` r\nremotes::install_github(\"umccr/dracarys@vX.X.X\") # for vX.X.X Release/Tag\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nConda\n\u003c/summary\u003e\n\n- Linux \u0026 MacOS (non-M1)\n\n``` bash\nmamba create \\\n  -n dracarys_env \\\n  -c umccr -c bioconda -c conda-forge \\\n  r-dracarys==X.X.X\n\nconda activate dracarys_env\n```\n\n- MacOS M1\n\n``` bash\nCONDA_SUBDIR=osx-64 \\\n  mamba create \\\n  -n dracarys_env \\\n  -c umccr -c bioconda -c conda-forge \\\n  r-dracarys==X.X.X\n\nconda activate dracarys_env\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nDocker\n\u003c/summary\u003e\n\n``` bash\ndocker pull --platform linux/amd64 ghcr.io/umccr/dracarys:X.X.X\n```\n\n\u003c/details\u003e\n\n\u003ca name=\"supported-workflows\"\u003e\u003c/a\u003e\n\n## ✨ Supported Workflows\n\n{dracarys} supports most outputs from the following DRAGEN/UMCCR\nworkflows:\n\n| Workflow | Description |\n|----|----|\n| bcl_convert | [BCLConvert](https://emea.support.illumina.com/sequencing/sequencing_software/bcl-convert.html) workflow |\n| tso_ctdna_tumor_only | [ctDNA TSO500](https://support-docs.illumina.com/SW/DRAGEN_TSO500_ctDNA_v2.1/Content/SW/TSO500/WorkflowDiagram_appT500ctDNAlocal.htm) workflow |\n| wgs_alignment_qc | [DRAGEN DNA](https://support-docs.illumina.com/SW/DRAGEN_v40/Content/SW/DRAGEN/GPipelineIntro_fDG.htm) (alignment) workflow |\n| wts_alignment_qc | [DRAGEN RNA](https://support-docs.illumina.com/SW/DRAGEN_v40/Content/SW/DRAGEN/GPipelineIntro_fDG.htm) (alignment) workflow |\n| wts_tumor_only | [DRAGEN RNA](https://support-docs.illumina.com/SW/DRAGEN_v40/Content/SW/DRAGEN/GPipelineIntro_fDG.htm) workflow |\n| wgs_tumor_normal | [DRAGEN Tumor/Normal](https://support-docs.illumina.com/SW/DRAGEN_v40/Content/SW/DRAGEN/GPipelineIntro_fDG.htm) workflow |\n| umccrise | [umccrise](https://github.com/umccr/umccrise) workflow |\n| rnasum | [RNAsum](https://github.com/umccr/RNAsum) workflow |\n| sash | [sash](https://github.com/scwatts/sash) workflow |\n| oncoanalyser | [oncoanalyser](https://github.com/nf-core/oncoanalyser) workflow |\n\nSee which output files from these workflows are supported in [Supported\nFiles](https://umccr.github.io/dracarys/articles/files.html).\n\n\u003ca name=\"cli\"\u003e\u003c/a\u003e\n\n## 🌀 CLI\n\nA `dracarys.R` command line interface is available for convenience.\n\n- If you’re using the conda package, the `dracarys.R` command will\n  already be available inside the activated conda environment.\n- If you’re *not* using the conda package, you need to export the\n  `dracarys/inst/cli/` directory to your `PATH` in order to use\n  `dracarys.R`.\n\n``` bash\ndracarys_cli=$(Rscript -e 'x = system.file(\"cli\", package = \"dracarys\"); cat(x, \"\\n\")' | xargs)\nexport PATH=\"${dracarys_cli}:${PATH}\"\n```\n\n    dracarys.R --version\n    dracarys.R 0.16.0\n\n    #-----------------------------------#\n    dracarys.R --help\n    usage: dracarys.R [-h] [-v] {tidy} ...\n\n    🐉 DRAGEN Output Post-Processing 🔥\n\n    positional arguments:\n      {tidy}         sub-command help\n        tidy         Tidy UMCCR Workflow Outputs\n\n    options:\n      -h, --help     show this help message and exit\n      -v, --version  show program's version number and exit\n\n    #-----------------------------------#\n    #------- Tidy ----------------------#\n    dracarys.R tidy --help\n    usage: dracarys.R tidy [-h] -i IN_DIR -o OUT_DIR -p PREFIX [-t TOKEN]\n                           [-l LOCAL_DIR] [-f FORMAT] [-n] [-q]\n\n    options:\n      -h, --help            show this help message and exit\n      -i IN_DIR, --in_dir IN_DIR\n                            ⛄️ Directory with untidy UMCCR workflow results. Can\n                            be GDS, S3 or local.\n      -o OUT_DIR, --out_dir OUT_DIR\n                            🔥 Directory to output tidy results.\n      -p PREFIX, --prefix PREFIX\n                            🎻 Prefix string used for all results.\n      -t TOKEN, --token TOKEN\n                            🙈 ICA access token. Default: ICA_ACCESS_TOKEN env var.\n      -l LOCAL_DIR, --local_dir LOCAL_DIR\n                            📥 If input is a GDS/S3 directory, download the\n                            recognisable files to this directory. Default:\n                            '\u003cout_dir\u003e/dracarys_\u003cgds|s3\u003e_sync'.\n      -f FORMAT, --format FORMAT\n                            🎨 Format of output. Default: tsv.\n      -n, --dryrun          🐫 Dry run - just show files to be tidied.\n      -q, --quiet           😴 Shush all the logs.\n\n\u003ca name=\"running\"\u003e\u003c/a\u003e\n\n## 🚕 Running\n\n{dracarys} takes as input (`--in_dir`) a directory with results from one\nof the UMCCR [workflows](#supported-workflows). It will recursively scan\nthat directory for [supported\nfiles](https://umccr.github.io/dracarys/articles/files.html), download\nthose into a local directory (`--gds_local_dir`), and then it will\nparse, transform and write the tidied versions into the specified output\ndirectory (`--out_dir`). A prefix (`--prefix`) is prepended to each of\nthe tidied files. The output file format (`--format`) can be tsv,\nparquet, or both. To get just a list of supported files within the\nspecified input directory, use the `-n (--dryrun)` option.\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nR\n\u003c/summary\u003e\n\n``` r\n# help(umccr_tidy)\nin_dir \u003c- \"gds://path/to/subjectX_multiqc_data/\"\nout_dir \u003c- tempdir()\nprefix \u003c- \"subjectX\"\numccr_tidy(in_dir = in_dir, out_dir = out_dir, prefix = prefix)\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nMac/Linux\n\u003c/summary\u003e\n\nFrom within an activated conda environment or a shell with the\n`dracarys.R` CLI available:\n\n``` bash\ndracarys.R tidy \\\n      -i gds://path/to/subjectX_multiqc_data/ \\\n      -o local_output_dir \\\n      -p subjectX_prefix\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\nDocker\n\u003c/summary\u003e\n\n``` bash\ndocker container run \\\n  -v $(PWD):/mount1 \\\n  --platform=linux/amd64 \\\n  --env \"ICA_ACCESS_TOKEN\" \\\n  --rm -it \\\n  ghcr.io/umccr/dracarys:X.X.X \\\n    dracarys.R tidy \\\n      -i gds://path/to/subjectX_multiqc_data/ \\\n      -o /mount1/output_dir \\\n      -p subjectX_prefix\n```\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumccr%2Fdracarys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumccr%2Fdracarys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumccr%2Fdracarys/lists"}