diff --git a/.github/ISSUE_TEMPLATE/01_bug.yml b/.github/ISSUE_TEMPLATE/01_bug.yml index 3dae025..6d65bd0 100644 --- a/.github/ISSUE_TEMPLATE/01_bug.yml +++ b/.github/ISSUE_TEMPLATE/01_bug.yml @@ -2,20 +2,20 @@ name: Bug Report description: Report errors or unexpected results. labels: ["bug"] assignees: - - foobar-bug-assign-dev + - ragamp-bug-assign-dev body: - type: textarea id: install attributes: - label: How did you install foobar? + label: How did you install RagAmp? description: > E.g., install via pip, install from source, etc. **Note:** this will be rendered as console text automatically. placeholder: | - $ pip install foobar - Collecting foobar + $ pip install ragamp + Collecting ragamp ... - Successfully installed foobar... + Successfully installed ragamp... render: console validations: required: true @@ -23,7 +23,7 @@ body: - type: input id: version attributes: - label: What version of foobar are you using? + label: What version of ragamp are you using? description: > Package version if installed via Pip or commit ID if installed from source. diff --git a/.github/ISSUE_TEMPLATE/02_enhancement.yml b/.github/ISSUE_TEMPLATE/02_enhancement.yml index b324e5b..11f40e1 100644 --- a/.github/ISSUE_TEMPLATE/02_enhancement.yml +++ b/.github/ISSUE_TEMPLATE/02_enhancement.yml @@ -2,7 +2,7 @@ name: Enhancement Request description: Request a new feature or enhancement. labels: ["enhancement"] assignees: - - foobar-enh-assign-dev + - ragamp-enh-assign-dev body: - type: textarea id: request diff --git a/.github/ISSUE_TEMPLATE/03_docs.yml b/.github/ISSUE_TEMPLATE/03_docs.yml index e6d1d82..7789871 100644 --- a/.github/ISSUE_TEMPLATE/03_docs.yml +++ b/.github/ISSUE_TEMPLATE/03_docs.yml @@ -2,7 +2,7 @@ name: Documentation Improvements description: Suggest improvements to the documentation. labels: ["documentation"] assignees: - - foobar-doc-assignee-dev + - ragamp-doc-assignee-dev body: - type: textarea id: freeform diff --git a/CITATION.cff b/CITATION.cff index 7a0f4a2..d67648c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,10 +1,10 @@ cff-version: 1.2.0 message: If you use this software, please cite it as below. authors: - - family-names: Pauloski - given-names: Greg - orcid: https://orcid.org/0000-0002-6547-6902 + - family-names: Gokdemir + given-names: Ozan + orcid: https://orcid.org/0000-0001-5299-1983 license: MIT -repository-code: https://github.com/foobar-author/foobar -title: FooBar -url: https://foobar.dev +repository-code: https://github.com/ogkdmr/ragamp +title: RagAmp +url: https://ogkdmr.github.io/ragamp/ diff --git a/LICENSE b/LICENSE index 7b7753f..dad9c10 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2023-Present FooBar Author +Copyright (c) 2023-Present Ozan Gokdemir Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index a101020..915b1bb 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,8 @@ -# Python Package Template Repo +# RagAmp: Retrieval Augmented Generation for Antimicrobial Peptide Generation -[![docs](https://github.com/gpauloski/python-template/actions/workflows/docs.yml/badge.svg)](https://github.com/gpauloski/python-template/actions) -[![tests](https://github.com/gpauloski/python-template/actions/workflows/tests.yml/badge.svg)](https://github.com/gpauloski/python-template/actions) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/gpauloski/python-template/main.svg)](https://results.pre-commit.ci/latest/github/gpauloski/python-template/main) - -Python package template repo that provides: -- Package, examples, and testing layout. -- GitHub PR and Issue templates. -- Example docs with MKDocs and GitHub Pages. -- CI framework with `pre-commit` and `tox`. -- GitHub actions for running tests and publishing packages. - -This package setup was based on [Anthony Sottile's project setup](https://www.youtube.com/watch?v=q8DkatMZvUs&list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY) but deviates in some places (e.g., `pyproject.toml` and `ruff`). - -## Setup Instructions - -1. Click the "Use this template" button at the top right of this page. -2. Delete and directories you will not be using (commonly `docs/` if you do not want to use MKDocs or `examples/` if you will not have example code). -3. Follow the instructions to create the new repo then clone your repo locally. -4. The template uses "foobar" to indicate things that need to be changed. - Start by searching for all instances (`git grep foobar`) and changing them accordingly. -5. Configure pre-commit: - - Go to [https://pre-commit.ci/](https://pre-commit.ci/) and enable pre-commit on your repo. - - Update the pre-commit badge URL in this README with your new badge URL. -6. Configure GitHub pages: - - Go to the "Pages" section of your repository settings. - - Select "Deploy from a branch" and use the "gh-pages" branch. -7. Configure PyPI releases (if relevant): - - Create a new API token for [https://pypi.org/](https://pypi.org/). - - Add the token as a GitHub actions secret (see the instructions [here](https://github.com/pypa/gh-action-pypi-publish)). -8. Delete this boilerplate stuff in the README. -9. Commit and push changes. - -### GitHub Configuration - -I recommend making a few other changes to the repo's setting on GitHub. -- In "General" - - Select/deselect features you need/don't need. - - Select "Automatically delete head branches -- In "Branches": enable branch protection on `main`. - - Check "Require a pull request before merging" - - Check "Require status checks to pass before merging" - - Check "Require branches to be up to date before merging" - - Set required checks (e.g., pre-commit.ci, tests, etc.) - - Check "Do not allow bypassing the above settings" - -## Installation - -Install via pip: -``` -$ pip install foobar -``` - -For local development: -``` -$ tox --devenv venv -e py310 -$ pre-commit install -``` -or -``` -$ pip install -e . -``` - -## Additional README Sections +[![docs](https://github.com/ogkdmr/ragamp/actions/workflows/docs.yml/badge.svg)](https://github.com/ogkdmr/ragamp/actions) +[![tests](https://github.com/ogkdmr/ragamp/actions/workflows/tests.yml/badge.svg)](https://github.com/ogkdmr/ragamp/actions) +[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ogkdmr/ragamp/main.svg)](https://results.pre-commit.ci/latest/github/ogkdmr/ragamp/main) +Documentation to follow ... diff --git a/docs/_templates/python/material/module.html b/docs/_templates/python/material/module.html index 682cf0b..9e1f961 100644 --- a/docs/_templates/python/material/module.html +++ b/docs/_templates/python/material/module.html @@ -48,7 +48,7 @@ {% endif %}

