Bio-BioStudio

 view release on metacpan or  search on metacpan

gbrowse_plugins/BS_ChromosomeAnalyzer.pm  view on Meta::CPAN

        -name     => $self->config_name('TR'),
        -value    => 1,
        -label    => q{ },
        -checked  => 1
      )
    )
  );

  push @choices, TR(
    {-class => 'searchtitle'},
    th(
      {-align => 'RIGHT', -width => '50%'},
      'Look at custom BioStudio defined features? '
    ),
    td(
      checkbox(
        -name     => $self->config_name('BS'),
        -value    => 1,
        -label    => q{ },
        -checked  => 1
      )
    )
  );

  push @choices, TR(
    {-class => 'searchtitle'},
    th(
      {-align => 'RIGHT', -width => '50%'},
      'Look at other chromosome features? '
    ),
    td(
      checkbox(
        -name     => $self->config_name('CF'),
        -value    => 1,
        -label    => q{ },
        -checked  => 1
      )
    )
  );
           
  push @choices, TR(
    {-class => 'searchtitle'},
    th(
      {-align => 'RIGHT', -width => '50%'},
      "Look at restriction enzymes? "
    ),
    td(
      checkbox(
        -name     => $self->config_name('RE'),
        -value    => 1,
        -label    => q{ },
        -checked  => 0
      )
    )
  );
           
  push @choices, TR(
    {-class => 'searchbody'},
    th('Enzyme set'),
    td(
      popup_menu(
        -name     => $self->config_name('RESET'),
        -values   => \@enzlists,
        -default  => 'standard_and_IIB'
      )
    )
  );

  my $html = table(@choices);
  return $html;
}

=head2 dump

Call BS_ChromosomeAnalyzer and pass the parameters
Then monitor the scripts progress; print periodic output.

=cut

sub dump
{
  my $self      = shift;
  my $segment   = shift;

  #If we're monitoring the results, print out from the cache and refresh in 5
  if (my $sid = param('session'))
  {
    my $cache = get_cache_handle($plugin_name);
    my $data = $cache->get($sid);
    unless($data and ref $data eq 'ARRAY')
    {
      #some kind of error
      exit 0;
    }
    print $data->[0]
      ? start_html(-title => "Results for $plugin_name job $sid")
      : start_html(-title => "Running $plugin_name job $sid",
                   -head=>meta({-http_equiv =>'refresh', -content => '60'}));
    print p(i("This page will refresh in 1 minute")) unless $data->[0];
    print pre($data->[1]);
    print p(i("...continuing...")) unless $data->[0];
    print end_html;
    return;
  }
 
  #Otherwise we're launching the script
  else
  {
   #Prepare persistent variables
    my $sid = Digest::MD5::md5_hex(Digest::MD5::md5_hex(time().{}.rand().$$));
    my $cache = get_cache_handle($plugin_name);
    $cache->set($sid, [0, q{}]);
  
   #Prepare arguments
    my $pa               = $self->configuration;
    my $gbrowse_settings = $self->page_settings;
    my $command;
    $pa->{CHROMOSOME}   = $gbrowse_settings->{source};
    $pa->{STARTPOS} = $segment->start if ($pa->{SCOPE} eq "seg");
    $pa->{STOPPOS}  = $segment->end if ($pa->{SCOPE} eq "seg");
    $pa->{OUTPUT} = "html";



( run in 0.790 second using v1.01-cache-2.11-cpan-364913b4093 )