# How to Use InterPro to Analyze Protein Domains and Families

By the end of this [interpro tutorial](/knowledge/bioinformatics/how-to-use-interpro-to-integrate-motif-and-domain-predictions-from-prosite-pfam-and-other-databases) for protein domain analysis, you will be able to take any [protein sequence](/blog/guides/protein-sequence), identify the functional domains and protein families it contains, run the same analysis on your own machine with InterProScan, read the output table line by line, and present domain architectures for a whole protein set in a publication-quality figure. The guide walks through the UniProt record, the InterPro web interface, the InterProScan command line, the REST API, and a worked example based on a published leukemogenesis study of the [transcription factor](/knowledge/molecular-biology/transcription-factor) PU.1.

You need three things before you start:

1. A protein sequence in FASTA format, or a UniProt accession such as P17947
2. A recent Java runtime, Perl, and Python 3 if you plan to install InterProScan locally on a 64-bit Linux or macOS machine
3. Tens of gigabytes of free disk space if you install the full local InterProScan database bundle

Everything else runs in a browser or over `curl` on the command line.

## How InterPro Organizes Protein Annotation

InterPro, maintained at EMBL-EBI, is an integrated resource that unites predictive models from several member databases into single consensus entries. The member databases include Pfam, SMART, PROSITE, PANTHER, CDD, HAMAP, PIRSF, PRINTS, SFLD, SUPERFAMILY, and CATH-Gene3D. Each member database builds its own **signature**, which is a computational model such as a hidden Markov model, a profile, a regular-expression pattern, or a fingerprint, used to detect a recurring feature in protein sequences.

InterPro classifies every entry into one of several types:

- **Family**: the protein belongs to an evolutionarily related group, for example the ETS transcription factor family
- **Domain**: a distinct structural or functional unit within a protein, for example an ETS DNA-binding domain
- **Homologous superfamily**: a broader structural grouping, usually derived from CATH or SUPERFAMILY classifications
- **Repeat**: an internally repeated segment
- **Site**: an annotated active site, binding site, or post-translational modification position within a domain

When several member database signatures describe the same biological feature, InterPro integrates them under one accession, an InterPro entry. The classic example relevant to this tutorial is the ETS domain. Pfam curates it as PF00854, SMART as SM00413, and PROSITE as the profile PS50061. InterPro merges those signatures into the single entry IPR000418, so one InterPro accession summarizes agreement across independent methods. Signatures that no entry integrates are labeled as unintegrated and still appear in your results, but they carry less cross-validation.

This layered structure is why InterPro reports are more informative than a single-database scan. A Pfam hit alone tells you one model matched. An InterPro hit tells you multiple independent methods, with different underlying algorithms, agree on the same feature at approximately the same coordinates.

## Step 1: Fetch a Protein Record and Sequence from UniProt

Before you annotate domains, you need a clean protein sequence and, ideally, the curator-supplied feature annotation that comes with it. UniProt, the universal protein knowledgebase, is the standard source for both. If you have never worked with UniProt before, here is a short uniprot database tutorial covering the two habits that matter most: searching precisely, and downloading in the right format.

### Search UniProt precisely

On the UniProt website, type a gene symbol such as `SPI1` into the search bar. To restrict results to human, use the query syntax:

```
gene:SPI1 AND organism_id:9606
```

The same query works through the REST interface:

```
curl "https://rest.uniprot.org/uniprotkb/search?query=gene:SPI1+AND+organism_id:9606&format=tsv&fields=accession,id,protein_name,length"
```

Expected output is a tab-separated table:

```
accession	id	protein_name
P17947	SPI1_HUMAN	Transcription factor PU.1
```

The `organism_id:9606` filter matters. Most gene symbols match orthologs in dozens of species, and comparing a human isoform with a mouse isoform mid-analysis is a frequent source of confusion. Pick one accession, note the exact sequence length shown in the record, and use that single accession for the rest of your workflow.

### Download the FASTA sequence

In the UniProt entry, use the Download button and choose FASTA, or fetch it directly:

```
curl -s "https://rest.uniprot.org/uniprotkb/P17947.fasta" -o spi1.fasta
head spi1.fasta
```

