I'm currently working on some ribozyme binding, and I'm looking for a tool that will essentially analyze the regions of the degree of complementarity in two sequences in order to extrapolate efficiency of binding. After thinking about it, I'm essentially looking for "the opposite" of BLAST, in that BLAST looks for regions of similarity in sequences in the same orientation, while I'm looking for regions of complementarity in sequence in the opposite orientation.

Does such a tool exist?


To clarify, I'm looking for a tool that can detect the most optimal regions of complementarity in two sequences when both are aligned as such:



  • 1
    $\begingroup$ The opposite? You mean regions of low similarity or actually complementary? If the latter, just use translated blast flavors. If you post an example sequence to clarify, I should be able to give you a precise answer. $\endgroup$
    – terdon
    Oct 17, 2013 at 15:43
  • $\begingroup$ Sorry for the confusion: looking for regions of high complementarity. Will edit question in a moment. $\endgroup$ Oct 17, 2013 at 16:01

3 Answers 3


I'm not sure this is what you need since the sequences you posted are not actually complementary as far as I can tell. However, exonerate is one of the most powerful tools out there and can do this as well. Using these sequences as examples:


And this command (should be run on a *nix system):

exonerate -m coding2coding -q qq.fa -t test.fa -s 0

I get this output:

C4 Alignment:
         Query: query [revcomp]
        Target: target
         Model: genome2genome
     Raw score: 312
   Query range: 71 -> 0
  Target range: 0 -> 70

 71 :                                                          CCA       :  6
      |||||||||||||||||||||||||||||| |||||| ||||||||| |||||||||||+||||||
  1 :                                                          CCC       : 65

  5 : AGCTA :  1
 66 : AGCTA : 70

vulgar: query 71 0 - target 0 70 + 312 M 30 30 G 1 0 M 26 26 C 3 3 M 11 11

C4 Alignment:
         Query: query
        Target: target [revcomp]
         Model: genome2genome
     Raw score: 309
   Query range: 0 -> 71
  Target range: 70 -> 0

  1 :                      GTC                                           : 66
      ||||||||||| |||||||||||+||||||||| ||||| ||||||||||||||||||||||||||
 70 :                      GTA                                           :  6

 67 : CCAGG : 71
  5 : CCAGG :  1

vulgar: query 0 71 + target 70 0 - 309 M 21 21 C 3 3 M 15 15 G 1 0 M 31 31

Basically it gives you two alignments, one reading the target 3->5 and the query 5->3 and one the other way around.

Alternatively, you could do a translated blast search, tBLASTx which will translate both target and query sequence and so, should find complementary regions.

  • $\begingroup$ Is that where you grabbed yours? I just installed it and got different results. Some of it is visual (AA names, 1 versus 0-based indexing) but the scores are pretty different. $\endgroup$
    – Amory
    Oct 17, 2013 at 18:00
  • 2
    $\begingroup$ @Amory I'm using the one from the Debian repos, v. 2.2.0. Yes, the page you linked to is the homepage, so I'm guessing you just got a newer version and they've changed the algorithm a bit. Perhaps a different scoring matrix. In any case, the score here is irrelevant since it will depend directly on the length of the sequence. $\endgroup$
    – terdon
    Oct 17, 2013 at 18:09
  • $\begingroup$ @terdon On second thought, would doing a regular pairwise alignment with the reverse-complement of only of the sequences yield the same result? $\endgroup$ Oct 18, 2013 at 1:55
  • $\begingroup$ @LanceLafontaine probably but it will be slower and perhaps less accurate. If you are looking for possibly complementary sequences that can bind to each other I would use something like exonerate or blast rather than a sequence aligner. $\endgroup$
    – terdon
    Oct 18, 2013 at 13:28
  • $\begingroup$ @terdon: I dont understand why you suggested tblast. Translation has got no relation to complementarity. $\endgroup$
    Oct 24, 2013 at 11:11

You could try using a tool to estimate the binding affinities of the two sequences, i.e. OligoCalc



Just run blast with only the Plus-Minus alignments. See this post in biostar; it is similar to what you are interested in. This is for the standalone version. I am not sure about how to do it in the online blast. If you have just two sequences then you can use UNAfold for checking complementarity.


You must log in to answer this question.

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