InterPro is a database which integrates together predictive information about proteins’ function from a number of partner resources, giving an overview of the families that a protein belongs to and the domains and sites it contains.
Users who have novel nucleotide or protein sequences that they wish to functionally characterise can use the software package InterProScan to run the scanning algorithms from the InterPro database in an integrated way. Sequences are submitted in FASTA format. Matches are then calculated against all of the required member database’s signatures and the results are then output in a variety of formats.
The Interproscan software is stored within a dedicated container in the /nobackup/shared/containers directory and is accessible to all users of Comet. You do not need to take a copy of the container file; it should be left in its original location.
You can find the container files here:
/nobackup/shared/containers/interproscan.2026.07.sifWe normally recommend using the latest (date) version of the container unless you have a specific need for an earlier version of software.
Container Image Versions
We may reference a specific container file, such as interproscan.2026.07.sif, but you should always check whether this is the most recent version of the container available. Simply ls the /nobackup/shared/containers directory and you will be able to see if there are any newer versions listed.
We have provided a convenience script that will automate all of steps needed to run applications inside the container, and access your $HOME, /scratch and /nobackup directories to just two simple commands.
/nobackup/shared/containers/interproscan.2026.07.sh
There is a corresponding .sh script for each version of the container image we make available.
Just source this file and it will take care of loading apptainer, setting up your bind directories and calling the exec command for you - and give you a single command called container.run (instead of the really long apptainer exec command) to then run anything you want inside the container, for example - to run interproscan –help:
$ source /nobackup/shared/containers/interproscan.2026.07.sh
$ container.run interproscan --help
27/07/2026 10:28:08:606 Welcome to InterProScan-5.78-109.0
27/07/2026 10:28:08:606 Running InterProScan v5 in STANDALONE mode... on Linux
usage: java -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms128M
-Xmx2048M -jar interproscan-5.jar
Please give us your feedback by sending an email to
interhelp@ebi.ac.uk
-appl,--applications <ANALYSES> Optional, comma separated list of analyses. If this option
is not set, ALL analyses will be run.
-b,--output-file-base <OUTPUT-FILE-BASE> Optional, base output filename (relative or absolute path).
Note that this option, the --output-dir (-d) option and the
--outfile (-o) option are mutually exclusive. The
appropriate file extension for the output format(s) will be
appended automatically. By default the input file path/name
will be used.
-cpu,--cpu <CPU> Optional, number of cores for inteproscan.
-d,--output-dir <OUTPUT-DIR> Optional, output directory. Note that this option, the
--outfile (-o) option and the --output-file-base (-b) option
are mutually exclusive. The output filename(s) are the same
as the input filename, with the appropriate file extension(s)
for the output format(s) appended automatically .
-dp,--disable-precalc Optional. Disables use of the precalculated match lookup
service. All match calculations will be run locally.
-dra,--disable-residue-annot Optional, excludes sites from the XML, JSON output
-etra,--enable-tsv-residue-annot Optional, includes sites in TSV output
-exclappl,--excl-applications <EXC-ANALYSES> Optional, comma separated list of analyses you want to
exclude.
-f,--formats <OUTPUT-FORMATS> Optional, case-insensitive, comma separated list of output
formats. Supported formats are TSV, XML, JSON, and GFF3.
Default for protein sequences are TSV, XML and GFF3, or for
nucleotide sequences GFF3 and XML.
-goterms,--goterms Optional, switch on lookup of corresponding Gene Ontology
annotation (IMPLIES -iprlookup option)
-help,--help Optional, display help information
-i,--input <INPUT-FILE-PATH> Optional, path to fasta file that should be loaded on Master
startup. Alternatively, in CONVERT mode, the InterProScan 5
XML file to convert.
-incldepappl,--incl-dep-applications <INC-DEP-ANALYSES> Optional, comma separated list of deprecated analyses that
you want included. If this option is not set, deprecated
analyses will not run.
-iprlookup,--iprlookup Also include lookup of corresponding InterPro annotation in
the TSV and GFF3 output formats.
-ms,--minsize <MINIMUM-SIZE> Optional, minimum nucleotide size of ORF to report. Will only
be considered if n is specified as a sequence type. Please be
aware of the fact that if you specify a too short value it
might be that the analysis takes a very long time!
-o,--outfile <EXPLICIT_OUTPUT_FILENAME> Optional explicit output file name (relative or absolute
path). Note that this option, the --output-dir (-d) option
and the --output-file-base (-b) option are mutually
exclusive. If this option is given, you MUST specify a single
output format using the -f option. The output file name will
not be modified. Note that specifying an output file name
using this option OVERWRITES ANY EXISTING FILE.
-pa,--pathways Optional, switch on lookup of corresponding Pathway
annotation (IMPLIES -iprlookup option)
-t,--seqtype <SEQUENCE-TYPE> Optional, the type of the input sequences (dna/rna (n) or
protein (p)). The default sequence type is protein.
-T,--tempdir <TEMP-DIR> Optional, specify temporary file directory (relative or
absolute path). The default location is temp/.
-verbose,--verbose Optional, display more verbose log output
-version,--version Optional, display version number
-vl,--verbose-level <VERBOSE-LEVEL> Optional, display verbose log output at level specified.
-vtsv,--output-tsv-version Optional, includes a TSV version file along with any TSV
output (when TSV output requested)
Copyright ? EMBL European Bioinformatics Institute, Hinxton, Cambridge, UK. (http://www.ebi.ac.uk) The InterProScan
software itself is provided under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).
Third party components (e.g. member database binaries and models) are subject to separate licensing - please see the
individual member database websites for details.
Available analyses:
AntiFam (8.0) : AntiFam is a resource of profile-HMMs designed to identify spurious protein predictions.
CDD (3.21) : CDD predicts protein domains and families based on a collection of well-annotated multiple sequence alignment models.
Coils (2.2.1) : Prediction of coiled coil regions in proteins.
FunFam (4.3.0) : Prediction of functional annotations for novel, uncharacterized sequences.
Gene3D (4.3.0) : Structural assignment for whole genes and genomes using the CATH domain structure database.
Hamap (2026_01) : High-quality Automated and Manual Annotation of Microbial Proteomes.
MobiDBLite (4.0) : Prediction of intrinsically disordered regions in proteins.
NCBIfam (19.0) : NCBIfam is a collection of protein families based on Hidden Markov Models (HMMs).
PANTHER (19.0) : The PANTHER (Protein ANalysis THrough Evolutionary Relationships) Classification System is a unique resource that classifies genes by their functions, using published scientific experimental evidence and evolutionary relationships to predict function even in the absence of direct experimental evidence.
Pfam (38.2) : A large collection of protein families, each represented by multiple sequence alignments and hidden Markov models (HMMs).
PIRSF (3.10) : The PIRSF concept is used as a guiding principle to provide comprehensive and non-overlapping clustering of UniProtKB sequences into a hierarchical order to reflect their evolutionary relationships.
PIRSR (2025_05) : PIRSR is a database of protein families based on hidden Markov models (HMMs) and Site Rules.
PRINTS (42.0) : A compendium of protein fingerprints - a fingerprint is a group of conserved motifs used to characterise a protein family.
ProSitePatterns (2026_01) : PROSITE consists of documentation entries describing protein domains, families and functional sites as well as associated patterns and profiles to identify them.
ProSiteProfiles (2026_01) : PROSITE consists of documentation entries describing protein domains, families and functional sites as well as associated patterns and profiles to identify them.
SFLD (4) : SFLD is a database of protein families based on hidden Markov models (HMMs).
SMART (9.0) : SMART allows the identification and analysis of domain architectures based on hidden Markov models (HMMs).
SUPERFAMILY (1.75) : SUPERFAMILY is a database of structural and functional annotations for all proteins and genomes.
Deactivated analyses:
Phobius (1.01) : Analysis Phobius is deactivated, because the resources expected at the following paths do not exist: bin/phobius/1.01/phobius.pl
SignalP_EUK (4.1) : Analysis SignalP_EUK is deactivated, because the resources expected at the following paths do not exist: bin/signalp/4.1/signalp
SignalP_GRAM_NEGATIVE (4.1) : Analysis SignalP_GRAM_NEGATIVE is deactivated, because the resources expected at the following paths do not exist: bin/signalp/4.1/signalp
SignalP_GRAM_POSITIVE (4.1) : Analysis SignalP_GRAM_POSITIVE is deactivated, because the resources expected at the following paths do not exist: bin/signalp/4.1/signalp
TMHMM (2.0c) : Analysis TMHMM is deactivated, because the resources expected at the following paths do not exist: bin/tmhmm/2.0c/decodeanhmm.Linux_x86_64, bin/tmhmm/2.0c/TMHMM2.0.model
$
You can continue to use the container.run command as many times as you need in the same script or same bash session.
We strongly recommend that you use this helper script and the container.run command to run software from inside the container as it will always ensure that you have correctly set up the bind directories for you and you are using the correct container version.
As long as you use the container.run method to launch the applications, you will automatically be able to read and write to files in your $HOME, /scratch and /nobackup directories.
If you run any of the applications inside the container manually, without using the container.run helper you will need to use the –bind argument to apptainer to ensure that all relevant directories are exposed within the container.
Do remember that the container filesystem itself cannot be changed - so you won't be able to write or update to /usr/local, /opt, /etc or any other internal folders - keep output directories restricted to the three areas listed above.
Here is a very simple example of calling Interproscan from the container within a Slurm batch job that assumes you are a member of the comet_abc123 HPC project group and your input data lives in /nobackup/proj/comet_abc123/my_data.input:
#!/bin/bash
#SBATCH --partition=default_free
#SBATCH --account=comet_abc123
#SBATCH -c 16
#SBATCH --mem=20G
source /nobackup/shared/containers/interproscan.2026.07.sh
container.run interproscan -cpu 15 /nobackup/proj/comet_abc123/my_data.input
Submit as normal with sbatch ipscan_job.sh.
Note that we allocate 16 CPU cores to the Slurm job with the -c 16 SBATCH option and then pass that number minus one to Interproscan using the -cpu flag as documented on the Interproscan user guide, we also allocate 20GB of RAM.
There is no memory parameter for Interproscan, it relies on you correctly setting the memory parameter in the SBATCH options. The amount required depends on the complexity of the input sequences being analysed (again, see: https://interproscan-docs.readthedocs.io/en/v5/ImprovingPerformance.html).
You may need to adjust these values based on the recommendations of the Interproscan documentation.
Important!
This section is only relevant for RSE HPC staff or those who want to understand how the Interproscan container runtime has been built. If you are only interested in running the software, stop reading here!
Container definition file:
Bootstrap: docker
From: ubuntu:noble
%post
# Prevent interactive prompts
export DEBIAN_FRONTEND=noninteractive
# Update & install only necessary packages
apt-get update
# Base stuff everything will need
apt-get install -y aptitude wget zip git less vim
# Interproscan needs these deps
apt-get install -y perl python3.12-full openjdk-11-jdk
# Remove any downloaded package files - so they dont remain in the built image
apt-get clean
mkdir -p /opt
mkdir -p /src/zipped
# Download Interproscan
# =====================
# This is a large (~7GB) download as it contains both code and databases
# An option for improvement in the future would be to split the data out to the Comet filesystem
# Another improvement would be to skip downloading the archive if it is already present in the directory we are building
# the container image in.
wget https://ftp.ebi.ac.uk/pub/software/unix/iprscan/5/5.78-109.0/interproscan-5.78-109.0-64-bit.tar.gz -O /src/zipped/interproscan.tgz
# Untar
# =====
cd /opt && tar -zxf /src/zipped/interproscan.tgz
# Symlink the dir
# ===============
ln -s /opt/interproscan-5.78-109.0 /opt/interproscan
# Symlink interproscan.sh
# =======================
ln -s /opt/interproscan/interproscan.sh /opt/interproscan/interproscan
# Tidyup
# ======
rm -rf /src
%environment
# Add interproscan directory into the path
export PATH=$PATH:/opt/interproscan
%runscript
Build script:
#!/bin/bash
IMAGE_DATE=`date +%Y.%m`
echo "Loading modules..."
module load apptainer
echo ""
echo "Building container..."
export APPTAINER_TMPDIR=/scratch
echo ""
echo "Container will have date suffix $IMAGE_DATE"
echo ""
echo "Starting build of container ..."
apptainer build \
--bind $SOURCE_DIR:/mnt \
interproscan.$IMAGE_DATE.sif interproscan.def 2>&1 | tee interproscan.log
Runtime wrapper:
#!/bin/bash
module load apptainer
IMAGE_NAME=/nobackup/shared/containers/interproscan.2026.07.sif
container.run() {
# Run a command inside the container...
# automatically bind the /scratch and /nobackup dirs
# pass through any additional parameters given on the command line
apptainer exec \
--bind /run:/run \
--bind /nobackup:/nobackup \
--bind /scratch:/scratch \
${IMAGE_NAME} $@
}