Expected output looks like this (header text may change slightly between UniProt releases):

```
>sp|P17947|SPI1_HUMAN Protein spi-1 proto-oncogene OS=Homo sapiens OX=9606 GN=SPI1 PE=1 SV=1
MDGDGQNYDKESYYQGLLPVPIFPAQDVFYWDRAHGSK...
```

The first line, the FASTA header, carries the accession, the entry name, the organism, and the gene. InterProScan will echo the first word after the `sp|` or your own FASTA identifier back to you in its output, so keep headers short and unique if you scan a multi-FASTA file.

### Read the UniProt feature table before you annotate

Scroll the UniProt entry to the Features section. Curators and automatic pipelines annotate DOMAIN, MOTIF, REGION, ZN_FING, MOD_RES, and VARIANT lines there, and domain lines usually cross-reference InterPro accessions directly. This gives you a hypothesis to check against your own InterProScan run. A published study of SPI1 missense variants used exactly this pairing, extracting variants from Ensembl and mapping them onto domain structure with InterPro and UniProt annotation [1].

## Step 2: Interrogate InterPro on the Web

The InterPro website at `https://www.ebi.ac.uk/interpro/` has precalculated matches for UniProtKB proteins, which means most well-studied proteins require no local computation at all.

### Look up a protein

Search for an accession such as `P17947` in the search bar and open the protein page at `https://www.ebi.ac.uk/interpro/protein/UniProt/P17947/`. The page shows a graphical domain viewer with each match drawn along the sequence, colored by member database, with tabs listing matches per database, structural predictions from the AlphaFold integration, and cross-references.

### Read an InterPro entry page

Click any domain in the viewer to open its entry page, for example `https://www.ebi.ac.uk/interpro/entry/InterPro/IPR000418/`. The entry page lists the integrated member signatures, the taxonomic distribution of the family, associated Gene Ontology terms, relevant publications, and proteins matched in other organisms. The Gene Ontology (GO) terms are worth a moment of explanation. GO is a controlled vocabulary with three branches, molecular function, biological process, and cellular component, and InterPro entries carry curated GO mappings that propagate to every matched protein.

### Search by feature rather than by protein

If your question runs the other direction, you know the domain and want the proteins, use the Browse or Search tabs. You can search entries by keyword, filter by entry type (Domain, Family, Homologous superfamily), and filter by taxonomy. This is how you go from "I have an ETS domain" to "show me all human proteins with an ETS domain," which is the family-level view this resource is built for.

## Step 3: Run InterProScan Locally, Step by Step

The InterPro website only covers sequences already in UniProtKB. If your protein comes from an unpublished genome, a contig from a metagenome, or a point mutant you designed yourself, you need InterProScan, the standalone scanning software that runs every member database signature against your sequences.

### Install InterProScan

Download the current Linux 64-bit tarball from the InterProScan download page at `https://www.ebi.ac.uk/interpro/download/InterProScan/`, then:

```
tar -xzf interproscan-*.tar.gz
cd interproscan-5*
python3 setup.py -f
```

The `python3 setup.py -f` command downloads the precalculated match databases and member database binaries. On a typical connection this takes tens of minutes to a few hours and consumes the bulk of the disk space, so point it at a large volume. Confirm the installation by running the launcher with no arguments, which prints the usage text rather than an error.

### Prepare your input

InterProScan requires protein sequences. If you started from [nucleotide sequence](/knowledge/molecular-biology/nucleotide-sequence), translate it first with a tool such as EMBOSS `transeq` or the ExPASy translate service, because scanning nucleotide FASTA produces no useful output.

Keep one protein per FASTA header. For the PU.1 example:

```
grep ">" spi1.fasta
>sp|P17947|SPI1_HUMAN
```

### Run the scan

![Five step flow for the InterProScan install, protein FASTA input, the scan command, reading TSV columns and checking the run.](/article-images/illustrations/interpro-tutorial-for-protein-domain-analysis-local-scan-steps.webp)

The core command for this interpro tutorial for protein domain analysis step by step workflow is:

