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

生物技术

开发平台:

C/C++

  1. #!/usr/local/bin/perl
  2. # $Id: gc.pl,v 1000.0 2003/10/31 21:38:25 gouriano Exp $
  3. #
  4. # Author:  Josh Cherry
  5. #
  6. # calculate G+C+S content
  7. # (from gbench)
  8. use CGI;
  9. $qs = <STDIN>;
  10. $query = new CGI($qs);
  11. #if a get info call...
  12. if ($query->param('action') eq "info") {
  13.     print '
  14.    PluginInfo ::= {
  15.       ver-major 0,
  16.       ver-minor 0,
  17.       ver-revision 0,
  18.       ver-build-date "",
  19.       class-name "gc.pl",
  20.       menu-item "Test scripts/GC content in perl",
  21.       tooltip "G+C+S content by a perl script ",
  22.       commands algo {
  23.         {
  24.           command 3,
  25.           args {
  26.             {
  27.               name "locs",
  28.               desc "Locations to evaluate",
  29.               data array {
  30.                 object {
  31.                   docaddr "(nil)",
  32.                   objaddr "(nil)",
  33.                   subtype "Seq-loc"
  34.                 }
  35.               }
  36.             }
  37.           }
  38.         }
  39.       }
  40.     }
  41.    '
  42. } else {  # otherwise, run
  43.     @locs = $query->param('locs');
  44.     foreach $loc (@locs) {
  45.         $seq = new CGI($loc);
  46.         print($seq->param("short_title"), "t",
  47.               &gc_content($seq->param("seq")), "n");
  48.     }
  49. }
  50. sub gc_content {
  51.     my $s = $_[0];
  52.     my $count = 0;
  53.     for ($i=0;  $i < length($s); $i++) {
  54.         $c = substr($s, $i, 1);
  55.         if ($c eq "G" || $c eq "C" || $c eq "S") {
  56.             $count++;
  57.         }
  58.     }
  59.     return $count / length($s);
  60. }
  61. # ===========================================================================
  62. # $Log: gc.pl,v $
  63. # Revision 1000.0  2003/10/31 21:38:25  gouriano
  64. # PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  65. #
  66. # Revision 1.3  2003/10/29 20:12:05  jcherry
  67. # Reflect new spec for plugin args
  68. #
  69. # Revision 1.2  2003/10/07 13:47:03  dicuccio
  70. # Renamed CPluginURL* to CPluginValue*
  71. #
  72. # Revision 1.1  2003/07/28 19:59:10  jcherry
  73. # Initial version
  74. #
  75. # ===========================================================================
  76. #  ===========================================================================
  77. #  PRODUCTION $Log: gc.pl,v $
  78. #  PRODUCTION Revision 1000.0  2003/10/31 21:38:25  gouriano
  79. #  PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  80. #  PRODUCTION
  81. #  ===========================================================================