{"id":44821304,"url":"https://github.com/virtool/workflow-nuvs","last_synced_at":"2026-04-30T18:00:50.040Z","repository":{"id":38440740,"uuid":"313717914","full_name":"virtool/workflow-nuvs","owner":"virtool","description":"A workflow for identifying novel viruses in Virtool","archived":false,"fork":false,"pushed_at":"2026-04-27T21:33:08.000Z","size":95620,"stargazers_count":2,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-27T22:16:25.571Z","etag":null,"topics":["hmmer","spades","virtool","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/virtool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2020-11-17T19:12:18.000Z","updated_at":"2026-04-27T21:21:22.000Z","dependencies_parsed_at":"2025-09-04T01:17:29.963Z","dependency_job_id":null,"html_url":"https://github.com/virtool/workflow-nuvs","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/virtool/workflow-nuvs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fworkflow-nuvs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fworkflow-nuvs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fworkflow-nuvs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fworkflow-nuvs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/virtool","download_url":"https://codeload.github.com/virtool/workflow-nuvs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fworkflow-nuvs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32472396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"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":["hmmer","spades","virtool","workflow"],"created_at":"2026-02-16T20:36:33.286Z","updated_at":"2026-04-30T18:00:49.947Z","avatar_url":"https://github.com/virtool.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"workflow-nuvs\n-------------\n\nA workflow for identifying novel viruses in Virtool.\n\n## Steps\n\n1. Eliminate sample reads that map to any default (representative) isolate of any OTU.\n2. Eliminate sample reads that map to the configured subtraction.\n3. Repair paired reads if some pair members were lost in elimination.\n4. Assemble the remaining reads using [SPAdes](https://github.com/ablab/spades).\n5. Calculate ORFs from the assembled contigs.\n6. Use ORFs as input for [HMMER](http://hmmer.org/) to detect viral motifs using profile hidden Markov models derived from the vFAM project.\n\n## Contributing\n\n### Running Tests\n\n#### Setup (one-time)\n\nSet environment variables for proper file permissions:\n```sh\nexport USER_ID=$(id -u) GROUP_ID=$(id -g)\n```\n\nBuild the test container:\n```sh\ndocker compose build\n```\n\n#### Running Tests\n\nRun all tests:\n```sh\ndocker compose run --rm app poetry run pytest\n```\n\nRun specific tests:\n```sh\ndocker compose run --rm app poetry run pytest tests/test_workflow.py\n```\n\n#### Why This Approach?\n\n- **No rebuilds**: Uses bind mounts to get latest code without rebuilding\n- **No permission issues**: Container runs as your user via USER_ID/GROUP_ID\n- **Fast iterations**: Only Poetry and pytest execution, no Docker build time\n\n### Commits\n\nRead [our guide](https://dev.virtool.ca/en/latest/commits_releases.html#commits) on\nwriting commits for Virtool repositories.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtool%2Fworkflow-nuvs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtool%2Fworkflow-nuvs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtool%2Fworkflow-nuvs/lists"}