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

生物技术

开发平台:

C/C++

  1. #!/usr/bin/python
  2. # $Id: gc.py,v 1000.0 2003/10/31 21:38:33 gouriano Exp $
  3. #
  4. # Author:  Josh Cherry
  5. #
  6. # calculate G+C+S content
  7. # (from gbench)
  8. import sys
  9. import cgi
  10. def gc_content(seq):
  11.    gc_count = 0;
  12.    for base in seq:
  13.       if(base == 'G' or base == 'C' or base == 'S'):
  14.          gc_count = gc_count + 1
  15.    return float(gc_count) / len(seq)
  16. input = sys.stdin.read()
  17. args = cgi.parse_qs(input)
  18. action = args['action'][0]
  19. # if a get info call ...
  20. if action == 'info':
  21.    print '''
  22.    PluginInfo ::= {
  23.       ver-major 0,
  24.       ver-minor 0,
  25.       ver-revision 0,
  26.       ver-build-date "",
  27.       class-name "gc.py",
  28.       menu-item "Test scripts/GC content",
  29.       tooltip "G+C+S content by a python script ",
  30.       commands algo {
  31.         {
  32.           command 3,
  33.           args {
  34.             {
  35.               name "locs",
  36.               desc "Locations to evaluate",
  37.               data array {
  38.                 object {
  39.                   docaddr "(nil)",
  40.                   objaddr "(nil)",
  41.                   subtype "Seq-loc"
  42.                 }
  43.               }
  44.             }
  45.           }
  46.         }
  47.       }
  48.     }
  49.     '''
  50.    sys.exit(0)
  51. # otherwise, run
  52. locs = args['locs']
  53. for loc in locs:
  54.    seq = cgi.parse_qs(loc);
  55.    print seq['short_title'][0], 't', gc_content(seq['seq'][0])
  56. # ===========================================================================
  57. # $Log: gc.py,v $
  58. # Revision 1000.0  2003/10/31 21:38:33  gouriano
  59. # PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  60. #
  61. # Revision 1.3  2003/10/29 20:12:05  jcherry
  62. # Reflect new spec for plugin args
  63. #
  64. # Revision 1.2  2003/10/07 19:12:25  jcherry
  65. # Reflected change of PluginURL to PluginValue (changed addr to
  66. # value in asn.1)
  67. #
  68. # Revision 1.1  2003/07/28 18:24:31  jcherry
  69. # Initial version
  70. #
  71. # ===========================================================================
  72. #  ===========================================================================
  73. #  PRODUCTION $Log: gc.py,v $
  74. #  PRODUCTION Revision 1000.0  2003/10/31 21:38:33  gouriano
  75. #  PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  76. #  PRODUCTION
  77. #  ===========================================================================