[Bioperl-l] Errors using Bio::Assembly
anunberg at oriongenomics.com
anunberg at oriongenomics.com
Sat Feb 1 11:40:16 EST 2003
Thanks for the quick response, I will be at the OReilly conference next
week so no rush. I would add the bit about the qual files in the docs. I
was wondering how you were calling high qual discrenpancies, and i thought
it was just the default upper/lower case you were using in the trace
sequences in the ace file. Also, the high_quality_discrepancies returns
an array of Bio::SeqFeatures::Generic objects yes? but in the web
documentation it says a SeqFeature Collection object.
My ace files are not in the context of phredphrap. I only save the ace
files themselves. I think I will attempt to right a method that will do
high qual discrepancies based on the ace file itself.
Thanks again, this does help alot
Andy
On Fri, 31 Jan 2003,
Robson Francisco de Souza wrote:
>
> Hi Andy,
>
> You are trying to use a Bio::Assembly::Contig method that depends
> on quality values for the read sequences, but you haven't the appropriate
> quality objects first. An ACE file has no data about read base qualities,
> those are loaded by consed from the phd file in ../phd_dir. To use
> high_quality_discrepancies from Bio::Assembly::ContigAnalysis, you must
> first add quality objects using set_seq_qual. See my changes to you code
> below. See my comments on the other errors after the code.
>
> use lib '/loginhome/anunberg/bioperl-1.2';
> use strict;
> use Bio::Assembly::IO;
> use Bio::Assembly::ContigAnalysis;
> use Carp qw(cluck);
> my $in=Bio::Assembly::IO->new(-file=>$ARGV[0], -format=>'ace');
> my $assembly=$in->next_assembly;
> my @contigs=$assembly->all_contigs;
>
> my $PhdDir = '../phd_dir'; # change #1: phd directory
>
> foreach my $contig(@contigs){
> my $analysis=Bio::Assembly::ContigAnalysis->new(-contig=>$contig);
>
> # change #2: this block sets quality values for reads
> #
> foreach my $seqID ($contig->get_seq_ids) {
> my $swq = Bio::SeqIO->new(-file=>"$PhdDir/${seqID}.phd.1",
> -format=>'phd');
> $swq = $swq->next_seq();
> my $seq = $contig->get_seq_by_name($seqID);
> $contig->set_seq_qual($seq,$swq);
> }
> # change #2: end
>
> my @hqd=$analysis->high_quality_discrepancies;
> # my @ss=$analysis->single_strand; # does not work. See below.
> my @lcd=$analysis->low_consensus_quality;
> my $id=$contig->id;
> print "$id\t";
> print scalar @hqd."\t";
> print scalar @lcd."\n";
> }
>
> > >My first error is when calling the next_assembly method. Some parsing
> > >error occurs, I think. I got mutlitiple warnings all the same
> > >Argument "" isn't numeric in numeric comparison (<=>) at
> > >/loginhome/anunberg/bioperl-1.2/Bio/SeqFeature/Collection.pm line 436,
> > ><GEN0> line 54.
> > >the lines correspond to the QA tag lines in the ace file. Sometimes the
> > >same complaint occurs one line above it if its blank, but not all blank
> > >lines above the QA tag produce this warning
> > >when using the method high_quality_discrepancies, i get this warning
> > >Argument "" isn't numeric in numeric comparison (<=>) at
> > >/loginhome/anunberg/bioperl-1.2/Bio/SeqFeature/Collection.pm line 436,
> > ><GEN0> line 358.
> > >which is a blank line at the end of the ace file.
>
> This one I could not repreduce. The example in t/data is working
> on your system? Maybe you can send me an sample file latter, so that I can
> reproduce your error, but the errors refer to a sort method in
> Bio::SeqFeature::Collection. It looks like the module did not load the
> alignment coordinate for your reads...
>
> > >I may be using the method wrong, but using an ace file where i know to have
> > >a high quality descrepancie, i still get 0 .
> > >The documentation is a little off for this method. The description says
> > >that a Bio::SeqFeature::Collection is returned, but the code and the
> > >example has an array of Bio::SeqFeature::Generic objects being returned(if
> > >i am reading the code correctly).
>
> Ok. My patch to your code fix this one. Maybe I should add this
> example to the docs?
>
> > >the single_strand method gives me the following exception
> > >------------- EXCEPTION Bio::Root::NotImplemented -------------
> > >MSG: Abstract method
> > >"Bio::Assembly::ContigAnalysis::_merge_overlapping_features" is not
> > >implemented by package Bio::Assembly::ContigAnalysis.
> > >This is not your fault - author of Bio::Assembly::ContigAnalysis should be
> > >blamed!
> > >
> > >STACK Bio::Root::RootI::throw_not_implemented
> > >/loginhome/anunberg/bioperl-1.2/Bio/Root/RootI.pm:529
> > >STACK Bio::Assembly::ContigAnalysis::_merge_overlapping_features
> > >/loginhome/anunberg/bioperl-1.2/Bio/Assembly/ContigAnalysis.pm:476
> > >STACK Bio::Assembly::ContigAnalysis::single_strand
> > >/loginhome/anunberg/bioperl-1.2/Bio/Assembly/ContigAnalysis.pm:442
> > >STACK toplevel ../testing_BioAssembly.pl:31
>
> As the error says: it is my fault and my only. I did not had time
> to complete the single_strand method yet. This method needs a complete
> rewrite. As I'm quite a lot busy wright now, I'll need a few weeks to
> finish it.
>
> > >Thanks to anyone who can help.
> > >Andy
>
> Hope that helps.
> Cheers,
> Robson
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>
More information about the Bioperl-l
mailing list