text: user1671: I was looking BioPython to calculate the number of possible alignments between two sequences. Let's say there are two input sequences with the length of m and n. The program will count the possible number of alignments based on the length of two sequences. 
  Is it possible to do that with BioPython? If not, how can I do that?
  
  user776: A closed-form solution is offered in An exact formula for the number of alignments
  between two DNA sequences by Torres, Cabada, and Nieto:
  $$f(m,n)=\sum_{k=0}^{min(m,n)}2^{k}\binom{m}{k}\binom{n}{k}$$
  If this solution seems reasonable, you could calculate this without BioPython, but with a simple xrange loop, the power operator, and scipy.special.binom:
  #!/usr/bin/env python
  
  import sys
  import scipy.special
  
  def alignments(m, n):
      if m < 0 or n < 0:
          raise ValueError('m and n should be non-negative')
      s = 0
      b = min(m, n) + 1
      for k in xrange(0, b):
          s += (2 ** k) * scipy.special.binom(m, k) * scipy.special.binom(n, k)
      return s
  
  def main():
      m = 4
      n = 2
      a = alignments(m, n)
      assert (m == 4 and n == 2 and a == 41), "something went wrong!"
      sys.stdout.write("alignments(%d, %d) = %d\n" % (m, n, a))
  
  if __name__ == "__main__":
      main()
  
  I don't know what your m and n are, but keep in mind that this solution grows quickly. Also, I did some digging and scipy approximates the calculation of the binomial coefficient, which is probably going to be an issue for large m and n. 
  If you're working with large values, you may want to look into using the Python long type and consider the accuracy of the answer. The Stack Overflow link offers alternatives to scipy that generate an exact calculation of the binomial coefficient, at the cost of a longer runtime.
  
original_text: 1671: <p>I was looking BioPython to calculate the number of possible alignments between two sequences. Let's say there are two input sequences with the length of <em>m</em> and <em>n</em>. The program will count the possible number of alignments based on the length of two sequences. </p>
  
  <p>Is it possible to do that with BioPython? If not, how can I do that?</p>
   776: <p>A <a href="https://en.wikipedia.org/wiki/Closed-form_expression" rel="noreferrer">closed-form</a> solution is offered in <em><a href="https://www.researchgate.net/profile/Alberto_Cabada/publication/5346653_An_Exact_Formula_for_the_Number_of_Alignments_Between_Two_DNA_Sequences/links/02bfe50efedf9c053e000000.pdf" rel="noreferrer">An exact formula for the number of alignments
  between two DNA sequences</a></em> by Torres, Cabada, and Nieto:</p>
  
  <p>$$f(m,n)=\sum_{k=0}^{min(m,n)}2^{k}\binom{m}{k}\binom{n}{k}$$</p>
  
  <p>If this solution seems reasonable, you could calculate this without BioPython, but with a simple <code>xrange</code> loop, the <a href="https://docs.python.org/2.0/ref/power.html" rel="noreferrer">power</a> operator, and <code>scipy.special.binom</code>:</p>
  
  <pre><code>#!/usr/bin/env python
  
  import sys
  import scipy.special
  
  def alignments(m, n):
      if m &lt; 0 or n &lt; 0:
          raise ValueError('m and n should be non-negative')
      s = 0
      b = min(m, n) + 1
      for k in xrange(0, b):
          s += (2 ** k) * scipy.special.binom(m, k) * scipy.special.binom(n, k)
      return s
  
  def main():
      m = 4
      n = 2
      a = alignments(m, n)
      assert (m == 4 and n == 2 and a == 41), "something went wrong!"
      sys.stdout.write("alignments(%d, %d) = %d\n" % (m, n, a))
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>I don't know what your <code>m</code> and <code>n</code> are, but keep in mind that this solution grows quickly. Also, I did some digging and scipy <a href="https://stackoverflow.com/a/22966919">approximates</a> the calculation of the binomial coefficient, which is probably going to be an issue for large <code>m</code> and <code>n</code>. </p>
  
  <p>If you're working with large values, you may want to look into using the Python <code>long</code> type and consider the accuracy of the answer. The Stack Overflow link offers alternatives to scipy that generate an exact calculation of the binomial coefficient, at the cost of a longer runtime.</p>
  