{"id":26573236,"url":"https://github.com/linsalrob/pppf","last_synced_at":"2026-05-05T02:33:15.809Z","repository":{"id":57454516,"uuid":"231460796","full_name":"linsalrob/PPPF","owner":"linsalrob","description":"Probabilistic Phage Protein Functions","archived":false,"fork":false,"pushed_at":"2022-05-16T14:59:37.000Z","size":22047,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T06:36:51.548Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linsalrob.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":"2020-01-02T21:15:54.000Z","updated_at":"2022-07-26T09:37:18.000Z","dependencies_parsed_at":"2022-09-05T05:40:47.883Z","dependency_job_id":null,"html_url":"https://github.com/linsalrob/PPPF","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/linsalrob%2FPPPF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linsalrob%2FPPPF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linsalrob%2FPPPF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linsalrob%2FPPPF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linsalrob","download_url":"https://codeload.github.com/linsalrob/PPPF/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245040190,"owners_count":20551299,"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-03-23T00:39:52.798Z","updated_at":"2026-05-05T02:33:15.742Z","avatar_url":"https://github.com/linsalrob.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![DOI](https://www.zenodo.org/badge/231460796.svg)](https://www.zenodo.org/badge/latestdoi/231460796)\n[![Edwards Lab](https://img.shields.io/badge/Bioinformatics-EdwardsLab-03A9F4)](https://edwards.sdsu.edu/research)\n\n\n# PPPF\n# Probabilistic Phage Protein Functions\n\n## Author\n\n[Rob Edwards](https://twitter.com/linsalrob)\n\n\n## Synopsis\n\nWe are exploring different ways of annotating phage proteins (because it never gets old), and this is a  database of complete phage genomes and their annotations.\n\nIt also includes some phage protein clustering and tools associated with those clusters.\n\nAt the moment this is very much a _pre-alpha_ project. We are defining the tables and relations, building the code base to access those tables, and trying to explore what we should do next.\n\nHowever, we have made all our data, and the code to recreate it, available for everyone in case it is of use to anyone. \n\n## Installation\n\n### PIP installation\n\n```pythonstub\npip install pppf\n```\n\n### Getting started\n \nThe [download_databases](python scripts/download_databases.py) script will download the two databases `phages.sql` [2.6 GB] and `clusters.sql` [1.8 GB] to the default location (currently `PPPF/data/databases/`) or to a location of your choosing. \n\nMost of the code in [scripts](scripts/) requires that you provide a `phage` or `clusters` database as a command line option, but we are implementing code in `pppfdb` that will use the default location. If you use a different location, you may need to change the location in that code.\n \n \n### Building from scratch\n \nIf you want to build the databases from scratch, you can do so using `snakemake` and the [snakefiles](snakefiles/) that we provide.\n \n Then, you can use snakemake to start making it better. Probably.\n \n You will need a [process_phages.json](snakefiles/process_phages.json) file, and then you can update the databases \n with the latest phage genomes like this:\n \n \n```bash\nsnakemake -s PPPF/snakefiles/download_phages.snakefile --configfile process_phages.json\n```\n\n\nif you are running on Edwards' local compute resources, you can use this command to run the download on the cluster. \n\n```bash\nmkdir sge_download.out sge_download.err\nsnakemake -s ~/GitHubs/PPPF/snakefiles/download_phages.snakefile --cluster 'qsub -cwd -o sge_download.out -e sge_download.err -V -q important' --local-cores 6 -j 600 --latency-wait 60\n```\n \n It will download a new set of accessions, and then check the database to see what needs to be added. \n Note that currently we do not delete anything from the database.\n \n\n## Make a small database\n\nIf you want to make a smaller database of a set of genomes, create a database, use [load_databases.py](scripts/load_databases.py), to load it, and then use the snakemake to create the families.\n\nFor example, to create a *Salmonella* phage only database, assuming you have all the phages downloaded you can do something like this:\n\n```bash\n# extract just those Salmonella phage\ngrep DEFINITION genbank/* | grep Salmonella | cut -f 1 -d ':' | xargs -i cat {} \u003e\u003e Salmonella_phage.gbk\n\n# create the databases to be loaded\npython3 PPPF/scripts/create_databases.py -p salmonella_phages.sql -c salmonella_clusters.sql -v\n\n# load the phage database\npython3 PPPF/scripts/load_databases.py -p salmonella_phages.sql -f genbank/Salmonella_phage.gbk -v\n\n# create the clusters, etc\nsnakemake -s ~/GitHubs/PPPF/snakefiles/create_phage_families.snakefile -j 24\n```\n\n\n\n## Using PPPF\n\nThe basic structure is that each of the directories is a library, and the [scripts](scripts/) directory contains scripts that use those libraries. \n\nTake a look at the [database schema](Schema.md) for a more detailed discussion of the schema we designed.\n\n\n## Information\n\n### License\n\nPPPF is released under the [MIT License](LICENSE)\n\n### Issues\n\nPlease use the [issue tracker](https://github.com/linsalrob/PPPF/issues) for any bugs, enhancements, suggestions, or comments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinsalrob%2Fpppf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinsalrob%2Fpppf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinsalrob%2Fpppf/lists"}