```
./interproscan.sh \
  -i spi1.fasta \
  -f TSV \
  -goterms \
  -pa \
  -cpu 8 \
  -T /tmp/interproscan_temp
```

Each parameter does a specific job:

| Flag | What it does | Notes |
|, - |, - |, - |
| `-i` | Input FASTA file | Accepts multi-FASTA files for batch scanning |
| `-f` | Output format, comma separated | Choose from TSV, JSON, XML, GFF3 |
| `-goterms` | Adds a GO terms column | Generates GO:xxxxxxx identifiers in the output |
| `-pa` | Adds a pathway column | Adds pathway cross-references where available |
| `-cpu` | Number of parallel threads | Set near your available core count |
| `-appl` | Restrict the run to selected member databases | For example `-appl pfam,smart` for a fast targeted scan |
| `-T` | Temporary working directory | Redirect if your default temp partition is small |
| `-b` | Base name for output files | Keeps multiple runs organized |

A full scan of one sequence runs the complete member database set and typically finishes in minutes on a modern workstation. A full scan of a whole proteome is an overnight or multi-day job depending on `-cpu` and database choice, which is why the `-appl pfam` style restriction exists for exploratory work.

### Read the TSV output

![Decision path asking whether column 12 is filled, whether the match is at a fragment edge and whether local results differ from the website.](/article-images/illustrations/interpro-tutorial-for-protein-domain-analysis-tsv-triage.webp)

Expected output is a single tab-separated file. The following snippet shows the format with illustrative values, since exact scores and coordinates depend on your InterProScan and database versions:

```
P17947	a3f5b1c8d2e64f70a9c1b4e5f6071829	264	Pfam	PF00854	Ets domain	241	329	2.1e-41	T	11-Nov-2026	IPR000418	Ets-domain	GO:0003700|GO:0006355
```

Each line is one signature match. The columns, in order, are:

| Column | Field | Meaning |
|, - |, - |, - |
| 1 | Protein accession | The identifier from your FASTA header |
| 2 | Sequence MD5 | A checksum of your sequence, useful for deduplication |
| 3 | Sequence length | Length in amino acids |
| 4 | Analysis | The member database, for example Pfam or SMART |
| 5 | Signature accession | The member database model ID, for example PF00854 |
| 6 | Signature description | Short description of the match |
| 7 | Start | Match start position in the protein |
| 8 | Stop | Match stop position in the protein |
| 9 | Score | Significance score, an E-value or bit score depending on the analysis |
| 10 | Status | T when the match is in InterPro's precalculated reference set |
| 11 | Date | Run date |
| 12 | InterPro accession | The integrated entry, for example IPR000418 |
| 13 | InterPro description | Consensus name of the integrated entry |
| 14 | GO annotations | Present only when you pass `-goterms` |
| 15 | Pathways | Present only when you pass `-pa` |

The columns you will use daily are 5, 7, 8, 9, and 12. Column 12 is where integration pays off, because it collapses multiple member database hits into one entry name you can report.

### Confirm the run worked correctly

Three checks catch almost every faulty run:

1. The sequence length in column 3 equals the residue count of your input FASTA. If it is shorter, your FASTA contained line breaks or characters that truncated parsing.
2. Every input protein appears at least once in the output. Proteins with no matches legitimately produce no lines, so grep your accessions and distinguish "no match" from "missing."
3. Compare your local result against the InterPro website for a known protein included in your batch. Coordinates should agree closely between the local run and the precalculated web matches.

## Step 4: Verify and Visualize the Results

### Cross-check against the web version

For any UniProt protein, the InterPro website's precalculated matches are the reference result. When your local InterProScan run and the website agree on which domains are present and roughly where they sit, you can trust the pipeline. When they disagree, the usual cause is a version mismatch, covered in the common mistakes section below.

### Build a domain architecture map for a protein set

