I have a refseq ID of a protein from E.coli and I want to find homologs of this protein. I ran Blast against refseq database but I got a lot of sequences most of which were from Ecoli again. I decided to run PSI-Blast to get more divergent species, but I do not exactly know if my result are real homologs or false positives. what is your idea for finding homologous protein sequences from more divergent species? And what can I do for selecting the real (but not false positive) hits?

  • 1
    $\begingroup$ False positive can be judged by the E and P-values so remember to use them. $\endgroup$ Jun 19, 2017 at 9:28
  • 1
    $\begingroup$ I would suggest that if you can robustly obtain the same topology using a variety of phylogenetic methods and models on your proteins, there is a chance that the homology is true. Unfortunately, this might be difficult to obtain when dealing with quite distant species, even if the homology is true. $\endgroup$
    – bli
    Jun 19, 2017 at 10:57

2 Answers 2


It depends on what you're looking for. If you're just looking for sequence homology, then you can simply pick the best hits from a blast search. If, however, you are referring to functional homology, if you are looking for the protein which has the same functions as your query, then it's more complicated.

Sequence homology is not enough to infer functional homology. For example, you can have cases of gene duplication and subsequent functional divergence. Such paralogs are still homologs (paralogs are a subset of homologs), but they don't necessarily have the same function. It is also often the case that the homolog (be it orthologous or paralogous) of a protein in species B has a completely different function than its homolog in species A despite a high level of sequence similarity. This is usually very hard to determine in silico.

To find the functionally homologous protein(s), you would ideally need to identify the essential residues that allow your protein to perform its function. This could be done using something like PFam which will identify protein domains. You can then check whether the homologs you find also have this domain.

This is essentially what PSI-blast does. Although it doesn't take domains into account, each successive iteration is used to build a model of your proptein. The model is built under the reasonable assumption that highly conserved residues are important. So it will consider more diverged sequences as homologous if those residues are conserved.

If you know how your protein works and what residues are important, you can use that knowledge to refine the results of your PSI-blast. If you don't, you'll have to use only "good" hits to make the model. One way to do this, for well studied proteins, is to only add proteins that are already annotated as homologs of what you are looking for to build your model, then use that model to search in un-annotated species.

If you don't know, you could try looking for recognizable protein domains in your query protein (use PFam) and then use the HMM (hidden markov model) of the domain to identify important residues. For example, this is the HMM logo for the zf-A20 zinc finger domain:

zinc finger sequence logo

The huge cysteine (C) residues are shown that size because they are very conserved across proteins carrying this domain and, presumably, are functionally important for the domain. So, if you pass your protein through PFam and identify domains, find the important residues and make sure all your homologs have those conserved. If using PSI-blast, only include sequences where those residues are conserved in the results you keep.

Finally, another useful tool that works in the same way is HMMER. This takes a protein alignment as input, like PSI-blast builds an HMM model from it and then can use this model to query a protein database for more hits. Methods like HMMER and PSI-blast are far better than simple sequence similarity approaches when looking for homologs.

  • 1
    $\begingroup$ Great tool HMMER, is as fast as BLAST and works pretty well $\endgroup$
    – llrs
    Jun 19, 2017 at 14:02
  • $\begingroup$ Dear terdon, your answer was the best answer someone could have given to this question and it was exactly the answer I was looking for. Thank you very much for your excellent answer $\endgroup$
    – Sara
    Jun 19, 2017 at 16:27
  • $\begingroup$ @Sara you're very welcome :) $\endgroup$
    – terdon
    Jun 19, 2017 at 16:28

It sounds like Smart BLAST might do what you want. Here's the description of it's goal:

SmartBLAST is a new and experimental NCBI tool that makes it easier to complete common sequence analysis tasks, such as finding a candidate protein name for a sequence, locating regions of high sequence conservation, or identifying regions covered by database sequences but missing from the query.

To do this, SmartBLAST performs the following tasks in much less time than it takes to run a typical BLASTp search:

  • a BLASTp comparison of the query with the closest matching sequences available;
  • a parallel BLASTp search to find the closest matches to high quality sequences from model organisms;
  • a multiple alignment between the query and five of the closest matching sequences (usually including two high quality sequences);
  • an analysis that produces a phylogenetic tree from the multiple sequence alignment.

[from NCBI Insights]

  • $\begingroup$ SmartBLAST is a very good idea as it gives so much more divergent organism, but is there any way to give its result to PSI-BLAST for more iterations? $\endgroup$
    – Sara
    Jun 19, 2017 at 11:02
  • 2
    $\begingroup$ @Sara just note the accession numbers of the sequences found by Smart BLAST and make sure to add them to your alignment in the psi-blast. They should be found as hits there too. $\endgroup$
    – terdon
    Jun 19, 2017 at 11:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.