SEQanswers

SEQanswers (http://seqanswers.com/forums/index.php)
-   Bioinformatics (http://seqanswers.com/forums/forumdisplay.php?f=18)
-   -   How do I convert 454 ace to a regular ace? (http://seqanswers.com/forums/showthread.php?t=7999)

lskatz 11-22-2010 06:27 AM

How do I convert 454 ace to a regular ace?
 
I have read on the BioPerl site that a 454 ace is not standardized due to its coordinate system. How can I convert it to the standard ace file?

When I run this code either by using contig or assembly objects, I get an error.


PHP Code:

sub _newblerAceToAce($args){
  
my($self,$args)=@_;
  
my $ace454=Bio::Assembly::IO->new(-file=>$$args{ace454Path},-format=>"ace",-variant=>'454');
  
my $ace=Bio::Assembly::IO->new(-file=>">$$args{acePath}",-format=>"ace");
  
#while(my $contig=$ace454->next_contig){
  
while(my $scaffold=$ace454->next_assembly){
    print 
Dumper $scaffold;
  }
  return $
$args{acePath};


Code:

Can't call method "get_consensus_sequence" on an undefined value at Bio/Assembly/IO/ace.pm line 280, <GEN0> line 93349.

Further details:

From the bioperl site,
The ACE files produced by the 454 GS Assembler (Newbler) do not conform to the
reference ACE format. In 454 ACE, the consensus sequence reported covers only
its clear range and the start of the clear range consensus is defined as position
1. Consequently, aligned reads in the contig can have negative positions. Be sure
to use the '454' variant to have positive alignment positions. No attempt is made
to construct the missing part of the consensus sequence (beyond the clear range)
based on the underlying reads in the contig. Instead the ends of the consensus
are simply padded with the gap character '-'.

P.S. It'd be really awesome if there were perl tags on this forum but I couldn't find them in the help section. I'm using PHP tags as a substitute.

maubp 11-22-2010 07:27 AM

My reading of the BioPerl text you quote suggests you just need to tell the parser it is a 454 Ace file, not a "standard" Ace file. i.e. There is no need to convert it.

Have you asked on the BioPerl mailing list?

lskatz 11-22-2010 07:44 AM

Quote:

Originally Posted by maubp (Post 29834)
My reading of the BioPerl text you quote suggests you just need to tell the parser it is a 454 Ace file, not a "standard" Ace file. i.e. There is no need to convert it.

Have you asked on the BioPerl mailing list?

Yes I've tried telling it that it is a 454 Ace file, using both the variant syntax and the ace-454 syntax. I get the error using either one.

I asked the mailing list at the end of last week, but no response yet.

I think this is the case of "it should work but it doesn't for me" and if anyone has a spare minute I would appreciate a tested code snippet.

maubp 11-22-2010 08:03 AM

Quote:

Originally Posted by lskatz (Post 29838)
I asked the mailing list at the end of last week, but no response yet.

I don't think your message made it to the list. I didn't see it, and it isn't on the archive.
http://lists.open-bio.org/pipermail/...er/thread.html

Check you sent the message from the same email address you are subscribed with?

If you send it again, make sure you include important information missing in your post here like the version of BioPerl, the OS, and the full error message - that usually makes it easier to help.

lskatz 11-22-2010 08:20 AM

Quote:

Originally Posted by maubp (Post 29841)
I don't think your message made it to the list. I didn't see it, and it isn't on the archive.
http://lists.open-bio.org/pipermail/...er/thread.html

Check you sent the message from the same email address you are subscribed with?

If you send it again, make sure you include important information missing in your post here like the version of BioPerl, the OS, and the full error message - that usually makes it easier to help.

It's down there at the end. If you think it's helpful I'll send again to the list with all those details.
http://lists.open-bio.org/pipermail/...er/034275.html

My OS is Ubuntu 8.
BioPerl: I have a global version of bioperl, and I installed the latest version of Assembly::IO into a local directory.
Code:

$ perl -MBio::Root::Version -e 'print $Bio::Root::Version::VERSION,"\n"'
1.006001
$ perl -MBio::SeqIO -e 'printf "%vd\n", Bio::Assembly::IO::ace::VERSION'
66.105.111.58.58.65.115.115.101.109.98.108.121.58.58.73.79.58.58.97.99.101.58.58.86.69.82.83.73.79.78

Error message after running the perl code (shown in the first post):
Code:

Can't call method "get_consensus_sequence" on an undefined value at Bio/Assembly/IO/ace.pm line 280, <GEN0> line 93349.
Thank you for helping!

maubp 11-22-2010 08:31 AM

Quote:

Originally Posted by lskatz (Post 29844)
It's down there at the end. If you think it's helpful I'll send again to the list with all those details.
http://lists.open-bio.org/pipermail/...er/034275.html

Oh yeah - I see it now, the title surprised me, that was all.
Quote:

Originally Posted by lskatz (Post 29844)
My OS is Ubuntu 8.

There were two Ubuntu releases in 2008, so Ubuntu 8 isn't specific.

Ubuntu 8.04 (Hardy Heron) or Ubuntu 8.10 (Intrepid Ibex)?

Quote:

Originally Posted by lskatz (Post 29844)
BioPerl: I have a global version of bioperl, and I installed the latest version of Assembly::IO into a local directory.
Code:

$ perl -MBio::Root::Version -e 'print $Bio::Root::Version::VERSION,"\n"'
1.006001
$ perl -MBio::SeqIO -e 'printf "%vd\n", Bio::Assembly::IO::ace::VERSION'
66.105.111.58.58.65.115.115.101.109.98.108.121.58.58.73.79.58.58.97.99.101.58.58.86.69.82.83.73.79.78


Wow - that is a crazy version number :D
Quote:

Originally Posted by lskatz (Post 29844)
Error message after running the perl code (shown in the first post):
Code:

Can't call method "get_consensus_sequence" on an undefined value at Bio/Assembly/IO/ace.pm line 280, <GEN0> line 93349.
Thank you for helping!

I know very little Perl - hence suggesting asking on the BioPerl mailing list. And yes, if I were you I would reply to your previous message with the extra version information.


All times are GMT -8. The time now is 04:34 AM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.