Single-protein views hide the pattern across a family. ProFeatMap addresses this directly. It is a Python-based web tool that takes a user-defined list of UniProt accession codes, extracts annotated features such as domains, repeats, disorder regions, and post-translational modifications from UniProt or InterPro, and arranges them into a customizable two-dimensional map where each protein is one row of shaped and colored feature blocks [2]. The tool assigns shapes and colors automatically, can base them on quantitative or [qualitative data](/blog/guides/qualitative-data-analysis-a-practical-guide-for-life-scientists) you supply, and sorts the protein list by homologous feature content, which brings proteins with shared domain architectures together [2]. For a protein family analysis, paste your accession list into `https://profeatmap.pythonanywhere.com/`, review the generated map, and export the figure. Feature redundancy and shared patterns that are invisible in per-protein pages become obvious in the map, which is exactly what the tool was designed to reveal in large protein families [2].

### Export coordinates for downstream work

For structural work, you want the domain boundaries as plain numbers. From the TSV:

```
awk -F'\t' '$5 ~ /PF00854/ {print $7"\t"$8}' interproscan_results.tsv
```

This prints start and stop for every Pfam ETS domain match in your batch, ready to paste into a modeling or alignment project.

## Worked Example: Mapping the PU.1 ETS Domain

A recent computational study of the SPI1 gene, which encodes the ETS-family transcription factor PU.1, shows how InterPro-based domain mapping slots into a real analysis pipeline, and it is a useful template for your own variant-annotation projects [1].

The study's question was how missense variants, single-nucleotide changes that swap one amino acid for another, affect the integrity of the PU.1 ETS domain, a region whose disruption may interfere with transcriptional programs driving hematopoietic lineage commitment and contribute to acute myeloid leukemia [1]. The pipeline ran as follows:

1. Retrieve nsSNPs from Ensembl and prioritize them with PredictSNP, a consensus predictor combining tools such as SIFT, PolyPhen, SNAP, and PhD-SNP [1]
2. Map domains with InterPro and UniProt annotation, which established exactly which variants fall inside the ETS domain versus the N-terminal transactivation region [1]
3. Model wild-type and mutant protein structures with SWISS-MODEL [1]
4. Compare structures by alignment and Cα displacement in UCSF Chimera [1]
5. Dock a candidate ligand, cinnamic acid, against the PU.1 ETS domain structure PDB entry 8EQG [1]

Notice the position of InterPro in this chain. It converts a flat list of variant positions into a biologically structured question. A variant outside the domain and a variant inside the DNA-contacting core of the domain are different hypotheses, and the domain boundaries from InterPro are what draw that line. Reproducing the mapping step takes two commands:

```
curl -s "https://rest.uniprot.org/uniprotkb/P17947.fasta" -o spi1.fasta
./interproscan.sh -i spi1.fasta -f TSV -goterms -cpu 8
grep "IPR000418" interproscan_results.tsv
```

The grep line pulls every row whose InterPro accession is the ETS domain entry, and the start and stop columns give the boundaries you would carry into variant interpretation or structure preparation.

## Step 5: Programmatic Access at Scale

For pipelines that scan dozens to thousands of proteins, the InterPro REST API returns the same precalculated data as JSON or TSV.

### Fetch all InterPro entries for a protein

```
curl -s "https://www.ebi.ac.uk/interpro/api/protein/uniprot/P17947/entry/interpro" | head -40
```

The response is a JSON document listing each matched InterPro entry with its coordinates. Filter with `jq` if it is installed:

```
curl -s "https://www.ebi.ac.uk/interpro/api/protein/uniprot/P17947/entry/interpro" \
  | jq '.results[] | {accession: .metadata.accession, name: .metadata.name, type: .metadata.type}'
```

Expected output is a compact list of entries, one JSON object per domain or family match.

### Fetch one entry and all matched proteins

The reverse direction works the same way:

```
curl -s "https://www.ebi.ac.uk/interpro/api/entry/interpro/IPR000418"
```

This returns the ETS domain entry metadata, including member signatures and GO mappings, and paginated sub-endpoints return the matched proteins.

### Keep UniProt and InterPro in sync programmatically

The UniProt entry for a protein already lists domain features cross-referenced to InterPro, so a robust pipeline pulls both:

```
curl -s "https://www.ebi.ac.uk/proteins/api/features?accession=P17947&types=DOMAIN"
```

Comparing UniProt's curated DOMAIN lines with your fresh InterProScan results is the fastest sanity check available, and it costs one API call.

