This tool parses the results of antimicrobial peptide (AMP) prediction tools into a single table and aligns the hits against a reference AMP database for functional classifications.
For parsing: AMPcombi is developed to parse the output of these AMP prediction tools:
Tool | Version | Link |
---|---|---|
Ampir | 1.1.0 | https://github.com/Legana/ampir |
AMPlify | 1.0.3 | https://github.com/bcgsc/AMPlify |
Macrel | 1.1.0 | https://github.com/BigDataBiology/macrel |
HMMsearch | 3.3.2 | https://github.com/EddyRivasLab/hmmer |
EnsembleAMPpred | - | https://pubmed.ncbi.nlm.nih.gov/33494403/ |
NeuBI | - | https://github.com/nafizh/NeuBI |
For classification: AMPcombi is developed to offer functional annotation of the detected AMPs by alignment to an AMP reference databases, for e.g.,:
Tool | Version | Link |
---|---|---|
DRAMP | 3.0 | https://github.com/CPU-DRAMP/DRAMP-3.0 |
Alignment to the reference database is done using diamond blastp v.2.0.15
======================
======================
To install AMPcombi:
Add dependencies of the tool; python
> 3.0, biopython
, pandas
and diamond
.
Installation can be done using:
- pip installation
pip install AMPcombi
- git repository
git clone https://github.com/Darcy220606/AMPcombi.git
- conda
conda env create -f ampcombi/environment.yml
or
conda install -c bioconda AMPcombi
======================
======================
There are two basic commands to run AMPcombi:
- Using
--amp_results
ampcombi \
--amp_results path/to/my/result_folder/ \
--faa path/to/sample_faa_files/
Here the head folder containing output files has to be given. AMPcombi finds and summarizes the output files from different tools, if the folder is structured and named as: /result_folder/toolsubdir/samplesubdir/sample.tool.filetype
.
- Note that the filetype ending might vary and can be specified with
--tooldict
, if it is different from the default. When passing a dictionary via command line, this has to be done as a string with single quotes' '
and the dictionary keys and items with double quotes" "
. i.e.'{"key1":"item1", "key2":"item2"}'
- Note that
--sample_list
can also be given if only specfic samples are needed from the driectory.
The path to the folder containing the respective protein fasta files has to be provided with --faa
. The files have to be named with <samplename>.faa
.
Structure of the results folder:
amp_results/
├── tool_1/
| ├── sample_1/
| | └── sample_1.tool_1.tsv
| └── sample_2/
| | └── sample_2.tool_1.tsv
├── tool_2/
| ├── sample_1/
| | └── sample_1.tool_2.txt
| └── sample_2/
| | └── sample_2.tool_2.txt
├── tool_3/
├── sample_1/
| └── sample_1.tool_3.predict
└── sample_2/
└── sample_2.tool_3.predict
- Using
--path_list
and--sample_list
ampcombi \
--path_list path_to_sample_1_tool_1.csv path_to_sample_1_tool_1.csv \
--path_list path_to_sample_2_tool_1.csv path_to_sample_2_tool_1.csv \
--sample_list sample_1 sample_2 \
--faa path/to/sample_faa_files/
Here the paths to the output-files to be summarized can be given by --path_list
for each sample. Together with this option a list of sample-names has to be supplied.
Either the path to the folder containing the respective protein fasta files has to be provided with --faa
or, in case of only one sample, the path to the corresponding .faa
file. The files have to be named with <samplename>.faa
.
command | definition | default | example |
---|---|---|---|
--amp_results | path to the folder containing different tool's output files | ./test_files/ | ../amp_results/ |
--sample_list | list of samples' names | - | sample_1 sample_2 |
--path_list | list of paths to output files | - | path_to_sample_1_tool_1.csv path_to_sample_1_tool_1.csv |
--cutoff | probability cutoff to filter AMPs | 0 | 0.5 |
--faa | path to the folder containing the samples.faa files or, in case of only one sample, the path to the corresponding .faa file. Filenames have to contain the corresponding sample-name, i.e. sample_1.faa |
./test_faa/ | ./faa_files/ |
--tooldict | dictionary of AMP-tools and their respective output file endings | '{"ampir":"ampir.tsv", "amplify":"amplify.tsv", "macrel":"macrel.tsv", "hmmer_hmmsearch":"hmmsearch.txt", "ensembleamppred":"ensembleamppred.txt"}' | - |
--amp_database | path to the folder containing the reference database files: (1) a fasta file with <.fasta> file extension and (2) the corresponding table with with functional and taxonomic classifications in <.tsv> file extension | DRAMP 'general amps' database | ./amp_ref_database/ |
--complete_summary | concatenates all samples' summarized tables into one and generates both 'csv' and interactive 'html' files | False | True |
--log | print messages into log file instead of stdout | False | True |
--threads | adjust the number of threads required for DIAMOND alignemnt depending on the computing resources available | 4 | 32 |
--version | print the version number into stdout | - | 0.1.4 |
- Note: The fasta file corresponding to the AMP database should not contain any characters other than ['A','C','D','E','F','G','H','I','K','L','M','N','P','Q','R','S','T','V','W','Y']
- Note: The reference database table should be tab delimited.
The output will be written into your working directory, containing the following files and folders:
<pwd>/
├── amp_ref_database/
| ├── amp_ref.dmnd
| ├── general_amps_<DATE>_clean.fasta
| └── general_amps_<DATE>.tsv
├── sample_1/
| ├── sample_1_amp.faa
| ├── sample_1_ampcombi.csv
| └── sample_1_diamond_matches.txt
├── sample_2/
| ├── sample_2_amp.faa
| ├── sample_2_ampcombi.csv
| └── sample_2_diamond_matches.txt
├── AMPcombi_summary.csv
├── AMPcombi_summary.html
└── ampcombi.log
======================
======================
AMPcombi is a tool developed for parsing results from published AMP prediction tools. We therefore welcome fellow contributors who would like to add new AMP prediction tools results for parsing and alignment.
In ampcombi/reformat_tables.py
- add a new tool function to read the output to a pandas dataframe and return two columns named
contig_id
andprob_<toolname>
- add the new function to the
read_path
function
In ampcombi/main.py
- add your default
tool:tool.fileending
to the default of--tooldict
======================
Authors: @louperelo and @darcy220606