{"id":28428001,"url":"https://github.com/bu-isciii/openebench_gmi","last_synced_at":"2026-02-06T21:01:51.633Z","repository":{"id":104983541,"uuid":"171471254","full_name":"BU-ISCIII/openebench_gmi","owner":"BU-ISCIII","description":null,"archived":false,"fork":false,"pushed_at":"2020-01-02T13:11:23.000Z","size":2063,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-29T17:46:09.218Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BU-ISCIII.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2019-02-19T12:38:57.000Z","updated_at":"2019-06-06T13:04:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e2170f3-2eac-4137-9906-941f528d3ca7","html_url":"https://github.com/BU-ISCIII/openebench_gmi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BU-ISCIII/openebench_gmi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BU-ISCIII%2Fopenebench_gmi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BU-ISCIII%2Fopenebench_gmi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BU-ISCIII%2Fopenebench_gmi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BU-ISCIII%2Fopenebench_gmi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BU-ISCIII","download_url":"https://codeload.github.com/BU-ISCIII/openebench_gmi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BU-ISCIII%2Fopenebench_gmi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29175824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T20:14:21.878Z","status":"ssl_error","status_checked_at":"2026-02-06T20:14:21.443Z","response_time":59,"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":[],"created_at":"2025-06-05T12:31:24.923Z","updated_at":"2026-02-06T21:01:51.626Z","avatar_url":"https://github.com/BU-ISCIII.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Scif](https://img.shields.io/badge/Filesystem-Scientific-brightgreen.svg)](https://sci-f.github.io)\n\n# Nextflow pipeline using containers for an Outbreak detection challenge using OpenEbench platform\n\nThis repository intends to be a nextflow + container implementation of OpenEbench workflow for an Outbreak detection challenge. \n## How to use it\n\n```Bash\ngit clone https://github.com/BU-ISCIII/openebench_gmi.git\ncd openebench_gmi.git\ngit submodule init\ngit submodule update\nnextflow run main.nf -profile docker \n```\nParameters available:\n```Bash\nnextflow run main.nf --help\n```\n\n```\nUsage:\nnextflow run BU-ISCIII/openebench_gmi --tree_test {test.newick.file} --goldstandard_dir {golden.folder.path} --assess_dir {assessment.path} --public_ref_dir {path.to.info.ref.dataset} --event_id {event.id}\n\nMandatory arguments:\n  --tree_test                   Path to input data (must be surrounded with quotes).\n  --goldstandard_dir            Path to reference data. Golden datasets.\n  --public_ref_dir              Path where public dataset info is stored for validation.\n  --assess_dir                  Path where benchmark data is stored.\n  --event_id                    Event identifier.\n  --participant_id              Participant identifier.\n  --tree_format                 Format tree [\"nexus\",\"newick\"].\n\nOther options:\n  --outdir                      The output directory where the results will be saved\n```\n\n\n## Datasets\nFirst of all, needed datasets have been collected in: [datasets folder](datasets)\n\n1. **Input dataset:** fastq input data obtained from [GMI WGS standards and benchmarks repository](https://github.com/globalmicrobialidentifier-WG3/datasets). [Here](datasets/inputDataset/Readme.me) you can find instructions for download.\n2. **Gold standard dataset:** confirmed phylogeny for the outbreak being investigated.\n3. **Input dataset ids:** input dataset ids in .txt and .json format.\n4. **Test dataset:** a test tree for comparing with gold standard result. In this case just the same golden dataset. Robinson-Foulds metrics must be 0.\n5. **benchmark_data**: path where benchmark results are stored.\n\n## Nextflow pipeline and containers\nSecond, a pipeline has been developed which is splitted in three steps following OpenEbench specifications following this [repo](https://github.com/inab/opeb-submission) as an example:\n\n### Nextflow processes\n1. **Validation and data preprocessing:**\n   1. *Check results format:* \n      - Tree input: User input tree format is validated, nexus and newick formats are allowed being newick the canonical format. If format validated, a tree is outputted in the canonical format (.nwk).\n      - VCF input:\n    \n   2. *Get query ids:* \n      - Tree input: ids are extracted for user input tree in newick or nexus format. IDs are writed in: queryids.json \n    \n   3. *Validate query ids:* \n      - Tree input: query ids are validated against ref input ids.\n\n2. **Metrics:**\n   1. *Precision/Recall calculation:* common (TP), source (FP) and ref(FN) edges are calculated in the comparison of ref and test tree topologies. Recall and precision are calculated using this values and stored in a json file called {participant_id}_snprecision.json.\n   2. *Robinson-Foulds metric calculation:* Normalized Robinson-Foulds test is performed between user tree and every participant tree already analyzed and stored in the benchmark_data folder in order to compare their topologies. Result value is writted to participant_matrix.json file.\n  \n3. **Data visualization and consolidation:**\n   1. Precision/Recall graph is created, classifying each participant inside a quartile.\n   2. A all participant vs all participant heatmap is created usign normalized robinson-foulds matrix.\n\n### Containers info\n\nEach step runs in its own container. Containers are built using a Dockerfile recipe which makes use of [SCI-F](https://sci-f.github.io/) recipes for software installation. All scif recipes are available in [scif_app_recipes repository](https://github.com/BU-ISCIII/scif_app_recipes). Singularity recipes are also provided (Not yet adapted in nextflow pipeline).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbu-isciii%2Fopenebench_gmi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbu-isciii%2Fopenebench_gmi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbu-isciii%2Fopenebench_gmi/lists"}