## InterPro Tutorial for Protein Domain Analysis Tips

These are the habits that separate a defensible annotation from a shaky one.

- **Pin your versions.** Record the InterProScan release number and the InterPro release it ships with, and note both in your methods section. Results are only reproducible relative to specific database versions.
- **Deduplicate with the MD5 column.** When scanning thousands of sequences, identical proteins appear repeatedly. The MD5 checksum in column 2 lets you collapse identical matches in one `sort -u` step instead of rescanning duplicates.
- **Run a restricted scan first for speed.** `-appl pfam,panther` gives a fast first pass for triage, then rerun the full set only on proteins that matter.
- **Treat the score column per analysis.** Member databases report different statistics, E-values for some and bit scores for others, so never rank matches across different analyses by score alone.
- **Look at disorder context.** InterProScan runs the MobiDB-lite consensus for predicted disorder, and a domain-level interpretation gains context when you know the flanking regions are intrinsically disordered.
- **Map variants onto domains, not onto raw sequence.** The PU.1 study design, where missense variants are interpreted relative to ETS domain boundaries before any structural modeling, generalizes to almost any variant-interpretation project [1].
- **Visualize before you conclude.** A two-dimensional feature map over your whole protein set, in the style ProFeatMap produces, routinely exposes redundant domains or shared architectures that per-protein pages obscure [2].

## Common Mistakes and Limitations

The most frequent problems in InterPro-based protein domain analysis, with their exact symptoms and fixes:

1. **Reading an unintegrated signature as a consensus result.** If column 12 is empty, your hit matched a member database model that no InterPro entry integrates. It may still be correct, but it lacks cross-method validation. Do not report an unintegrated Pfam accession as if it were an InterPro entry.
2. **Version mismatch between local and web results.** Your InterProScan ships a database snapshot, while the website updates continuously. If coordinates differ between your local run and the website, check whether either version is much newer before assuming either is wrong. State your version in any write-up.
3. **Scanning nucleotide sequence.** InterProScan on a nucleotide FASTA returns nothing useful and may exit with a sequence-type error. Translate first.
4. **Trusting matches on fragments.** A partial sequence often produces a truncated domain match with weak significance. If your protein came from a transcript fragment or a low-coverage assembly, treat fragment-edge matches as provisional.
5. **Over-interpreting remote homologs.** A family-level match at high E-value numbers does not establish that every annotated function of the family applies to your protein. Family membership constrains hypotheses, it does not prove function. The published PU.1 workflow, which paired domain mapping with conservation and stability predictors before any functional claim, is the right shape of evidence chain [1].
6. **Ignoring the per-analysis score semantics.** Mixing E-values from one database with bit scores from another in a single ranked list produces meaningless ordering. Filter per analysis, then integrate.
7. **Forgetting that absence of a match is also information.** A protein with no domain hits is frequently low-complexity, disordered, or genuinely novel, not a pipeline failure. Check the FASTA itself before blaming the tool.
8. **Treating computational annotation as experimental proof.** Domain prediction, consensus pathogenicity scoring, homology modeling, and docking are layers of inference, and the SPI1 study that combined all of them framed its docking results as a hypothesis for further pursuit rather than a demonstrated interaction [1]. In silico results require experimental validation before any applied decision.

One further limitation applies to any prediction resource. Individual proteins, especially from poorly studied organisms, may carry domains InterPro's models do not yet represent, and an expert-curated review status in UniProt does not extend automatically to your novel sequence.

## Frequently Asked Questions

### What is the difference between InterPro and InterProScan?

InterPro is the database of integrated protein signatures and entries, while InterProScan is the software that scans your sequences against that database. You browse InterPro for precalculated results and run InterProScan for your own sequences.

### Is InterPro free to use?

Yes, the InterPro website, its REST API, and InterProScan are free for both academic and commercial use, and InterProScan can be run locally or through a web service hosted at EMBL-EBI.

### How do I cite InterPro in a paper?

Cite the current InterPro [Nucleic Acids](/blog/guides/nucleic-acids) Research database article and the InterProScan application paper, both listed on the InterPro website's citation page, and include the InterPro and InterProScan version numbers you used.