- Source file: {{ module.relative_package_filepath }} + Source file: {{ module.relative_package_filepath }}

diff --git a/docs/contributing/index.md b/docs/contributing/index.md index 956e342..0725ab4 100644 --- a/docs/contributing/index.md +++ b/docs/contributing/index.md @@ -3,11 +3,11 @@ We recommend using [Tox](https://tox.wiki/en/latest/index.html){target=_blank} to setup the development environment. This will create a new virtual environment with all of the required packages installed -and FooBar installed in editable mode with the necessary extras options. +and RagAmp installed in editable mode with the necessary extras options. ```bash -$ git clone https://github.com/foobar-author/foobar -$ cd foobar +$ git clone https://github.com/ogkdmr/ragamp.git +$ cd ragamp $ tox --devenv venv -e py310 $ . venv/bin/activate ``` @@ -21,8 +21,8 @@ $ . venv/bin/activate To install manually: ```bash -$ git clone https://github.com/foobar-author/foobar -$ cd foobar +$ git clone https://github.com/ogkdmr/ragamp.git +$ cd ragamp $ python -m venv venv $ . venv/bin/activate $ pip install -e .[dev,docs] @@ -30,7 +30,7 @@ $ pip install -e .[dev,docs] ## Continuous Integration -FooBar uses [pre-commit](https://pre-commit.com/){target=_blank} and +RagAmp uses [pre-commit](https://pre-commit.com/){target=_blank} and [Tox](https://tox.wiki/en/latest/index.html){target=_blank} for continuous integration (test, linting, etc.). @@ -49,8 +49,8 @@ The entire CI workflow can be run with `#!bash $ tox`. This will test against multiple versions of Python and can be slow. Module-level unit-test are located in the `tests/` directory and its -structure is intended to match that of `foobar/`. -E.g. the tests for `foobar/x/y.py` are located in +structure is intended to match that of `ragamp/`. +E.g. the tests for `ragamp/x/y.py` are located in `tests/x/y_test.py`; however, additional test files can be added as needed. Tests should be narrowly focused and target a single aspect of the code's functionality, tests should not test internal implementation details of diff --git a/docs/contributing/issues-pull-requests.md b/docs/contributing/issues-pull-requests.md index 27248c9..a01a3eb 100644 --- a/docs/contributing/issues-pull-requests.md +++ b/docs/contributing/issues-pull-requests.md @@ -1,6 +1,6 @@ ## Issues -[Issue Tracker](https://github.com/foobar-author/foobar/issues){target=_blank} +[Issue Tracker](https://github.com/ogkdmr/ragamp/issues){target=_blank} We use GitHub issues to report problems, request and track changes, and discuss future ideas. diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md index 13ba765..7147972 100644 --- a/docs/contributing/releases.md +++ b/docs/contributing/releases.md @@ -1,7 +1,7 @@ ## Release Timeline Releases are created on an as-needed basis. -Milestones are the [Issue Tracker](https://github.com/foobar-author/foobar/issues){target=_blank} are used to track features to be included in upcoming releases. +Milestones are the [Issue Tracker](https://github.com/ogkdmr/ragamp/issues){target=_blank} are used to track features to be included in upcoming releases. ## Creating Releases @@ -15,13 +15,13 @@ Milestones are the [Issue Tracker](https://github.com/foobar-author/foobar/issue 4. Tag the release commit and push (typically this is the commit updating the version numbers). ```bash - $ git tag -s v{VERSION} -m "FooBar v{VERSION}" + $ git tag -s v{VERSION} -m "RagAmp v{VERSION}" $ git push origin v{VERSION} ``` Note the version number is prepended by "v" for the tags so we can distinguish release tags from non-release tags. 5. Create a new release on GitHub using the tag. The title should be - `FooBar v{VERSION}`. + `RagAmp v{VERSION}`. 6. **Official release:** 1. Use the "Generate release notes" option and set the previous tag as the previous official release tag. E.g., for `v0.4.1`, the previous release tag should be `v0.4.0` and NOT `v0.4.1a1`. 2. Add an "Upgrade Steps" section at the top (see previous releases for examples). diff --git a/docs/examples.md b/docs/examples.md deleted file mode 100644 index 4793c2a..0000000 --- a/docs/examples.md +++ /dev/null @@ -1,12 +0,0 @@ -# Examples - -## foobar - -foobar can be used as follows. - -```python -from foobar import foo - -foo.bar([1, 2, 3]) -# output: 6 -``` diff --git a/docs/generate_api.py b/docs/generate_api.py index b32966e..63c38bd 100644 --- a/docs/generate_api.py +++ b/docs/generate_api.py @@ -7,7 +7,7 @@ nav = mkdocs_gen_files.Nav() -PACKAGE_DIR = 'foobar/' +PACKAGE_DIR = 'ragamp/' for path in sorted(Path(PACKAGE_DIR).rglob('**/*.py')): module_path = path.with_suffix('') diff --git a/docs/get-started.md b/docs/get-started.md index 7248f9c..925c69b 100644 --- a/docs/get-started.md +++ b/docs/get-started.md @@ -1,19 +1,23 @@ # Quick Start -foobar brief description. +RagAmp is a retrieval-augmented generation application for antimicrobial peptides. ## Overview -foobar detailed overview. +The tool is designed to encode unstructured text data (e.g., academic papers) about +antimicrobial peptides and build vectorstores with their embeddings. It then uses +this vectorstore to retrieve relevant documents to answer user queries. The queries +can be arbitrary, but in our particular use case, they are engineered to investigate +whether the model can propose novel hypotheses for AMP-microbe interactions such +as suggesting novel potential targets that an AMP can be operating on based on its +existing known targets. ## Installation -```bash -$ pip install foobar -``` +TODO: TBD Documentation on installing for local development is provided in [Contributing](contributing/index.md). ## Usage -foobar usage example. +TODO: TBD diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index 9ffd745..0000000 --- a/docs/installation.md +++ /dev/null @@ -1,5 +0,0 @@ -# Installation - -```bash -$ pip install foobar -``` diff --git a/docs/known-issues.md b/docs/known-issues.md deleted file mode 100644 index f12a337..0000000 --- a/docs/known-issues.md +++ /dev/null @@ -1,4 +0,0 @@ -# Known Issues - -- First known issue. -- Second known issue. diff --git a/examples/README.md b/examples/README.md index 0a01927..250dc2c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1 +1 @@ -# foobar Examples +# RagAmp Examples diff --git a/examples/example.py b/examples/example.py deleted file mode 100644 index 7ba4134..0000000 --- a/examples/example.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Example script that uses the foobar package.""" -from __future__ import annotations - -import argparse - -from foobar.foo import bar - - -def main() -> int: - """Script entry point.""" - parser = argparse.ArgumentParser() - parser.add_argument( - '-n', - '--numbers', - nargs='+', - type=int, - default=None, - help='List of integers to sum', - ) - args = parser.parse_args() - - result = bar(args.numbers) - - print(f'Input: {args.numbers}') - print(f'Result: {result}') - - return 0 - - -if __name__ == '__main__': - raise SystemExit(main()) diff --git a/foobar/foo.py b/foobar/foo.py deleted file mode 100644 index c75b83c..0000000 --- a/foobar/foo.py +++ /dev/null @@ -1,16 +0,0 @@ -"""foo module.""" -from __future__ import annotations - - -def bar(data: list[int] | None = None) -> int | None: - """Sum list of integers. - - Args: - data (list[int], None): optional list of integers (default: None). - - Returns: - `None` if `data=None` else the integer sum of `data`. - """ - if data is not None: - return sum(data) - return None diff --git a/mkdocs.yml b/mkdocs.yml index d182bef..198825e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,12 +1,12 @@ -site_name: Python Template -site_url: https://gpauloski.github.io/python-template -site_author: FooBar Author -site_description: Documentation for FooBar. +site_name: "RagAmp: Retrieval-Augmented Generation for Antimicrobial Peptides" +site_url: https://ogkdmr.github.io/ragamp/ +site_author: Ozan Gokdemir +site_description: Documentation for RagAmp -repo_name: gpauloski/python-template -repo_url: https://github.com/gpauloski/python-template +repo_name: ogkdmr/ragamp +repo_url: https://github.com/ogkdmr/ragamp -copyright: Copyright © 2023—Present FooBar Authors +copyright: Copyright © 2023—Present Ozan Gokdemir theme: name: material @@ -61,7 +61,7 @@ watch: - mkdocs.yml - README.md - docs/ - - foobar/ + - ragamp/ extra: version: @@ -90,8 +90,8 @@ markdown_extensions: - pymdownx.keys - pymdownx.magiclink: repo_url_shorthand: true - user: foobar-author - repo: foobar + user: ogkdmr + repo: ragamp - pymdownx.mark - pymdownx.smartsymbols - pymdownx.snippets: @@ -109,7 +109,7 @@ nav: - Get Started: get-started.md - Examples: examples.md - Known Issues: known-issues.md - - Changelog (GitHub): https://github.com/gpauloski/python-template/releases + - Changelog (GitHub): https://github.com/ogkdmr/ragamp/releases - Guides: - guides/index.md - Example: guides/example.md diff --git a/pyproject.toml b/pyproject.toml index a9e5aea..b4057cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,13 +3,13 @@ requires = ["setuptools>=64.0", "setuptools_scm"] build-backend = "setuptools.build_meta" [project] -name = "foobar" +name = "ragamp" version = "0.1.0" authors = [ - {name = "foobar author"}, - {email = "foobar@foobar.com"}, + {name = "Ozan Gokdemir"}, + {email = "ogokdemir@uchicago.edu"}, ] -description = "Foobar example package." +description = "Retrieval Augmented Generation for Antimicrobial Peptides." readme = "README.md" requires-python = ">=3.8" license = {text = "MIT"} @@ -24,9 +24,9 @@ dependencies = [ ] [project.urls] -homepage = "https://github.com/foobar-author/foobar" -documentation = "https://foobar.readthedocs.io" -repository = "https://github.com/foobar-author/foobar" +homepage = "https://github.com/ogkdmr/ragamp" +documentation = "https://ogkdmr.github.io/ragamp/" +repository = "https://github.com/ogkdmr/ragamp" [project.optional-dependencies] dev = [ @@ -147,7 +147,7 @@ multiline-quotes = "single" [tool.ruff.lint.isort] force-single-line = true -known-first-party = ["foobar", "test", "testing"] +known-first-party = ["ragamp", "test", "testing"] order-by-type = false required-imports = ["from __future__ import annotations"] diff --git a/foobar/__init__.py b/ragamp/__init__.py similarity index 100% rename from foobar/__init__.py rename to ragamp/__init__.py diff --git a/foobar/py.typed b/ragamp/py.typed similarity index 100% rename from foobar/py.typed rename to ragamp/py.typed diff --git a/testing/README.md b/testing/README.md index 5931963..4578133 100644 --- a/testing/README.md +++ b/testing/README.md @@ -1,4 +1,4 @@ -# Testing infrastructure for foobar +# Testing infrastructure for RagAmp Code that is useful for creating and running tests but is not a test itself. Test infrastructure may include items like mock object, test runners, example data, and more. diff --git a/testing/data.py b/testing/data.py deleted file mode 100644 index a8d7b66..0000000 --- a/testing/data.py +++ /dev/null @@ -1,4 +0,0 @@ -"""Example data for testing.""" -from __future__ import annotations - -DATA: list[tuple[list[int], int]] = [([1, 2, 3, 4], 10)] diff --git a/tests/README.md b/tests/README.md index 5c59416..f2e7516 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,4 +1,4 @@ -# Tests for foobar +# Tests for RagAmp Test files should take the form `*_test.py` and tests inside files should be top-level functions named `test_*()`. diff --git a/tests/__init__.py b/tests/__init__.py index 00e4e8d..cffa264 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,2 +1,2 @@ -"""foobar unit tests.""" +"""ragamp unit tests.""" from __future__ import annotations diff --git a/tests/bar_test.py b/tests/bar_test.py deleted file mode 100644 index 1efd58b..0000000 --- a/tests/bar_test.py +++ /dev/null @@ -1,26 +0,0 @@ -from __future__ import annotations - -import pytest - -from foobar.foo import bar -from testing.data import DATA - - -def test_bar_none_input() -> None: - assert bar() is None - assert bar(None) is None - - -@pytest.mark.parametrize( - ('data', 'total'), - ( - ([1], 1), - ([1, 2], 3), - ([1, 2, 3], 6), - ), -) -def test_bar_sum(data: list[int], total: int) -> None: - assert bar(data) == total - - d = DATA[0] - assert bar(d[0]) == d[1]