====== Interproscan ====== > 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. * For more information: https://interproscan-docs.readthedocs.io/en/v5/Introduction.html ===== Running Interproscan on Comet ===== 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.sif'' We //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 Optional, comma separated list of analyses. If this option is not set, ALL analyses will be run. -b,--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 Optional, number of cores for inteproscan. -d,--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 Optional, comma separated list of analyses you want to exclude. -f,--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 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 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 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 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 Optional, the type of the input sequences (dna/rna (n) or protein (p)). The default sequence type is protein. -T,--tempdir 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 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. ---- ===== Accessing Data ===== 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. ---- ===== Sample Slurm Job ===== 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 [[https://interproscan-docs.readthedocs.io/en/v5/ImprovingPerformance.html|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. ---- ===== Installing Interproscan on Comet ===== **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} $@ } ---- [[:advanced:software|Back to Software]]