{"id":25596855,"url":"https://github.com/nanoporetech/katuali","last_synced_at":"2025-06-24T01:04:05.881Z","repository":{"id":85586384,"uuid":"159695705","full_name":"nanoporetech/katuali","owner":"nanoporetech","description":"Analysis pipelines from Oxford Nanopore Technologies' Research Division","archived":false,"fork":false,"pushed_at":"2020-10-16T11:49:21.000Z","size":35012,"stargazers_count":50,"open_issues_count":10,"forks_count":7,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-13T02:31:57.267Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/nanoporetech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2018-11-29T16:27:31.000Z","updated_at":"2024-04-02T02:11:21.000Z","dependencies_parsed_at":"2023-03-14T03:30:19.741Z","dependency_job_id":null,"html_url":"https://github.com/nanoporetech/katuali","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/nanoporetech/katuali","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fkatuali","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fkatuali/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fkatuali/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fkatuali/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanoporetech","download_url":"https://codeload.github.com/nanoporetech/katuali/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fkatuali/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261583795,"owners_count":23180669,"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":[],"created_at":"2025-02-21T12:34:50.424Z","updated_at":"2025-06-24T01:04:05.814Z","avatar_url":"https://github.com/nanoporetech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Oxford Nanopore Technologies logo](images/ONT_logo_590x106.png)\n\n\nKatuali\n=======\n\n`Katuali` is a flexible consensus pipeline implemented in\n[Snakemake](https://snakemake.readthedocs.io) to basecall, assemble, and polish\nOxford Nanopore Technologies' sequencing data.\n\nFeatures\n--------\n\n  * fast5 to high quality assembly in a single command.\n  * Recommended fixed \"standard\" and \"fast\" pipelines.\n  * Interchange basecaller, assembler, and consensus components of the\n    pipelines simply by changing the target filepath.\n  * [Medaka](https://github.com/nanoporetech/medaka) training pipeline\n    including generation of training data, model training, and model evaluation.\n  * Seemless distribution of tasks over local or distributed compute.\n  * Open source (Mozilla Public License 2.0).\n\nDocumentation can be found at https://nanoporetech.github.io/katuali/.\n\nInstallation\n------------\n\nA Makefile is provided to create a\n[virtual environment](https://docs.python.org/3/tutorial/venv.html) into which\nall necessary dependencies will be installed. Katuali has been tested on Linux\n(specifically Ubuntu 16) and MacOS.\n\nTo setup the environment run:\n\n    git clone https://github.com/nanoporetech/katuali.git\n    cd katuali\n    make install\n    source ./venv/bin/activate\n\nA conda package is forthcoming.\n\nDependencies\n------------\n\nKatuali makes use of a number of tools to do basecalling, assembly, and\npolishing that need to be installed to perform such steps of a pipeline.\nKatuali does not enforce that all possible tools are present; only those\nrequired to run a user's pipeline need be installed. If Katuali cannot\nfind a tool, it will alert the user.\n\nThe list below indicates possible options for pipeline steps and the default\nfilesystem location where Katuali expects to find them. These locations can be\nchanged by the user, see the\n[documentation](https://nanoporetech.github.io/katuali/) for more information.\nPlease refer to the documentation of each of these tools for installation\ninstructions.\n\n**General Tools**\n\n* [pomoxis](https://github.com/nanoporetech/pomoxis): \"~/git/pomoxis/venv/bin/activate\"\n\nPomoxis is used as a general utility throughout much of katuali, its\ninstallation is required for most functionality.\n\n**Basecalling Tools**\n\n* [guppy](https://community.nanoporetech.com/downloads): \"/usr/bin/guppy_basecaller\"\n\nGuppy is recommended, both scrappie and flappie are research prototypes.\n\n**Assembly Tools**\n\n* [canu](https://github.com/marbl/canu): \"~/git/canu-1.8/Linux-amd64/bin/canu\"\n* [flye](https://github.com/fenderglass/Flye): \"~/git/Flye/bin/flye\"\n* [shasta](https://github.com/chanzuckerberg/shasta): \"~/git/shasta-Linux-0.3.0\"\n* [pomoxis](https://github.com/nanoporetech/pomoxis): \"~/git/pomoxis/venv/bin/activate\"\n\nIn the context of Katuali, pomoxis functions as a wrapper to\n[miniasm](https://github.com/lh3/miniasm). Canu is utilised in the standard\nworkflow, while pomoxis is used in the fast workflow.\n\n**Consensus Tools**\n\n* [medaka](https://github.com/nanoporetech/medaka): \"~/git/medaka/venv/bin/activate\"\n* [nanopolish](https://github.com/jts/nanopolish): \"~/git/nanopolish\"\n\nMedaka is recommended in combination with the latest \"flip-flop\" algorithm\nin the guppy basecaller, and for rapid consensus. Nanopolish may still be\npreferred if using older basecallers.\n\nUsage\n-----\n\nThe `Katuali` tests contain examples of how to basecall, assemble, and polish\na small dataset that comes bundled with `Katuali`. These tests can be run with:\n\n    make test\n\nfrom the `Katuali` source directory. Running the tests requires installation of\n`scrappie`, `pomoxis`, `medaka`, and `nanopolish`. See the\n[documentation](https://nanoporetech.github.io/katuali/installation.html#tests)\nfor more information on the outputs of running the above.\n\nTo run with other data, start by creating a directory of reads (which could\ncontain subdirectories of reads) within a run directory:\n\n    mkdir -p run1\n    cd run1\n    ln -s /path/to/fast5 reads  # create a softlink to the fast5 data\n    cd ..\n    \nThen make a copy of the katuali config into your working directory,\n\n    katuali_config my_config.yaml\n\nand update the katuali config to reflect your data:\n    \n    DATA:\n        'run1':\n            'GENOME_SIZE': '4.0M'  # for canu we need to specify genome size\n\nThere are two predefined pipelines.\n\n1. To perform basecalling, a quick assembly with miniasm, and consensus with racon\n   and medaka it is sufficient to run:\n\n       katuali --configfile my_config.yaml fast_assm_polish\n\n2. Alternatively to assemble with canu run:\n\n       katuali --configfile my_config.yaml standard_assm_polish\n\n\nThe [documentation](https://nanoporetech.github.io/katuali/examples.html)\ndescribes how to create a pipeline with any combination of basecallers,\nassemblers and polishers. \n    \n\nMedaka training pipeline\n------------------------\n\nIt is possible to train medaka models starting from folders of fast5s in a\nsingle command once the config has been modified to reflect your input data\n(fast5s and genomes for each run as well as training and evaluation region\ndefinitions).\n\nRunning:\n\n    katuali all_medaka_train_features --keep-going\n\nwill:\n\n* basecall all the runs\n* align each run to its reference\n* create subsampled sets of basecalls over the desired regions and depths\n* assemble those sets of basecalls\n* create medaka training features for all those sets\n\nRunning:\n\n    katuali medaka_train_replicates --keep-going\n\nwill do all the tasks of `all_medaka_train_features` and additionally launch\nmultiple medaka model-training replicates.\n\nIf some of your input runs have insufficient coverage-depth for some of the\ntraining regions, some of the training feature files will not be made. In this\ncase the config flag `USE_ONLY_EXISTING_MEDAKA_FEAT` can be set to true to allow\nkatuali to train using only those features which exist already:\n\n    USE_ONLY_EXISTING_MEDAKA_FEAT: true \n\nRefer to comments in the config (katuali/config.yaml) to see how this process\ncan be controlled. \n\n\nHelp\n----\n\n**Licence and Copyright**\n\n© 2018 Oxford Nanopore Technologies Ltd.\n\n`katuali` is distributed under the terms of the Mozilla Public License 2.0.\n\n**Research Release**\n\nResearch releases are provided as technology demonstrators to provide early\naccess to features or stimulate Community development of tools. Support for\nthis software will be minimal and is only provided directly by the developers.\nFeature requests, improvements, and discussions are welcome and can be\nimplemented by forking and pull requests. However much as we would\nlike to rectify every issue and piece of feedback users may have, the \ndevelopers may have limited resource for support of this software. Research\nreleases may be unstable and subject to rapid iteration by Oxford Nanopore\nTechnologies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanoporetech%2Fkatuali","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanoporetech%2Fkatuali","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanoporetech%2Fkatuali/lists"}