I tried to use CD-HIT for such a task some years ago, and it didn't work as well as BLAST. The clustering would miss some hits in an m:n orthology situation.
Hi, I have several proteins datasets which I want to compare. I want to use sequence identity (not IDs) in order to count the number of shared proteins between each dataset pair.
I want to identify proteins which match perfectly and also proteins which are nearly identical (isoforms) and different proteins which are highly similar over a large region of both proteins.
So far, I have created a local blast database for each dataset and blasted each dataset against all others. I then parsed the XML output and have been able to find the highest scoring proteins.
I'm not sure which score is the best measurement of similarity for this task. If I look for high scoring proteins (above a cutoff) I often miss some near perfect matches and If I have similar problems with evalues. I'm writing my own filter (based on length of match vs query length, e-value and score) which is working reasonably well. Is this a suitable solution or am I missing something obvious? Thanks
3 answers
This seems to me as a perfectly suitable solution. In the case where you want to determine the similarity between two proteins (which is what your problem boils down to), I would indeed recommend a filter based on %similarity (or %identity, which is fairly linearly correlated), %length of matching fragments (compared to query length), and of course a threshold on the e-value. I rarely use thresholds on the score, as this is correlated with sequence length and is not easily comparable.
If you are using NCBI's command line blast suite, the blast2 program -m 8 (Alignment view options -> tabular) will output your results in a tabular format which contains the identity percent of the match as well as the alignment length. It will also be a lot more straightforward to parse than XML output.
You're still going to have to grab the original sequences' lengths from elsewhere, though.
The CD-HIT programme would be very useful for this task
interesting. I don't think I would expect it to be particularly great at orthology detection.
That being said, it is a useful tool for identifying a) identical sequences b) very similar sequences very quickly with out having to apply extra criteria as one would have to do with a BLAST like approach.
Log in to answer this question.