[Bioperl-l] questions about generating gene model by GLEAN

Zhan, Shuai Shuai.Zhan at umassmed.edu
Fri Jan 28 18:03:17 UTC 2011


Hi,

Is there someone used GLEAN for generating consensus gene set? Would you mind sharing some experience with me? I'd greatly appreciate any help.

I have tried for run it for couple of weeks. At first I found it can't fetch the real sequence from database but on object, then I change some some codes of fetchseq {} of GLEAN::Evidence::Base. (->seq->seq instead of ->seq)
 
By far, it has began processing my input and correctly analyzed the candidate start, stop, donor, and acceptor for the first contig.
But it still failed with something looks like "MSG: asking for tag value that does not exist Evidence".

$glean-lca --database glean --user me --password 123  --param param.yaml > test.dat
No reference provided; attempting to analyze entire genome
Gathering evidence from 'FGENE' for scaff Contig0:1,1129007 ...
The initial exon of CDS:FGENESH(fgp17144.t1) did not begin with a valid start codon
Extending the terminal exon of CDS:FGENESH(fgp17240.t1) to next valid downstream stop codon
The initial exon of CDS:FGENESH(fgp17165.t1) did not begin with a valid start codon
Extending the initial exon of CDS:FGENESH(fgp17192.t1) to next valid upstream start codon
The initial exon of CDS:FGENESH(fgp17178.t1) did not begin with a valid start codon
Error providing evidence type: GeneModel
The error was:
------------- EXCEPTION -------------
MSG: asking for tag value that does not exist Evidence
STACK Bio::SeqFeature::Generic::get_tag_values /usr/lib/perl5/site_perl/5.8.8/Bio/SeqFeature/Generic.pm:517
STACK Glean::Site::dump /home/zhan/geneset/glean-gene/bin/../lib/Glean/Site.pm:52
STACK Glean::MLE::_add_evidence /home/zhan/geneset/glean-gene/bin/../lib/Glean/MLE.pm:167
STACK Glean::MLE::add_evidence /home/zhan/geneset/glean-gene/bin/../lib/Glean/MLE.pm:94
STACK (eval) /home/zhan/geneset/glean-gene/bin/../lib/Glean/MLE.pm:203
STACK Glean::MLE::estimate /home/zhan/geneset/glean-gene/bin/../lib/Glean/MLE.pm:202
STACK toplevel glean-gene/bin/glean-lca:172
 
I think it failed in add_evidence method of Glean::MLE.
According to the track, I also report some key scalar by print sentense.

For example, 
It failed in adding the first candidate site to evidence.
The current $site is Contig0:1011027:1011027:0:-1, its primary_tag is "start", its seq_id is "Contig0" its strand is -1.
At first it invoked _add_evidence {} of Glean/MLE.pm.
The problem is $site->dump need get the value of tag "Evidence" for $site, but actually the "Evidence" tag didn't exist for this site.
THen I found $site of @sites was created by list_starts {} of Glean::Evidence::GeneModel, but its inital tags only have "Next Stop" and "Readingframe". I can't find any hint of when tag "Evidence" was added to $site.

The related source codes of glean are listed:
sub _add_evidence{ 
  my @sites = $evid->list_sites($scaff);
  for my $site (@sites) {
    ...
    $stype->{$sloc}->{_site} ||= $site->dump;
  }
  ...
}
sub dump { # from Glean/Site.pm
  ...
  return join("\t",
              $site->seq_id,
              $site->primary_tag,
              defined $site->score ? sprintf("%g", $site->score == 0 ? $site->worst : -log($site->score)) : "NA",
              ...
              join(";", $site->get_tag_values("Evidence"))
             );
  ...
}
sub list_sites { # from Evidence/GeneModel.pm
  ...
  push @sites, $self->list_starts(@cds);
  ...
}
sub list_starts { # from Evidence/GeneModel.pm
  ...
  push @sites, Glean::Site->new(-primary => "start",
                                  -start   => $pos + $str * (pos($startseq) - 3),
                                  -end     => $pos + $str * (pos($startseq) - 3),
                                  -strand  => $str,
                                  -frame   => 0,
                                  -source  => "$self",
                                  -seq_id  => $seq_id,
                                  -tag => { NextStop => $nextstop,
                                            ReadingFrame => $frame,
                                          },
                                 );
  ...
}
sub add_evidence{
  ...
  eval {
    $self->add_evidence($scaff, $evtype->new($db, $self->{_log}, $algo, $params));
  };
  croak("Error providing evidence type: $type\nThe error was:\n$@") if $@;
  ...
}

Sincerely
Shuai Zhan




More information about the Bioperl-l mailing list