Learn R Programming

Introduction to ampir

The ampir (short for antimicrobial peptide prediction in 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 two support vector machine classification models, “precursor” and “mature” that have been trained on publicly available antimicrobial peptide data. The default model, “precursor” is best suited for full length proteins and the “mature” model is best suited for small mature proteins (<60 amino acids). ampir also accepts custom (user trained) models based on the caret package. Please see the ampir “How to train your model” vignette for details.

ampir’s associated paper is published in the Bioinformatics journal as btaa653. Please cite this paper if you use ampir in your research.

ampir is also available via a Shiny based GUI at https://ampir.marine-omics.net/ where users can submit protein sequences in FASTA file format to be classified by either the “precursor” or “mature” model. The prediction results can then be downloaded as a csv file.

Installation

You can install the released version of ampir from CRAN with:

install.packages("ampir")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("Legana/ampir")
library(ampir)

Usage

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

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

my_protein_df <- read_faa(system.file("extdata/little_test.fasta", package = "ampir"))
seq_nameseq_aa
G1P6H5_MYOLUMALTVRIQAACLLLLLLASLTSYSLLLSQTTQLADLQTQDTAGAT…
L5L3D0_PTEALMKPLLIVFVFLIFWDPALAGLNPISSEMYKKCYGNGICRLECYTS…
A0A183U1F1_TOXCALLRLYSPLVMFATRRVLLCLLVIYLLAQPIHSSWLKKTYKKLENS…
Q5F4I1_DROPSMNFYKIFIFVALILAISVGQSEAGWLKKLGKRLERVGQHTRDATI…
A7S075_NEMVEMFLKVVVVLLAVELSVAQSARQRVRPLDRKAGRKRFAPIFPRQCS…
F1DFM9_9CNIDMKVLVILFGAMLVLMEFQKASAATLLEDFDDDDDLLDDGGDFDLE…
Q5XV93_ARATHMSKREYERQLANEEDEQLRNFQAAVAARSAILHEPKEAALPPPAP…
Q2XXN9_POGBAMRFLYLLFAVAFLFSVQAEDAELEQEQQGDPWEGLDEFQDQPPDD…

Calculate the probability that each protein is an antimicrobial peptide with predict_amps(). Since these proteins are all full length precursors rather than mature peptides we use ampir’s built-in precursor model.

Note that amino acid sequences that are shorter than 10 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.

my_prediction <- predict_amps(my_protein_df, model = "precursor")
seq_nameseq_aaprob_AMP
G1P6H5_MYOLUMALTVRIQAACLLLLLLASLTSYSLLLSQTTQLADLQTQDTAGAT…0.612
L5L3D0_PTEALMKPLLIVFVFLIFWDPALAGLNPISSEMYKKCYGNGICRLECYTS…0.945
A0A183U1F1_TOXCALLRLYSPLVMFATRRVLLCLLVIYLLAQPIHSSWLKKTYKKLENS…0.088
Q5F4I1_DROPSMNFYKIFIFVALILAISVGQSEAGWLKKLGKRLERVGQHTRDATI…0.998
A7S075_NEMVEMFLKVVVVLLAVELSVAQSARQRVRPLDRKAGRKRFAPIFPRQCS…0.032
F1DFM9_9CNIDMKVLVILFGAMLVLMEFQKASAATLLEDFDDDDDLLDDGGDFDLE…0.223
Q5XV93_ARATHMSKREYERQLANEEDEQLRNFQAAVAARSAILHEPKEAALPPPAP…0.009
Q2XXN9_POGBAMRFLYLLFAVAFLFSVQAEDAELEQEQQGDPWEGLDEFQDQPPDD…0.733

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

my_predicted_amps <- my_protein_df[which(my_prediction$prob_AMP >= 0.8),]
seq_nameseq_aa
2L5L3D0_PTEALMKPLLIVFVFLIFWDPALAGLNPISSEMYKKCYGNGICRLECYTS…
4Q5F4I1_DROPSMNFYKIFIFVALILAISVGQSEAGWLKKLGKRLERVGQHTRDATI…

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()

df_to_faa(my_predicted_amps, "my_predicted_amps.fasta")

Copy Link

Version

Install

install.packages('ampir')

Monthly Downloads

304

Version

1.1.0

License

GPL-2

Issues

Pull Requests

Stars

Forks

Maintainer

Legana Fingerhut

Last Published

June 29th, 2021

Functions in ampir (1.1.0)

calculate_features

Calculate a set of numerical features from protein sequences
calc_pI

Calculate the isoelectric point (pI)
calc_amphiphilicity

Calculate amphiphilicity (or hydrophobic moment)
df_to_faa

Save a dataframe in FASTA format
calc_net_charge

Calculate the net charge
chunk_rows

Determine row breakpoints for dividing a dataset into chunks for parallel processing
aaseq_is_valid

Check protein sequences for non-standard amino acids
calc_pseudo_comp

Calculate the pseudo amino acid composition
predict_amps

Predict the antimicrobial peptide probability of a protein
remove_nonstandard_aa

Remove non standard amino acids from protein sequences
remove_stop_codon

Remove stop codon at end of sequence
calc_hydrophobicity

Calculate the hydrophobicity
calc_mw

Calculate the molecular weight
read_faa

Read FASTA amino acids file into a dataframe