---
title: "Introduction to ampir"
author: "Legana Fingerhut"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Introduction to ampir}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# Background

The **ampir** (short for **a**nti**m**icrobial **p**eptide prediction **i**n **r** ) package was designed to be a fast and user-friendly method to predict antimicrobial peptides (AMPs) from any given size protein dataset. **ampir** uses a *supervised statistical machine learning* approach to predict AMPs. It incorporates a support vector machine classification model that has been trained on publicly available antimicrobial peptide data. 

## Usage

Standard input to **ampir** is a `data.frame` with sequence names in the first column and protein sequences in the second column. 

```{r}
library(ampir)
```

Read in a FASTA formatted file as a `data.frame` with `read_faa()` 

```{r, warning=FALSE, message=FALSE}
my_protein_df <- read_faa(system.file("extdata/bat_protein.fasta", package = "ampir"))
```

```{r, echo=FALSE}
display_df <- my_protein_df
display_df$seq_aa <- paste(substring(display_df$seq_aa,1,45),"...",sep="")
knitr::kable(display_df)
```

Calculate the probability that each protein is an antimicrobial peptide with `predict_amps()` 

*Note that amino acid sequences that are shorter than five amino acids long and/or contain anything other than the standard 20 amino acids are not evaluated and will contain an `NA` as their `prob_AMP` value.*

```{r}
my_prediction <- predict_amps(my_protein_df)
```

```{r, echo=FALSE}
my_prediction$seq_aa <- paste(substring(my_prediction$seq_aa,1,45),"...",sep="")
knitr::kable(my_prediction, digits = 3)
```

Predicted proteins with a specified predicted probability value could then be extracted and written to a FASTA file:

```{r}
my_predicted_amps <- my_protein_df[my_prediction[,3] >= 0.8,]
```

```{r, echo=FALSE}
my_predicted_amps$seq_aa <- paste(substring(my_predicted_amps$seq_aa,1,45),"...",sep="")
knitr::kable(my_predicted_amps)
```

Write the `data.frame` with sequence names in the first column and protein sequences in the second column to a FASTA formatted file with `df_to_faa()`

```{r}
df_to_faa(my_predicted_amps, tempfile("my_predicted_amps", tempdir()))
```





