Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Bio::DB::Sam Issues Writing Bio::DB::Sam::AlignWrapper Objects to Bam File

by dark_matter (Initiate)
on Jun 08, 2017 at 16:57 UTC ( [id://1192388]=perlquestion: print w/replies, xml ) Need Help??

dark_matter has asked for the wisdom of the Perl Monks concerning the following question:

Hey Monks! I'm attempting to use BioPerl to process/filter a Bam alignment file from Bowtie, iterating through the file alignment by alignment, and deciding whether or not to write a given alignment based on the identity or characteristics of the target. I've traditionally used the high-level API to access the elements of an alignment and "do things" with them, generally as follows:

use Bio::DB::Sam; $fh = Bio::DB::Sam->new(-fasta=> "fasta file", -bam =>"bam input file +"); my $header = $fh->header(); my $bam_out = Bio::DB::Bam->open("bam out file", "w+"); my @alignments = $fh->features(); for my $align (@alignments) { my $query = $align->qname; my $target = $align->seq_id; my $is_unmapped = $align->unmapped; unless ($in_unmapped) { $bam_out->write1($align); } }

However, this usage results in an error: "Bio::DB::Bam::write1: align is not of type Bio::DB::Bam::Alignment." Further investigation and reading RE: BioPerl suggests that the high-level API returns object in the AlignWrapper class, which are apparently not writeable with my current approach. Is there a way to extract the Alignment object from the AlignWrapper or a way to extract it using the BioPerl methods? Ultimately, I could try to work with the lower-level API, but I've been pretty happy with my interactions with the high-level API to date.

Any help/direction is greatly appreciated!! ~dark_matter

  • Comment on Bio::DB::Sam Issues Writing Bio::DB::Sam::AlignWrapper Objects to Bam File
  • Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1192388]
Approved by Discipulus
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-04-19 22:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found