{"id":26476916,"url":"https://github.com/volcano-sh/kubegene","last_synced_at":"2025-03-20T00:13:29.397Z","repository":{"id":41550938,"uuid":"153117701","full_name":"volcano-sh/kubegene","owner":"volcano-sh","description":"KubeGene - A turn-key Genome Sequencing workflow management framework","archived":false,"fork":false,"pushed_at":"2020-11-03T08:22:15.000Z","size":17278,"stargazers_count":193,"open_issues_count":8,"forks_count":53,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-03-04T20:01:53.243Z","etag":null,"topics":["dag","genome-sequencing","kubernetes","workflow-engine","workflow-management"],"latest_commit_sha":null,"homepage":"http://kubegene.io","language":"Go","has_issues":true,"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/volcano-sh.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}},"created_at":"2018-10-15T13:27:25.000Z","updated_at":"2024-09-02T13:25:12.000Z","dependencies_parsed_at":"2022-07-08T08:02:48.715Z","dependency_job_id":null,"html_url":"https://github.com/volcano-sh/kubegene","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcano-sh%2Fkubegene","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcano-sh%2Fkubegene/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcano-sh%2Fkubegene/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcano-sh%2Fkubegene/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/volcano-sh","download_url":"https://codeload.github.com/volcano-sh/kubegene/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244525620,"owners_count":20466548,"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":["dag","genome-sequencing","kubernetes","workflow-engine","workflow-management"],"created_at":"2025-03-20T00:13:28.796Z","updated_at":"2025-03-20T00:13:29.385Z","avatar_url":"https://github.com/volcano-sh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KubeGene\n[![Go Report Card](https://goreportcard.com/badge/github.com/kubegene/kubegene)](https://goreportcard.com/report/github.com/kubegene/kubegene)\n\n\u003cimg src=\"./images/kubegene_logo.png\"\u003e\n\n## What is KubeGene\nThe KubeGene is dedicated to making genome sequencing process simple, portable and scalable. It provides a complete solution for genome sequencing on the kubernetes and supports mainstream biological genome sequencing scenarios such as DNA, RNA, and liquid biopsy. KubeGene is based on lightweight container technology and official standard algorithms. You can make a flexible and customizable genome sequencing process by using KubeGene.\n\n## Advantages\n\n### Universal workflow design grammar\nKubeGene provides a complete set of genome sequencing workflow grammars which decouples with specific analysis tools. It requires a very low learning cost to learn how to write and use the workflow. You can easily migrate the genome sequencing business to KubeGene.\n\n### Tailor-made workflow for the biosequencing industry\nThe workflow grammar is designed by comparing different genome sequencing scenarios. It also keeps the user’s traditional usage habit as much as possible and is closer to user scenarios.\n\n### More efficient resource usage\nKubeGene uses container to run the genome sequencing business. Compared to traditional genome sequencing solutions using virtual machines, KubeGene makes resource usage more efficient and avoiding resource idle.\n\n### Scaling based on demand\nKubernetes can automatically scale your cluster based on your genome sequencing workload by using KubeGene. Also you can easily scale the kubernetes cluster manually. It can save your production costs. \n\n\n## Prerequisites\n\n\n- Kubernetes 1.10+\n- golang 1.10+\n\nIf you have an older version of Kubernetes, we recommend upgrading Kubernetes first and then use the kubeGene.  \nIf you use 1.10 kubernetes, you should make sure that the feature gate `CustomResourceSubresources` is open.  \nYou can use minikube to build a local kubernetes cluster quickly. For more information, you can use [minikube](https://kubegene.netlify.com/docs/started/getting-started-minikube/).\n\n## Deploy KubeGene\n\nKubeGene has two main componments.\n\n* **Kubedag**. Kubedag is a DAG workflow engine on Kubernetes platform. It is dedicated to making Gene Sequencing workflow execute in container easily. \n\n* **genectl**. genectl is a command line interface for running commands against KubeGene. \n\n### Clone code\nFirst, make work directory:\n```bash\n$ mkdir -p $GOPATH/src/kubegene.io\n```\nEnter the work directory and clone the code:\n```bash\n$ git clone https://github.com/kubegene/kubegene.git\n```\n### Install kubedag\n\nWe have provide the YAML file that contains all API objects that are necessary to run kubedag, you can easily deploy the kubedag using the follow commands:\n\n```bash\n$ ./hack/local-up-kubedag.sh\n```\n\nkubedag will automatically create a Kubernetes Custom Resource Definition (CRD):\n\n```bash\n$ kubectl get customresourcedefinitions\nNAME                                    AGE\nexecutions.execution.kubegene.io        2s \n```\nFor more information, you can see [Kugedag](https://kubegene.netlify.com/docs/about/kubedag/).\n\n### Install genectl\n\nCompile the `genectl`\n\n```bash\n$ make genectl\n```\nEnter bin directory and make the genectl binary executable.\n```bash\n$ chmod +x ./genectl\n```\nMove the binary in to your PATH.\n```bash\n$ sudo mv ./genectl /usr/local/bin/genectl\n```\nFor how to use genectl, you can see [genectl](https://kubegene.netlify.com/docs/guides/genectl-command/).\n\n## Build your tool repo\n\nA tool is a mirrored package of bioinformatics software that genome sequencing use. When you use genectl to submit your workflow, you should specify your tool repo address,it can be a directory or URL, if it is a URL, it must point to a specify tool file. The default tool repo is local directory “/${home}/kubegene/tools”). You can write your own tools and put them in the tool repo. For how to write your tool yaml, you can see [tool](https://kubegene.netlify.com/docs/guides/tool/).\n\n## Write and submit your workflow.\n\nWe have defined a complete set of gene sequencing workflow grammars. It keeps the user’s traditional usage habit as much as possible and requires a very low learning cost to learn how to write and use the workflow. For how to write your workflow, you can see [workflow grammar](https://kubegene.netlify.com/docs/guides/workflow-grammar/).\n\nWe have several example workflow yaml in the example directory. A simple sample you can see in the `example/simple-sample` directory.\n\nFor submit the workflow, you need create the storage volume first:\n\n```bash\n$ kubectl create -f example/simple-sample/sample-pv.yaml\npersistentvolume \"sample-pv\" created\n$ kubectl create -f example/simple-sample/sample-pvc.yaml\npersistentvolumeclaim \"sample-pvc\" created\n```\nThen you can submit the workflow by the following command:\n\n```bash\n$ genectl sub workflow example/simple-sample/simple-sample.yaml\nThe workflow has been submitted successfully! And the execution has been created.\nYour can use the follow command to query the status of workflow execution.\n\n        genectl get execution execution-bf0dc -n default\n\nor use the follow command to query the detail info for workflow execution.\n\n        genectl describe execution execution-bf0dc -n default\n\nor use the follow command to delete the workflow execution.\n\n        genectl delete execution execution-bf0dc -n default\n```\n\nQuery the detail execution status of workflow:\n\n```\n$ genectl describe execution execution-bf0dc -n default\nNamespace:    default\nLabels:       \u003cnone\u003e\nAnnotations:  \u003cnone\u003e\nPhase:        Succeeded\nMessage:      execution has run successfully\nworkflow:\n  jobprepare(total: 1; success: 1; failed: 0; running: 0; error: 0):\n    Subtask                       Phase      Message\n    -------                       -----      -------\n    execution-bf0dc.jobprepare.0  Succeeded  success\n  joba(total: 2; success: 2; failed: 0; running: 0; error: 0):\n    Subtask                 Phase      Message\n    -------                 -----      -------\n    execution-bf0dc.joba.0  Succeeded  success\n    execution-bf0dc.joba.1  Succeeded  success\n  jobb(total: 3; success: 3; failed: 0; running: 0; error: 0):\n    Subtask                 Phase      Message\n    -------                 -----      -------\n    execution-bf0dc.jobb.0  Succeeded  success\n    execution-bf0dc.jobb.1  Succeeded  success\n    execution-bf0dc.jobb.2  Succeeded  success\n  jobc(total: 2; success: 2; failed: 0; running: 0; error: 0):\n    Subtask                 Phase      Message\n    -------                 -----      -------\n    execution-bf0dc.jobc.1  Succeeded  success\n    execution-bf0dc.jobc.0  Succeeded  success\n  jobd(total: 2; success: 2; failed: 0; running: 0; error: 0):\n    Subtask                 Phase      Message\n    -------                 -----      -------\n    execution-bf0dc.jobd.1  Succeeded  success\n    execution-bf0dc.jobd.0  Succeeded  success\n  jobfinish(total: 1; success: 1; failed: 0; running: 0; error: 0):\n    Subtask                      Phase      Message\n    -------                      -----      -------\n    execution-bf0dc.jobfinish.0  Succeeded  success       \n```\n\n## Feature on the road  \n\nKubeGene has provide the basic functionalities for running the genome sequencing workflow. More feature will be added:\n\n- Support other workflow engine, such as argo and so on.\n- User-defined workflow grammar plugin support.\n- Support for hybrid cloud deployment.\n\n## Support\n\nIf you need support, start with the [troubleshooting guide], and work your way through the process that we've outlined.\n\nThat said, if you have questions, reach out to us, feel free to reach out to these folks:\n\n- @kevin-wangzefeng \n- @lichuqiang \n- @wackxu \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolcano-sh%2Fkubegene","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolcano-sh%2Fkubegene","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolcano-sh%2Fkubegene/lists"}