### What is the difference between InterPro and Pfam?

Pfam is one member database inside InterPro, built around profile hidden Markov models. InterPro integrates Pfam with other member databases and assigns consensus names, GO terms, and entry types, so an InterPro accession summarizes agreement across several methods.

### Can I run InterProScan on a laptop?

Yes for a handful of sequences, though the installation needs a 64-bit Linux or macOS system, a recent Java runtime, and tens of gigabytes of disk space for the databases. For whole proteomes, use a server or the EMBL-EBI web service.

### How do I get GO terms for my protein from InterPro?

Pass the `-goterms` flag to InterProScan, which adds a GO annotation column to your output, or read the GO mappings listed on the InterPro entry page for each matched domain.

### Why do my local InterProScan results differ from the InterPro website?

The website serves the newest precalculated matches while your local installation uses the database snapshot you downloaded, so differences usually reflect version skew rather than an error. Align your InterProScan version with the current release to reproduce web results.

### Can InterPro tell me whether a mutation in a domain is pathogenic?

No, InterPro tells you which domain a mutation falls in, which is a starting point for interpretation. Pathogenicity assessment needs dedicated predictors, structural modeling, and functional evidence, as demonstrated in the SPI1 missense variant study that combined consensus prediction tools with domain mapping and structural analysis.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the difference between InterPro and InterProScan?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "InterPro is the database of integrated protein signatures and entries, while InterProScan is the software that scans your sequences against that database. You browse InterPro for precalculated results and run InterProScan for your own sequences."
      }
    },
    {
      "@type": "Question",
      "name": "Is InterPro free to use?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, the InterPro website, its REST API, and InterProScan are free for both academic and commercial use, and InterProScan can be run locally or through a web service hosted at EMBL-EBI."
      }
    },
    {
      "@type": "Question",
      "name": "How do I cite InterPro in a paper?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Cite the current InterPro Nucleic Acids Research database article and the InterProScan application paper, both listed on the InterPro website's citation page, and include the InterPro and InterProScan version numbers you used."
      }
    },
    {
      "@type": "Question",
      "name": "What is the difference between InterPro and Pfam?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pfam is one member database inside InterPro, built around profile hidden Markov models. InterPro integrates Pfam with other member databases and assigns consensus names, GO terms, and entry types, so an InterPro accession summarizes agreement across several methods."
      }
    },
    {
      "@type": "Question",
      "name": "Can I run InterProScan on a laptop?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes for a handful of sequences, though the installation needs a 64-bit Linux or macOS system, a recent Java runtime, and tens of gigabytes of disk space for the databases. For whole proteomes, use a server or the EMBL-EBI web service."
      }
    },
    {
      "@type": "Question",
      "name": "How do I get GO terms for my protein from InterPro?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pass the -goterms flag to InterProScan, which adds a GO annotation column to your output, or read the GO mappings listed on the InterPro entry page for each matched domain."
      }
    },
    {
      "@type": "Question",
      "name": "Why do my local InterProScan results differ from the InterPro website?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The website serves the newest precalculated matches while your local installation uses the database snapshot you downloaded, so differences usually reflect version skew rather than an error. Align your InterProScan version with the current release to reproduce web results."
      }
    },
    {
      "@type": "Question",
      "name": "Can InterPro tell me whether a mutation in a domain is pathogenic?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No, InterPro tells you which domain a mutation falls in, which is a starting point for interpretation. Pathogenicity assessment needs dedicated predictors, structural modeling, and functional evidence, as demonstrated in the SPI1 missense variant study that combined consensus prediction tools with domain mapping and structural analysis."
      }
    }
  ]
}
</script>

## Sources

1. [Computational Analysis of SPI1 Missense Mutations and ADMET-Guided Molecular Docking of Cinnamic Acid Targeting the PU.1 ETS Domain: Implications for Hematopoietic Dysregulation and Leukemogenesis.](https://pubmed.ncbi.nlm.nih.gov/42196261/)
2. [ProFeatMap: a highly customizable tool for 2D feature representation of protein sets.](https://pubmed.ncbi.nlm.nih.gov/36936371/)