An open API service indexing awesome lists of open source software.

https://github.com/kvdomingo/primerdriver

PrimerDriver - Automated design of mutagenic PCR primers
https://github.com/kvdomingo/primerdriver

biopython cli command-line mutagenic-pcr-primers polymerase-chain-reaction primer-design python react site-directed-mutagenesis web-application

Last synced: 9 months ago
JSON representation

PrimerDriver - Automated design of mutagenic PCR primers

Awesome Lists containing this project

README

          

# PrimerDriver: Automated design of mutagenic PCR primers

![PrimerDriver](https://res.cloudinary.com/kdphotography-assets/image/upload/v1587460290/primerdriver/PrimerDriver_logo.png)

![GitHub](https://img.shields.io/github/license/kvdomingo/primerdriver)
![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/kvdomingo/primerdriver?include_prereleases)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/primerdriver)

## Introduction

_PrimerDriver_ is a user-friendly bioinformatics platform specifically designed to generate primers for site-directed
mutagenesis experiments into workflows with an easy-to-use command-line interface. “Traversing” PrimerDriver lanes,
users can generate possible mutagenic primers upon input of a DNA sequence (`DNA`), design primers for an array of
species codon expression systems through direct mutation of the amino acid (`PRO`), characterize and report
user-designed primers (`CHAR`).

## Usage

### A. Running standalone

You can access and download the CLI from the
[releases page](https://github.com/kvdomingo/primerdriver/releases). Currently, we only have prebuilt binaries for
64-bit Windows and Linux. For other OS/architectures, see the section on Building from Source, under Developing Locally.

Run the program in a terminal using

```shell
primerdriver -h
```

This will run the help program. For first-time users, the program can be run in
interactive mode by passing the `-i` flag:

```shell
primerdriver -i
```

This will walk you through each option step-by-step.
Batch design can be performed by including
[`primerdriver`](primerdriver/__main__.py) as part of a shell script.

### B. Running as Python module

#### Prerequisites

- [Git](https://git-scm.com/downloads)
- [Mise](https://mise.jdx.dev)

#### Setup

1. Clone the repo to your local device and `cd` into it
```shell
git clone https://github.com/kvdomingo/primerdriver.git
cd primerdriver
```

2. Install dependencies:
```shell
mise install
```

Run the program as follows:

```shell
poetry run python -m primerdriver -h
```

### C. Running from Docker

Run as follows:

```shell
docker run -it --entrypoint python kvdomingo/primerdriver -m primerdriver -h
```

## Web application

For a more interactive experience, visit the
[web application](https://primerdriver.kvd.studio).

## Documentation

The documentation is available at https://primerdriver-docs.kvd.studio.

## Contributing

Open a PR or raise an
[issue](https://github.com/kvdomingo/primerdriver/issues).
You may also email Nomer or Kenneth, depending on the nature of the issue.

## Developing locally

### Prerequisites

- [Docker](https://www.docker.com/get-started)
- [Mise](https://mise.jdx.dev)

### Installing

A step by step series of examples that tell you how to get a
development environment running

1. Clone the repo.
2. Install prerequisites:
```shell
mise install
pip install -U pre-commit
pre-commit install
```
3. Install backend dependencies:
```shell
poetry install --no-root --with dev
```
4. Run the development servers:
```shell
task
```

Wait a few minutes for all the containers to start, then access the
local servers in your browser at:

- Web app: http://localhost:3000
- Docs: http://localhost:8000

### Building from source

Run the script:

```shell
# On a Linux machine, will build for Linux x64 only
# On a Windows machine, will build for Windows and Linux x64
task build
```

### Deployment

```shell
git add .
git commit -m "DESCRIPTIVE_COMMIT_MESSAGE"
git push origin your_feature_branch
```

where `your_feature_branch` should summarize the changes you are implementing following
the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
(e.g., `feat/xxxx`, `fix/yyyy`).

## Authors

- **Numeriano Amer "Nomer" E. Gutierrez** - Project Lead, Molecular
Biologist - [Email](mailto:ngutierrez@evc.pshs.edu.ph) | [GitHub](https://github.com/nomgutierrez)
- **Kenneth V. Domingo** - Technical
Lead - [Email](mailto:kvdomingo@alum.up.edu.ph) | [Website](https://kvd.studio) | [GitHub](https://github.com/kvdomingo)
- **Shebna Rose D. Fabilloren** - Technical Consultant - [Email](mailto:sdfabilloren@up.edu.ph)
- **Carlo M. Lapid** - Project Adviser - [Email](mailto:cmlapid@up.edu.ph)

## Versioning

This project complies with [SemVer](https://semver.org) for versioning. For
all available versions, see
[tags](https://github.com/kvdomingo/primerdriver/tags).

## License

This project is licensed under the [GPLv3 License](./LICENSE).