{"id":47839994,"url":"https://github.com/barricklab/cryptkeeper","last_synced_at":"2026-04-03T20:36:53.205Z","repository":{"id":168332767,"uuid":"152452299","full_name":"barricklab/cryptkeeper","owner":"barricklab","description":"Tool for visualizing unintentional bacterial gene expression from a DNA sequence","archived":false,"fork":false,"pushed_at":"2025-07-17T00:51:20.000Z","size":3331,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-05T10:50:03.831Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/barricklab.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":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-10T16:08:16.000Z","updated_at":"2025-07-17T00:51:23.000Z","dependencies_parsed_at":"2023-06-28T18:16:22.120Z","dependency_job_id":"9248ffad-e6b6-4c89-aa86-9dcd688c9450","html_url":"https://github.com/barricklab/cryptkeeper","commit_stats":null,"previous_names":["barricklab/cryptkeeper"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/barricklab/cryptkeeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barricklab%2Fcryptkeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barricklab%2Fcryptkeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barricklab%2Fcryptkeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barricklab%2Fcryptkeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barricklab","download_url":"https://codeload.github.com/barricklab/cryptkeeper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barricklab%2Fcryptkeeper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31375772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":"2026-04-03T20:36:52.630Z","updated_at":"2026-04-03T20:36:53.197Z","avatar_url":"https://github.com/barricklab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CryptKeeper\n![CryptKeeper logo with name](./cryptkeeper/assets/cryptkeeper_long.svg)\n\n\n`CryptKeeper` is a computational pipeline designed to predict the presence of open reading frames that are burdensome due to substantial ribosome sequestration on plasmids, particularly virus infectious clones. `CryptKeeper` also uses other prediction tools, such as promoter prediction and terminator prediction, to provide additional context. Burden from strongly expressed, long open reading frames have been found to render plasmids evolutionarily unstable or unclonable. In addition to highlighting burden from ribosome absorption, we've also found that `CryptKeeper` is capable of displaying alternative translation initiation sites that lead to protein truncations. This is an important consideration for experiments that rely on protein fusions or tagging.\n\n\n`CryptKeeper` provides an output in the form of CSV files (for downstream data processing) and a Bokeh plot for interactive visualization. The Bokeh plot uses the SVG backend and can be saved to support assembling downstream figures.\n\n\n![Example CryptKeeper output of a medium strength BFP expression plasmid.](./examples/output.png)\nAbove is an example of a Bokeh plot produced by `CryptKeeper`. The two outer tracks display predicted RBS strength versus sequence position (the product being 'burden'). The inner tracks display predicted promoters (green), rho-dependent terminators (red), and rho-independent terminators (purple). The innermost track displays annotations extracted from the provited genbank file.\n\n\n# Quick Start\n## Installation\n\n[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat)](http://bioconda.github.io/recipes/cryptkeeper/README.html)\n\n`CryptKeeper` is a Python module and associated command line script. We recommend installing `CryptKeeper` using [Bioconda](https://bioconda.github.io/) on Linux or macOS. This will automatically install `CryptKeeper` and all of its dependencies.\n\n\nFrom Bioconda (recommended; Linux, macOS):\n- Run `conda install -c bioconda cryptkeeper`\n\nFrom Pip (for experts; Linux, macOS, Windows):\n- Download and install ViennaRNA, following the instructions [here](https://www.tbi.univie.ac.at/RNA/).\n- Download and install TranstermHP [here](https://transterm.cbcb.umd.edu/). Add TransTermHP binaries to your path.\n- Run `pip install cryptkeeper`\n\nFor Nix users, a shell flake is included which will install ViennaRNA and TransTermHP automatically, as well as set up a venv for you to continue the installation with pip.\n\nDevelopers may consider downloading and installing `CryptKeeper` other dependencies by forking their respective repositories and installing them from their repository directory.\n\n## Command Line Usage Usage\n\n\n```\ncryptkeeper -h\nusage: cryptkeeper [-h] -i I [-c] -o O [-j J] [-p] [-n NAME] [--rbs-score-cutoff RBS_SCORE_CUTOFF] [-t TICK_FREQUENCY]\n\n\nPipeline for predicting cryptic gene expression\n\n\noptional arguments:\n -h, --help            show this help message and exit\n -i I, --input I       input fasta file\n -c, --circular        The input file is circular. (Note: Increases runtime)\n -o O, --output O      output file prefix\n -j J, -threads J      Number of threads/processes to use\n -p, --plot-only       plot mode, assumes output files all exist\n -n NAME, --name NAME  name of sample (if not provided the filename is used)\n --rbs-score-cutoff RBS_SCORE_CUTOFF\n                       Minimum score that is graphed and output to final files (all are used in calculating burden)\n -t TICK_FREQUENCY     Y axis tick frequency (default 1000)\n```\n\n\n\n\nFor example:\n```javascript\ncd examples/BPMV\ncryptkeeper -i pSMART-LCKan-BPMV1.fna -o output/pSMART-LCKan-BPMV1 -j 8 -c\n```\n\n\n## Python Usage\n\n\nIn certain situations, it may be valuable to use `CryptKeeper` as a python dependency for another pipeline.\nThe primary entry point for python development is `cryptkeeper.cryptkeeper()`, which has the following arguments:\n\n\n```\ninput_file : str\n   Path to the input sequence file in FASTA format.\noutput : str, optional\n   Path to the output file directory. If not provided, CryptKeeper will write the results to a temporary directory.\ncircular : bool, optional\n   If True, CryptKeeper will extend the sequence by a few bases while making predictions. This is necessary for predicting terminators and RBS sites at the index and end of a file. Defaults to False.\nname : str, optional\n   Name of the sequence. If not provided, CryptKeeper will attempt to extract the name from the genbank file if applicable.\nthreads : int, optional\n   Number of threads to use for parallel processing. Defaults to 1.\nlogger : logging.Logger, optional\n   Logger object to use for logging. If not provided, CryptKeeper will run without logging.\nrbs_score_cutoff : float, optional\n   Minimum score required for an RBS site to be considered expressed. Default is 2.0.\n```\n\n\nThis function returns an object that contains predictions made by `CryptKeeper` as well as some metadata information extracted directly from an input GenBank file if one is provided. The object has the following attributes:\n\n\n* `name`: the name of the sample in the form of a `str`\n* `sequence`: the input sequence from the original file in the form of a `str`\n* `translation_sites`: ORFs with predicted RBSs in the form of a `List[NamedTuple]`\n* `rho_dep_terminators`: Predicted rho dependant termionators in the form of a `List[NamedTuple]`\n* `int_terminators`: Predicted intrinsic terminators in the form of a `List[NamedTuple]`\n* `promoters`: Predicted promoters in the form of a `List[NamedTuple]`\n* `annotations`: Annotations from the provided genbank file in the form of a List[NamedTuple]\n* `burden`: The total predicted burden in the form of a `float`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarricklab%2Fcryptkeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarricklab%2Fcryptkeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarricklab%2Fcryptkeeper/lists"}