I have a bunch of proteins (over 300000) in fasta format, and I want to find the ones that contain a specific domain (using a specific InterPro accession).

I can run InterPro on the proteins and get every domain they have, but with so many proteins, it will take a large amount of time, which I'm short on. I'd like to limit my search to the specific domain I'm looking for, as I assume it will be considerably faster.

Is there a way to do this with InterPro? Browsing the docs doesn't give me any hope. If InterPro isn't capable of that, would it be doable with a single database like Pfam or CDD?


1 Answer 1


1. Limit the InterPro scan to a specific database:
As you said you know the domain you are interested in so you know which database this is in then you can limit you InterPro scan to that database, which whill save a lot of time: enter image description here
Then only select the database in which the domain is stored (e.g. ProSite) enter image description here

2. If your domain is in the ProSite database (which it probably is) you can use ScanProsite and limit you search to a specific domain. You do this by going to the above link and select the last option: enter image description here
Then, if you scroll a little bit down you can enter a ProSite accesion code of the domain/profile you are interested in: enter image description here

3. Use PFAM scan

I have never used this before, so I don't know whether this would be faster than limiting the InterPro scan to the PFAMa database. You can of course check this out.

4. Clustering your sequences first

This will only work if your sequences look like each other. Depending on the size of the domain and the location in the sequences you can cluster all your sequences first (using for example CD-HIT). And then choose a representative sequences for each cluster and use these to subject to your analysis. For example when you know your domain is always at the end of the sequence then you trim the first part of each sequence and cluster the proteins over the whole length at 100% identity. If you then determine whether each cluster contains the domain or not (based on the representative sequence, which CD-HIT will provide you with) then you can assign these results to the sequences making up each cluster. But of course this will only reduce the search space whenever your sequences look like each other (or if parts do)

5. MOTIF search using downloaded profile or HMM

MOTIF search allows you to query against serveral database, such as PFAM, CDD, PROSITE etc. More interesting, it also allows you to specifiy your own profile or HMM. enter image description here
So you can download the HMM of your desired domain from e.g. PFAM or the domain profile from Prosite.

6. Downloading HMM and use HMMscan (or HMMER)
This was suggested by @seven11, you can search your HMM domain in the PFAM database and then use HMMscan.


If you are really interested in one domain. I think downloading the ProSite scan tool would be your best option. Notably, all webtools I mentioned above are available as command line tool, and that is what you need when having that amount of sequences. Back to ProSite scan, you can download this here and don't forget the README. As mentioned in the readme:

  -e : specify the ID or AC of an entry in sequence-file
  -o : specify an output format : $formats_string
  -d : specify a prosite.dat file
  -p : specify a pattern or the AC of a prosite motif
  -f : specify a motif AC to scan against together with all its 
       releated post-processing motifs (but show only specified 
       motif hits)

You can use the -p to specify the acc of the pattern you want.

I'm quite busy so I typed this one really fast, please let me know when something is not clear.

  • $\begingroup$ Thanks, your answer gave me some very good pointers. I found the HMM for this domain on the Pfam site. I will run it locally using hmmscan. $\endgroup$
    – seven11
    Mar 24, 2018 at 16:30
  • $\begingroup$ Aah nice that is a good option and probably much faster as HMM shouldn't take that long @seven11 $\endgroup$
    – KingBoomie
    Mar 24, 2018 at 16:44
  • $\begingroup$ When your sequences are quite alike you can also choose to first cluster these (lets say at 100% identity over 80% over te sequence lenght) and then choose a representative for each cluster and use these to do searches with. And if your domain is always located at the end of the sequences you can only cluster at these ends and then do your searches. This will only work if your sequences are alike of course @seven11 $\endgroup$
    – KingBoomie
    Mar 24, 2018 at 20:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .