dotter.py
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:2k
源码类别:

生物技术

开发平台:

C/C++

  1. #!/usr/bin/python
  2. # $Id: dotter.py,v 1000.0 2003/10/31 21:37:23 gouriano Exp $
  3. #
  4. # Author:  Josh Cherry
  5. #
  6. # launch dotter (from gbench) using sequences we're handed
  7. import sys
  8. import string
  9. import commands
  10. import os
  11. def writefasta(seq, fname):
  12.    s = ">" + fname + "n"
  13.    for pos in range(0, len(seq), 60):
  14.       s += seq[pos:pos+60]
  15.       s += 'n'
  16.    f = open(fname, "w")
  17.    f.write(s)
  18.    f.close
  19. input = sys.stdin.read()
  20. l = string.split(input)
  21. if len(l) != 1 and len(l) != 2:
  22.    sys.stderr.write("need exactly 1 or 2 sequences; you supplied %dn" % len(l))
  23.    sys.exit(1)
  24. # if given just one sequence, 'double' it to plot against itself
  25. if len(l) == 1:
  26.    l = [ l[0], l[0] ]
  27. writefasta(l[0], 'seq1.fasta')
  28. writefasta(l[1], 'seq2.fasta')
  29. # run dotter in background
  30. # redirect all output to /dev/null (otherwise interpreter goes zombie)
  31. os.system('dotter seq1.fasta seq2.fasta >& /dev/null &')
  32. # cheesey: wait a few seconds so dotter can read its files,
  33. # then delete them
  34. import time
  35. time.sleep(5)
  36. os.system('rm seq1.fasta seq2.fasta')
  37. # ===========================================================================
  38. # $Log: dotter.py,v $
  39. # Revision 1000.0  2003/10/31 21:37:23  gouriano
  40. # PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.1
  41. #
  42. # Revision 1.1  2003/06/24 16:41:12  jcherry
  43. # Initial versions of scripts for use with gbench
  44. #
  45. # ===========================================================================
  46. #  ===========================================================================
  47. #  PRODUCTION $Log: dotter.py,v $
  48. #  PRODUCTION Revision 1000.0  2003/10/31 21:37:23  gouriano
  49. #  PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.1
  50. #  PRODUCTION
  51. #  ===========================================================================