BioPerl

 view release on metacpan or  search on metacpan

Bio/Assembly/IO/phrap.pm  view on Meta::CPAN

        /INTERNAL\s+Contig\s+(\d+)\s+opp\s+sense/ && do {
            my $contigID = $1;
            my $contig = $assembly->get_contig_by_id($contigID) ||
                         $assembly->get_singlet_by_id($contigID);
            while ($_ = $self->_readline) {
                my (@data,$rejected,$c1_strand,$c2_strand);

                (@data = /\s+(\*?)\s+(C?)\s+(\S+)\s+(C?)\s+(\S+)\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)/) && do {
                    if ($data[0] eq '*') { $rejected = 1 } else { $rejected = 0 }
                    $c1_strand = ($data[1] eq 'C' ? -1 : 1);
                    $c2_strand = ($data[3] eq 'C' ? -1 : 1);
                    (my $clone_name = $data[2]) =~ s/^(\S+)\.\w.*/$1/;
                    my $clone = Bio::SeqFeature::Generic->new(
                        -start   => $data[6],
                        -end     => $data[7],
                        -strand  => 0,
                        -primary => "_internal_clone",
                        -source  => $clone_name,
                        -tag     => {'_1st_strand'=>,$c1_strand,
                                     '_2nd_strand'=>,$c2_strand,
                                     '_1st_name'=>$data[2],
                                     '_2nd_name'=>$data[4],
                                     '_length'=>$data[5],
                                     '_rejected'=>$rejected}
                    );
                    $contig->add_features([ $clone ]);
                };

                /Covered regions:/ && do {
                    my %coord  = /(\d+)/g; my $i = 0;
                    foreach my $start (sort { $a <=> $b } keys %coord) {
                        my $cov = Bio::SeqFeature::Generic->new(
                            -start   => $start,
                            -end     => $coord{$start},
                            -primary => '_covered_region',
                            -source  => ++$i,
                        );
                        # 1: attach feature to contig consensus, if any
                        $contig->add_features([ $cov ],1);
                    }
                    last; # exit while loop
                }; # /Covered regions:/
            } # while ($_ = $self->_readline)
        }; # /INTERNAL\s+Contig\s+(\d+)\s+opp\s+sense/
    } # while ($_ = $self->_readline)
    return 1;
}

=head2 write_assembly (NOT IMPLEMENTED)

    Title   : write_assembly
    Usage   : $ass_io->write_assembly($assembly)
    Function: Write the assembly object in Phrap compatible ACE format
    Returns : 1 on success, 0 for error
    Args    : A Bio::Assembly::Scaffold object

=cut

sub write_assembly {
    my $self = shift;
    $self->throw_not_implemented();   
}

1;

__END__



( run in 1.511 second using v1.01-cache-2.11-cpan-437f7b0c052 )