Manual
If you have not yet installed macrel, see install.
Macrel uses a subcommand interface. You run
macrel COMMAND ...with the COMMAND specifying which components of the pipeline you want to use.
Subcommands
peptides: to classify a fasta containing peptide sequences in a fasta file,contigs: to input pre-assembled contigs in a fasta file,reads: to input reads in fastQ format (Macrel accepts single- and paired-end reads),abundance: to measure abundance of a peptides fasta file using a given fastQ file,get-smorfs: to predict small genes from a contigs fasta file.query-ampsphere: to query the AMPsphere database.
Mandatory input flags
--out: Folder destination to output [for all subcommands]--file-output: Can be used in theget-smorfssubcommand to output just the final file. If this is used,--outis no longer mandatory--fasta: Path to the input FASTA file. This is used in both thepeptidessubcommands (where the file is expected to contain short amino-acid sequences) and in thecontigs/get-smorfssubcommands (where the file is expected to contain longer nucleotide contigs)--reads1/--reads2: Path to the input FastQ files [forreadssubcommand]
Optional flags
--threads(-t): Specify the number of cpus used--cluster: Pre-cluster the smORFs (at 100%% identity) to avoid repeats--tag: If used, then all the output files will incorporate it.--mem: Used during assembly to specify the percent of RAM used (1-0)--tmpdir: Temporary directory to use (default:$TMPDIRin the environment or /tmp)--force: Potentially over-write existing output files--keep-fasta-headers: Keep complete FASTA headers [get-smorfs command]--keep-negatives: Output a table with all sequences (default is to only output putative AMPs)--log-file: Output a logfile with log information from macrel (instead of printing to the console)--log-append: If set, the log file is appended to (rather than overwritten)
Also, macrel --version will show the version of macrel installed.
Examples
To run these examples, first download the example sequences from github, or by running:
macrel get-examples
The main output file generated by Macrel consists of a table with 6 columns containing the: sequence access code, peptide sequence, classification of peptide accordingly (cationic or anionic) and structure (linear or disulfide bond forming), the probability associated with the AMP prediction, hemolytic activity prediction and probability associated to hemolytic activity prediction. All peptides outputted in this table are considered predicted AMPs (p > 0.5) by Macrel, although peptides predicted with probabilities closer to 1 are more likely to be active. Similarly, the hemolytic activity is more likely to be verified in those peptides with probabilites associated to the prediction closer to 1.
Note that there is not a general rule to find true AMPs or hemolytic peptides, then peptides predicted with probabilites around 0.5 also can show activity. In our tests during training true peptides could be found with probabilities ranging from 0.5 to 1, although most of them with probabilites above 0.6
To run Macrel on peptides, use the peptides subcommand:
macrel peptides \
--fasta example_seqs/expep.faa.gz \
--output out_peptides
In this case, we use example_seqs/expep.faa.gz as the input sequence. This should
be an amino-acid FASTA file. The outputs will be written into a folder called
out_peptides, and Macrel will 4 threads. An example of output using
this mode can be found at test/peptides/expected.prediction.
To run Macrel on contigs, use the contigs subcommand:
macrel contigs \
--fasta example_seqs/excontigs.fna.gz \
--output out_contigs
In this example, we use the example file excontigs.fna.gz which is a FASTA
file with nucleotide sequences, writing the output to out_contigs.
An example of output using this mode can be found at test/contigs/expected.prediction
and test/contigs/expected.percontigs, with the latter you can also calculate AMP density.
Note that the results per contig are only produced when not using the option
cluster.
Additionally to the prediction table, this mode also produces two files containing general gene prediction information in the contigs and a fasta file containing the predicted and filtered small genes (≤ 100 amino acids).
To run Macrel on paired-end reads, use the reads subcommand:
macrel reads \
-1 example_seqs/R1.fq.gz \
-2 example_seqs/R2.fq.gz \
--output out_metag \
--outtag example_metag
The paired-end reads are given as paired files (here, example_seqs/R1.fq.gz
and example_seqs/R2.fq.gz). If you only have single-end reads, you can omit
the -2 argument. An example of outputs using this mode can be found at
test/reads/expected.prediction, test/reads/expected.smorfs.faa and
test/contigs/expected.percontigs, with the latter you can also calculate AMP density.
Additionally to the prediction table, this mode also produces a contigs fasta file, and the two files containing general gene prediction coordinates and a fasta file containing the predicted and filtered small genes (≤ 100 amino acids).
To run Macrel to get abundance profiles, you only need the short reads file
and a reference with peptide sequences. Use the abundance subcommand:
macrel abundance \
-1 example_seqs/R1.fq.gz \
--fasta example_seqs/ref.faa.gz \
--output out_abundance \
--outtag example_abundance
This mode returns a table of abundances containing two columns, the first with the
name of the AMPs and the second with the number of reads mapped back to each peptide
using the given reference. An example of this output using the example file can be found
at test/abundances/expected.abundance.txt.
AMPSphere Querying
Macrel also supports querying the AMPSphere database (described in Santos-JĂșnior et al., 2024). To do so, use the query-ampsphere subcommand:
macrel query-ampsphere \
--fasta example_seqs/pep8.faa \
--output out_ampsphere
Querying Modes
- Exact matching: This is the default mode, and it will search for exact matches of the input sequences in the AMPSphere database. This is the fastest mode (starting with version 1.5.0, can be called with the
--localflag to use a local database). - MMSeqs2: This mode uses MMSeqs2 to perform approximate matching of the input sequences in the AMPSphere database. This is slower than exact matching but can find more matches. To use this mode, pass the
--query-mode=mmseqsflag. - HMMER: This mode uses HMMER to search for homologs of the input sequences in the AMPSphere database. This is the slowest mode but can find more distant homologs. To use this mode, pass the
--query-mode=hmmflag.
Remote vs. local
By default, macrel uses the remote API to query the AMPSphere database. This is the fastest way to query the database for a small number of peptides, but it requires an internet connection.
If you want to use a local database use the --local flag:
macrel query-ampsphere \
--fasta example_seqs/pep8.faa \
--query-mode mmseqs \
--local \
--output out_ampsphere
This will download the AMPSphere database and use it to query the input sequences. The database will stored in ~/.cache/macrel/ampsphere (you can change it with the --cache-dir flag). To use the MMSeqs2 or HHMER modes, you need to have the respective software installed on your system (conda install bioconda::mmseqs2 or conda install bioconda::hmmer).
As MMSeqs2 is a heuristic method, the results may vary slightly between the local and remote mode (as versions of MMSeqs2 may differ).