diff -Nru bioperl-1.6.922/.travis.yml bioperl-1.6.923/.travis.yml --- bioperl-1.6.922/.travis.yml 2013-09-14 15:46:03.000000000 +0000 +++ bioperl-1.6.923/.travis.yml 2013-12-18 05:13:00.000000000 +0000 @@ -21,7 +21,7 @@ - "cpanm XML::SAX XML::SAX::Writer XML::Simple XML::LibXML XML::Twig XML::Writer 2>&1 | tail -n 1" - "cpanm PostScript::TextBlock Set::Scalar Sort::Naturally YAML | tail -n 1" - "cpanm Math::Random SOAP::Lite Spreadsheet::ParseExcel | tail -n 1" - #- "cpanm Bio::ASN1::EntrezGene | tail -n 1" + - "cpanm Bio::ASN1::EntrezGene | tail -n 1" - "cpanm Bio::Phylo | tail -n 1" #for some reason tests and deps aren't skipped here. Will have to look into it more... #git repos, seems to only work for simple checkouts, so pure perl only (TODO: look into before_script for more detail) @@ -34,10 +34,16 @@ #TODO - send emails to bioperl-guts-l notifications: - email: false + email: + recipients: + - bioperl-guts-l@lists.open-bio.org + - cjfields1@gmail.com + on_success: change + on_failure: change # whitelist branches branches: only: - master - v1.6.x + - topic/1.6-cherry diff -Nru bioperl-1.6.922/Bio/Align/Utilities.pm bioperl-1.6.923/Bio/Align/Utilities.pm --- bioperl-1.6.922/Bio/Align/Utilities.pm 2013-09-14 15:45:59.000000000 +0000 +++ bioperl-1.6.923/Bio/Align/Utilities.pm 2013-12-18 05:12:55.000000000 +0000 @@ -1,3 +1,20 @@ +package Bio::Align::Utilities; +use strict; +use warnings; +use Carp; +use Bio::Root::Version; + +use Exporter 'import'; +our @EXPORT_OK = qw( + aa_to_dna_aln + bootstrap_replicates + cat + bootstrap_replicates_codons + dna_to_aa_aln + most_common_sequences +); +our %EXPORT_TAGS = (all => \@EXPORT_OK); + # # BioPerl module for Bio::Align::Utilities # @@ -87,28 +104,9 @@ =cut -#' keep my emacs happy -# Let the code begin... - -package Bio::Align::Utilities; -use vars qw(@EXPORT @EXPORT_OK $GAP $CODONGAP %EXPORT_TAGS ); -use strict; -use Carp; -use Bio::Root::Version; -require Exporter; - -use base qw(Exporter); - -@EXPORT = qw(); -@EXPORT_OK = - qw(aa_to_dna_aln bootstrap_replicates cat bootstrap_replicates_codons dna_to_aa_aln); -%EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ] ); - -BEGIN { - use constant CODONSIZE => 3; - $GAP = '-'; - $CODONGAP = $GAP x CODONSIZE; -} +use constant CODONSIZE => 3; +our $GAP = '-'; +our $CODONGAP = $GAP x CODONSIZE; =head2 aa_to_dna_aln @@ -503,4 +501,41 @@ return $aln; } + +=head2 most_common_sequences + + Title : most_common_sequences + Usage : @common = most_common_sequences ($align, $case_sensitivity) + Function : Returns an array of the sequences that appear most often in the + alignment (although this probably makes more sense when there is + only a single most common sequence). Sequences are compared after + removing any "-" (gap characters), and ambiguous units (e.g., R + for purines) are only compared to themselves. The returned + sequence is also missing the "-" since they don't actually make + part of the sequence. + Returns : Array of text strings. + Arguments : Optional argument defining whether the comparison between sequences + to find the most common should be case sensitive. Defaults to + false, i.e, not case sensitive. + +=cut + +sub most_common_sequences { + my $align = shift + or croak ("Must provide Bio::AlignI object to Bio::Align::Utilities::most_common_sequences"); + my $case_sensitive = shift; # defaults to false (we get undef if nothing) + + ## We keep track of the max on this loop. Saves us having to + ## transverse the hash table later to find the maximum value. + my $max = 0; + my %counts; + foreach ($align->each_seq) { + (my $seq = $_->seq) =~ tr/-//d; + $seq = uc ($seq) unless $case_sensitive; + $max++ if (++$counts{$seq} > $max); + } + my @common = grep ($counts{$_} == $max, keys %counts); + return @common; +} + 1; diff -Nru bioperl-1.6.922/Bio/Assembly/Singlet.pm bioperl-1.6.923/Bio/Assembly/Singlet.pm --- bioperl-1.6.922/Bio/Assembly/Singlet.pm 2013-09-14 15:45:51.000000000 +0000 +++ bioperl-1.6.923/Bio/Assembly/Singlet.pm 2013-12-18 05:12:58.000000000 +0000 @@ -157,6 +157,10 @@ -start => 1, #-end => we let Bio::LocatableSeq calculate it (Seq and LocatableSeq) ); + # Get End from $seq if $lseq can't figure it out (e.g. phrap output) + if (not defined $lseq->end) { + $lseq->end($seq->end); + } # Add new sequence and its coordinates to the contig my $lcoord = Bio::SeqFeature::Generic->new( -start => $lseq->start, -end => $lseq->end ); diff -Nru bioperl-1.6.922/Bio/DB/Fasta.pm bioperl-1.6.923/Bio/DB/Fasta.pm --- bioperl-1.6.922/Bio/DB/Fasta.pm 2013-09-14 15:45:44.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Fasta.pm 2013-12-18 05:12:46.000000000 +0000 @@ -331,7 +331,10 @@ my $fh = $self->_fh($id) or return; seek($fh, $offset, 0); read($fh, $data, $headerlen); - chomp $data; + # On Windows chomp remove '\n' but leaves '\r' + # when reading '\r\n' in binary mode + $data =~ s/\n//g; + $data =~ s/\r//g; substr($data, 0, 1) = ''; return $data; } diff -Nru bioperl-1.6.922/Bio/DB/Flat/BDB/fasta.pm bioperl-1.6.923/Bio/DB/Flat/BDB/fasta.pm --- bioperl-1.6.922/Bio/DB/Flat/BDB/fasta.pm 2013-09-14 15:45:53.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Flat/BDB/fasta.pm 2013-12-18 05:12:42.000000000 +0000 @@ -85,7 +85,7 @@ my $fh = shift; # fasta parses by changing $/ to '\n>', need to adjust accordingly - my $adj = ( $^O =~ /mswin/i ) ? -2 : -1; + my $adj = -1; my $parser = $self->{cached_parsers}{fileno($fh)} ||= Bio::SeqIO->new(-fh=>$fh,-format=>$self->default_file_format); diff -Nru bioperl-1.6.922/Bio/DB/Flat/BDB.pm bioperl-1.6.923/Bio/DB/Flat/BDB.pm --- bioperl-1.6.922/Bio/DB/Flat/BDB.pm 2013-09-14 15:45:36.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Flat/BDB.pm 2013-12-18 05:12:59.000000000 +0000 @@ -241,6 +241,7 @@ my $fh = $self->_fhcache($file) or $self->throw("could not open $file for indexing: $!"); my $offset = 0; my $count = 0; + while (!eof($fh)) { my ($ids,$adjustment) = $self->parse_one_record($fh) or next; $adjustment ||= 0; # prevent uninit variable warning diff -Nru bioperl-1.6.922/Bio/DB/Flat/BinarySearch.pm bioperl-1.6.923/Bio/DB/Flat/BinarySearch.pm --- bioperl-1.6.922/Bio/DB/Flat/BinarySearch.pm 2013-09-14 15:45:39.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Flat/BinarySearch.pm 2013-12-18 05:12:54.000000000 +0000 @@ -840,6 +840,16 @@ my %secondary_id; my $last_one; + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($fh); + my $curr_line = <$fh>; + my $pos_diff = tell($fh) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $fh, $init_pos, 0; # Rewind position to proceed to read the file + while (<$fh>) { $last_one = $_; $self->{alphabet} ||= $self->guess_alphabet($_); @@ -848,7 +858,7 @@ $id = $new_primary_entry; $self->{alphabet} ||= $self->guess_alphabet($_); - my $tmplen = ( tell $fh ) - length($_); + my $tmplen = ( tell $fh ) - length($_) - $correction; $length = $tmplen - $pos; diff -Nru bioperl-1.6.922/Bio/DB/IndexedBase.pm bioperl-1.6.923/Bio/DB/IndexedBase.pm --- bioperl-1.6.922/Bio/DB/IndexedBase.pm 2013-09-14 15:46:07.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/IndexedBase.pm 2013-12-18 05:12:51.000000000 +0000 @@ -364,7 +364,7 @@ $offsets = $self->index_file($path, $opts{-reindex}); $dirname = dirname($path); } else { - $self->throw( "$path: Invalid file or dirname"); + $self->throw( "No file or directory called '$path'"); } } @{$self}{qw(dirname offsets)} = ($dirname, $offsets); @@ -747,9 +747,18 @@ # Account for crlf-terminated Windows and Mac files my ($self, $file) = @_; my $fh = IO::File->new($file) or $self->throw( "Could not open $file: $!"); - my $line = <$fh>; + + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($fh); + my $curr_line = <$fh>; + my $pos_diff = tell($fh) - $init_pos; + my $correction = $pos_diff - length $curr_line; close $fh; - $self->{termination_length} = ($line =~ /\r\n$/) ? 2 : 1; + + $self->{termination_length} = ($curr_line =~ /\r\n$/) ? 2 : 1+$correction; return $self->{termination_length}; } @@ -1056,9 +1065,18 @@ sub DESTROY { my $self = shift; + + # Close filehandles + while (my ($file, $fh) = each %{ $self->{fhcache} }) { + if (defined $fh) { + $fh->close; + } + } + $self->_close_index($self->{offsets}); + if ( $self->{clean} || $self->{indexing} ) { - # Indexing aborted or cleaning requested. Delete the index file. - unlink $self->{index_name}; + # Indexing aborted or cleaning requested. Delete the index file. + unlink $self->{index_name}; } return 1; } diff -Nru bioperl-1.6.922/Bio/DB/NCBIHelper.pm bioperl-1.6.923/Bio/DB/NCBIHelper.pm --- bioperl-1.6.922/Bio/DB/NCBIHelper.pm 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/NCBIHelper.pm 2013-12-18 05:12:53.000000000 +0000 @@ -86,7 +86,6 @@ package Bio::DB::NCBIHelper; use strict; -use vars qw($HOSTBASE %CGILOCATION %FORMATMAP $DEFAULTFORMAT $MAX_ENTRIES); use Bio::DB::Query::GenBank; use HTTP::Request::Common; @@ -97,43 +96,56 @@ use base qw(Bio::DB::WebDBSeqI Bio::Root::Root); -BEGIN { - $MAX_ENTRIES = 19000; - $HOSTBASE = 'http://eutils.ncbi.nlm.nih.gov'; - %CGILOCATION = ( - 'batch' => ['post' => '/entrez/eutils/epost.fcgi'], - 'query' => ['get' => '/entrez/eutils/efetch.fcgi'], - 'single' => ['get' => '/entrez/eutils/efetch.fcgi'], - 'version'=> ['get' => '/entrez/eutils/efetch.fcgi'], - 'gi' => ['get' => '/entrez/eutils/efetch.fcgi'], - 'webenv' => ['get' => '/entrez/eutils/efetch.fcgi'] - ); - - %FORMATMAP = ( 'gb' => 'genbank', - 'gp' => 'genbank', - 'fasta' => 'fasta', - 'asn.1' => 'entrezgene', - 'gbwithparts' => 'genbank', - ); - $DEFAULTFORMAT = 'gb'; -} +our $HOSTBASE = 'http://eutils.ncbi.nlm.nih.gov'; +our $MAX_ENTRIES = 19000; +our $REQUEST_DELAY = 3; +our %CGILOCATION = ( + 'batch' => [ 'post' => '/entrez/eutils/epost.fcgi' ], + 'query' => [ 'get' => '/entrez/eutils/efetch.fcgi' ], + 'single' => [ 'get' => '/entrez/eutils/efetch.fcgi' ], + 'version' => [ 'get' => '/entrez/eutils/efetch.fcgi' ], + 'gi' => [ 'get' => '/entrez/eutils/efetch.fcgi' ], + 'webenv' => [ 'get' => '/entrez/eutils/efetch.fcgi' ] + ); +our %FORMATMAP = ( + 'gb' => 'genbank', + 'gp' => 'genbank', + 'fasta' => 'fasta', + 'asn.1' => 'entrezgene', + 'gbwithparts' => 'genbank', + ); +our $DEFAULTFORMAT = 'gb'; + +=head2 new + + Title : new + Usage : + Function: the new way to make modules a little more lightweight + Returns : + Args : -# the new way to make modules a little more lightweight +=cut sub new { - my ($class, @args ) = @_; + my ( $class, @args ) = @_; my $self = $class->SUPER::new(@args); - my ($seq_start,$seq_stop,$no_redirect, $redirect, $complexity,$strand) = - $self->_rearrange([qw(SEQ_START SEQ_STOP NO_REDIRECT REDIRECT_REFSEQ COMPLEXITY STRAND)], - @args); - $seq_start && $self->seq_start($seq_start); - $seq_stop && $self->seq_stop($seq_stop); - $no_redirect && $self->no_redirect($no_redirect); - $redirect && $self->redirect_refseq($redirect); - $strand && $self->strand($strand); - # adjust statement to accept zero value - defined $complexity && ($complexity >=0 && $complexity <=4) - && $self->complexity($complexity); + my ($seq_start, $seq_stop, $no_redirect, + $redirect, $complexity, $strand + ) + = $self->_rearrange( + [ qw(SEQ_START SEQ_STOP NO_REDIRECT REDIRECT_REFSEQ COMPLEXITY STRAND) ], + @args + ); + $seq_start && $self->seq_start($seq_start); + $seq_stop && $self->seq_stop($seq_stop); + $no_redirect && $self->no_redirect($no_redirect); + $redirect && $self->redirect_refseq($redirect); + $strand && $self->strand($strand); + + # adjust statement to accept zero value + defined $complexity + && ( $complexity >= 0 && $complexity <= 4 ) + && $self->complexity($complexity); return $self; } @@ -142,7 +154,7 @@ Title : get_params Usage : my %params = $self->get_params($mode) - Function: Returns key,value pairs to be passed to NCBI database + Function: returns key,value pairs to be passed to NCBI database for either 'batch' or 'single' sequence retrieval method Returns : a key,value pair hash Args : 'single' or 'batch' mode for retrieval @@ -158,7 +170,7 @@ Title : default_format Usage : my $format = $self->default_format - Function: Returns default sequence format for this module + Function: returns default sequence format for this module Returns : string Args : none @@ -179,82 +191,94 @@ =cut sub get_request { - my ($self, @qualifiers) = @_; - my ($mode, $uids, $format, $query, $seq_start, $seq_stop, $strand, $complexity) = - $self->_rearrange([qw(MODE UIDS FORMAT QUERY SEQ_START SEQ_STOP STRAND COMPLEXITY)], - @qualifiers); - $mode = lc $mode; - ($format) = $self->request_format() unless ( defined $format); - if( !defined $mode || $mode eq '' ) { $mode = 'single'; } - my %params = $self->get_params($mode); - if( ! %params ) { - $self->throw("must specify a valid retrieval mode 'single' or 'batch' not '$mode'") - } - my $url = URI->new($HOSTBASE . $CGILOCATION{$mode}[1]); - unless( $mode eq 'webenv' || defined $uids || defined $query) { - $self->throw("Must specify a query or list of uids to fetch"); - } - if ($query && $query->can('cookie')) { - @params{'WebEnv','query_key'} = $query->cookie; - $params{'db'} = $query->db; - } - elsif ($query) { - $params{'id'} = join ',',$query->ids; - } - # for batch retrieval, non-query style - elsif ($mode eq 'webenv' && $self->can('cookie')) { - @params{'WebEnv','query_key'} = $self->cookie; - } - elsif ($uids) { - if( ref($uids) =~ /array/i ) { - $uids = join(",", @$uids); - } - $params{'id'} = $uids; - } - $seq_start && ($params{'seq_start'} = $seq_start); - $seq_stop && ($params{'seq_stop'} = $seq_stop); - $strand && ($params{'strand'} = $strand); - if (defined $complexity && ($seq_start || $seq_stop || $strand)) { - $self->warn("Complexity set to $complexity; seq_start and seq_stop may not work!") - if ($complexity != 1 && ($seq_start || $seq_stop)); - $self->warn("Complexity set to 0; expect strange results with strand set to 2") - if ($complexity == 0 && $strand == 2 && $format eq 'fasta'); - } - defined $complexity && ($params{'complexity'} = $complexity); - $params{'rettype'} = $format unless $mode eq 'batch'; - # for now, 'post' is batch retrieval - if ($CGILOCATION{$mode}[0] eq 'post') { - my $response = $self->ua->request(POST $url,[%params]); - $response->proxy_authorization_basic($self->authentication) - if ( $self->authentication); - $self->_parse_response($response->content); - my ($cookie, $querykey) = $self->cookie; - my %qualifiers = ('-mode' => 'webenv', - '-seq_start' => $seq_start, - '-seq_stop' => $seq_stop, - '-strand' => $strand, - '-complexity' => $complexity, - '-format' => $format); - return $self->get_request(%qualifiers); - } else { - $url->query_form(%params); - return GET $url; - } + my ( $self, @qualifiers ) = @_; + my ( $mode, $uids, $format, $query, $seq_start, $seq_stop, $strand, + $complexity ) + = $self->_rearrange( + [qw(MODE UIDS FORMAT QUERY SEQ_START SEQ_STOP STRAND COMPLEXITY)], + @qualifiers ); + $mode = lc $mode; + ($format) = $self->request_format() unless ( defined $format ); + if ( !defined $mode || $mode eq '' ) { $mode = 'single'; } + my %params = $self->get_params($mode); + if ( !%params ) { + $self->throw( + "must specify a valid retrieval mode 'single' or 'batch' not '$mode'" + ); + } + my $url = URI->new( $HOSTBASE . $CGILOCATION{$mode}[1] ); + unless ( $mode eq 'webenv' || defined $uids || defined $query ) { + $self->throw("Must specify a query or list of uids to fetch"); + } + if ( $query && $query->can('cookie') ) { + @params{ 'WebEnv', 'query_key' } = $query->cookie; + $params{'db'} = $query->db; + } + elsif ($query) { + $params{'id'} = join ',', $query->ids; + } + + # for batch retrieval, non-query style + elsif ( $mode eq 'webenv' && $self->can('cookie') ) { + @params{ 'WebEnv', 'query_key' } = $self->cookie; + } + elsif ($uids) { + if ( ref($uids) =~ /array/i ) { + $uids = join( ",", @$uids ); + } + $params{'id'} = $uids; + } + $seq_start && ( $params{'seq_start'} = $seq_start ); + $seq_stop && ( $params{'seq_stop'} = $seq_stop ); + $strand && ( $params{'strand'} = $strand ); + if ( defined $complexity && ( $seq_start || $seq_stop || $strand ) ) { + $self->warn( + "Complexity set to $complexity; seq_start and seq_stop may not work!" + ) if ( $complexity != 1 && ( $seq_start || $seq_stop ) ); + $self->warn( + "Complexity set to 0; expect strange results with strand set to 2" + ) if ( $complexity == 0 && $strand == 2 && $format eq 'fasta' ); + } + defined $complexity && ( $params{'complexity'} = $complexity ); + $params{'rettype'} = $format unless $mode eq 'batch'; + + # for now, 'post' is batch retrieval + if ( $CGILOCATION{$mode}[0] eq 'post' ) { + my $response = $self->ua->request( POST $url, [%params] ); + $response->proxy_authorization_basic( $self->authentication ) + if ( $self->authentication ); + $self->_parse_response( $response->content ); + my ( $cookie, $querykey ) = $self->cookie; + my %qualifiers = ( + '-mode' => 'webenv', + '-seq_start' => $seq_start, + '-seq_stop' => $seq_stop, + '-strand' => $strand, + '-complexity' => $complexity, + '-format' => $format + ); + return $self->get_request(%qualifiers); + } + else { + $url->query_form(%params); + return GET $url; + } } + =head2 get_Stream_by_batch Title : get_Stream_by_batch Usage : $seq = $db->get_Stream_by_batch($ref); Function: Retrieves Seq objects from Entrez 'en masse', rather than one at a time. For large numbers of sequences, this is far superior - than get_Stream_by_[id/acc](). + than get_Stream_by_id or get_Stream_by_acc. Example : Returns : a Bio::SeqIO stream object Args : $ref : either an array reference, a filename, or a filehandle from which to get the list of unique ids/accession numbers. -NOTE: deprecated API. Use get_Stream_by_id() instead. + NOTE: deprecated API. Use get_Stream_by_id() instead. =cut @@ -270,13 +294,12 @@ Usage : $seq = $db->get_Stream_by_query($query); Function: Retrieves Seq objects from Entrez 'en masse', rather than one at a time. For large numbers of sequences, this is far superior - than get_Stream_by_[id/acc](). + to get_Stream_by_id and get_Stream_by_acc. Example : Returns : a Bio::SeqIO stream object - Args : $query : An Entrez query string or a - Bio::DB::Query::GenBank object. It is suggested that you - create a Bio::DB::Query::GenBank object and get the entry - count before you fetch a potentially large stream. + Args : An Entrez query string or a Bio::DB::Query::GenBank object. + It is suggested that you create a Bio::DB::Query::GenBank object and get + the entry count before you fetch a potentially large stream. =cut @@ -292,17 +315,17 @@ Title : postprocess_data Usage : $self->postprocess_data ( 'type' => 'string', - 'location' => \$datastr); - Function: process downloaded data before loading into a Bio::SeqIO + 'location' => \$datastr ); + Function: Process downloaded data before loading into a Bio::SeqIO. This + works for Genbank and Genpept, other classes should override + it with their own method. Returns : void - Args : hash with two keys - 'type' can be 'string' or 'file' - - 'location' either file location or string - reference containing data + Args : hash with two keys: -=cut + 'type' can be 'string' or 'file' + 'location' either file location or string reference containing data -# the default method, works for genbank/genpept, other classes should -# override it with their own method. +=cut sub postprocess_data { # retain this in case postprocessing is needed at a future date @@ -324,20 +347,22 @@ =cut sub request_format { - my ($self, $value) = @_; - if( defined $value ) { - $value = lc $value; - if( defined $FORMATMAP{$value} ) { - $self->{'_format'} = [ $value, $FORMATMAP{$value}]; - } else { - # Try to fall back to a default. Alternatively, we could throw - # an exception - $self->{'_format'} = [ $value, $value ]; - } - } - return @{$self->{'_format'}}; + my ( $self, $value ) = @_; + if ( defined $value ) { + $value = lc $value; + if ( defined $FORMATMAP{$value} ) { + $self->{'_format'} = [ $value, $FORMATMAP{$value} ]; + } + else { + # Try to fall back to a default. Alternatively, we could throw + # an exception + $self->{'_format'} = [ $value, $value ]; + } + } + return @{ $self->{'_format'} }; } + =head2 redirect_refseq Title : redirect_refseq @@ -348,7 +373,7 @@ Throws : 'unparseable output exception' Note : This replaces 'no_redirect' as a more straightforward flag to redirect possible RefSeqs to use Bio::DB::RefSeq (EBI interface) - instead of retrievign the NCBI records + instead of retrieving the NCBI records =cut @@ -366,23 +391,21 @@ Returns : value from 0-4 indicating level of complexity Args : value from 0-4 (optional); if unset server assumes 1 Throws : if arg is not an integer or falls outside of noted range above - Note : From efetch docs: + Note : From efetch docs, the complexity regulates the display: - Complexity regulates the display: - - * 0 - get the whole blob - * 1 - get the bioseq for gi of interest (default in Entrez) - * 2 - get the minimal bioseq-set containing the gi of interest - * 3 - get the minimal nuc-prot containing the gi of interest - * 4 - get the minimal pub-set containing the gi of interest + 0 - get the whole blob + 1 - get the bioseq for gi of interest (default in Entrez) + 2 - get the minimal bioseq-set containing the gi of interest + 3 - get the minimal nuc-prot containing the gi of interest + 4 - get the minimal pub-set containing the gi of interest =cut sub complexity { - my ($self, $comp) = @_; - if (defined $comp) { - $self->throw("Complexity value must be integer between 0 and 4") if - $comp !~ /^\d+$/ || $comp < 0 || $comp > 4; + my ( $self, $comp ) = @_; + if ( defined $comp ) { + $self->throw("Complexity value must be integer between 0 and 4") + if $comp !~ /^\d+$/ || $comp < 0 || $comp > 4; $self->{'_complexity'} = $comp; } return $self->{'_complexity'}; @@ -461,7 +484,7 @@ Title : get_Stream_by_acc Usage : $seq = $db->get_Stream_by_acc([$acc1, $acc2]); - Function: Gets a series of Seq objects by accession numbers + Function: gets a series of Seq objects by accession numbers Returns : a Bio::SeqIO stream object Args : $ref : a reference to an array of accession numbers for the desired sequence entries @@ -470,122 +493,117 @@ =cut sub get_Stream_by_acc { - my ($self, $ids ) = @_; + my ( $self, $ids ) = @_; my $newdb = $self->_check_id($ids); - if (defined $newdb && ref($newdb) && $newdb->isa('Bio::DB::RefSeq')) { - return $newdb->get_seq_stream('-uids' => $ids, '-mode' => 'single'); - } else { - return $self->get_seq_stream('-uids' => $ids, '-mode' => 'single'); + if ( defined $newdb && ref($newdb) && $newdb->isa('Bio::DB::RefSeq') ) { + return $newdb->get_seq_stream( '-uids' => $ids, '-mode' => 'single' ); + } + else { + return $self->get_seq_stream( '-uids' => $ids, '-mode' => 'single' ); } } - =head2 _check_id Title : _check_id Usage : Function: - Returns : A Bio::DB::RefSeq reference or throws + Returns : a Bio::DB::RefSeq reference or throws Args : $id(s), $string =cut sub _check_id { - my ($self, $ids) = @_; + my ( $self, $ids ) = @_; - # NT contigs can not be retrieved - $self->throw("NT_ contigs are whole chromosome files which are not part of regular". - "database distributions. Go to ftp://ftp.ncbi.nih.gov/genomes/.") - if $ids =~ /NT_/; - - # Asking for a RefSeq from EMBL/GenBank - - if ($self->redirect_refseq) { - if ($ids =~ /N._/) { - $self->warn("[$ids] is not a normal sequence database but a RefSeq entry.". - " Redirecting the request.\n") - if $self->verbose >= 0; - return Bio::DB::RefSeq->new(); - } - } + # NT contigs can not be retrieved + $self->throw("NT_ contigs are whole chromosome files which are not part of regular" + . "database distributions. Go to ftp://ftp.ncbi.nih.gov/genomes/.") + if $ids =~ /NT_/; + + # Asking for a RefSeq from EMBL/GenBank + if ( $self->redirect_refseq ) { + if ( $ids =~ /N._/ ) { + $self->warn( + "[$ids] is not a normal sequence database but a RefSeq entry." + . " Redirecting the request.\n" ) + if $self->verbose >= 0; + return Bio::DB::RefSeq->new(); + } + } } + =head2 delay_policy Title : delay_policy Usage : $secs = $self->delay_policy - Function: return number of seconds to delay between calls to remote db + Function: NCBI requests a delay of 3 seconds between requests. This method + implements that policy. Returns : number of seconds to delay Args : none - NOTE: NCBI requests a delay of 3 seconds between requests. This method - implements that policy. - =cut sub delay_policy { - my $self = shift; - return 3; + my $self = shift; + return $REQUEST_DELAY; } =head2 cookie Title : cookie Usage : ($cookie,$querynum) = $db->cookie - Function: return the NCBI query cookie + Function: return the NCBI query cookie, this information is used by + Bio::DB::GenBank in conjunction with efetch, ripped from + Bio::DB::Query::GenBank Returns : list of (cookie,querynum) Args : none -NOTE: this information is used by Bio::DB::GenBank in -conjunction with efetch. - =cut -# ripped from Bio::DB::Query::GenBank sub cookie { - my $self = shift; - if (@_) { - $self->{'_cookie'} = shift; - $self->{'_querynum'} = shift; - } - else { - return @{$self}{qw(_cookie _querynum)}; - } + my $self = shift; + if (@_) { + $self->{'_cookie'} = shift; + $self->{'_querynum'} = shift; + } + else { + return @{$self}{qw(_cookie _querynum)}; + } } =head2 _parse_response Title : _parse_response Usage : $db->_parse_response($content) - Function: parse out response for cookie + Function: parse out response for cookie, this is a trimmed-down version + of _parse_response from Bio::DB::Query::GenBank Returns : empty Args : none Throws : 'unparseable output exception' =cut -# trimmed-down version of _parse_response from Bio::DB::Query::GenBank sub _parse_response { - my $self = shift; - my $content = shift; - if (my ($warning) = $content =~ m!(.+)!s) { - $self->warn("Warning(s) from GenBank: $warning\n"); - } - if (my ($error) = $content =~ /([^<]+)/) { - $self->throw("Error from Genbank: $error"); - } - my ($cookie) = $content =~ m!(\S+)!; - my ($querykey) = $content =~ m!(\d+)!; - $self->cookie(uri_unescape($cookie),$querykey); + my $self = shift; + my $content = shift; + if ( my ($warning) = $content =~ m!(.+)!s ) { + $self->warn("Warning(s) from GenBank: $warning\n"); + } + if ( my ($error) = $content =~ /([^<]+)/ ) { + $self->throw("Error from Genbank: $error"); + } + my ($cookie) = $content =~ m!(\S+)!; + my ($querykey) = $content =~ m!(\d+)!; + $self->cookie( uri_unescape($cookie), $querykey ); } -########### DEPRECATED!!!! ########### - =head2 no_redirect Title : no_redirect Usage : $db->no_redirect($content) - Function: Used to indicate that Bio::DB::GenBank instance retrieves + Function: DEPRECATED - Used to indicate that Bio::DB::GenBank instance retrieves possible RefSeqs from EBI instead; default behavior is now to retrieve directly from NCBI Returns : None diff -Nru bioperl-1.6.922/Bio/DB/Qual.pm bioperl-1.6.923/Bio/DB/Qual.pm --- bioperl-1.6.922/Bio/DB/Qual.pm 2013-09-14 15:46:06.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Qual.pm 2013-12-18 05:12:47.000000000 +0000 @@ -378,7 +378,10 @@ my $fh = $self->_fh($id) or return; seek($fh, $offset, 0); read($fh, $data, $headerlen); - chomp $data; + # On Windows chomp remove '\n' but leaves '\r' + # when reading '\r\n' in binary mode + $data =~ s/\n//g; + $data =~ s/\r//g; substr($data, 0, 1) = ''; return $data; } diff -Nru bioperl-1.6.922/Bio/DB/Query/GenBank.pm bioperl-1.6.923/Bio/DB/Query/GenBank.pm --- bioperl-1.6.922/Bio/DB/Query/GenBank.pm 2013-09-14 15:45:55.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Query/GenBank.pm 2013-12-18 05:12:47.000000000 +0000 @@ -98,11 +98,12 @@ package Bio::DB::Query::GenBank; use strict; use URI::Escape 'uri_unescape'; +use Bio::DB::NCBIHelper; -use constant EPOST => 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi'; -use constant ESEARCH => 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi'; -use constant DEFAULT_DB => 'protein'; -use constant MAXENTRY => 100; +use constant EPOST => $Bio::DB::NCBIHelper::HOSTBASE . '/entrez/eutils/epost.fcgi'; +use constant ESEARCH => $Bio::DB::NCBIHelper::HOSTBASE . '/entrez/eutils/esearch.fcgi'; +use constant DEFAULT_DB => 'protein'; +use constant MAXENTRY => 100; use vars qw(@ATTRIBUTES); diff -Nru bioperl-1.6.922/Bio/DB/SeqFeature/Store/DBI/SQLite.pm bioperl-1.6.923/Bio/DB/SeqFeature/Store/DBI/SQLite.pm --- bioperl-1.6.922/Bio/DB/SeqFeature/Store/DBI/SQLite.pm 2013-09-14 15:45:40.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/SeqFeature/Store/DBI/SQLite.pm 2013-12-18 05:13:00.000000000 +0000 @@ -146,7 +146,7 @@ use Bio::DB::SeqFeature::Store::DBI::Iterator; use DBI qw(:sql_types); use Memoize; -use Cwd 'abs_path'; +use Cwd qw(abs_path getcwd); use Bio::DB::GFF::Util::Rearrange 'rearrange'; use Bio::SeqFeature::Lite; use File::Spec; @@ -254,6 +254,10 @@ $dbh->do("PRAGMA synchronous = OFF;"); # makes writes much faster $dbh->do("PRAGMA temp_store = MEMORY;"); # less disk I/O; some speedup $dbh->do("PRAGMA cache_size = 20000;"); # less disk I/O; some speedup + # Keep track of database file location + my $cwd = getcwd; + my ($db_file) = ($dsn =~ m/(?:db(?:name)?|database)=(.+)$/); + $self->{dbh_file} = "$cwd/$db_file"; } $self->{dbh} = $dbh; $self->{is_temp} = $is_temporary; @@ -1196,6 +1200,16 @@ print $fh join("\t",@args),"\n"; } +sub DESTROY { + my $self = shift; + # Remove filehandles, so temporal files can be properly deleted + if (%DBI::installed_drh) { + DBI->disconnect_all; + %DBI::installed_drh = (); + } + undef $self->{dbh}; +} + 1; =head1 AUTHOR diff -Nru bioperl-1.6.922/Bio/DB/SeqFeature/Store/LoadHelper.pm bioperl-1.6.923/Bio/DB/SeqFeature/Store/LoadHelper.pm --- bioperl-1.6.922/Bio/DB/SeqFeature/Store/LoadHelper.pm 2013-09-14 15:46:01.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/SeqFeature/Store/LoadHelper.pm 2013-12-18 05:12:59.000000000 +0000 @@ -59,6 +59,13 @@ sub DESTROY { my $self = shift; + # Destroy all filehandle references + # before trying to delete files and folder + %DBHandles = (); + undef $self->{IndexIt}; + undef $self->{TopLevel}; + undef $self->{Local2Global}; + undef $self->{Parent2Child}; rmtree $self->{tmppath}; # File::Temp::cleanup() unless $self->{keep}; } diff -Nru bioperl-1.6.922/Bio/DB/SeqFeature/Store/Loader.pm bioperl-1.6.923/Bio/DB/SeqFeature/Store/Loader.pm --- bioperl-1.6.922/Bio/DB/SeqFeature/Store/Loader.pm 2013-09-14 15:46:03.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/SeqFeature/Store/Loader.pm 2013-12-18 05:12:51.000000000 +0000 @@ -720,6 +720,28 @@ sub DESTROY { my $self = shift; + # Close filehandles, so temporal files can be properly deleted + my $store = $self->store; + if ( $store->isa('Bio::DB::SeqFeature::Store::memory') + or $store->isa('Bio::DB::SeqFeature::Store::berkeleydb3') + ) { + $store->private_fasta_file->close; + + if ($store->{fasta_db}) { + while (my ($file, $fh) = each %{ $store->{fasta_db}->{fhcache} }) { + $fh->close; + } + $store->{fasta_db}->_close_index($store->{fasta_db}->{offsets}); + } + } + elsif ($store->isa('Bio::DB::SeqFeature::Store::DBI::SQLite')) { + if (%DBI::installed_drh) { + DBI->disconnect_all; + %DBI::installed_drh = (); + } + undef $store->{dbh}; + } + if (my $ld = $self->{temp_load}) { unlink $ld; } @@ -755,5 +777,3 @@ it under the same terms as Perl itself. =cut - - diff -Nru bioperl-1.6.922/Bio/DB/SeqFeature/Store/berkeleydb.pm bioperl-1.6.923/Bio/DB/SeqFeature/Store/berkeleydb.pm --- bioperl-1.6.922/Bio/DB/SeqFeature/Store/berkeleydb.pm 2013-09-14 15:45:44.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/SeqFeature/Store/berkeleydb.pm 2013-12-18 05:12:55.000000000 +0000 @@ -621,6 +621,7 @@ return if $ignore_errors; # autoindex set, so defer this $self->throw("Couldn't tie: ".$self->_features_path . " $!"); } + if ($create) { %h = (); $h{'.next_id'} = 1; @@ -701,6 +702,7 @@ $self->db(undef); $self->dna_db(undef); $self->notes_db(undef); + $self->parentage_db(undef); $self->index_db($_=>undef) foreach $self->_index_files; } @@ -1449,6 +1451,7 @@ sub DESTROY { my $self = shift; $self->_close_databases(); + $self->private_fasta_file->close; rmtree($self->directory,0,1) if $self->temporary && -e $self->directory; } @@ -1575,4 +1578,3 @@ it under the same terms as Perl itself. =cut - diff -Nru bioperl-1.6.922/Bio/DB/Taxonomy/entrez.pm bioperl-1.6.923/Bio/DB/Taxonomy/entrez.pm --- bioperl-1.6.922/Bio/DB/Taxonomy/entrez.pm 2013-09-14 15:45:41.000000000 +0000 +++ bioperl-1.6.923/Bio/DB/Taxonomy/entrez.pm 2013-12-18 05:13:00.000000000 +0000 @@ -105,8 +105,8 @@ $EntrezGet $EntrezSummary $EntrezFetch %SequenceParams $XMLTWIG $DATA_CACHE $RELATIONS); use strict; - use Bio::Taxon; +use Bio::DB::NCBIHelper; eval { require XML::Twig; @@ -118,7 +118,7 @@ use base qw(Bio::WebAgent Bio::DB::Taxonomy); -$EntrezLocation = 'http://www.ncbi.nih.gov/entrez/eutils/'; +$EntrezLocation = $Bio::DB::NCBIHelper::HOSTBASE . '/entrez/eutils/'; $EntrezGet = 'esearch.fcgi'; $EntrezFetch = 'efetch.fcgi'; $EntrezSummary = 'esummary.fcgi'; diff -Nru bioperl-1.6.922/Bio/Factory/FTLocationFactory.pm bioperl-1.6.923/Bio/Factory/FTLocationFactory.pm --- bioperl-1.6.922/Bio/Factory/FTLocationFactory.pm 2013-09-14 15:45:50.000000000 +0000 +++ bioperl-1.6.923/Bio/Factory/FTLocationFactory.pm 2013-12-18 05:12:46.000000000 +0000 @@ -158,12 +158,12 @@ } if ($locstr =~ m{(.*?)\(($LOCREG)\)(.*)}o) { # any matching parentheses? - my ($beg, $mid, $end) = ($1, $2, $3); my (@sublocs) = (split(q(,),$beg), $mid, split(q(,),$end)); my @loc_objs; my $loc_obj; + my @gl_subloc_strands; SUBLOCS: while (@sublocs) { @@ -180,17 +180,65 @@ my @splitlocs = split(q(,), $sub); $loc_obj = Bio::Location::Split->new(-verbose => 1, -splittype => $oparg); - while (my $splitloc = shift @splitlocs) { + # Store strand values for later consistency check + my @subloc_strands; + my @s_objs; + foreach my $splitloc (@splitlocs) { next unless $splitloc; my $sobj; if ($splitloc =~ m{\(($LOCREG)\)}) { my $comploc = $1; $sobj = $self->_parse_location($comploc); $sobj->strand(-1); + push @subloc_strands, -1; + push @gl_subloc_strands, -1; } else { $sobj = $self->_parse_location($splitloc); + push @subloc_strands, 1; + push @gl_subloc_strands, 1; + } + push @s_objs, $sobj; + } + + # Sublocations strand values consistency check to set + # Guide Strand and sublocations adding order + if (scalar @s_objs > 0) { + my $identical = 0; + my $gl_identical = 0; + + my $first_value = $subloc_strands[0]; + foreach my $strand (@subloc_strands) { + $identical++ if ($strand == $first_value); + } + + my $first_gl_value = $gl_subloc_strands[0]; + foreach my $gl_strand (@gl_subloc_strands) { + $gl_identical++ if ($gl_strand == $first_gl_value); + } + + if ($identical == scalar @subloc_strands) { + # Set guide_strand if all sublocations have the same strand + $loc_obj->guide_strand($first_value); + + # Reverse sublocation order for negative strand locations in cases like this: + # join(1..11,join(complement(40..50),complement(60..70))) + # But not this: + # join(complement(10..20),complement(30..40)) + if ( $gl_identical != scalar @gl_subloc_strands + and $first_value == -1 + ) { + @s_objs = reverse @s_objs; + } + } + else { + # Mixed strand values + $loc_obj->guide_strand(undef); + } + + # Add sublocations + foreach my $s_obj (@s_objs) { + $loc_obj->add_sub_Location($s_obj); } - $loc_obj->add_sub_Location($sobj); } } else { $loc_obj = $self->from_string($sub, $oparg); @@ -203,7 +251,14 @@ else { $loc_obj = $self->from_string($subloc,1); } - $loc_obj->strand(-1) if ($op && $op eq 'complement'); + if ($op && $op eq 'complement') { + $loc_obj->strand(-1); + push @gl_subloc_strands, -1; + } + else { + push @gl_subloc_strands, 1; + } + push @loc_objs, $loc_obj; } my $ct = @loc_objs; diff -Nru bioperl-1.6.922/Bio/Index/Abstract.pm bioperl-1.6.923/Bio/Index/Abstract.pm --- bioperl-1.6.922/Bio/Index/Abstract.pm 2013-09-14 15:45:43.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Abstract.pm 2013-12-18 05:12:43.000000000 +0000 @@ -773,8 +773,13 @@ =cut sub pack_record { - my( $self, @args ) = @_; - return join "\034", @args; + my( $self, @args ) = @_; + # Silence undefined warnings + @args = map { + $_ = (defined $_) ? $_ : ''; + $_ ; + } @args; + return join "\034", @args; } =head2 unpack_record diff -Nru bioperl-1.6.922/Bio/Index/Blast.pm bioperl-1.6.923/Bio/Index/Blast.pm --- bioperl-1.6.922/Bio/Index/Blast.pm 2013-09-14 15:45:58.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Blast.pm 2013-12-18 05:13:04.000000000 +0000 @@ -218,20 +218,30 @@ my $lastline = 0; my $prefix = ''; + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($BLAST); + my $curr_line = <$BLAST>; + my $pos_diff = tell($BLAST) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $BLAST, $init_pos, 0; # Rewind position to proceed to read the file + # fencepost problem: we basically just find the top and the query - while( <$BLAST> ) { + while( my $line = <$BLAST> ) { # in recent RPS-BLAST output the only delimiter between result # sections is '^Query=' - in other BLAST outputs you # can use '^(RPS-|T?)BLAST(P?|N?|X?)' - if ( /^(RPS-|T?)BLAST(P?|N?|X?)/ ) { + if ( $line =~ /^(RPS-|T?)BLAST(P?|N?|X?)/ ) { $prefix = $1; - $indexpoint = tell($BLAST) - length $_; + $indexpoint = tell($BLAST) - length($line) - $correction; } - if ( /^Query=\s*([^\n]+)$/ ) { + if ( $line =~ /^Query=\s*([^\n]+)$/ ) { - $indexpoint = tell($BLAST) - length $_ if ( $prefix eq 'RPS-' ); + $indexpoint = tell($BLAST) - length($line) - $correction if ( $prefix eq 'RPS-' ); foreach my $id ($self->id_parser()->($1)) { $self->debug("id is $id, begin is $indexpoint\n"); diff -Nru bioperl-1.6.922/Bio/Index/BlastTable.pm bioperl-1.6.923/Bio/Index/BlastTable.pm --- bioperl-1.6.922/Bio/Index/BlastTable.pm 2013-09-14 15:45:49.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/BlastTable.pm 2013-12-18 05:12:50.000000000 +0000 @@ -194,18 +194,29 @@ my $lastline = 0; my $last_query = ''; my $is_m9; + + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($BLAST); + my $curr_line = <$BLAST>; + my $pos_diff = tell($BLAST) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $BLAST, $init_pos, 0; # Rewind position to proceed to read the file + while( <$BLAST> ) { if (m{^#}) { $is_m9 ||= 1; if(m{^#\s+T?BLAST[PNX]}i ) { - $indexpoint = tell($BLAST) - length($_); + $indexpoint = tell($BLAST) - length($_) - $correction; } next } if (/^(?:([^\t]+)\t)(?:[^\t]+\t){7,}/) { next if $last_query eq $1; - $indexpoint = tell($BLAST) - length($_) unless $is_m9; + $indexpoint = tell($BLAST) - length($_) - $correction unless $is_m9; foreach my $id ($self->id_parser()->($1)) { $self->debug("id is $id, begin is $indexpoint\n"); $self->add_record($id, $i, $indexpoint); diff -Nru bioperl-1.6.922/Bio/Index/EMBL.pm bioperl-1.6.923/Bio/Index/EMBL.pm --- bioperl-1.6.922/Bio/Index/EMBL.pm 2013-09-14 15:45:58.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/EMBL.pm 2013-12-18 05:12:42.000000000 +0000 @@ -146,6 +146,16 @@ open my $EMBL, '<', $file or $self->throw("Can't open file for read : $file"); + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($EMBL); + my $curr_line = <$EMBL>; + my $pos_diff = tell($EMBL) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $EMBL, $init_pos, 0; # Rewind position to proceed to read the file + # Main indexing loop $id = undef; @accs = (); @@ -170,7 +180,7 @@ $id = $1; # not sure if I like this. Assummes tell is in bytes. # we could tell before each line and save it. - $begin = tell($EMBL) - length( $_ ); + $begin = tell($EMBL) - length( $_ ) - $correction; } elsif (/^AC\s+(.*)?/) { push @accs , split (/[; ]+/, $1); @@ -204,13 +214,3 @@ 1; - - - - - - - - - - diff -Nru bioperl-1.6.922/Bio/Index/Fasta.pm bioperl-1.6.923/Bio/Index/Fasta.pm --- bioperl-1.6.922/Bio/Index/Fasta.pm 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Fasta.pm 2013-12-18 05:12:52.000000000 +0000 @@ -180,7 +180,15 @@ open my $FASTA, '<', $file or $self->throw("Can't open file for read : $file"); - my $offset = ( $^O =~ /mswin/i ) ? 1 : 0; + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($FASTA); + my $curr_line = <$FASTA>; + my $pos_diff = tell($FASTA) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $FASTA, $init_pos, 0; # Rewind position to proceed to read the file # Main indexing loop while (<$FASTA>) { @@ -189,7 +197,7 @@ # the following was fixed to allow validation - cjfields # $begin is the position of the first character after the '>' - $begin = tell($FASTA) - length( $_ ) - $offset; + $begin = tell($FASTA) - length( $_ ) - $correction; foreach my $id (&$id_parser($_)) { $self->add_record($id, $i, $begin); diff -Nru bioperl-1.6.922/Bio/Index/Fastq.pm bioperl-1.6.923/Bio/Index/Fastq.pm --- bioperl-1.6.922/Bio/Index/Fastq.pm 2013-09-14 15:45:59.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Fastq.pm 2013-12-18 05:12:50.000000000 +0000 @@ -157,10 +157,21 @@ my $id_parser = $self->id_parser; my $c = 0; open my $FASTQ, '<', $file or $self->throw("Can't open file for read : $file"); + + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($FASTQ); + my $curr_line = <$FASTQ>; + my $pos_diff = tell($FASTQ) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $FASTQ, $init_pos, 0; # Rewind position to proceed to read the file + # Main indexing loop while (<$FASTQ>) { if (/^@/) { - my $begin = tell($FASTQ) - length( $_ ); + my $begin = tell($FASTQ) - length( $_ ) - $correction; foreach my $id (&$id_parser($_)) { $self->add_record($id, $i, $begin); $c++; diff -Nru bioperl-1.6.922/Bio/Index/GenBank.pm bioperl-1.6.923/Bio/Index/GenBank.pm --- bioperl-1.6.922/Bio/Index/GenBank.pm 2013-09-14 15:45:55.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/GenBank.pm 2013-12-18 05:12:58.000000000 +0000 @@ -153,9 +153,20 @@ $self->throw("Can't open file for read : $file"); my %done_ids; + + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($GENBANK); + my $curr_line = <$GENBANK>; + my $pos_diff = tell($GENBANK) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $GENBANK, $init_pos, 0; # Rewind position to proceed to read the file + while (<$GENBANK>) { if (/^LOCUS/) { - $begin = tell($GENBANK) - length($_); + $begin = tell($GENBANK) - length($_) - $correction; } for my $id (&$id_parser($_)) { next if exists $done_ids{$id}; diff -Nru bioperl-1.6.922/Bio/Index/Qual.pm bioperl-1.6.923/Bio/Index/Qual.pm --- bioperl-1.6.922/Bio/Index/Qual.pm 2013-09-14 15:45:41.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Qual.pm 2013-12-18 05:12:55.000000000 +0000 @@ -180,12 +180,20 @@ open my $QUAL, '<', $file or $self->throw("Can't open file for read : $file"); + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($QUAL); + my $curr_line = <$QUAL>; + my $pos_diff = tell($QUAL) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $QUAL, $init_pos, 0; # Rewind position to proceed to read the file + # Main indexing loop while (<$QUAL>) { if (/^>/) { - # $begin is the position of the first character after the '>' - my $offset = ( $^O =~ /mswin/i ) ? 0 : 1; - my $begin = tell($QUAL) - length( $_ ) + $offset; + my $begin = tell($QUAL) - length( $_ ) + 1 - $correction; foreach my $id (&$id_parser($_)) { $self->add_record($id, $i, $begin); diff -Nru bioperl-1.6.922/Bio/Index/Stockholm.pm bioperl-1.6.923/Bio/Index/Stockholm.pm --- bioperl-1.6.922/Bio/Index/Stockholm.pm 2013-09-14 15:46:01.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Stockholm.pm 2013-12-18 05:12:48.000000000 +0000 @@ -215,10 +215,19 @@ my %done_ids; + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($STOCKHOLM); + my $curr_line = <$STOCKHOLM>; + my $pos_diff = tell($STOCKHOLM) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $STOCKHOLM, $init_pos, 0; # Rewind position to proceed to read the file + while (<$STOCKHOLM>) { - if ( /^#\sSTOCKHOLM/ ) { - $begin = tell($STOCKHOLM) - length($_); + $begin = tell($STOCKHOLM) - length($_) - $correction; } for my $id ( &$id_parser($_) ) { diff -Nru bioperl-1.6.922/Bio/Index/SwissPfam.pm bioperl-1.6.923/Bio/Index/SwissPfam.pm --- bioperl-1.6.922/Bio/Index/SwissPfam.pm 2013-09-14 15:46:04.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/SwissPfam.pm 2013-12-18 05:12:59.000000000 +0000 @@ -138,12 +138,22 @@ open my $SP, '<', $file or $self->throw("Can't open file for read : $file"); + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($SP); + my $curr_line = <$SP>; + my $pos_diff = tell($SP) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $SP, $init_pos, 0; # Rewind position to proceed to read the file + # Main indexing loop while (<$SP>) { if (/^>(\S+)\s+\|=*\|\s+(\S+)/) { $nid = $1; $nacc = $2; - my $new_begin = tell($SP) - length( $_ ); + my $new_begin = tell($SP) - length( $_ ) - $correction; $end = $new_begin - 1; if( $id ) { diff -Nru bioperl-1.6.922/Bio/Index/Swissprot.pm bioperl-1.6.923/Bio/Index/Swissprot.pm --- bioperl-1.6.922/Bio/Index/Swissprot.pm 2013-09-14 15:46:01.000000000 +0000 +++ bioperl-1.6.923/Bio/Index/Swissprot.pm 2013-12-18 05:12:43.000000000 +0000 @@ -152,9 +152,20 @@ open my $SWISSPROT,'<',$file or $self->throw("Can't read file: $file"); my %done_ids; + + # In Windows, text files have '\r\n' as line separator, but when reading in + # text mode Perl will only show the '\n'. This means that for a line "ABC\r\n", + # "length $_" will report 4 although the line is 5 bytes in length. + # We assume that all lines have the same line separator and only read current line. + my $init_pos = tell($SWISSPROT); + my $curr_line = <$SWISSPROT>; + my $pos_diff = tell($SWISSPROT) - $init_pos; + my $correction = $pos_diff - length $curr_line; + seek $SWISSPROT, $init_pos, 0; # Rewind position to proceed to read the file + while (<$SWISSPROT>) { if (/^ID\s+\S+/) { - $begin = tell($SWISSPROT) - length( $_ ); + $begin = tell($SWISSPROT) - length( $_ ) - $correction; } for my $id (&$id_parser($_)) { next if exists $done_ids{$id}; diff -Nru bioperl-1.6.922/Bio/Location/Atomic.pm bioperl-1.6.923/Bio/Location/Atomic.pm --- bioperl-1.6.922/Bio/Location/Atomic.pm 2013-09-14 15:45:39.000000000 +0000 +++ bioperl-1.6.923/Bio/Location/Atomic.pm 2013-12-18 05:12:51.000000000 +0000 @@ -205,6 +205,10 @@ sub flip_strand { my $self= shift; + # Initialize strand if necessary to flip it + if (not defined $self->strand) { + $self->strand(1) + } $self->strand($self->strand * -1); } @@ -558,4 +562,3 @@ } 1; - diff -Nru bioperl-1.6.922/Bio/Location/Split.pm bioperl-1.6.923/Bio/Location/Split.pm --- bioperl-1.6.922/Bio/Location/Split.pm 2013-09-14 15:45:36.000000000 +0000 +++ bioperl-1.6.923/Bio/Location/Split.pm 2013-12-18 05:12:57.000000000 +0000 @@ -309,9 +309,29 @@ =cut sub guide_strand { - my $self = shift; - return $self->{'strand'} = shift if @_; - return $self->{'strand'}; + my $self = shift; + return $self->{'strand'} = shift if @_; + + # Sublocations strand values consistency check to set Guide Strand + my @subloc_strands; + foreach my $loc ($self->sub_Location(0)) { + push @subloc_strands, $loc->strand || 1; + } + if ($self->isa('Bio::Location::SplitLocationI')) { + my $identical = 0; + my $first_value = $subloc_strands[0]; + foreach my $strand (@subloc_strands) { + $identical++ if ($strand == $first_value); + } + + if ($identical == scalar @subloc_strands) { + $self->{'strand'} = $first_value; + } + else { + $self->{'strand'} = undef; + } + } + return $self->{'strand'}; } =head1 LocationI methods @@ -370,8 +390,9 @@ Title : flip_strand Usage : $location->flip_strand(); - Function: Flip-flop a strand to the opposite. Also switch Split strand - from undef to -1 or -1 to undef + Function: Flip-flop a strand to the opposite. Also sets Split strand + to be consistent with the sublocation strands + (1, -1 or undef for mixed strand values) Returns : None Args : None @@ -379,12 +400,34 @@ sub flip_strand { my $self = shift; + my @sublocs; + my @subloc_strands; + for my $loc ( $self->sub_Location(0) ) { - $loc->flip_strand; - if ($loc->isa('Bio::Location::SplitLocationI')) { - my $gs = ($self->guide_strand == -1) ? undef : -1; - $loc->guide_strand($gs); - } + # Atomic "flip_strand" now initialize strand if necessary + my $new_strand = $loc->flip_strand; + + # Store strand values for later consistency check + push @sublocs, $loc; + push @subloc_strands, $new_strand; + } + + # Sublocations strand values consistency check to set Guide Strand + if ($self->isa('Bio::Location::SplitLocationI')) { + my $identical = 0; + my $first_value = $subloc_strands[0]; + foreach my $strand (@subloc_strands) { + $identical++ if ($strand == $first_value); + } + + if ($identical == scalar @subloc_strands) { + $self->guide_strand($first_value); + } + else { + # Mixed strand values, must reverse the sublocations order + $self->guide_strand(undef); + @{ $self->{_sublocations} } = reverse @sublocs; + } } } @@ -626,19 +669,13 @@ my @strs; my $strand = $self->strand() || 0; my $stype = lc($self->splittype()); - my $guide = $self->guide_strand(); if( $strand < 0 ) { $self->flip_strand; # this will recursively set the strand # to +1 for all the sub locations } - # If the split type is join, the order is important; - # otherwise must be 5'->3' regardless - - my @locs = ($stype eq 'join' && (!$guide && $strand == -1)) ? - reverse $self->sub_Location() : $self->sub_Location() ; - - foreach my $loc ( @locs ) { + + foreach my $loc ( $self->sub_Location(0) ) { $loc->verbose($self->verbose); my $str = $loc->to_FTstring(); # we only append the remote seq_id if it hasn't been done already diff -Nru bioperl-1.6.922/Bio/PhyloNetwork/RandomFactory.pm bioperl-1.6.923/Bio/PhyloNetwork/RandomFactory.pm --- bioperl-1.6.922/Bio/PhyloNetwork/RandomFactory.pm 2013-09-14 15:45:42.000000000 +0000 +++ bioperl-1.6.923/Bio/PhyloNetwork/RandomFactory.pm 2013-12-18 05:12:49.000000000 +0000 @@ -64,7 +64,6 @@ use base qw(Bio::Root::Root); use Bio::PhyloNetwork; -use Math::Random; use Bio::Tree::RandomFactory; =head2 new diff -Nru bioperl-1.6.922/Bio/PrimarySeq.pm bioperl-1.6.923/Bio/PrimarySeq.pm --- bioperl-1.6.922/Bio/PrimarySeq.pm 2013-09-14 15:46:03.000000000 +0000 +++ bioperl-1.6.923/Bio/PrimarySeq.pm 2013-12-18 05:12:46.000000000 +0000 @@ -232,13 +232,15 @@ } } - $desc && $self->desc($desc); - $description && $self->description($description); - $is_circular && $self->is_circular($is_circular); - $ns && $self->namespace($ns); - $auth && $self->authority($auth); - defined($v) && $self->version($v); - defined($oid) && $self->object_id($oid); + $desc && $self->desc($desc); + $description && $self->description($description); + $ns && $self->namespace($ns); + $auth && $self->authority($auth); + # Any variable that can have a value "0" must be tested with defined + # or it will fail to be added to the new object + defined($v) && $self->version($v); + defined($oid) && $self->object_id($oid); + defined($is_circular) && $self->is_circular($is_circular); return $self; } @@ -383,13 +385,31 @@ if( ref($start) && $start->isa('Bio::LocationI') ) { my $loc = $start; my $seq = ''; - foreach my $subloc ($loc->each_Location()) { + + # For Split objects if Guide Strand is negative, + # pass the sublocations in reverse + my $order = 0; + if ($loc->isa('Bio::Location::SplitLocationI')) { + # guide_strand can return undef, so don't compare directly + # to avoid 'uninitialized value' warning + my $guide_strand = defined ($loc->guide_strand) ? ($loc->guide_strand) : 0; + $order = ($guide_strand == -1) ? -1 : 0; + } + # Reversing order using ->each_Location(-1) does not work well for + # cut by origin-splits (like "complement(join(1900..END,START..50))"), + # so use "reverse" instead + my @sublocs = ($order == -1) ? reverse $loc->each_Location(): $loc->each_Location; + foreach my $subloc (@sublocs) { my $piece = $self->subseq(-start => $subloc->start(), -end => $subloc->end(), -replace_with => $replace, -nogap => $nogap); $piece =~ s/[$GAP_SYMBOLS]//g if $nogap; - if ($subloc->strand() < 0) { + + # strand can return undef, so don't compare directly + # to avoid 'uninitialized value' warning + my $strand = defined ($subloc->strand) ? ($subloc->strand) : 0; + if ($strand < 0) { $piece = $self->_revcom_from_string($piece, $self->alphabet); } $seq .= $piece; diff -Nru bioperl-1.6.922/Bio/PrimarySeqI.pm bioperl-1.6.923/Bio/PrimarySeqI.pm --- bioperl-1.6.922/Bio/PrimarySeqI.pm 2013-09-14 15:45:44.000000000 +0000 +++ bioperl-1.6.923/Bio/PrimarySeqI.pm 2013-12-18 05:13:02.000000000 +0000 @@ -349,7 +349,7 @@ The id is the same id as the original sequence, and the accession number is also indentical. If someone wants to track that this sequence has be reversed, it needs to - define its own extensionsj. + define its own extensions. To do an inplace edit of an object you can go: @@ -367,17 +367,29 @@ sub revcom { my ($self) = @_; - my ($seqclass, $opts) = $self->_setup_class; - my $out = $seqclass->new( - -seq => $self->_revcom_from_string($self->seq, $self->alphabet), - -is_circular => $self->is_circular, - -display_id => $self->display_id, - -accession_number => $self->accession_number, - -alphabet => $self->alphabet, - -desc => $self->desc, - -verbose => $self->verbose, - %$opts, - ); + + # Create a new fresh object if $self is 'Bio::Seq::LargePrimarySeq' + # or 'Bio::Seq::LargeSeq', if not take advantage of + # Bio::Root::clone to get an object copy + my $out; + if ( $self->isa('Bio::Seq::LargePrimarySeq') + or $self->isa('Bio::Seq::LargeSeq') + ) { + my ($seqclass, $opts) = $self->_setup_class; + $out = $seqclass->new( + -seq => $self->_revcom_from_string($self->seq, $self->alphabet), + -is_circular => $self->is_circular, + -display_id => $self->display_id, + -accession_number => $self->accession_number, + -alphabet => $self->alphabet, + -desc => $self->desc, + -verbose => $self->verbose, + %$opts, + ); + } else { + $out = $self->clone; + $out->seq( $out->_revcom_from_string($out->seq, $out->alphabet) ); + } return $out; } @@ -446,16 +458,28 @@ $str = $self->subseq($start,$end); } - my ($seqclass, $opts) = $self->_setup_class; - my $out = $seqclass->new( - -seq => $str, - -display_id => $self->display_id, - -accession_number => $self->accession_number, - -alphabet => $self->alphabet, - -desc => $self->desc, - -verbose => $self->verbose, - %$opts, - ); + # Create a new fresh object if $self is 'Bio::Seq::LargePrimarySeq' + # or 'Bio::Seq::LargeSeq', if not take advantage of + # Bio::Root::clone to get an object copy + my $out; + if ( $self->isa('Bio::Seq::LargePrimarySeq') + or $self->isa('Bio::Seq::LargeSeq') + ) { + my ($seqclass, $opts) = $self->_setup_class; + $out = $seqclass->new( + -seq => $str, + -is_circular => $self->is_circular, + -display_id => $self->display_id, + -accession_number => $self->accession_number, + -alphabet => $self->alphabet, + -desc => $self->desc, + -verbose => $self->verbose, + %$opts, + ); + } else { + $out = $self->clone; + $out->seq($str); + } return $out; } @@ -660,17 +684,29 @@ } } - my ($seqclass, $opts) = $self->_setup_class; - my $out = $seqclass->new( - -seq => $output, - -display_id => $self->display_id, - -accession_number => $self->accession_number, - # is there anything wrong with retaining the desc? - -desc => $self->desc, - -alphabet => 'protein', - -verbose => $self->verbose, - %$opts, - ); + # Create a new fresh object if $self is 'Bio::Seq::LargePrimarySeq' + # or 'Bio::Seq::LargeSeq', if not take advantage of + # Bio::Root::clone to get an object copy + my $out; + if ( $self->isa('Bio::Seq::LargePrimarySeq') + or $self->isa('Bio::Seq::LargeSeq') + ) { + my ($seqclass, $opts) = $self->_setup_class; + $out = $seqclass->new( + -seq => $output, + -is_circular => $self->is_circular, + -display_id => $self->display_id, + -accession_number => $self->accession_number, + -alphabet => 'protein', + -desc => $self->desc, + -verbose => $self->verbose, + %$opts, + ); + } else { + $out = $self->clone; + $out->seq($output); + $out->alphabet('protein'); + } return $out; } @@ -692,16 +728,32 @@ my $s = $self->seq; $s =~ tr/tT/uU/; my $desc = $self->desc || ''; - my ($seqclass, $opts) = $self->_setup_class; - return $seqclass->new( - -seq => $s, - -alphabet => 'rna', - -display_id => $self->display_id, - -accession_number => $self->accession_number, - -desc => "${desc}[TRANSCRIBED]", - -verbose => $self->verbose, - %$opts, - ); + + # Create a new fresh object if $self is 'Bio::Seq::LargePrimarySeq' + # or 'Bio::Seq::LargeSeq', if not take advantage of + # Bio::Root::clone to get an object copy + my $out; + if ( $self->isa('Bio::Seq::LargePrimarySeq') + or $self->isa('Bio::Seq::LargeSeq') + ) { + my ($seqclass, $opts) = $self->_setup_class; + $out = $seqclass->new( + -seq => $s, + -is_circular => $self->is_circular, + -display_id => $self->display_id, + -accession_number => $self->accession_number, + -alphabet => 'rna', + -desc => "${desc}[TRANSCRIBED]", + -verbose => $self->verbose, + %$opts, + ); + } else { + $out = $self->clone; + $out->seq($s); + $out->alphabet('rna'); + $out->desc($desc . "[TRANSCRIBED]"); + } + return $out; } @@ -721,16 +773,33 @@ return unless $self->alphabet eq 'rna'; my $s = $self->seq; $s =~ tr/uU/tT/; - my ($seqclass, $opts) = $self->_setup_class; - return $seqclass->new( - -seq => $s, - -alphabet => 'dna', - -display_id => $self->display_id, - -accession_number => $self->accession_number, - -desc => $self->desc . "[REVERSE TRANSCRIBED]", - -verbose => $self->verbose, - %$opts, - ); + my $desc = $self->desc || ''; + + # Create a new fresh object if $self is 'Bio::Seq::LargePrimarySeq' + # or 'Bio::Seq::LargeSeq', if not take advantage of + # Bio::Root::clone to get an object copy + my $out; + if ( $self->isa('Bio::Seq::LargePrimarySeq') + or $self->isa('Bio::Seq::LargeSeq') + ) { + my ($seqclass, $opts) = $self->_setup_class; + $out = $seqclass->new( + -seq => $s, + -is_circular => $self->is_circular, + -display_id => $self->display_id, + -accession_number => $self->accession_number, + -alphabet => 'dna', + -desc => $self->desc . "[REVERSE TRANSCRIBED]", + -verbose => $self->verbose, + %$opts, + ); + } else { + $out = $self->clone; + $out->seq($s); + $out->alphabet('dna'); + $out->desc($desc . "[REVERSE TRANSCRIBED]"); + } + return $out; } diff -Nru bioperl-1.6.922/Bio/Root/Build.pm bioperl-1.6.923/Bio/Root/Build.pm --- bioperl-1.6.922/Bio/Root/Build.pm 2013-09-14 15:46:07.000000000 +0000 +++ bioperl-1.6.923/Bio/Root/Build.pm 2013-12-18 05:13:02.000000000 +0000 @@ -92,7 +92,7 @@ use strict; use warnings; -our $VERSION = '1.006922'; # pre-1.7 +our $VERSION = '1.006923'; # pre-1.7 our @extra_types = qw(options excludes_os feature_requires test); # test must always be last in the list! our $checking_types = "requires|conflicts|".join("|", @extra_types); diff -Nru bioperl-1.6.922/Bio/Root/Version.pm bioperl-1.6.923/Bio/Root/Version.pm --- bioperl-1.6.922/Bio/Root/Version.pm 2013-09-14 15:45:36.000000000 +0000 +++ bioperl-1.6.923/Bio/Root/Version.pm 2013-12-18 05:13:01.000000000 +0000 @@ -97,7 +97,7 @@ package Bio::Root::Version; use strict; -our $VERSION = '1.006922'; # pre-1.7 +our $VERSION = '1.006923'; # pre-1.7 $VERSION = eval $VERSION; sub import { diff -Nru bioperl-1.6.922/Bio/SearchIO/SearchResultEventBuilder.pm bioperl-1.6.923/Bio/SearchIO/SearchResultEventBuilder.pm --- bioperl-1.6.922/Bio/SearchIO/SearchResultEventBuilder.pm 2013-09-14 15:45:43.000000000 +0000 +++ bioperl-1.6.923/Bio/SearchIO/SearchResultEventBuilder.pm 2013-12-18 05:12:57.000000000 +0000 @@ -350,7 +350,15 @@ =cut sub end_hit{ - my ($self,$type,$data) = @_; + my ($self,$type,$data) = @_; + + # Skip process unless there is HSP data or Hit Significance (e.g. a bl2seq with no similarity + # gives a hit with the subject, but shows a "no hits found" message instead + # of the alignment data and don't have a significance value). + # This way, we avoid false positives + my @hsp_data = grep { /^HSP/ } keys %{$data}; + return unless (scalar @hsp_data > 0 or exists $data->{'HIT-significance'}); + my %args = map { my $v = $data->{$_}; s/HIT//; ($_ => $v); } grep { /^HIT/ } keys %{$data}; # I hate special cases, but this is here because NCBI BLAST XML diff -Nru bioperl-1.6.922/Bio/SearchIO/blast.pm bioperl-1.6.923/Bio/SearchIO/blast.pm --- bioperl-1.6.922/Bio/SearchIO/blast.pm 2013-09-14 15:46:05.000000000 +0000 +++ bioperl-1.6.923/Bio/SearchIO/blast.pm 2013-12-18 05:12:47.000000000 +0000 @@ -258,7 +258,7 @@ { 'RESULT-statistics' => 'num_successful_extensions' }, 'Statistics_length_adjustment' => { 'RESULT-statistics' => 'length_adjustment' }, 'Statistics_number_of_hsps_better_than_expect_value_cutoff_without_gapping' => - { 'RESULT-statistics' => 'number_of_hsps_better_than_expect_value_cutoff_without_gapping' }, + { 'RESULT-statistics' => 'number_of_hsps_better_than_expect_value_cutoff_without_gapping' }, 'Statistics_number_of_hsps_gapped' => { 'RESULT-statistics' => 'number_of_hsps_gapped' }, 'Statistics_number_of_hsps_successfully_gapped' => { 'RESULT-statistics' => 'number_of_hsps_successfully_gapped' }, @@ -652,15 +652,15 @@ } ) if $self->{'_blsdb_letters'}; } - # added check for WU-BLAST -echofilter option (bug 2388) - elsif (/^>Unfiltered[+-]1$/) { - # skip all of the lines of unfiltered sequence - while($_ !~ /^Database:/) { - $self->debug("Bypassing features line: $_"); - $_ = $self->_readline; - } - $self->_pushback($_); - } + # added check for WU-BLAST -echofilter option (bug 2388) + elsif (/^>Unfiltered[+-]1$/) { + # skip all of the lines of unfiltered sequence + while($_ !~ /^Database:/) { + $self->debug("Bypassing features line: $_"); + $_ = $self->_readline; + } + $self->_pushback($_); + } elsif (/Sequences producing significant alignments:/) { $self->debug("blast.pm: Processing NCBI-BLAST descriptions\n"); $flavor = 'ncbi'; @@ -891,10 +891,10 @@ elsif ( ( $self->in_element('hit') || $self->in_element('hsp') ) && # paracel genewise BTK - m/Score\s*=\s*(\S+)\s*bits\s* # Bit score - (?:\((\d+)\))?, # Raw score - \s+Log\-Length\sScore\s*=\s*(\d+) # Log-Length score - /ox + m/Score\s*=\s*(\S+)\s*bits\s* # Bit score + (?:\((\d+)\))?, # Raw score + \s+Log\-Length\sScore\s*=\s*(\d+) # Log-Length score + /ox ) { $self->in_element('hsp') @@ -928,10 +928,10 @@ elsif ( ( $self->in_element('hit') || $self->in_element('hsp') ) && # paracel hframe BTK - m/Score\s*=\s*([^,\s]+), # Raw score - \s*Expect\s*=\s*([^,\s]+), # E-value - \s*P(?:\(\S+\))?\s*=\s*([^,\s]+) # P-value - /ox + m/Score\s*=\s*([^,\s]+), # Raw score + \s*Expect\s*=\s*([^,\s]+), # E-value + \s*P(?:\(\S+\))?\s*=\s*([^,\s]+) # P-value + /ox ) { $self->in_element('hsp') @@ -1174,29 +1174,60 @@ elsif ( $self->in_element('hsp') && /Frame\s*=\s*([\+\-][1-3])\s*(\/\s*([\+\-][1-3]))?/ ) { - + my $frame1 = $1 || 0; + my $frame2 = $2 || 0; # this is for bl2seq only - unless ( defined $reporttype ) { + if ( not defined $reporttype ) { $bl2seq_fix = 1; - if ( $1 && $2 ) { $reporttype = 'TBLASTX' } + if ( $frame1 && $frame2 ) { + $reporttype = 'TBLASTX' + } else { - $reporttype = 'BLASTX'; + # We can distinguish between BLASTX and TBLASTN from the report + # (and assign $frame1 properly) by using the start/end from query. + # If the report is BLASTX, the coordinates distance from query + # will be 3 times the length of the alignment shown (coordinates in nt, + # alignment in aa); if not then subject is the nucleotide sequence (TBLASTN). + # Will have to fast-forward to query alignment line and then go back. + my $fh = $self->_fh; + my $file_pos = tell $fh; + + my $a_position = ''; + my $ali_length = ''; + my $b_position = ''; + while (my $line = <$fh>) { + if ($line =~ m/^(?:Query|Sbjct):?\s+(\-?\d+)?\s*(\S+)\s+(\-?\d+)?/) { + $a_position = $1; + my $alignment = $2; + $b_position = $3; + + use Bio::LocatableSeq; + my $gap_symbols = $Bio::LocatableSeq::GAP_SYMBOLS; + $alignment =~ s/[$gap_symbols]//g; + $ali_length = length($alignment); + last; + } + } + my $coord_length = ($a_position < $b_position) ? ($b_position - $a_position + 1) + : ($a_position - $b_position + 1); + ($coord_length == ($ali_length * 3)) ? ($reporttype = 'BLASTX') : ($reporttype = 'TBLASTN'); - # we can't distinguish between BLASTX and TBLASTN straight from the report } + # Rewind filehandle to its original position to continue parsing + seek $fh, $file_pos, 0; } $self->{'_reporttype'} = $reporttype; } my ( $queryframe, $hitframe ); if ( $reporttype eq 'TBLASTX' ) { - ( $queryframe, $hitframe ) = ( $1, $2 ); + ( $queryframe, $hitframe ) = ( $frame1, $frame2 ); $hitframe =~ s/\/\s*//g; } elsif ( $reporttype eq 'TBLASTN' || $reporttype eq 'PSITBLASTN') { - ( $hitframe, $queryframe ) = ( $1, 0 ); + ( $hitframe, $queryframe ) = ( $frame1, 0 ); } elsif ( $reporttype eq 'BLASTX' || $reporttype eq 'RPS-BLAST(BLASTP)') { - ( $queryframe, $hitframe ) = ( $1, 0 ); + ( $queryframe, $hitframe ) = ( $frame1, 0 ); # though NCBI doesn't report it, this is a special BLASTX-like # RPS-BLAST; should be handled differently if ($reporttype eq 'RPS-BLAST(BLASTP)') { @@ -1307,7 +1338,7 @@ } elsif ( $blast eq 'wublast' ) { - # warn($_); + # warn($_); if (/E=(\S+)/) { $self->element( { @@ -1520,7 +1551,7 @@ } elsif ( m/^\s+Time to generate neighborhood:\s+ - (\S+\s+\S+\s+\S+)/x + (\S+\s+\S+\s+\S+)/x ) { $self->element( @@ -1539,9 +1570,9 @@ ); } elsif ( - m/^\s+(\S+)\s+cpu\s+time:\s+# cputype - (\S+\s+\S+\s+\S+) # cputime - \s+Elapsed:\s+(\S+)/x + m/^\s+(\S+)\s+cpu\s+time:\s+ # cputype + (\S+\s+\S+\s+\S+) # cputime + \s+Elapsed:\s+(\S+)/x ) { my $cputype = lc($1); @@ -1672,7 +1703,7 @@ } elsif ( m/Gap\s+Penalties:\s+Existence:\s+(\d+)\, - \s+Extension:\s+(\d+)/ox + \s+Extension:\s+(\d+)/ox ) { $self->element( @@ -1771,7 +1802,7 @@ } elsif ( m/frameshift\s+window\, - \s+decay\s+const:\s+(\d+)\,\s+([\.\d]+)/x + \s+decay\s+const:\s+(\d+)\,\s+([\.\d]+)/x ) { $self->element( @@ -1805,7 +1836,7 @@ } elsif ( m/^Number\s+of\s+successful\s+extensions:\s+ - (\S+)/ox + (\S+)/ox ) { $self->element( @@ -1817,7 +1848,7 @@ } elsif ( m/^Number\s+of\s+sequences\s+better\s+than\s+ - (\S+):\s+(\d+)/ox + (\S+):\s+(\d+)/ox ) { $self->element( @@ -1863,8 +1894,8 @@ for ( my $i = 0 ; defined($_) && $i < 3 ; $i++ ) { # $self->debug("$i: $_") if $v; if ( ( $i == 0 && /^\s+$/) || - /^\s*(?:Lambda|Minus|Plus|Score)/i ) - { + /^\s*(?:Lambda|Minus|Plus|Score)/i + ) { $self->_pushback($_) if defined $_; $self->end_element( { 'Name' => 'Hsp' } ); last; @@ -2146,7 +2177,7 @@ $self->{'_last_data'} = ''; # remove read data if we are at # end of an element $self->{'_result'} = $rc if ( defined $type && $type eq 'result' ); - $self->{'_seen_hsp_features'} = 0; + $self->{'_seen_hsp_features'} = 0; return $rc; } diff -Nru bioperl-1.6.922/Bio/SearchIO/blasttable.pm bioperl-1.6.923/Bio/SearchIO/blasttable.pm --- bioperl-1.6.922/Bio/SearchIO/blasttable.pm 2013-09-14 15:46:03.000000000 +0000 +++ bioperl-1.6.923/Bio/SearchIO/blasttable.pm 2013-12-18 05:12:44.000000000 +0000 @@ -270,6 +270,11 @@ 'Data' => $evalue}); } my $identical = $hsp_len - $mismatches - $gapsm; + # If $positives value is absent, try to recover it from $percent_pos, + # this is better than letting the program to assume "conserved == identical" + if (not defined $positives and defined $percent_pos) { + $positives = sprintf "%d", ($percent_pos * $hsp_len / 100); + } $self->start_element({'Name' => 'Hsp'}); $self->element({'Name' => 'Hsp_evalue', 'Data' => $evalue}); diff -Nru bioperl-1.6.922/Bio/SearchIO/hmmer3.pm bioperl-1.6.923/Bio/SearchIO/hmmer3.pm --- bioperl-1.6.922/Bio/SearchIO/hmmer3.pm 2013-09-14 15:45:53.000000000 +0000 +++ bioperl-1.6.923/Bio/SearchIO/hmmer3.pm 2013-12-18 05:12:47.000000000 +0000 @@ -633,10 +633,10 @@ || $_ =~ /^\s+Alignment:/ || $_ =~ /^\s+score:/ || $_ =~ /^\s+score\s+bias/ - || $_ =~ /^\s+\S+\s+\d+\s+([\s+.$ambiguous_nt-]+)/i # Alignment, line 1 - || $_ =~ /^\s{20,}([\s+gatc-]+)/i # Alignment, line 2 - || $_ =~ /^\s+$name\s+\d+\s+([\s+$ambiguous_nt-]+)/i # Alignment, line 3 - || $_ =~ /^\s+[\d.\*]+/ # Alignment, line 4 + || $_ =~ /^\s+\S+\s+\d+\s+([\s+.$ambiguous_nt-]+)/i # Alignment, line 1 + || $_ =~ /^\s{20,}([\s+gatc-]+)/i # Alignment, line 2 + || $_ =~ /^\s+$name\s+[\d-]+\s+([\s+$ambiguous_nt-]+)/i # Alignment, line 3 + || $_ =~ /^\s+[\d.\*]+/ # Alignment, line 4 ) { next; diff -Nru bioperl-1.6.922/Bio/SeqFeature/Generic.pm bioperl-1.6.923/Bio/SeqFeature/Generic.pm --- bioperl-1.6.922/Bio/SeqFeature/Generic.pm 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqFeature/Generic.pm 2013-12-18 05:12:58.000000000 +0000 @@ -240,7 +240,7 @@ $self->warn("-seqname is deprecated. Please use -seq_id instead."); $seqid = $seqname unless $seqid; } - $seqid && $self->seq_id($seqid); + $self->seq_id($seqid) if (defined($seqid)); $tag && do { foreach my $t ( keys %$tag ) { $self->add_tag_value($t, UNIVERSAL::isa($tag->{$t}, "ARRAY") ? @{$tag->{$t}} : $tag->{$t}); @@ -312,8 +312,44 @@ =cut sub start { - my ($self,$value) = @_; - return $self->location->start($value); + my ($self, $value) = @_; + # Return soon if setting value + if (defined $value) { + return $self->location->start($value); + } + + return $self->location->start() if not defined $self->{'_gsf_seq'}; + # Check circular sequences cut by origin + my $start; + if ( $self->{'_gsf_seq'}->is_circular + and $self->location->isa('Bio::Location::SplitLocationI') + ) { + my $primary_seq_length = $self->{'_gsf_seq'}->length; + my @sublocs = $self->location->sub_Location; + + my $cut_by_origin = 0; + my ($a_end, $a_strand) = (0, 0); + my ($b_start, $b_strand) = (0, 0); + for (my $i = 1; $i < scalar @sublocs; $i++) { + $a_end = $sublocs[$i-1]->end; + $a_strand = $sublocs[$i-1]->strand; + $b_start = $sublocs[$i]->start; + $b_strand = $sublocs[$i]->strand; + # cut by origin condition + if ( $a_end == $primary_seq_length + and $b_start == 1 + and $a_strand == $b_strand + ) { + $cut_by_origin = 1; + last; + } + } + $start = ($cut_by_origin == 1) ? ($sublocs[0]->start) : ($self->location->start); + } + else { + $start = $self->location->start; + } + return $start; } @@ -329,8 +365,44 @@ =cut sub end { - my ($self,$value) = @_; - return $self->location->end($value); + my ($self, $value) = @_; + # Return soon if setting value + if (defined $value) { + return $self->location->end($value); + } + + return $self->location->end() if not defined $self->{'_gsf_seq'}; + # Check circular sequences cut by origin + my $end; + if ( $self->{'_gsf_seq'}->is_circular + and $self->location->isa('Bio::Location::SplitLocationI') + ) { + my $primary_seq_length = $self->{'_gsf_seq'}->length; + my @sublocs = $self->location->sub_Location; + + my $cut_by_origin = 0; + my ($a_end, $a_strand) = (0, 0); + my ($b_start, $b_strand) = (0, 0); + for (my $i = 1; $i < scalar @sublocs; $i++) { + $a_end = $sublocs[$i-1]->end; + $a_strand = $sublocs[$i-1]->strand; + $b_start = $sublocs[$i]->start; + $b_strand = $sublocs[$i]->strand; + # cut by origin condition + if ( $a_end == $primary_seq_length + and $b_start == 1 + and $a_strand == $b_strand + ) { + $cut_by_origin = 1; + last; + } + } + $end = ($cut_by_origin == 1) ? ($sublocs[-1]->end) : ($self->location->end); + } + else { + $end = $self->location->end; + } + return $end; } @@ -346,8 +418,16 @@ =cut sub length { - my $self = shift; - return $self->end - $self->start() + 1; + my $self = shift; + my $length = $self->end() - $self->start() + 1; + + # In circular sequences cut by origin $start > $end, + # e.g., join(5075..5386,1..51)), $start = 5075, $end = 51, + # then adjust using the primary_seq length (5386) + if ($length < 0 and defined $self->{'_gsf_seq'}) { + $length += $self->{'_gsf_seq'}->length; + } + return $length; } diff -Nru bioperl-1.6.922/Bio/SeqFeatureI.pm bioperl-1.6.923/Bio/SeqFeatureI.pm --- bioperl-1.6.922/Bio/SeqFeatureI.pm 2013-09-14 15:45:37.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqFeatureI.pm 2013-12-18 05:12:51.000000000 +0000 @@ -597,18 +597,26 @@ # in turn returns a string. Confused? $seqstr .= $called_seq->subseq($s,$e)->seq()->seq(); } else { - # This is dumb, subseq should work on locations... - if( $loc->strand == 1 ) { + # If guide_strand is defined, assemble the sequence first and revcom later if needed, + # if its not defined, apply revcom immediately to proper locations + if (defined $self->location->guide_strand) { $seqstr .= $called_seq->subseq($loc->start,$loc->end); } else { - if( $nosort ) { - $seqstr = $called_seq->trunc($loc->start,$loc->end)->revcom->seq() . $seqstr; + my $strand = defined ($loc->strand) ? ($loc->strand) : 0; + if ($strand == -1) { + $seqstr .= $called_seq->trunc($loc->start,$loc->end)->revcom->seq; } else { - $seqstr .= $called_seq->trunc($loc->start,$loc->end)->revcom->seq(); + $seqstr .= $called_seq->subseq($loc->start,$loc->end); } } } } + # Use revcom only after the whole sequence has been assembled + my $guide_strand = defined ($self->location->guide_strand) ? ($self->location->guide_strand) : 0; + if ($guide_strand == -1) { + my $seqstr_obj = Bio::Seq->new(-seq => $seqstr); + $seqstr = $seqstr_obj->revcom->seq; + } if (defined($phase)) { $seqstr = substr($seqstr, $phase); diff -Nru bioperl-1.6.922/Bio/SeqIO/fasta.pm bioperl-1.6.923/Bio/SeqIO/fasta.pm --- bioperl-1.6.922/Bio/SeqIO/fasta.pm 2013-09-14 15:45:55.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqIO/fasta.pm 2013-12-18 05:12:47.000000000 +0000 @@ -123,7 +123,9 @@ local $/ = "\n>"; return unless my $entry = $self->_readline; - chomp($entry); + # Replacing chomp for s///, since chomp is not working in some cases + $entry =~ s/\n$//; + $entry =~ s/\r$//; if ($entry =~ m/\A\s*\Z/s) { # very first one return unless $entry = $self->_readline; chomp($entry); diff -Nru bioperl-1.6.922/Bio/SeqIO/genbank.pm bioperl-1.6.923/Bio/SeqIO/genbank.pm --- bioperl-1.6.922/Bio/SeqIO/genbank.pm 2013-09-14 15:45:37.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqIO/genbank.pm 2013-12-18 05:13:02.000000000 +0000 @@ -256,540 +256,667 @@ =cut sub next_seq { - my ($self,@args) = @_; - my %args = @args; + my ( $self, @args ) = @_; + my %args = @args; my $builder = $self->sequence_builder(); my $seq; my %params; RECORDSTART: while (1) { - my $buffer; - my (@acc, @features); - my ($display_id, $annotation); - my $species; - - # initialize; we may come here because of starting over - @features = (); - $annotation = undef; - @acc = (); - $species = undef; - %params = (-verbose => $self->verbose); # reset hash - local($/) = "\n"; - while(defined($buffer = $self->_readline())) { - last if index($buffer,'LOCUS ') == 0; - } - return unless defined $buffer; # end of file - $buffer =~ /^LOCUS\s+(\S.*)$/o || - $self->throw("GenBank stream with bad LOCUS line. Not GenBank in my book. Got '$buffer'"); + my $buffer; + my ( @acc, @features ); + my ( $display_id, $annotation ); + my $species; + + # initialize; we may come here because of starting over + @features = (); + $annotation = undef; + @acc = (); + $species = undef; + %params = ( -verbose => $self->verbose ); # reset hash + local ($/) = "\n"; + while ( defined( $buffer = $self->_readline() ) ) { + last if index( $buffer, 'LOCUS ' ) == 0; + } + return unless defined $buffer; # end of file + $buffer =~ /^LOCUS\s+(\S.*)$/o + || $self->throw( +"GenBank stream with bad LOCUS line. Not GenBank in my book. Got '$buffer'" + ); + + my @tokens = split( ' ', $1 ); + + # this is important to have the id for display in e.g. FTHelper, + # otherwise you won't know which entry caused an error + $display_id = shift(@tokens); + $params{'-display_id'} = $display_id; + + # may still be useful if we don't want the seq + my $seqlength = shift(@tokens); + if ( exists $VALID_ALPHABET{$seqlength} ) { + + # moved one token too far. No locus name? + $self->warn( +"Bad LOCUS name? Changing [$params{'-display_id'}] to 'unknown' and length to $display_id" + ); + $params{'-display_id'} = 'unknown'; + $params{'-length'} = $display_id; - my @tokens = split(' ', $1); - - # this is important to have the id for display in e.g. FTHelper, - # otherwise you won't know which entry caused an error - $display_id = shift(@tokens); - $params{'-display_id'} = $display_id; - # may still be useful if we don't want the seq - my $seqlength = shift(@tokens); - if (exists $VALID_ALPHABET{$seqlength}) { - # moved one token too far. No locus name? - $self->warn("Bad LOCUS name? Changing [$params{'-display_id'}] to 'unknown' and length to $display_id"); - $params{'-display_id'} = 'unknown'; - $params{'-length'} = $display_id; - # add token back... - unshift @tokens, $seqlength; - } else { - $params{'-length'} = $seqlength; - } - # the alphabet of the entry - # shouldn't assign alphabet unless one is specifically designated (such as for rc files) - my $alphabet = lc(shift @tokens); - $params{'-alphabet'} = (exists $VALID_ALPHABET{$alphabet}) ? $VALID_ALPHABET{$alphabet} : - $self->warn("Unknown alphabet: $alphabet"); - # for aa there is usually no 'molecule' (mRNA etc) - if ($params{'-alphabet'} eq 'protein') { - $params{'-molecule'} = 'PRT' - } else { - $params{'-molecule'} = shift(@tokens); - } - # take care of lower case issues - if ($params{'-molecule'} eq 'dna' || $params{'-molecule'} eq 'rna') { - $params{'-molecule'} = uc $params{'-molecule'}; - } - $self->debug("Unrecognized molecule type:".$params{'-molecule'}) if - !exists($VALID_MOLTYPE{$params{'-molecule'}}); - my $circ = shift(@tokens); - if ($circ eq 'circular') { - $params{'-is_circular'} = 1; - $params{'-division'} = shift(@tokens); - } else { - # 'linear' or 'circular' may actually be omitted altogether - $params{'-division'} = - (CORE::length($circ) == 3 ) ? $circ : shift(@tokens); - } - my $date = join(' ', @tokens); # we lump together the rest - - # this is per request bug #1513 - # we can handle - # 9-10-2003 - # 9-10-03 - # 09-10-2003 - # 09-10-03 - if($date =~ s/\s*((\d{1,2})-(\w{3})-(\d{2,4})).*/$1/) { - if( length($date) < 11 ) { - # improperly formatted date - # But we'll be nice and fix it for them - my ($d,$m,$y) = ($2,$3,$4); - if( length($d) == 1 ) { - $d = "0$d"; + # add token back... + unshift @tokens, $seqlength; + } + else { + $params{'-length'} = $seqlength; + } + +# the alphabet of the entry +# shouldn't assign alphabet unless one is specifically designated (such as for rc files) + my $alphabet = lc( shift @tokens ); + $params{'-alphabet'} = + ( exists $VALID_ALPHABET{$alphabet} ) + ? $VALID_ALPHABET{$alphabet} + : $self->warn("Unknown alphabet: $alphabet"); + + # for aa there is usually no 'molecule' (mRNA etc) + if ( $params{'-alphabet'} eq 'protein' ) { + $params{'-molecule'} = 'PRT'; + } + else { + $params{'-molecule'} = shift(@tokens); + } + + # take care of lower case issues + if ( $params{'-molecule'} eq 'dna' || $params{'-molecule'} eq 'rna' ) { + $params{'-molecule'} = uc $params{'-molecule'}; + } + $self->debug( "Unrecognized molecule type:" . $params{'-molecule'} ) + if !exists( $VALID_MOLTYPE{ $params{'-molecule'} } ); + my $circ = shift(@tokens); + if ( $circ eq 'circular' ) { + $params{'-is_circular'} = 1; + $params{'-division'} = shift(@tokens); + } + else { + # 'linear' or 'circular' may actually be omitted altogether + $params{'-division'} = + ( CORE::length($circ) == 3 ) ? $circ : shift(@tokens); + } + my $date = join( ' ', @tokens ); # we lump together the rest + + # this is per request bug #1513 + # we can handle + # 9-10-2003 + # 9-10-03 + # 09-10-2003 + # 09-10-03 + if ( $date =~ s/\s*((\d{1,2})-(\w{3})-(\d{2,4})).*/$1/ ) { + if ( length($date) < 11 ) { + + # improperly formatted date + # But we'll be nice and fix it for them + my ( $d, $m, $y ) = ( $2, $3, $4 ); + if ( length($d) == 1 ) { + $d = "0$d"; + } + + # guess the century here + if ( length($y) == 2 ) { + if ( $y > 60 ) { # arbitrarily guess that '60' means 1960 + $y = "19$y"; + } + else { + $y = "20$y"; + } + $self->warn( +"Date was malformed, guessing the century for $date to be $y\n" + ); + } + $params{'-dates'} = [ join( '-', $d, $m, $y ) ]; + } + else { + $params{'-dates'} = [$date]; } - # guess the century here - if( length($y) == 2 ) { - if( $y > 60 ) { # arbitrarily guess that '60' means 1960 - $y = "19$y"; - } else { - $y = "20$y"; + } + + # set them all at once + $builder->add_slot_value(%params); + %params = (); + + # parse the rest if desired, otherwise start over + if ( !$builder->want_object() ) { + $builder->make_object(); + next RECORDSTART; + } + + # set up annotation depending on what the builder wants + if ( $builder->want_slot('annotation') ) { + $annotation = Bio::Annotation::Collection->new(); + } + $buffer = $self->_readline(); + until ( !defined($buffer) ) { + $_ = $buffer; + + # Description line(s) + if (/^DEFINITION\s+(\S.*\S)/) { + my @desc = ($1); + while ( defined( $_ = $self->_readline ) ) { + if (/^\s+(.*)/) { push( @desc, $1 ); next } + last; } - $self->warn("Date was malformed, guessing the century for $date to be $y\n"); + $builder->add_slot_value( -desc => join( ' ', @desc ) ); + + # we'll continue right here because DEFINITION always comes + # at the top of the entry + $buffer = $_; } - $params{'-dates'} = [join('-',$d,$m,$y)]; - } else { - $params{'-dates'} = [$date]; - } - } - # set them all at once - $builder->add_slot_value(%params); - %params = (); - - # parse the rest if desired, otherwise start over - if(! $builder->want_object()) { - $builder->make_object(); - next RECORDSTART; - } - - # set up annotation depending on what the builder wants - if($builder->want_slot('annotation')) { - $annotation = Bio::Annotation::Collection->new(); - } - $buffer = $self->_readline(); - until( !defined ($buffer) ) { - $_ = $buffer; - # Description line(s) - if (/^DEFINITION\s+(\S.*\S)/) { - my @desc = ($1); - while ( defined($_ = $self->_readline) ) { - if( /^\s+(.*)/ ) { push (@desc, $1); next }; - last; - } - $builder->add_slot_value(-desc => join(' ', @desc)); - # we'll continue right here because DEFINITION always comes - # at the top of the entry - $buffer= $_; - } - # accession number (there can be multiple accessions) - if( /^ACCESSION\s+(\S.*\S)/ ) { - push(@acc, split(/\s+/,$1)); - while( defined($_ = $self->_readline) ) { - /^\s+(.*)/ && do { push (@acc, split(/\s+/,$1)); next }; - last; - } - $buffer = $_; - next; - } - # PID - elsif( /^PID\s+(\S+)/ ) { - $params{'-pid'} = $1; - } - # Version number - elsif( /^VERSION\s+(\S.+)$/ ) { - my ($acc,$gi) = split(' ',$1); - if($acc =~ /^\w+\.(\d+)/) { - $params{'-version'} = $1; - $params{'-seq_version'} = $1; - } - if($gi && (index($gi,"GI:") == 0)) { - $params{'-primary_id'} = substr($gi,3); - } - } - # Keywords - elsif( /^KEYWORDS\s+(\S.*)/ ) { - my @kw = split(/\s*\;\s*/,$1); - while( defined($_ = $self->_readline) ) { - chomp; - /^\s+(.*)/ && do { push (@kw, split(/\s*\;\s*/,$1)); next }; - last; - } - @kw && $kw[-1] =~ s/\.$//; - $params{'-keywords'} = \@kw; - $buffer = $_; - next; - } - # Organism name and phylogenetic information - elsif (/^SOURCE\s+\S/) { - if($builder->want_slot('species')) { - $species = $self->_read_GenBank_Species(\$buffer); - $builder->add_slot_value(-species => $species); - } else { - while(defined($buffer = $self->_readline())) { - last if substr($buffer,0,1) ne ' '; - } - } - next; - } - # References - elsif (/^REFERENCE\s+\S/) { - if($annotation) { - my @refs = $self->_read_GenBank_References(\$buffer); - foreach my $ref ( @refs ) { - $annotation->add_Annotation('reference',$ref); - } - } else { - while(defined($buffer = $self->_readline())) { - last if substr($buffer,0,1) ne ' '; - } - } - next; - } - # Project - elsif (/^PROJECT\s+(\S.*)/) { - if ($annotation) { - my $project = Bio::Annotation::SimpleValue->new(-value => $1); - $annotation->add_Annotation('project',$project); - } - } - # Comments - elsif (/^COMMENT\s+(\S.*)/) { - if($annotation) { - my $comment = $1; - while (defined($_ = $self->_readline)) { - last if (/^\S/); - $comment .= $_; - } - $comment =~ s/\n/ /g; - $comment =~ s/ +/ /g; - $annotation->add_Annotation('comment', - Bio::Annotation::Comment->new(-text => $comment, - -tagname => 'comment')); - $buffer = $_; - } else { - while(defined($buffer = $self->_readline())) { - last if substr($buffer,0,1) ne ' '; - } - } - next; - } - # Corresponding Genbank nucleotide id, Genpept only - elsif( /^DB(?:SOURCE|LINK)\s+(\S.+)/ ) { - if ($annotation) { - my $dbsource = $1; - while (defined($_ = $self->_readline)) { - last if (/^\S/); - $dbsource .= $_; - } - # deal with UniProKB dbsources - if( $dbsource =~ s/(UniProt(?:KB)?|swissprot):\s+locus\s+(\S+)\,.+\n// ) { - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $2, - -database => $1, - -tagname => 'dblink')); - if( $dbsource =~ s/\s+created:\s+([^\.]+)\.\n// ) { - $annotation->add_Annotation - ('swissprot_dates', - Bio::Annotation::SimpleValue->new - (-tagname => 'date_created', - -value => $1)); - } - while( $dbsource =~ s/\s+(sequence|annotation)\s+updated:\s+([^\.]+)\.\n//g ) { - $annotation->add_Annotation - ('swissprot_dates', - Bio::Annotation::SimpleValue->new - (-tagname => 'date_updated', - -value => $2)); - } - $dbsource =~ s/\n/ /g; - if( $dbsource =~ s/\s+xrefs:\s+((?:\S+,\s+)+\S+)\s+xrefs/xrefs/ ) { - # will use $i to determine even or odd - # for swissprot the accessions are paired - my $i = 0; - for my $dbsrc ( split(/,\s+/,$1) ) { - if( $dbsrc =~ /(\S+)\.(\d+)/ || - $dbsrc =~ /(\S+)/ ) { - my ($id,$version) = ($1,$2); - $version ='' unless defined $version; - my $db; - if( $id =~ /^\d\S{3}/) { - $db = 'PDB'; - } else { - $db = ($i++ % 2 ) ? 'GenPept' : 'GenBank'; - } - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $id, - -version => $version, - -database => $db, - -tagname => 'dblink')); - } - } - } elsif( $dbsource =~ s/\s+xrefs:\s+(.+)\s+xrefs/xrefs/i ) { - # download screwed up and ncbi didn't put acc in for gi numbers - my $i = 0; - for my $id ( split(/\,\s+/,$1) ) { - my ($acc,$db); - if( $id =~ /gi:\s+(\d+)/ ) { - $acc= $1; - $db = ($i++ % 2 ) ? 'GenPept' : 'GenBank'; - } elsif( $id =~ /pdb\s+accession\s+(\S+)/ ) { - $acc= $1; - $db = 'PDB'; - } else { - $acc= $id; - $db = ''; - } - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $acc, - -database => $db, - -tagname => 'dblink')); - } - } else { - $self->debug("Cannot match $dbsource\n"); - } - if( $dbsource =~ s/xrefs\s+\(non\-sequence\s+databases\):\s+ - ((?:\S+,\s+)+\S+)//x ) { - for my $id ( split(/\,\s+/,$1) ) { - my $db; - # this is because GenBank dropped the spaces!!! - # I'm sure we're not going to get this right - ##if( $id =~ s/^://i ) { - ## $db = $1; - ##} - $db = substr($id,0,index($id,':')); - if (! exists $DBSOURCE{ $db }) { - $db = ''; # do we want 'GenBank' here? - } - $id = substr($id,index($id,':')+1); - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $id, - -database => $db, - -tagname => 'dblink')); - } - } - - } else { - if( $dbsource =~ /^(\S*?):?\s*accession\s+(\S+)\.(\d+)/ ) { - my ($db,$id,$version) = ($1,$2,$3); - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $id, - -version => $version, - -database => $db || 'GenBank', - -tagname => 'dblink')); - } elsif ( $dbsource =~ /^(\S*?):?\s*accession\s+(\S+)/ ) { - my ($db,$id) = ($1,$2); - $annotation->add_Annotation - ('dblink', - Bio::Annotation::DBLink->new - (-primary_id => $id, - -database => $db || 'GenBank', - -tagname => 'dblink')); - } elsif ( $dbsource =~ /(\S+)([\.:])\s*(\S+)/ ) { - my ($db, $version); - my @ids = (); - if ($2 eq ':') { - $db = $1; - # Genbank 192 release notes say this: "The second field can consist of - # multiple comma-separated identifiers, if a sequence record has - # multiple DBLINK cross-references of a given type." - # For example: DBLINK Project:100,200,300" - @ids = split (/,/, $3); - } else { - ($db, $version) = ('GenBank', $3); - $ids[0] = $1; + # accession number (there can be multiple accessions) + if (/^ACCESSION\s+(\S.*\S)/) { + push( @acc, split( /\s+/, $1 ) ); + while ( defined( $_ = $self->_readline ) ) { + /^\s+(.*)/ && do { push( @acc, split( /\s+/, $1 ) ); next }; + last; + } + $buffer = $_; + next; + } + + # PID + elsif (/^PID\s+(\S+)/) { + $params{'-pid'} = $1; + } + + # Version number + elsif (/^VERSION\s+(\S.+)$/) { + my ( $acc, $gi ) = split( ' ', $1 ); + if ( $acc =~ /^\w+\.(\d+)/ ) { + $params{'-version'} = $1; + $params{'-seq_version'} = $1; + } + if ( $gi && ( index( $gi, "GI:" ) == 0 ) ) { + $params{'-primary_id'} = substr( $gi, 3 ); + } + } + + # Keywords + elsif (/^KEYWORDS\s+(\S.*)/) { + my @kw = split( /\s*\;\s*/, $1 ); + while ( defined( $_ = $self->_readline ) ) { + chomp; + /^\s+(.*)/ + && do { push( @kw, split( /\s*\;\s*/, $1 ) ); next }; + last; + } + + @kw && $kw[-1] =~ s/\.$//; + $params{'-keywords'} = \@kw; + $buffer = $_; + next; + } + + # Organism name and phylogenetic information + elsif (/^SOURCE\s+\S/) { + if ( $builder->want_slot('species') ) { + $species = $self->_read_GenBank_Species( \$buffer ); + $builder->add_slot_value( -species => $species ); + } + else { + while ( defined( $buffer = $self->_readline() ) ) { + last if substr( $buffer, 0, 1 ) ne ' '; + } + } + next; + } + + # References + elsif (/^REFERENCE\s+\S/) { + if ($annotation) { + my @refs = $self->_read_GenBank_References( \$buffer ); + foreach my $ref (@refs) { + $annotation->add_Annotation( 'reference', $ref ); } - - foreach my $id (@ids) { - $annotation->add_Annotation('dblink', + } + else { + while ( defined( $buffer = $self->_readline() ) ) { + last if substr( $buffer, 0, 1 ) ne ' '; + } + } + next; + } + + # Project + elsif (/^PROJECT\s+(\S.*)/) { + if ($annotation) { + my $project = + Bio::Annotation::SimpleValue->new( -value => $1 ); + $annotation->add_Annotation( 'project', $project ); + } + } + + # Comments + elsif (/^COMMENT\s+(\S.*)/) { + if ($annotation) { + my $comment = $1; + while ( defined( $_ = $self->_readline ) ) { + last if (/^\S/); + $comment .= $_; + } + $comment =~ s/\n/ /g; + $comment =~ s/ +/ /g; + $annotation->add_Annotation( + 'comment', + Bio::Annotation::Comment->new( + -text => $comment, + -tagname => 'comment' + ) + ); + $buffer = $_; + } + else { + while ( defined( $buffer = $self->_readline() ) ) { + last if substr( $buffer, 0, 1 ) ne ' '; + } + } + next; + } + + # Corresponding Genbank nucleotide id, Genpept only + elsif (/^DB(?:SOURCE|LINK)\s+(\S.+)/) { + if ($annotation) { + my $dbsource = $1; + while ( defined( $_ = $self->_readline ) ) { + last if (/^\S/); + $dbsource .= $_; + } + + # deal with UniProKB dbsources + if ( $dbsource =~ + s/(UniProt(?:KB)?|swissprot):\s+locus\s+(\S+)\,.+\n// ) + { + $annotation->add_Annotation( + 'dblink', Bio::Annotation::DBLink->new( - -primary_id => $id, - -version => $version, - -database => $db, - -tagname => 'dblink') + -primary_id => $2, + -database => $1, + -tagname => 'dblink' + ) ); + if ( $dbsource =~ s/\s+created:\s+([^\.]+)\.\n// ) { + $annotation->add_Annotation( + 'swissprot_dates', + Bio::Annotation::SimpleValue->new( + -tagname => 'date_created', + -value => $1 + ) + ); + } + while ( $dbsource =~ +s/\s+(sequence|annotation)\s+updated:\s+([^\.]+)\.\n//g + ) + { + $annotation->add_Annotation( + 'swissprot_dates', + Bio::Annotation::SimpleValue->new( + -tagname => 'date_updated', + -value => $2 + ) + ); + } + $dbsource =~ s/\n/ /g; + if ( $dbsource =~ + s/\s+xrefs:\s+((?:\S+,\s+)+\S+)\s+xrefs/xrefs/ ) + { + # will use $i to determine even or odd + # for swissprot the accessions are paired + my $i = 0; + for my $dbsrc ( split( /,\s+/, $1 ) ) { + if ( $dbsrc =~ /(\S+)\.(\d+)/ + || $dbsrc =~ /(\S+)/ ) + { + my ( $id, $version ) = ( $1, $2 ); + $version = '' unless defined $version; + my $db; + if ( $id =~ /^\d\S{3}/ ) { + $db = 'PDB'; + } + else { + $db = + ( $i++ % 2 ) ? 'GenPept' : 'GenBank'; + } + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $id, + -version => $version, + -database => $db, + -tagname => 'dblink' + ) + ); + } + } + } + elsif ( + $dbsource =~ s/\s+xrefs:\s+(.+)\s+xrefs/xrefs/i ) + { + # download screwed up and ncbi didn't put acc in for gi numbers + my $i = 0; + for my $id ( split( /\,\s+/, $1 ) ) { + my ( $acc, $db ); + if ( $id =~ /gi:\s+(\d+)/ ) { + $acc = $1; + $db = ( $i++ % 2 ) ? 'GenPept' : 'GenBank'; + } + elsif ( $id =~ /pdb\s+accession\s+(\S+)/ ) { + $acc = $1; + $db = 'PDB'; + } + else { + $acc = $id; + $db = ''; + } + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $acc, + -database => $db, + -tagname => 'dblink' + ) + ); + } + } + else { + $self->debug("Cannot match $dbsource\n"); + } + if ( + $dbsource =~ + s/xrefs\s+\(non\-sequence\s+databases\):\s+ + ((?:\S+,\s+)+\S+)//x + ) + { + for my $id ( split( /\,\s+/, $1 ) ) { + my $db; + + # this is because GenBank dropped the spaces!!! + # I'm sure we're not going to get this right + ##if( $id =~ s/^://i ) { + ## $db = $1; + ##} + $db = substr( $id, 0, index( $id, ':' ) ); + if ( !exists $DBSOURCE{$db} ) { + $db = ''; # do we want 'GenBank' here? + } + $id = substr( $id, index( $id, ':' ) + 1 ); + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $id, + -database => $db, + -tagname => 'dblink' + ) + ); + } + } + + } + else { + if ( $dbsource =~ + /^(\S*?):?\s*accession\s+(\S+)\.(\d+)/ ) + { + my ( $db, $id, $version ) = ( $1, $2, $3 ); + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $id, + -version => $version, + -database => $db || 'GenBank', + -tagname => 'dblink' + ) + ); + } + elsif ( $dbsource =~ /^(\S*?):?\s*accession\s+(\S+)/ ) { + my ( $db, $id ) = ( $1, $2 ); + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $id, + -database => $db || 'GenBank', + -tagname => 'dblink' + ) + ); + } + elsif ( $dbsource =~ /(\S+)([\.:])\s*(\S+)/ ) { + my ( $db, $version ); + my @ids = (); + if ( $2 eq ':' ) { + $db = $1; + + # Genbank 192 release notes say this: "The second field can consist of + # multiple comma-separated identifiers, if a sequence record has + # multiple DBLINK cross-references of a given type." + # For example: DBLINK Project:100,200,300" + @ids = split( /,/, $3 ); + } + else { + ( $db, $version ) = ( 'GenBank', $3 ); + $ids[0] = $1; + } + + foreach my $id (@ids) { + $annotation->add_Annotation( + 'dblink', + Bio::Annotation::DBLink->new( + -primary_id => $id, + -version => $version, + -database => $db, + -tagname => 'dblink' + ) + ); + } + } + else { + $self->warn( + "Unrecognized DBSOURCE data: $dbsource\n"); + } } - } else { - $self->warn("Unrecognized DBSOURCE data: $dbsource\n"); + + $buffer = $_; } - } + else { + while ( defined( $buffer = $self->_readline() ) ) { + last if substr( $buffer, 0, 1 ) ne ' '; + } + } + next; + } - $buffer = $_; - } else { - while(defined($buffer = $self->_readline())) { - last if substr($buffer,0,1) ne ' '; - } - } - next; - } - # Exit at start of Feature table, or start of sequence - last if( /^(FEATURES|ORIGIN)/ ); - # Get next line and loop again - $buffer = $self->_readline; - } - return unless defined $buffer; - - # add them all at once for efficiency - $builder->add_slot_value(-accession_number => shift(@acc), - -secondary_accessions => \@acc, - %params); - $builder->add_slot_value(-annotation => $annotation) if $annotation; - %params = (); # reset before possible re-use to avoid setting twice - - # start over if we don't want to continue with this entry - if(! $builder->want_object()) { - $builder->make_object(); - next RECORDSTART; - } - # some "minimal" formats may not necessarily have a feature table - if($builder->want_slot('features') && defined($_) && /^FEATURES/o) { - # need to read the first line of the feature table - $buffer = $self->_readline; - # DO NOT read lines in the while condition -- this is done as a side - # effect in _read_FTHelper_GenBank! - -# part of new circular spec: -# commented out for now until kinks worked out - #my $sourceEnd = 0; - #$sourceEnd = $2 if ($buffer =~ /(\d+?)\.\.(\d+?)$/); - - while( defined($buffer) ) { - # check immediately -- not at the end of the loop - # note: GenPept entries obviously do not have a BASE line - last if( $buffer =~ /^BASE|ORIGIN|CONTIG|WGS/o); - - # slurp in one feature at a time -- at return, the start of - # the next feature will have been read already, so we need - # to pass a reference, and the called method must set this - # to the last line read before returning - - my $ftunit = $self->_read_FTHelper_GenBank(\$buffer); - -# implement new circular spec: features that cross the origin are now -# seamless instead of being 2 separate joined features -# commented out until kinks get worked out - #if ((! $args{'-nojoin'}) && $ftunit->{'loc'} =~ /^join\((\d+?)\.\.(\d+?),(\d+?)..(\d+?)\)$/ - #&& $sourceEnd == $2 && $3 == 1) { - #my $start = $1; - #my $end = $2 + $4; - #$ftunit->{'loc'} = "$start..$end"; - #} - - # fix suggested by James Diggans - - if( !defined $ftunit ) { - # GRRRR. We have fallen over. Try to recover - $self->warn("Unexpected error in feature table for ".$params{'-display_id'}." Skipping feature, attempting to recover"); - unless( ($buffer =~ /^\s{5,5}\S+/o) or - ($buffer =~ /^\S+/o)) { - $buffer = $self->_readline(); - } - next; # back to reading FTHelpers - } + # Exit at start of Feature table, or start of sequence + last if (/^(FEATURES|ORIGIN)/); - # process ftunit - my $feat = - $ftunit->_generic_seqfeature($self->location_factory(), - $display_id); - # add taxon_id from source if available - if($species && ($feat->primary_tag eq 'source') && - $feat->has_tag('db_xref') && (! $species->ncbi_taxid() || - ($species->ncbi_taxid && $species->ncbi_taxid =~ /^list/))) { - foreach my $tagval ($feat->get_tag_values('db_xref')) { - if(index($tagval,"taxon:") == 0) { - $species->ncbi_taxid(substr($tagval,6)); - last; - } - } - } - # add feature to list of features - push(@features, $feat); - } - $builder->add_slot_value(-features => \@features); - $_ = $buffer; - } - if( defined ($_) ) { - if( /^CONTIG/o ) { - my @contig; - my $ctg = ''; - while($_ !~ m{^//}) { # end of file - $_ =~ /^(?:CONTIG)?\s+(.*)/; - $ctg .= $1; - $_ = $self->_readline; - } - if ($ctg) { - $annotation->add_Annotation( - Bio::Annotation::SimpleValue->new(-tagname => 'contig', - -value => $ctg ) - ); - } - $self->_pushback($_); - } elsif( /^WGS|WGS_SCAFLD\s+/o ) { # catch WGS/WGS_SCAFLD lines - while($_ =~ s/(^WGS|WGS_SCAFLD)\s+//){ # gulp lines - chomp; - $annotation->add_Annotation( - Bio::Annotation::SimpleValue->new(-value => $_, - -tagname => lc($1))); - $_ = $self->_readline; - } - } elsif(! m{^(ORIGIN|//)} ) { # advance to the sequence, if any - while (defined( $_ = $self->_readline) ) { - last if m{^(ORIGIN|//)}; - } - } - } - if(! $builder->want_object()) { - $builder->make_object(); # implicit end-of-object - next RECORDSTART; - } - if($builder->want_slot('seq')) { - # the fact that we want a sequence does not necessarily mean that - # there also is a sequence ... - if(defined($_) && s/^ORIGIN\s+//) { - chomp; - if( $annotation && length($_) > 0 ) { - $annotation->add_Annotation('origin', - Bio::Annotation::SimpleValue->new(-tagname => 'origin', - -value => $_)); - } - my $seqc = ''; - while( defined($_ = $self->_readline) ) { - m{^//} && last; - $_ = uc($_); - s/[^A-Za-z]//g; - $seqc .= $_; - } - #$self->debug("sequence length is ". length($seqc) ."\n"); - $builder->add_slot_value(-seq => $seqc); - } - } elsif ( defined($_) && (substr($_,0,2) ne '//')) { - # advance to the end of the record - while( defined($_ = $self->_readline) ) { - last if substr($_,0,2) eq '//'; - } - } - # Unlikely, but maybe the sequence is so weird that we don't want it - # anymore. We don't want to return undef if the stream's not exhausted - # yet. - $seq = $builder->make_object(); - next RECORDSTART unless $seq; - last RECORDSTART; - } # end while RECORDSTART + # Get next line and loop again + $buffer = $self->_readline; + } + return unless defined $buffer; + + # add them all at once for efficiency + $builder->add_slot_value( + -accession_number => shift(@acc), + -secondary_accessions => \@acc, + %params + ); + $builder->add_slot_value( -annotation => $annotation ) if $annotation; + %params = (); # reset before possible re-use to avoid setting twice + + # start over if we don't want to continue with this entry + if ( !$builder->want_object() ) { + $builder->make_object(); + next RECORDSTART; + } + + # some "minimal" formats may not necessarily have a feature table + if ( $builder->want_slot('features') && defined($_) && /^FEATURES/o ) { + + # need to read the first line of the feature table + $buffer = $self->_readline; + + # DO NOT read lines in the while condition -- this is done as a side + # effect in _read_FTHelper_GenBank! + + # part of new circular spec: + # commented out for now until kinks worked out + #my $sourceEnd = 0; + #$sourceEnd = $2 if ($buffer =~ /(\d+?)\.\.(\d+?)$/); + + while ( defined($buffer) ) { + + # check immediately -- not at the end of the loop + # note: GenPept entries obviously do not have a BASE line + last if ( $buffer =~ /^BASE|ORIGIN|CONTIG|WGS/o ); + + # slurp in one feature at a time -- at return, the start of + # the next feature will have been read already, so we need + # to pass a reference, and the called method must set this + # to the last line read before returning + + my $ftunit = $self->_read_FTHelper_GenBank( \$buffer ); + + # implement new circular spec: features that cross the origin are now + # seamless instead of being 2 separate joined features + # commented out until kinks get worked out + #if ((! $args{'-nojoin'}) && $ftunit->{'loc'} =~ /^join\((\d+?)\.\.(\d+?),(\d+?)..(\d+?)\)$/ + #&& $sourceEnd == $2 && $3 == 1) { + #my $start = $1; + #my $end = $2 + $4; + #$ftunit->{'loc'} = "$start..$end"; + #} + + # fix suggested by James Diggans + + if ( !defined $ftunit ) { + + # GRRRR. We have fallen over. Try to recover + $self->warn( "Unexpected error in feature table for " + . $params{'-display_id'} + . " Skipping feature, attempting to recover" ); + unless ( ( $buffer =~ /^\s{5,5}\S+/o ) + or ( $buffer =~ /^\S+/o ) ) + { + $buffer = $self->_readline(); + } + next; # back to reading FTHelpers + } + + # process ftunit + my $feat = + $ftunit->_generic_seqfeature( $self->location_factory(), + $display_id ); + + # add taxon_id from source if available + if ( + $species + && ( $feat->primary_tag eq 'source' ) + && $feat->has_tag('db_xref') + && ( + !$species->ncbi_taxid() + || ( $species->ncbi_taxid + && $species->ncbi_taxid =~ /^list/ ) + ) + ) + { + foreach my $tagval ( $feat->get_tag_values('db_xref') ) { + if ( index( $tagval, "taxon:" ) == 0 ) { + $species->ncbi_taxid( substr( $tagval, 6 ) ); + last; + } + } + } + + # add feature to list of features + push( @features, $feat ); + } + $builder->add_slot_value( -features => \@features ); + $_ = $buffer; + } + + if ( defined($_) ) { + # CONTIG lines: TODO, this needs to be cleaned up + if (/^CONTIG\s+(.*)/o) { + my $ctg = $1; + while ( defined( $_ = $self->_readline)) { + last if m{^ORIGIN|//}o; + s/\s+(.*)/$1/; + $ctg .= $_; + } + if ($ctg) { + $annotation->add_Annotation( + Bio::Annotation::SimpleValue->new( + -tagname => 'contig', + -value => $ctg + ) + ); + } + } + elsif (/^WGS|WGS_SCAFLD\s+/o) { # catch WGS/WGS_SCAFLD lines + while ( $_ =~ s/(^WGS|WGS_SCAFLD)\s+// ) { # gulp lines + chomp; + $annotation->add_Annotation( + Bio::Annotation::SimpleValue->new( + -value => $_, + -tagname => lc($1) + ) + ); + $_ = $self->_readline; + } + } + elsif ( !m{^ORIGIN|//}o ) { # advance to the sequence, if any + while ( defined( $_ = $self->_readline ) ) { + last if m{^(ORIGIN|//)}; + } + } + } + if ( !$builder->want_object() ) { + $builder->make_object(); # implicit end-of-object + next RECORDSTART; + } + if ( $builder->want_slot('seq') ) { + # the fact that we want a sequence does not necessarily mean that + # there also is a sequence ... + if ( defined($_) && s/^ORIGIN\s+// ) { + if ( $annotation && length($_) > 0 ) { + $annotation->add_Annotation( + 'origin', + Bio::Annotation::SimpleValue->new( + -tagname => 'origin', + -value => $_ + ) + ); + } + my $seqc = ''; + while ( defined( $_ = $self->_readline ) ) { + last if m{^//}; + $_ = uc($_); + s/[^A-Za-z]//g; + $seqc .= $_; + } + + $builder->add_slot_value( -seq => $seqc ); + } + } + elsif ( defined($_) && ( substr( $_, 0, 2 ) ne '//' ) ) { + + # advance to the end of the record + while ( defined( $_ = $self->_readline ) ) { + last if substr( $_, 0, 2 ) eq '//'; + } + } + + # Unlikely, but maybe the sequence is so weird that we don't want it + # anymore. We don't want to return undef if the stream's not exhausted + # yet. + $seq = $builder->make_object(); + next RECORDSTART unless $seq; + last RECORDSTART; + } # end while RECORDSTART return $seq; } diff -Nru bioperl-1.6.922/Bio/SeqIO/interpro.pm bioperl-1.6.923/Bio/SeqIO/interpro.pm --- bioperl-1.6.922/Bio/SeqIO/interpro.pm 2013-09-14 15:46:03.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqIO/interpro.pm 2013-12-18 05:12:52.000000000 +0000 @@ -137,8 +137,8 @@ $xml_fragment .= $finishedline; last if $finishedline =~ m!!; } - - return unless $xml_fragment =~ / but not other similar elements like + return unless $xml_fragment =~ /]/; $self->_parse_xml($xml_fragment); @@ -229,7 +229,8 @@ my $line = undef; # fast forward to first record. while($line = $self->_readline()){ - if($line =~ / but not other similar elements like + if($line =~ /]/){ $self->_pushback($line); last; } diff -Nru bioperl-1.6.922/Bio/SeqUtils.pm bioperl-1.6.923/Bio/SeqUtils.pm --- bioperl-1.6.922/Bio/SeqUtils.pm 2013-09-14 15:45:52.000000000 +0000 +++ bioperl-1.6.923/Bio/SeqUtils.pm 2013-12-18 05:12:55.000000000 +0000 @@ -66,7 +66,7 @@ -flip => 1 ); - # delete a segment of a seqence (from pos 1000 to 1100, inclusive), + # delete a segment of a sequence (from pos 1000 to 1100, inclusive), # again preserving features and annotations my $new_molecule = Bio::SeqUtils->cut( $seq, 1000, 1100 ); @@ -593,6 +593,11 @@ my $truncrange = Bio::Range->new( -start => $start, -end => $end, -strand => 0 ); + # make sure that there is no annotation or features in $trunc + # (->trunc() now clone objects except for Bio::Seq::LargePrimarySeq) + $trunc->annotation->remove_Annotations; + $trunc->remove_SeqFeatures; + # move annotations foreach my $key ( $seq->annotation->get_all_annotation_keys() ) { foreach my $value ( $seq->annotation->get_Annotations($key) ) { @@ -1470,6 +1475,11 @@ unless $seq->isa('Bio::SeqI'); my $revcom = $seq->revcom; + # make sure that there is no annotation or features in $trunc + # (->revcom() now clone objects except for Bio::Seq::LargePrimarySeq) + $revcom->annotation->remove_Annotations; + $revcom->remove_SeqFeatures; + #move annotations foreach my $key ( $seq->annotation->get_all_annotation_keys() ) { foreach my $value ( $seq->annotation->get_Annotations($key) ) { diff -Nru bioperl-1.6.922/Bio/SimpleAlign.pm bioperl-1.6.923/Bio/SimpleAlign.pm --- bioperl-1.6.922/Bio/SimpleAlign.pm 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/Bio/SimpleAlign.pm 2013-12-18 05:12:49.000000000 +0000 @@ -1,3 +1,12 @@ +package Bio::SimpleAlign; +use strict; +use warnings; +use Bio::LocatableSeq; # uses Seq's as list +use Bio::Seq; +use Bio::SeqFeature::Generic; + +use parent qw(Bio::Root::Root Bio::Align::AlignI Bio::AnnotatableI Bio::FeatureHolderI); + # BioPerl module for SimpleAlign # # Please direct questions and support issues to @@ -145,51 +154,16 @@ =cut -# 'Let the code begin... - -package Bio::SimpleAlign; -use vars qw(%CONSERVATION_GROUPS); -use strict; - -use Bio::LocatableSeq; # uses Seq's as list +## This data should probably be in a more centralized module... +## it is taken from Clustalw documentation. +## These are all the positively scoring groups that occur in the +## Gonnet Pam250 matrix. The strong and weak groups are +## defined as strong score >0.5 and weak score =<0.5 respectively. +our %CONSERVATION_GROUPS = ( + 'strong' => [qw(STA NEQK NHQK NDEQ QHRK MILV MILF HY FYW )], + 'weak' => [qw(CSA ATV SAG STNK STPA SGND SNDEQK NDEQHK NEQHRK FVLIM HFY)], +); -use Bio::Seq; -use Bio::SeqFeature::Generic; - -BEGIN { - # This data should probably be in a more centralized module... - # it is taken from Clustalw documentation. - # These are all the positively scoring groups that occur in the - # Gonnet Pam250 matrix. The strong and weak groups are - # defined as strong score >0.5 and weak score =<0.5 respectively. - - %CONSERVATION_GROUPS = ( - 'strong' => [ qw( - STA - NEQK - NHQK - NDEQ - QHRK - MILV - MILF - HY - FYW )], - 'weak' => [ qw( - CSA - ATV - SAG - STNK - STPA - SGND - SNDEQK - NDEQHK - NEQHRK - FVLIM - HFY )],); -} - -use base qw(Bio::Root::Root Bio::Align::AlignI Bio::AnnotatableI - Bio::FeatureHolderI); =head2 new @@ -1140,11 +1114,17 @@ my $slice_seq = $seq->subseq($start, $seq_end); $new_seq->seq( $slice_seq ); - $slice_seq =~ s/\W//g; + # Allowed extra characters in string + my $allowed_chars = ''; + if (exists $self->{_mask_char}) { + $allowed_chars = $self->{_mask_char}; + $allowed_chars = quotemeta $allowed_chars; + } + $slice_seq =~ s/[^\w$allowed_chars]//g; - if ($start > 1) { + if ($start > 1) { my $pre_start_seq = $seq->subseq(1, $start - 1); - $pre_start_seq =~ s/\W//g; + $pre_start_seq =~ s/[^\w$allowed_chars]//g; if (!defined($seq->strand)) { $new_seq->start( $seq->start + CORE::length($pre_start_seq) ); } elsif ($seq->strand < 0){ @@ -3286,6 +3266,8 @@ $new_seq->seq($new_dna_string); $aln->add_seq($new_seq); } + # Preserve chosen mask character, it may be need later (like in 'slice') + $aln->{_mask_char} = $mask_char; return $aln; } diff -Nru bioperl-1.6.922/Bio/Tools/Alignment/Consed.pm bioperl-1.6.923/Bio/Tools/Alignment/Consed.pm --- bioperl-1.6.922/Bio/Tools/Alignment/Consed.pm 2013-09-14 15:45:43.000000000 +0000 +++ bioperl-1.6.923/Bio/Tools/Alignment/Consed.pm 2013-12-18 05:12:42.000000000 +0000 @@ -148,7 +148,8 @@ # this is special to UNIX and should probably use catfile : DONE! # if (!($self->{'filename'} =~ m{/})) { # $self->{'filename'} = "./".$self->{'filename'}; -# } +# } +# $self->{'filename'} =~ s#\\#\/#g if $^O =~ m/mswin/i; # $self->{'filename'} =~ m/(.*\/)(.*)ace.*$/; # $self->{'path'} = $1; @@ -977,6 +978,7 @@ $self->debug("Bio::Tools::Alignment::Consed Adding singlets to the contig hash...\n"); my $full_filename = $self->{'filename'}; $self->debug("Bio::Tools::Alignment::Consed::set_singlets: \$full_filename is $full_filename\n"); + $full_filename =~ s#\\#\/#g if $^O =~ m/mswin/i; $full_filename =~ m/(.*\/)(.*ace.*)$/; my ($base_path,$filename) = ($1,$2); $self->debug("Bio::Tools::Alignment::Consed::set_singlets: singlets filename is $filename and \$base_path is $base_path\n"); @@ -1105,6 +1107,7 @@ sub set_singlet_quality { my $self = shift; my $full_filename = $self->{'filename'}; + $full_filename =~ s#\\#\/#g if $^O =~ m/mswin/i; $full_filename =~ m/(.*\/)(.*)ace.*$/; my ($base_path,$filename) = ($1,"$2"."qual"); my $singletsfile = $base_path.$filename; @@ -1156,6 +1159,7 @@ my $full_filename = $self->{'filename'}; # Run_SRC3700_2000-08-01_73+74.fasta.screen.contigs.qual # from Consed.pm + $full_filename =~ s#\\#\/#g if $^O =~ m/mswin/i; $full_filename =~ m/(.*\/)(.*)ace.*$/; my ($base_path,$filename) = ($1,"$2"."contigs.qual"); my $singletsfile = $base_path.$filename; @@ -1846,4 +1850,3 @@ 1; - diff -Nru bioperl-1.6.922/Bio/Tools/CodonTable.pm bioperl-1.6.923/Bio/Tools/CodonTable.pm --- bioperl-1.6.922/Bio/Tools/CodonTable.pm 2013-09-14 15:45:37.000000000 +0000 +++ bioperl-1.6.923/Bio/Tools/CodonTable.pm 2013-12-18 05:12:46.000000000 +0000 @@ -220,7 +220,8 @@ '', '', '', '', 'Trematode Mitochondrial',# 21 'Scenedesmus obliquus Mitochondrial', #22 - 'Thraustochytrium Mitochondrial' #23 + 'Thraustochytrium Mitochondrial', #23 + 'Strict', #24, option for only ATG start ); @TABLES = @@ -244,6 +245,7 @@ FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNNKSSSSVVVVAAAADDEEGGGG FFLLSS*SYY*LCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG FF*LSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG + FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG ); # (bases used for these tables, for reference) @@ -272,6 +274,7 @@ -----------------------------------M---------------M------------ -----------------------------------M---------------------------- --------------------------------M--M---------------M------------ + -----------------------------------M---------------------------- ); my @nucs = qw(t c a g); diff -Nru bioperl-1.6.922/Bio/Tools/IUPAC.pm bioperl-1.6.923/Bio/Tools/IUPAC.pm --- bioperl-1.6.922/Bio/Tools/IUPAC.pm 2013-09-14 15:45:49.000000000 +0000 +++ bioperl-1.6.923/Bio/Tools/IUPAC.pm 2013-12-18 05:12:58.000000000 +0000 @@ -45,26 +45,26 @@ IUPAC-IUB SYMBOLS FOR NUCLEOTIDE (DNA OR RNA) NOMENCLATURE: Cornish-Bowden (1985) Nucl. Acids Res. 13: 3021-3030 - ------------------------------------------ + --------------------------------------------------------------- Symbol Meaning Nucleic Acid - ------------------------------------------ + --------------------------------------------------------------- A A Adenine C C Cytosine G G Guanine T T Thymine U U Uracil - M A or C - R A or G - W A or T - S C or G - Y C or T - K G or T - V A or C or G - H A or C or T - D A or G or T - B C or G or T - X G or A or T or C - N G or A or T or C + M A or C aMino + R A or G puRine + W A or T Weak + S C or G Strong + Y C or T pYrimidine + K G or T Keto + V A or C or G not T (closest unused char after T) + H A or C or T not G (closest unused char after G) + D A or G or T not C (closest unused char after C) + B C or G or T not A (closest unused char after A) + X G or A or T or C Unknown (very rarely used) + N G or A or T or C Unknown (commonly used) IUPAC-IUP AMINO ACID SYMBOLS: diff -Nru bioperl-1.6.922/Bio/Tools/RandomDistFunctions.pm bioperl-1.6.923/Bio/Tools/RandomDistFunctions.pm --- bioperl-1.6.922/Bio/Tools/RandomDistFunctions.pm 2013-09-14 15:46:02.000000000 +0000 +++ bioperl-1.6.923/Bio/Tools/RandomDistFunctions.pm 2013-12-18 05:13:01.000000000 +0000 @@ -31,6 +31,7 @@ Mike Sanderson's r8s's package. See http://loco.biosci.arizona.edu/r8s/ for information on his software. +=for comment This code tries to be fast and use available faster BigInt and GMP library methods when those modules are available. @@ -89,7 +90,7 @@ use vars qw(%LOADED @EXPORT_OK); use strict; #use Math::BigFloat lib => 'GMP,Bit::Vector'; -#use Math::BigInt lib => 'GMP,Bit::Vector'; +#use Math::BigInt lib => 'GMP,Bit::Vector'; use POSIX; use base qw(Bio::Root::Root); diff -Nru bioperl-1.6.922/Build.PL bioperl-1.6.923/Build.PL --- bioperl-1.6.922/Build.PL 2013-09-14 15:45:52.000000000 +0000 +++ bioperl-1.6.923/Build.PL 2013-12-18 05:12:55.000000000 +0000 @@ -105,9 +105,6 @@ 'LWP::UserAgent' => [0, 'Remote access/Bio::DB::*,Bio::Tools::Run::RemoteBlast,Bio::WebAgent'], - 'Math::Random' => [0, - 'Random Phylogenetic Networks/Bio::PhyloNetwork::RandomFactory'], - 'PostScript::TextBlock' => [0, 'EPS output/Bio::Tree::Draw::Cladogram'], @@ -179,7 +176,7 @@ dist_author => 'BioPerl Team ', dist_abstract => 'Bioinformatics Toolkit', license => 'perl', - no_index => {'dir' => [qw(examples/root/lib)]}, + no_index => {'x_dir' => [qw(examples/root/lib)]}, requires => { 'perl' => '5.6.1', 'IO::String' => 0, # why is this required? @@ -259,22 +256,22 @@ my $accept = $build->args('accept'); # how much do I hate this? Let me count the ways..... -if (!$build->feature('EntrezGene')) { - warn <feature('EntrezGene')) { +# warn <feature('Bio::DB::GFF') || $build->feature('MySQL Tests') || diff -Nru bioperl-1.6.922/Changes bioperl-1.6.923/Changes --- bioperl-1.6.922/Changes 2013-09-14 15:45:36.000000000 +0000 +++ bioperl-1.6.923/Changes 2013-12-18 05:12:58.000000000 +0000 @@ -17,6 +17,22 @@ CPAN releases are branched from 'master'. --------------------------------------------------------- +1.6.923 + + * Major Windows support updates! [fjossandon] + * MAKER update to allow for stricter standard codon table [cjfields] + * Better support for circular sequences [fjossandon] + * Fixes for some complex location types [fjossandon] + * Address CONTIG bug in GenBank format, bug #3448 [cjfields] + * Fix bug #2978 related to BLAST report type [fjossandon] + * Deobfuscator fixes [DaveMessina] + +1.6.922 + + * Address CPAN test failures [cjfields] + * Add BIOPROJECT support for Genbank files [hyphaltip] + * Better regex support for HMMER3 output [bosborne] + 1.6.921 * Minor update to address CPAN test failures diff -Nru bioperl-1.6.922/MANIFEST bioperl-1.6.923/MANIFEST --- bioperl-1.6.922/MANIFEST 2013-09-14 15:45:43.000000000 +0000 +++ bioperl-1.6.923/MANIFEST 2013-12-18 05:12:55.000000000 +0000 @@ -827,6 +827,7 @@ DEPENDENCIES DEPRECATED doc/Deobfuscator/bin/deob_index.pl +doc/Deobfuscator/bin/run-deobfuscator-update.pl doc/Deobfuscator/Build.PL doc/Deobfuscator/cgi-bin/deob_detail.cgi doc/Deobfuscator/cgi-bin/deob_flowchart.png @@ -1153,6 +1154,7 @@ t/data/bl2seq.blastx.out t/data/bl2seq.bug940.out t/data/bl2seq.out +t/data/bl2seq.tblastn.out t/data/bl2seq.tblastx.out t/data/blast.report t/data/blast_no_hit_desc.txt @@ -1819,6 +1821,7 @@ t/data/yeast.tRNAscanSE t/data/yn00.mlc t/data/yn00_45.mlc +t/data/YP_007988852.gp t/data/ZABJ4EA7014.CH878695.1.blast.txt t/Draw/Pictogram.t t/lib/Error.pm diff -Nru bioperl-1.6.922/META.json bioperl-1.6.923/META.json --- bioperl-1.6.922/META.json 2013-09-14 15:45:36.000000000 +0000 +++ bioperl-1.6.923/META.json 2013-12-18 05:12:42.000000000 +0000 @@ -4,7 +4,7 @@ "BioPerl Team " ], "dynamic_config" : 1, - "generated_by" : "Module::Build version 0.4007, CPAN::Meta::Converter version 2.120921", + "generated_by" : "Module::Build version 0.4203", "license" : [ "perl_5" ], @@ -14,7 +14,7 @@ }, "name" : "BioPerl", "no_index" : { - "directory" : [ + "x_dir" : [ "examples/root/lib" ] }, @@ -30,7 +30,7 @@ }, "configure" : { "requires" : { - "Module::Build" : "0.40" + "Module::Build" : "0.42" } }, "runtime" : { @@ -49,7 +49,6 @@ "HTTP::Request::Common" : "0", "LWP::UserAgent" : "0", "List::MoreUtils" : "0", - "Math::Random" : "0", "PostScript::TextBlock" : "0", "SOAP::Lite" : "0", "SVG" : "2.26", @@ -78,3313 +77,11 @@ } } }, - "provides" : { - "Bio::Align::AlignI" : { - "file" : "Bio/Align/AlignI.pm", - "version" : "1.006922" - }, - "Bio::Align::DNAStatistics" : { - "file" : "Bio/Align/DNAStatistics.pm", - "version" : "1.006922" - }, - "Bio::Align::Graphics" : { - "file" : "Bio/Align/Graphics.pm", - "version" : "1.006922" - }, - "Bio::Align::PairwiseStatistics" : { - "file" : "Bio/Align/PairwiseStatistics.pm", - "version" : "1.006922" - }, - "Bio::Align::ProteinStatistics" : { - "file" : "Bio/Align/ProteinStatistics.pm", - "version" : "1.006922" - }, - "Bio::Align::StatisticsI" : { - "file" : "Bio/Align/StatisticsI.pm", - "version" : "1.006922" - }, - "Bio::Align::Utilities" : { - "file" : "Bio/Align/Utilities.pm", - "version" : "1.006922" - }, - "Bio::AlignIO" : { - "file" : "Bio/AlignIO.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::Handler::GenericAlignHandler" : { - "file" : "Bio/AlignIO/Handler/GenericAlignHandler.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::arp" : { - "file" : "Bio/AlignIO/arp.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::bl2seq" : { - "file" : "Bio/AlignIO/bl2seq.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::clustalw" : { - "file" : "Bio/AlignIO/clustalw.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::emboss" : { - "file" : "Bio/AlignIO/emboss.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::fasta" : { - "file" : "Bio/AlignIO/fasta.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::largemultifasta" : { - "file" : "Bio/AlignIO/largemultifasta.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::maf" : { - "file" : "Bio/AlignIO/maf.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::mase" : { - "file" : "Bio/AlignIO/mase.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::mega" : { - "file" : "Bio/AlignIO/mega.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::meme" : { - "file" : "Bio/AlignIO/meme.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::metafasta" : { - "file" : "Bio/AlignIO/metafasta.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::msf" : { - "file" : "Bio/AlignIO/msf.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::nexml" : { - "file" : "Bio/AlignIO/nexml.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::nexus" : { - "file" : "Bio/AlignIO/nexus.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::pfam" : { - "file" : "Bio/AlignIO/pfam.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::phylip" : { - "file" : "Bio/AlignIO/phylip.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::po" : { - "file" : "Bio/AlignIO/po.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::proda" : { - "file" : "Bio/AlignIO/proda.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::prodom" : { - "file" : "Bio/AlignIO/prodom.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::psi" : { - "file" : "Bio/AlignIO/psi.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::selex" : { - "file" : "Bio/AlignIO/selex.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::stockholm" : { - "file" : "Bio/AlignIO/stockholm.pm", - "version" : "1.006922" - }, - "Bio::AlignIO::xmfa" : { - "file" : "Bio/AlignIO/xmfa.pm", - "version" : "1.006922" - }, - "Bio::AnalysisI" : { - "file" : "Bio/AnalysisI.pm", - "version" : "1.006922" - }, - "Bio::AnalysisI::JobI" : { - "file" : "Bio/AnalysisI.pm", - "version" : "1.006922" - }, - "Bio::AnalysisParserI" : { - "file" : "Bio/AnalysisParserI.pm", - "version" : "1.006922" - }, - "Bio::AnalysisResultI" : { - "file" : "Bio/AnalysisResultI.pm", - "version" : "1.006922" - }, - "Bio::AnnotatableI" : { - "file" : "Bio/AnnotatableI.pm", - "version" : "1.006922" - }, - "Bio::Annotation::AnnotationFactory" : { - "file" : "Bio/Annotation/AnnotationFactory.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Collection" : { - "file" : "Bio/Annotation/Collection.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Comment" : { - "file" : "Bio/Annotation/Comment.pm", - "version" : "1.006922" - }, - "Bio::Annotation::DBLink" : { - "file" : "Bio/Annotation/DBLink.pm", - "version" : "1.006922" - }, - "Bio::Annotation::OntologyTerm" : { - "file" : "Bio/Annotation/OntologyTerm.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Reference" : { - "file" : "Bio/Annotation/Reference.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Relation" : { - "file" : "Bio/Annotation/Relation.pm", - "version" : "1.006922" - }, - "Bio::Annotation::SimpleValue" : { - "file" : "Bio/Annotation/SimpleValue.pm", - "version" : "1.006922" - }, - "Bio::Annotation::StructuredValue" : { - "file" : "Bio/Annotation/StructuredValue.pm", - "version" : "1.006922" - }, - "Bio::Annotation::TagTree" : { - "file" : "Bio/Annotation/TagTree.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Target" : { - "file" : "Bio/Annotation/Target.pm", - "version" : "1.006922" - }, - "Bio::Annotation::Tree" : { - "file" : "Bio/Annotation/Tree.pm", - "version" : "1.006922" - }, - "Bio::Annotation::TypeManager" : { - "file" : "Bio/Annotation/TypeManager.pm", - "version" : "1.006922" - }, - "Bio::AnnotationCollectionI" : { - "file" : "Bio/DB/HIV/HIVQueryHelper.pm", - "version" : "1.006922" - }, - "Bio::AnnotationI" : { - "file" : "Bio/AnnotationI.pm", - "version" : "1.006922" - }, - "Bio::Assembly::Contig" : { - "file" : "Bio/Assembly/Contig.pm", - "version" : "1.006922" - }, - "Bio::Assembly::ContigAnalysis" : { - "file" : "Bio/Assembly/ContigAnalysis.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO" : { - "file" : "Bio/Assembly/IO.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::ace" : { - "file" : "Bio/Assembly/IO/ace.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::bowtie" : { - "file" : "Bio/Assembly/IO/bowtie.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::maq" : { - "file" : "Bio/Assembly/IO/maq.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::phrap" : { - "file" : "Bio/Assembly/IO/phrap.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::sam" : { - "file" : "Bio/Assembly/IO/sam.pm", - "version" : "1.006922" - }, - "Bio::Assembly::IO::tigr" : { - "file" : "Bio/Assembly/IO/tigr.pm", - "version" : "1.006922" - }, - "Bio::Assembly::Scaffold" : { - "file" : "Bio/Assembly/Scaffold.pm", - "version" : "1.006922" - }, - "Bio::Assembly::ScaffoldI" : { - "file" : "Bio/Assembly/ScaffoldI.pm", - "version" : "1.006922" - }, - "Bio::Assembly::Singlet" : { - "file" : "Bio/Assembly/Singlet.pm", - "version" : "1.006922" - }, - "Bio::Assembly::Tools::ContigSpectrum" : { - "file" : "Bio/Assembly/Tools/ContigSpectrum.pm", - "version" : "1.006922" - }, - "Bio::Cluster::ClusterFactory" : { - "file" : "Bio/Cluster/ClusterFactory.pm", - "version" : "1.006922" - }, - "Bio::Cluster::FamilyI" : { - "file" : "Bio/Cluster/FamilyI.pm", - "version" : "1.006922" - }, - "Bio::Cluster::SequenceFamily" : { - "file" : "Bio/Cluster/SequenceFamily.pm", - "version" : "1.006922" - }, - "Bio::Cluster::UniGene" : { - "file" : "Bio/Cluster/UniGene.pm", - "version" : "1.006922" - }, - "Bio::Cluster::UniGeneI" : { - "file" : "Bio/Cluster/UniGeneI.pm", - "version" : "1.006922" - }, - "Bio::ClusterI" : { - "file" : "Bio/ClusterI.pm", - "version" : "1.006922" - }, - "Bio::ClusterIO" : { - "file" : "Bio/ClusterIO.pm", - "version" : "1.006922" - }, - "Bio::ClusterIO::dbsnp" : { - "file" : "Bio/ClusterIO/dbsnp.pm", - "version" : "1.006922" - }, - "Bio::ClusterIO::unigene" : { - "file" : "Bio/ClusterIO/unigene.pm", - "version" : "1.006922" - }, - "Bio::CodonUsage::IO" : { - "file" : "Bio/CodonUsage/IO.pm", - "version" : "1.006922" - }, - "Bio::CodonUsage::Table" : { - "file" : "Bio/CodonUsage/Table.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Chain" : { - "file" : "Bio/Coordinate/Chain.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Collection" : { - "file" : "Bio/Coordinate/Collection.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::ExtrapolatingPair" : { - "file" : "Bio/Coordinate/ExtrapolatingPair.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::GeneMapper" : { - "file" : "Bio/Coordinate/GeneMapper.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Graph" : { - "file" : "Bio/Coordinate/Graph.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::MapperI" : { - "file" : "Bio/Coordinate/MapperI.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Pair" : { - "file" : "Bio/Coordinate/Pair.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Result" : { - "file" : "Bio/Coordinate/Result.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Result::Gap" : { - "file" : "Bio/Coordinate/Result/Gap.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Result::Match" : { - "file" : "Bio/Coordinate/Result/Match.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::ResultI" : { - "file" : "Bio/Coordinate/ResultI.pm", - "version" : "1.006922" - }, - "Bio::Coordinate::Utils" : { - "file" : "Bio/Coordinate/Utils.pm", - "version" : "1.006922" - }, - "Bio::DB::Ace" : { - "file" : "Bio/DB/Ace.pm", - "version" : "1.006922" - }, - "Bio::DB::BioFetch" : { - "file" : "Bio/DB/BioFetch.pm", - "version" : "1.006922" - }, - "Bio::DB::CUTG" : { - "file" : "Bio/DB/CUTG.pm", - "version" : "1.006922" - }, - "Bio::DB::DBFetch" : { - "file" : "Bio/DB/DBFetch.pm", - "version" : "1.006922" - }, - "Bio::DB::EMBL" : { - "file" : "Bio/DB/EMBL.pm", - "version" : "1.006922" - }, - "Bio::DB::EntrezGene" : { - "file" : "Bio/DB/EntrezGene.pm", - "version" : "1.006922" - }, - "Bio::DB::Expression" : { - "file" : "Bio/DB/Expression.pm", - "version" : "1.006922" - }, - "Bio::DB::Expression::geo" : { - "file" : "Bio/DB/Expression/geo.pm", - "version" : "1.006922" - }, - "Bio::DB::Failover" : { - "file" : "Bio/DB/Failover.pm", - "version" : "1.006922" - }, - "Bio::DB::Fasta" : { - "file" : "Bio/DB/Fasta.pm", - "version" : "1.006922" - }, - "Bio::DB::Fasta::Subdir" : { - "file" : "Bio/DB/SeqFeature/Store/berkeleydb.pm", - "version" : "1.006922" - }, - "Bio::DB::FileCache" : { - "file" : "Bio/DB/FileCache.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat" : { - "file" : "Bio/DB/Flat.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BDB" : { - "file" : "Bio/DB/Flat/BDB.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BDB::embl" : { - "file" : "Bio/DB/Flat/BDB/embl.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BDB::fasta" : { - "file" : "Bio/DB/Flat/BDB/fasta.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BDB::genbank" : { - "file" : "Bio/DB/Flat/BDB/genbank.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BDB::swiss" : { - "file" : "Bio/DB/Flat/BDB/swiss.pm", - "version" : "1.006922" - }, - "Bio::DB::Flat::BinarySearch" : { - "file" : "Bio/DB/Flat/BinarySearch.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF" : { - "file" : "Bio/DB/GFF.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::ace" : { - "file" : "Bio/DB/GFF/Adaptor/ace.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::berkeleydb" : { - "file" : "Bio/DB/GFF/Adaptor/berkeleydb.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::berkeleydb::iterator" : { - "file" : "Bio/DB/GFF/Adaptor/berkeleydb/iterator.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::biofetch" : { - "file" : "Bio/DB/GFF/Adaptor/biofetch.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::biofetch_oracle" : { - "file" : "Bio/DB/GFF/Adaptor/biofetch_oracle.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi" : { - "file" : "Bio/DB/GFF/Adaptor/dbi.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::caching_handle" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/caching_handle.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::faux_dbh" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/caching_handle.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::iterator" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/iterator.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::mysql" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/mysql.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::mysqlace" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/mysqlace.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::mysqlcmap" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/mysqlcmap.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::mysqlopt" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/mysqlopt.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::oracle" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/oracle.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::oracleace" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/oracleace.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::pg" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/pg.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::dbi::pg_fts" : { - "file" : "Bio/DB/GFF/Adaptor/dbi/pg_fts.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::memory" : { - "file" : "Bio/DB/GFF/Adaptor/memory.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::memory::feature_serializer" : { - "file" : "Bio/DB/GFF/Adaptor/memory/feature_serializer.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Adaptor::memory::iterator" : { - "file" : "Bio/DB/GFF/Adaptor/memory/iterator.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator" : { - "file" : "Bio/DB/GFF/Aggregator.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::alignment" : { - "file" : "Bio/DB/GFF/Aggregator/alignment.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::clone" : { - "file" : "Bio/DB/GFF/Aggregator/clone.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::coding" : { - "file" : "Bio/DB/GFF/Aggregator/coding.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::gene" : { - "file" : "Bio/DB/GFF/Aggregator/gene.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::match" : { - "file" : "Bio/DB/GFF/Aggregator/match.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::none" : { - "file" : "Bio/DB/GFF/Aggregator/none.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::orf" : { - "file" : "Bio/DB/GFF/Aggregator/orf.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::processed_transcript" : { - "file" : "Bio/DB/GFF/Aggregator/processed_transcript.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::so_transcript" : { - "file" : "Bio/DB/GFF/Aggregator/so_transcript.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::transcript" : { - "file" : "Bio/DB/GFF/Aggregator/transcript.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_acembly" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_acembly.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_ensgene" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_ensgene.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_genscan" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_genscan.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_refgene" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_refgene.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_sanger22" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_sanger22.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_sanger22pseudo" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_sanger22pseudo.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_softberry" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_softberry.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_twinscan" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_twinscan.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Aggregator::ucsc_unigene" : { - "file" : "Bio/DB/GFF/Aggregator/ucsc_unigene.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Featname" : { - "file" : "Bio/DB/GFF/Featname.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Feature" : { - "file" : "Bio/DB/GFF/Feature.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::FeatureIterator" : { - "file" : "Bio/DB/GFF.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Homol" : { - "file" : "Bio/DB/GFF/Homol.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::ID_Iterator" : { - "file" : "Bio/DB/GFF.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::RelSegment" : { - "file" : "Bio/DB/GFF/RelSegment.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Segment" : { - "file" : "Bio/DB/GFF/Segment.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Typename" : { - "file" : "Bio/DB/GFF/Typename.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Util::Binning" : { - "file" : "Bio/DB/GFF/Util/Binning.pm", - "version" : "1.006922" - }, - "Bio::DB::GFF::Util::Rearrange" : { - "file" : "Bio/DB/GFF/Util/Rearrange.pm", - "version" : "1.006922" - }, - "Bio::DB::GenBank" : { - "file" : "Bio/DB/GenBank.pm", - "version" : "1.006922" - }, - "Bio::DB::GenPept" : { - "file" : "Bio/DB/GenPept.pm", - "version" : "1.006922" - }, - "Bio::DB::GenericWebAgent" : { - "file" : "Bio/DB/GenericWebAgent.pm", - "version" : "1.006922" - }, - "Bio::DB::HIV" : { - "file" : "Bio/DB/HIV.pm", - "version" : "1.006922" - }, - "Bio::DB::HIV::HIVAnnotProcessor" : { - "file" : "Bio/DB/HIV/HIVAnnotProcessor.pm", - "version" : "1.006922" - }, - "Bio::DB::HIV::HIVQueryHelper" : { - "file" : "Bio/DB/HIV/HIVQueryHelper.pm", - "version" : "1.006922" - }, - "Bio::DB::InMemoryCache" : { - "file" : "Bio/DB/InMemoryCache.pm", - "version" : "1.006922" - }, - "Bio::DB::Indexed::Stream" : { - "file" : "Bio/DB/IndexedBase.pm", - "version" : "1.006922" - }, - "Bio::DB::IndexedBase" : { - "file" : "Bio/DB/IndexedBase.pm", - "version" : "1.006922" - }, - "Bio::DB::LocationI" : { - "file" : "Bio/DB/LocationI.pm", - "version" : "1.006922" - }, - "Bio::DB::MeSH" : { - "file" : "Bio/DB/MeSH.pm", - "version" : "1.006922" - }, - "Bio::DB::NCBIHelper" : { - "file" : "Bio/DB/NCBIHelper.pm", - "version" : "1.006922" - }, - "Bio::DB::Qual" : { - "file" : "Bio/DB/Qual.pm", - "version" : "1.006922" - }, - "Bio::DB::Query::GenBank" : { - "file" : "Bio/DB/Query/GenBank.pm", - "version" : "1.006922" - }, - "Bio::DB::Query::HIVQuery" : { - "file" : "Bio/DB/Query/HIVQuery.pm", - "version" : "1.006922" - }, - "Bio::DB::Query::WebQuery" : { - "file" : "Bio/DB/Query/WebQuery.pm", - "version" : "1.006922" - }, - "Bio::DB::QueryI" : { - "file" : "Bio/DB/QueryI.pm", - "version" : "1.006922" - }, - "Bio::DB::RandomAccessI" : { - "file" : "Bio/DB/RandomAccessI.pm", - "version" : "1.006922" - }, - "Bio::DB::RefSeq" : { - "file" : "Bio/DB/RefSeq.pm", - "version" : "1.006922" - }, - "Bio::DB::ReferenceI" : { - "file" : "Bio/DB/ReferenceI.pm", - "version" : "1.006922" - }, - "Bio::DB::Registry" : { - "file" : "Bio/DB/Registry.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature" : { - "file" : "Bio/DB/SeqFeature.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::NormalizedFeature" : { - "file" : "Bio/DB/SeqFeature/NormalizedFeature.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::NormalizedFeatureI" : { - "file" : "Bio/DB/SeqFeature/NormalizedFeatureI.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::NormalizedTableFeatureI" : { - "file" : "Bio/DB/SeqFeature/NormalizedTableFeatureI.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Segment" : { - "file" : "Bio/DB/SeqFeature/Segment.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store" : { - "file" : "Bio/DB/SeqFeature/Store.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::DBI::Iterator" : { - "file" : "Bio/DB/SeqFeature/Store/DBI/Iterator.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::DBI::Pg" : { - "file" : "Bio/DB/SeqFeature/Store/DBI/Pg.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::DBI::SQLite" : { - "file" : "Bio/DB/SeqFeature/Store/DBI/SQLite.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::DBI::mysql" : { - "file" : "Bio/DB/SeqFeature/Store/DBI/mysql.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::FeatureFileLoader" : { - "file" : "Bio/DB/SeqFeature/Store/FeatureFileLoader.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::FeatureIterator" : { - "file" : "Bio/DB/SeqFeature/Store.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::GFF2Loader" : { - "file" : "Bio/DB/SeqFeature/Store/GFF2Loader.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::GFF3Loader" : { - "file" : "Bio/DB/SeqFeature/Store/GFF3Loader.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::LoadHelper" : { - "file" : "Bio/DB/SeqFeature/Store/LoadHelper.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::Loader" : { - "file" : "Bio/DB/SeqFeature/Store/Loader.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::bdb" : { - "file" : "Bio/DB/SeqFeature/Store/bdb.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::berkeleydb" : { - "file" : "Bio/DB/SeqFeature/Store/berkeleydb.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::berkeleydb3" : { - "file" : "Bio/DB/SeqFeature/Store/berkeleydb3.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::berkeleydb::Iterator" : { - "file" : "Bio/DB/SeqFeature/Store/berkeleydb.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::memory" : { - "file" : "Bio/DB/SeqFeature/Store/memory.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqFeature::Store::memory::Iterator" : { - "file" : "Bio/DB/SeqFeature/Store/memory.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqHound" : { - "file" : "Bio/DB/SeqHound.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqI" : { - "file" : "Bio/DB/SeqI.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqVersion" : { - "file" : "Bio/DB/SeqVersion.pm", - "version" : "1.006922" - }, - "Bio::DB::SeqVersion::gi" : { - "file" : "Bio/DB/SeqVersion/gi.pm", - "version" : "1.006922" - }, - "Bio::DB::SwissProt" : { - "file" : "Bio/DB/SwissProt.pm", - "version" : "1.006922" - }, - "Bio::DB::TFBS" : { - "file" : "Bio/DB/TFBS.pm", - "version" : "1.006922" - }, - "Bio::DB::TFBS::transfac_pro" : { - "file" : "Bio/DB/TFBS/transfac_pro.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy" : { - "file" : "Bio/DB/Taxonomy.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy::entrez" : { - "file" : "Bio/DB/Taxonomy/entrez.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy::flatfile" : { - "file" : "Bio/DB/Taxonomy/flatfile.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy::greengenes" : { - "file" : "Bio/DB/Taxonomy/greengenes.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy::list" : { - "file" : "Bio/DB/Taxonomy/list.pm", - "version" : "1.006922" - }, - "Bio::DB::Taxonomy::silva" : { - "file" : "Bio/DB/Taxonomy/silva.pm", - "version" : "1.006922" - }, - "Bio::DB::Universal" : { - "file" : "Bio/DB/Universal.pm", - "version" : "1.006922" - }, - "Bio::DB::UpdateableSeqI" : { - "file" : "Bio/DB/UpdateableSeqI.pm", - "version" : "1.006922" - }, - "Bio::DB::WebDBSeqI" : { - "file" : "Bio/DB/WebDBSeqI.pm", - "version" : "1.006922" - }, - "Bio::DBLinkContainerI" : { - "file" : "Bio/DBLinkContainerI.pm", - "version" : "1.006922" - }, - "Bio::Das::FeatureTypeI" : { - "file" : "Bio/Das/FeatureTypeI.pm", - "version" : "1.006922" - }, - "Bio::Das::SegmentI" : { - "file" : "Bio/Das/SegmentI.pm", - "version" : "1.006922" - }, - "Bio::DasI" : { - "file" : "Bio/DasI.pm", - "version" : "1.006922" - }, - "Bio::DescribableI" : { - "file" : "Bio/DescribableI.pm", - "version" : "1.006922" - }, - "Bio::Draw::Pictogram" : { - "file" : "Bio/Draw/Pictogram.pm", - "version" : "1.006922" - }, - "Bio::Event::EventGeneratorI" : { - "file" : "Bio/Event/EventGeneratorI.pm", - "version" : "1.006922" - }, - "Bio::Event::EventHandlerI" : { - "file" : "Bio/Event/EventHandlerI.pm", - "version" : "1.006922" - }, - "Bio::Factory::AnalysisI" : { - "file" : "Bio/Factory/AnalysisI.pm", - "version" : "1.006922" - }, - "Bio::Factory::ApplicationFactoryI" : { - "file" : "Bio/Factory/ApplicationFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::DriverFactory" : { - "file" : "Bio/Factory/DriverFactory.pm", - "version" : "1.006922" - }, - "Bio::Factory::FTLocationFactory" : { - "file" : "Bio/Factory/FTLocationFactory.pm", - "version" : "1.006922" - }, - "Bio::Factory::LocationFactoryI" : { - "file" : "Bio/Factory/LocationFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::MapFactoryI" : { - "file" : "Bio/Factory/MapFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::ObjectBuilderI" : { - "file" : "Bio/Factory/ObjectBuilderI.pm", - "version" : "1.006922" - }, - "Bio::Factory::ObjectFactory" : { - "file" : "Bio/Factory/ObjectFactory.pm", - "version" : "1.006922" - }, - "Bio::Factory::ObjectFactoryI" : { - "file" : "Bio/Factory/ObjectFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::SeqAnalysisParserFactory" : { - "file" : "Bio/Factory/SeqAnalysisParserFactory.pm", - "version" : "1.006922" - }, - "Bio::Factory::SeqAnalysisParserFactoryI" : { - "file" : "Bio/Factory/SeqAnalysisParserFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::SequenceFactoryI" : { - "file" : "Bio/Factory/SequenceFactoryI.pm", - "version" : "1.006922" - }, - "Bio::Factory::SequenceProcessorI" : { - "file" : "Bio/Factory/SequenceProcessorI.pm", - "version" : "1.006922" - }, - "Bio::Factory::SequenceStreamI" : { - "file" : "Bio/Factory/SequenceStreamI.pm", - "version" : "1.006922" - }, - "Bio::Factory::TreeFactoryI" : { - "file" : "Bio/Factory/TreeFactoryI.pm", - "version" : "1.006922" - }, - "Bio::FeatureHolderI" : { - "file" : "Bio/FeatureHolderI.pm", - "version" : "1.006922" - }, - "Bio::HandlerBaseI" : { - "file" : "Bio/HandlerBaseI.pm", - "version" : "1.006922" - }, - "Bio::IdCollectionI" : { - "file" : "Bio/IdCollectionI.pm", - "version" : "1.006922" - }, - "Bio::IdentifiableI" : { - "file" : "Bio/IdentifiableI.pm", - "version" : "1.006922" - }, - "Bio::Index::Abstract" : { - "file" : "Bio/Index/Abstract.pm", - "version" : "1.006922" - }, - "Bio::Index::AbstractSeq" : { - "file" : "Bio/Index/AbstractSeq.pm", - "version" : "1.006922" - }, - "Bio::Index::Blast" : { - "file" : "Bio/Index/Blast.pm", - "version" : "1.006922" - }, - "Bio::Index::BlastTable" : { - "file" : "Bio/Index/BlastTable.pm", - "version" : "1.006922" - }, - "Bio::Index::EMBL" : { - "file" : "Bio/Index/EMBL.pm", - "version" : "1.006922" - }, - "Bio::Index::Fasta" : { - "file" : "Bio/Index/Fasta.pm", - "version" : "1.006922" - }, - "Bio::Index::Fastq" : { - "file" : "Bio/Index/Fastq.pm", - "version" : "1.006922" - }, - "Bio::Index::GenBank" : { - "file" : "Bio/Index/GenBank.pm", - "version" : "1.006922" - }, - "Bio::Index::Hmmer" : { - "file" : "Bio/Index/Hmmer.pm", - "version" : "1.006922" - }, - "Bio::Index::Qual" : { - "file" : "Bio/Index/Qual.pm", - "version" : "1.006922" - }, - "Bio::Index::Stockholm" : { - "file" : "Bio/Index/Stockholm.pm", - "version" : "1.006922" - }, - "Bio::Index::SwissPfam" : { - "file" : "Bio/Index/SwissPfam.pm", - "version" : "1.006922" - }, - "Bio::Index::Swissprot" : { - "file" : "Bio/Index/Swissprot.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::AARange" : { - "file" : "Bio/LiveSeq/AARange.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Chain" : { - "file" : "Bio/LiveSeq/Chain.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::ChainI" : { - "file" : "Bio/LiveSeq/ChainI.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::DNA" : { - "file" : "Bio/LiveSeq/DNA.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Exon" : { - "file" : "Bio/LiveSeq/Exon.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Gene" : { - "file" : "Bio/LiveSeq/Gene.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::IO::BioPerl" : { - "file" : "Bio/LiveSeq/IO/BioPerl.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::IO::Loader" : { - "file" : "Bio/LiveSeq/IO/Loader.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Intron" : { - "file" : "Bio/LiveSeq/Intron.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Mutation" : { - "file" : "Bio/LiveSeq/Mutation.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Mutator" : { - "file" : "Bio/LiveSeq/Mutator.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Prim_Transcript" : { - "file" : "Bio/LiveSeq/Prim_Transcript.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Range" : { - "file" : "Bio/LiveSeq/Range.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Repeat_Region" : { - "file" : "Bio/LiveSeq/Repeat_Region.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Repeat_Unit" : { - "file" : "Bio/LiveSeq/Repeat_Unit.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::SeqI" : { - "file" : "Bio/LiveSeq/SeqI.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Transcript" : { - "file" : "Bio/LiveSeq/Transcript.pm", - "version" : "1.006922" - }, - "Bio::LiveSeq::Translation" : { - "file" : "Bio/LiveSeq/Translation.pm", - "version" : "1.006922" - }, - "Bio::LocatableSeq" : { - "file" : "Bio/LocatableSeq.pm", - "version" : "1.006922" - }, - "Bio::Location::Atomic" : { - "file" : "Bio/Location/Atomic.pm", - "version" : "1.006922" - }, - "Bio::Location::AvWithinCoordPolicy" : { - "file" : "Bio/Location/AvWithinCoordPolicy.pm", - "version" : "1.006922" - }, - "Bio::Location::CoordinatePolicyI" : { - "file" : "Bio/Location/CoordinatePolicyI.pm", - "version" : "1.006922" - }, - "Bio::Location::Fuzzy" : { - "file" : "Bio/Location/Fuzzy.pm", - "version" : "1.006922" - }, - "Bio::Location::FuzzyLocationI" : { - "file" : "Bio/Location/FuzzyLocationI.pm", - "version" : "1.006922" - }, - "Bio::Location::NarrowestCoordPolicy" : { - "file" : "Bio/Location/NarrowestCoordPolicy.pm", - "version" : "1.006922" - }, - "Bio::Location::Simple" : { - "file" : "Bio/Location/Simple.pm", - "version" : "1.006922" - }, - "Bio::Location::Split" : { - "file" : "Bio/Location/Split.pm", - "version" : "1.006922" - }, - "Bio::Location::SplitLocationI" : { - "file" : "Bio/Location/SplitLocationI.pm", - "version" : "1.006922" - }, - "Bio::Location::WidestCoordPolicy" : { - "file" : "Bio/Location/WidestCoordPolicy.pm", - "version" : "1.006922" - }, - "Bio::LocationI" : { - "file" : "Bio/LocationI.pm", - "version" : "1.006922" - }, - "Bio::Map::Clone" : { - "file" : "Bio/Map/Clone.pm", - "version" : "1.006922" - }, - "Bio::Map::Contig" : { - "file" : "Bio/Map/Contig.pm", - "version" : "1.006922" - }, - "Bio::Map::CytoMap" : { - "file" : "Bio/Map/CytoMap.pm", - "version" : "1.006922" - }, - "Bio::Map::CytoMarker" : { - "file" : "Bio/Map/CytoMarker.pm", - "version" : "1.006922" - }, - "Bio::Map::CytoPosition" : { - "file" : "Bio/Map/CytoPosition.pm", - "version" : "1.006922" - }, - "Bio::Map::EntityI" : { - "file" : "Bio/Map/EntityI.pm", - "version" : "1.006922" - }, - "Bio::Map::FPCMarker" : { - "file" : "Bio/Map/FPCMarker.pm", - "version" : "1.006922" - }, - "Bio::Map::Gene" : { - "file" : "Bio/Map/Gene.pm", - "version" : "1.006922" - }, - "Bio::Map::GeneMap" : { - "file" : "Bio/Map/GeneMap.pm", - "version" : "1.006922" - }, - "Bio::Map::GenePosition" : { - "file" : "Bio/Map/GenePosition.pm", - "version" : "1.006922" - }, - "Bio::Map::GeneRelative" : { - "file" : "Bio/Map/GeneRelative.pm", - "version" : "1.006922" - }, - "Bio::Map::LinkageMap" : { - "file" : "Bio/Map/LinkageMap.pm", - "version" : "1.006922" - }, - "Bio::Map::LinkagePosition" : { - "file" : "Bio/Map/LinkagePosition.pm", - "version" : "1.006922" - }, - "Bio::Map::MapI" : { - "file" : "Bio/Map/MapI.pm", - "version" : "1.006922" - }, - "Bio::Map::Mappable" : { - "file" : "Bio/Map/Mappable.pm", - "version" : "1.006922" - }, - "Bio::Map::MappableI" : { - "file" : "Bio/Map/MappableI.pm", - "version" : "1.006922" - }, - "Bio::Map::Marker" : { - "file" : "Bio/Map/Marker.pm", - "version" : "1.006922" - }, - "Bio::Map::MarkerI" : { - "file" : "Bio/Map/MarkerI.pm", - "version" : "1.006922" - }, - "Bio::Map::Microsatellite" : { - "file" : "Bio/Map/Microsatellite.pm", - "version" : "1.006922" - }, - "Bio::Map::OrderedPosition" : { - "file" : "Bio/Map/OrderedPosition.pm", - "version" : "1.006922" - }, - "Bio::Map::OrderedPositionWithDistance" : { - "file" : "Bio/Map/OrderedPositionWithDistance.pm", - "version" : "1.006922" - }, - "Bio::Map::Physical" : { - "file" : "Bio/Map/Physical.pm", - "version" : "1.006922" - }, - "Bio::Map::Position" : { - "file" : "Bio/Map/Position.pm", - "version" : "1.006922" - }, - "Bio::Map::PositionHandler" : { - "file" : "Bio/Map/PositionHandler.pm", - "version" : "1.006922" - }, - "Bio::Map::PositionHandlerI" : { - "file" : "Bio/Map/PositionHandlerI.pm", - "version" : "1.006922" - }, - "Bio::Map::PositionI" : { - "file" : "Bio/Map/PositionI.pm", - "version" : "1.006922" - }, - "Bio::Map::PositionWithSequence" : { - "file" : "Bio/Map/PositionWithSequence.pm", - "version" : "1.006922" - }, - "Bio::Map::Prediction" : { - "file" : "Bio/Map/Prediction.pm", - "version" : "1.006922" - }, - "Bio::Map::Relative" : { - "file" : "Bio/Map/Relative.pm", - "version" : "1.006922" - }, - "Bio::Map::RelativeI" : { - "file" : "Bio/Map/RelativeI.pm", - "version" : "1.006922" - }, - "Bio::Map::SimpleMap" : { - "file" : "Bio/Map/SimpleMap.pm", - "version" : "1.006922" - }, - "Bio::Map::TranscriptionFactor" : { - "file" : "Bio/Map/TranscriptionFactor.pm", - "version" : "1.006922" - }, - "Bio::MapIO" : { - "file" : "Bio/MapIO.pm", - "version" : "1.006922" - }, - "Bio::MapIO::fpc" : { - "file" : "Bio/MapIO/fpc.pm", - "version" : "1.006922" - }, - "Bio::MapIO::mapmaker" : { - "file" : "Bio/MapIO/mapmaker.pm", - "version" : "1.006922" - }, - "Bio::Matrix::Generic" : { - "file" : "Bio/Matrix/Generic.pm", - "version" : "1.006922" - }, - "Bio::Matrix::IO" : { - "file" : "Bio/Matrix/IO.pm", - "version" : "1.006922" - }, - "Bio::Matrix::IO::mlagan" : { - "file" : "Bio/Matrix/IO/mlagan.pm", - "version" : "1.006922" - }, - "Bio::Matrix::IO::phylip" : { - "file" : "Bio/Matrix/IO/phylip.pm", - "version" : "1.006922" - }, - "Bio::Matrix::IO::scoring" : { - "file" : "Bio/Matrix/IO/scoring.pm", - "version" : "1.006922" - }, - "Bio::Matrix::MatrixI" : { - "file" : "Bio/Matrix/MatrixI.pm", - "version" : "1.006922" - }, - "Bio::Matrix::Mlagan" : { - "file" : "Bio/Matrix/Mlagan.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO" : { - "file" : "Bio/Matrix/PSM/IO.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO::mast" : { - "file" : "Bio/Matrix/PSM/IO/mast.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO::masta" : { - "file" : "Bio/Matrix/PSM/IO/masta.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO::meme" : { - "file" : "Bio/Matrix/PSM/IO/meme.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO::psiblast" : { - "file" : "Bio/Matrix/PSM/IO/psiblast.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::IO::transfac" : { - "file" : "Bio/Matrix/PSM/IO/transfac.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::InstanceSite" : { - "file" : "Bio/Matrix/PSM/InstanceSite.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::InstanceSiteI" : { - "file" : "Bio/Matrix/PSM/InstanceSiteI.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::ProtMatrix" : { - "file" : "Bio/Matrix/PSM/ProtMatrix.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::ProtPsm" : { - "file" : "Bio/Matrix/PSM/ProtPsm.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::Psm" : { - "file" : "Bio/Matrix/PSM/Psm.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::PsmHeader" : { - "file" : "Bio/Matrix/PSM/PsmHeader.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::PsmHeaderI" : { - "file" : "Bio/Matrix/PSM/PsmHeaderI.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::PsmI" : { - "file" : "Bio/Matrix/PSM/PsmI.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::SiteMatrix" : { - "file" : "Bio/Matrix/PSM/SiteMatrix.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PSM::SiteMatrixI" : { - "file" : "Bio/Matrix/PSM/SiteMatrixI.pm", - "version" : "1.006922" - }, - "Bio::Matrix::PhylipDist" : { - "file" : "Bio/Matrix/PhylipDist.pm", - "version" : "1.006922" - }, - "Bio::Matrix::Scoring" : { - "file" : "Bio/Matrix/Scoring.pm", - "version" : "1.006922" - }, - "Bio::MolEvol::CodonModel" : { - "file" : "Bio/MolEvol/CodonModel.pm", - "version" : "1.006922" - }, - "Bio::Nexml::Factory" : { - "file" : "Bio/Nexml/Factory.pm", - "version" : "1.006922" - }, - "Bio::NexmlIO" : { - "file" : "Bio/NexmlIO.pm", - "version" : "1.006922" - }, - "Bio::Ontology::DocumentRegistry" : { - "file" : "Bio/Ontology/DocumentRegistry.pm", - "version" : "1.006922" - }, - "Bio::Ontology::GOterm" : { - "file" : "Bio/Ontology/GOterm.pm", - "version" : "1.006922" - }, - "Bio::Ontology::InterProTerm" : { - "file" : "Bio/Ontology/InterProTerm.pm", - "version" : "1.006922" - }, - "Bio::Ontology::OBOEngine" : { - "file" : "Bio/Ontology/OBOEngine.pm", - "version" : "1.006922" - }, - "Bio::Ontology::OBOterm" : { - "file" : "Bio/Ontology/OBOterm.pm", - "version" : "1.006922" - }, - "Bio::Ontology::Ontology" : { - "file" : "Bio/Ontology/Ontology.pm", - "version" : "1.006922" - }, - "Bio::Ontology::OntologyEngineI" : { - "file" : "Bio/Ontology/OntologyEngineI.pm", - "version" : "1.006922" - }, - "Bio::Ontology::OntologyI" : { - "file" : "Bio/Ontology/OntologyI.pm", - "version" : "1.006922" - }, - "Bio::Ontology::OntologyStore" : { - "file" : "Bio/Ontology/OntologyStore.pm", - "version" : "1.006922" - }, - "Bio::Ontology::Path" : { - "file" : "Bio/Ontology/Path.pm", - "version" : "1.006922" - }, - "Bio::Ontology::PathI" : { - "file" : "Bio/Ontology/PathI.pm", - "version" : "1.006922" - }, - "Bio::Ontology::Relationship" : { - "file" : "Bio/Ontology/Relationship.pm", - "version" : "1.006922" - }, - "Bio::Ontology::RelationshipFactory" : { - "file" : "Bio/Ontology/RelationshipFactory.pm", - "version" : "1.006922" - }, - "Bio::Ontology::RelationshipI" : { - "file" : "Bio/Ontology/RelationshipI.pm", - "version" : "1.006922" - }, - "Bio::Ontology::RelationshipType" : { - "file" : "Bio/Ontology/RelationshipType.pm", - "version" : "1.006922" - }, - "Bio::Ontology::SimpleGOEngine::GraphAdaptor" : { - "file" : "Bio/Ontology/SimpleGOEngine/GraphAdaptor.pm", - "version" : "1.006922" - }, - "Bio::Ontology::SimpleOntologyEngine" : { - "file" : "Bio/Ontology/SimpleOntologyEngine.pm", - "version" : "1.006922" - }, - "Bio::Ontology::Term" : { - "file" : "Bio/Ontology/Term.pm", - "version" : "1.006922" - }, - "Bio::Ontology::TermFactory" : { - "file" : "Bio/Ontology/TermFactory.pm", - "version" : "1.006922" - }, - "Bio::Ontology::TermI" : { - "file" : "Bio/Ontology/TermI.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO" : { - "file" : "Bio/OntologyIO.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::Handlers::BaseSAXHandler" : { - "file" : "Bio/OntologyIO/Handlers/BaseSAXHandler.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::Handlers::InterProHandler" : { - "file" : "Bio/OntologyIO/Handlers/InterProHandler.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::Handlers::InterPro_BioSQL_Handler" : { - "file" : "Bio/OntologyIO/Handlers/InterPro_BioSQL_Handler.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::InterProParser" : { - "file" : "Bio/OntologyIO/InterProParser.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::dagflat" : { - "file" : "Bio/OntologyIO/dagflat.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::goflat" : { - "file" : "Bio/OntologyIO/goflat.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::obo" : { - "file" : "Bio/OntologyIO/obo.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::simplehierarchy" : { - "file" : "Bio/OntologyIO/simplehierarchy.pm", - "version" : "1.006922" - }, - "Bio::OntologyIO::soflat" : { - "file" : "Bio/OntologyIO/soflat.pm", - "version" : "1.006922" - }, - "Bio::ParameterBaseI" : { - "file" : "Bio/ParameterBaseI.pm", - "version" : "1.006922" - }, - "Bio::Perl" : { - "file" : "Bio/Perl.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::Correlate" : { - "file" : "Bio/Phenotype/Correlate.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::MeSH::Term" : { - "file" : "Bio/Phenotype/MeSH/Term.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::MeSH::Twig" : { - "file" : "Bio/Phenotype/MeSH/Twig.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::Measure" : { - "file" : "Bio/Phenotype/Measure.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::OMIM::MiniMIMentry" : { - "file" : "Bio/Phenotype/OMIM/MiniMIMentry.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::OMIM::OMIMentry" : { - "file" : "Bio/Phenotype/OMIM/OMIMentry.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::OMIM::OMIMentryAllelicVariant" : { - "file" : "Bio/Phenotype/OMIM/OMIMentryAllelicVariant.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::OMIM::OMIMparser" : { - "file" : "Bio/Phenotype/OMIM/OMIMparser.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::Phenotype" : { - "file" : "Bio/Phenotype/Phenotype.pm", - "version" : "1.006922" - }, - "Bio::Phenotype::PhenotypeI" : { - "file" : "Bio/Phenotype/PhenotypeI.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork" : { - "file" : "Bio/PhyloNetwork.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::Factory" : { - "file" : "Bio/PhyloNetwork/Factory.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::FactoryX" : { - "file" : "Bio/PhyloNetwork/FactoryX.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::GraphViz" : { - "file" : "Bio/PhyloNetwork/GraphViz.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::RandomFactory" : { - "file" : "Bio/PhyloNetwork/RandomFactory.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::TreeFactory" : { - "file" : "Bio/PhyloNetwork/TreeFactory.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::TreeFactoryMulti" : { - "file" : "Bio/PhyloNetwork/TreeFactoryMulti.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::TreeFactoryX" : { - "file" : "Bio/PhyloNetwork/TreeFactoryX.pm", - "version" : "1.006922" - }, - "Bio::PhyloNetwork::muVector" : { - "file" : "Bio/PhyloNetwork/muVector.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Genotype" : { - "file" : "Bio/PopGen/Genotype.pm", - "version" : "1.006922" - }, - "Bio::PopGen::GenotypeI" : { - "file" : "Bio/PopGen/GenotypeI.pm", - "version" : "1.006922" - }, - "Bio::PopGen::HtSNP" : { - "file" : "Bio/PopGen/HtSNP.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IO" : { - "file" : "Bio/PopGen/IO.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IO::csv" : { - "file" : "Bio/PopGen/IO/csv.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IO::hapmap" : { - "file" : "Bio/PopGen/IO/hapmap.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IO::phase" : { - "file" : "Bio/PopGen/IO/phase.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IO::prettybase" : { - "file" : "Bio/PopGen/IO/prettybase.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Individual" : { - "file" : "Bio/PopGen/Individual.pm", - "version" : "1.006922" - }, - "Bio::PopGen::IndividualI" : { - "file" : "Bio/PopGen/IndividualI.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Marker" : { - "file" : "Bio/PopGen/Marker.pm", - "version" : "1.006922" - }, - "Bio::PopGen::MarkerI" : { - "file" : "Bio/PopGen/MarkerI.pm", - "version" : "1.006922" - }, - "Bio::PopGen::PopStats" : { - "file" : "Bio/PopGen/PopStats.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Population" : { - "file" : "Bio/PopGen/Population.pm", - "version" : "1.006922" - }, - "Bio::PopGen::PopulationI" : { - "file" : "Bio/PopGen/PopulationI.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Simulation::Coalescent" : { - "file" : "Bio/PopGen/Simulation/Coalescent.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Simulation::GeneticDrift" : { - "file" : "Bio/PopGen/Simulation/GeneticDrift.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Statistics" : { - "file" : "Bio/PopGen/Statistics.pm", - "version" : "1.006922" - }, - "Bio::PopGen::TagHaplotype" : { - "file" : "Bio/PopGen/TagHaplotype.pm", - "version" : "1.006922" - }, - "Bio::PopGen::Utilities" : { - "file" : "Bio/PopGen/Utilities.pm", - "version" : "1.006922" - }, - "Bio::PrimarySeq" : { - "file" : "Bio/PrimarySeq.pm", - "version" : "1.006922" - }, - "Bio::PrimarySeq::Fasta" : { - "file" : "Bio/DB/Fasta.pm", - "version" : "1.006922" - }, - "Bio::PrimarySeqI" : { - "file" : "Bio/PrimarySeqI.pm", - "version" : "1.006922" - }, - "Bio::PullParserI" : { - "file" : "Bio/PullParserI.pm", - "version" : "1.006922" - }, - "Bio::Range" : { - "file" : "Bio/Range.pm", - "version" : "1.006922" - }, - "Bio::RangeI" : { - "file" : "Bio/RangeI.pm", - "version" : "1.006922" - }, - "Bio::Restriction::Analysis" : { - "file" : "Bio/Restriction/Analysis.pm", - "version" : "1.006922" - }, - "Bio::Restriction::Enzyme" : { - "file" : "Bio/Restriction/Enzyme.pm", - "version" : "1.006922" - }, - "Bio::Restriction::Enzyme::MultiCut" : { - "file" : "Bio/Restriction/Enzyme/MultiCut.pm", - "version" : "1.006922" - }, - "Bio::Restriction::Enzyme::MultiSite" : { - "file" : "Bio/Restriction/Enzyme/MultiSite.pm", - "version" : "1.006922" - }, - "Bio::Restriction::EnzymeCollection" : { - "file" : "Bio/Restriction/EnzymeCollection.pm", - "version" : "1.006922" - }, - "Bio::Restriction::EnzymeI" : { - "file" : "Bio/Restriction/EnzymeI.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO" : { - "file" : "Bio/Restriction/IO.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO::bairoch" : { - "file" : "Bio/Restriction/IO/bairoch.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO::base" : { - "file" : "Bio/Restriction/IO/base.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO::itype2" : { - "file" : "Bio/Restriction/IO/itype2.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO::prototype" : { - "file" : "Bio/Restriction/IO/prototype.pm", - "version" : "1.006922" - }, - "Bio::Restriction::IO::withrefm" : { - "file" : "Bio/Restriction/IO/withrefm.pm", - "version" : "1.006922" - }, - "Bio::Root::Build" : { - "file" : "Bio/Root/Build.pm", - "version" : "1.006922" - }, - "Bio::Root::Exception" : { - "file" : "Bio/Root/Exception.pm", - "version" : "1.006922" - }, - "Bio::Root::HTTPget" : { - "file" : "Bio/Root/HTTPget.pm", - "version" : "1.006922" - }, - "Bio::Root::IO" : { - "file" : "Bio/Root/IO.pm", - "version" : "1.006922" - }, - "Bio::Root::Root" : { - "file" : "Bio/Root/Root.pm", - "version" : "1.006922" - }, - "Bio::Root::RootI" : { - "file" : "Bio/Root/RootI.pm", - "version" : "1.006922" - }, - "Bio::Root::Storable" : { - "file" : "Bio/Root/Storable.pm", - "version" : "1.006922" - }, - "Bio::Root::Test" : { - "file" : "Bio/Root/Test.pm", - "version" : "1.006922" - }, - "Bio::Root::Utilities" : { - "file" : "Bio/Root/Utilities.pm", - "version" : "1.006922" - }, - "Bio::Root::Version" : { - "file" : "Bio/Root/Version.pm", - "version" : "1.006922" - }, - "Bio::Search::BlastStatistics" : { - "file" : "Bio/Search/BlastStatistics.pm", - "version" : "1.006922" - }, - "Bio::Search::BlastUtils" : { - "file" : "Bio/Search/BlastUtils.pm", - "version" : "1.006922" - }, - "Bio::Search::DatabaseI" : { - "file" : "Bio/Search/DatabaseI.pm", - "version" : "1.006922" - }, - "Bio::Search::GenericDatabase" : { - "file" : "Bio/Search/GenericDatabase.pm", - "version" : "1.006922" - }, - "Bio::Search::GenericStatistics" : { - "file" : "Bio/Search/GenericStatistics.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::BlastHSP" : { - "file" : "Bio/Search/HSP/BlastHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::BlastPullHSP" : { - "file" : "Bio/Search/HSP/BlastPullHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::FastaHSP" : { - "file" : "Bio/Search/HSP/FastaHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::GenericHSP" : { - "file" : "Bio/Search/HSP/GenericHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::HMMERHSP" : { - "file" : "Bio/Search/HSP/HMMERHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::HSPFactory" : { - "file" : "Bio/Search/HSP/HSPFactory.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::HSPI" : { - "file" : "Bio/Search/HSP/HSPI.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::HmmpfamHSP" : { - "file" : "Bio/Search/HSP/HmmpfamHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::ModelHSP" : { - "file" : "Bio/Search/HSP/ModelHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::PSLHSP" : { - "file" : "Bio/Search/HSP/PSLHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::PsiBlastHSP" : { - "file" : "Bio/Search/HSP/PsiBlastHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::PullHSPI" : { - "file" : "Bio/Search/HSP/PullHSPI.pm", - "version" : "1.006922" - }, - "Bio::Search::HSP::WABAHSP" : { - "file" : "Bio/Search/HSP/WABAHSP.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::BlastHit" : { - "file" : "Bio/Search/Hit/BlastHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::BlastPullHit" : { - "file" : "Bio/Search/Hit/BlastPullHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::Fasta" : { - "file" : "Bio/Search/Hit/Fasta.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::GenericHit" : { - "file" : "Bio/Search/Hit/GenericHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::HMMERHit" : { - "file" : "Bio/Search/Hit/HMMERHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::HitFactory" : { - "file" : "Bio/Search/Hit/HitFactory.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::HitI" : { - "file" : "Bio/Search/Hit/HitI.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::HmmpfamHit" : { - "file" : "Bio/Search/Hit/HmmpfamHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::ModelHit" : { - "file" : "Bio/Search/Hit/ModelHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::PsiBlastHit" : { - "file" : "Bio/Search/Hit/PsiBlastHit.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::PullHitI" : { - "file" : "Bio/Search/Hit/PullHitI.pm", - "version" : "1.006922" - }, - "Bio::Search::Hit::hmmer3Hit" : { - "file" : "Bio/Search/Hit/hmmer3Hit.pm", - "version" : "1.006922" - }, - "Bio::Search::Iteration::GenericIteration" : { - "file" : "Bio/Search/Iteration/GenericIteration.pm", - "version" : "1.006922" - }, - "Bio::Search::Iteration::IterationI" : { - "file" : "Bio/Search/Iteration/IterationI.pm", - "version" : "1.006922" - }, - "Bio::Search::Processor" : { - "file" : "Bio/Search/Processor.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::BlastPullResult" : { - "file" : "Bio/Search/Result/BlastPullResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::BlastResult" : { - "file" : "Bio/Search/Result/BlastResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::CrossMatchResult" : { - "file" : "Bio/Search/Result/CrossMatchResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::GenericResult" : { - "file" : "Bio/Search/Result/GenericResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::HMMERResult" : { - "file" : "Bio/Search/Result/HMMERResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::HmmpfamResult" : { - "file" : "Bio/Search/Result/HmmpfamResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::PullResultI" : { - "file" : "Bio/Search/Result/PullResultI.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::ResultFactory" : { - "file" : "Bio/Search/Result/ResultFactory.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::ResultI" : { - "file" : "Bio/Search/Result/ResultI.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::WABAResult" : { - "file" : "Bio/Search/Result/WABAResult.pm", - "version" : "1.006922" - }, - "Bio::Search::Result::hmmer3Result" : { - "file" : "Bio/Search/Result/hmmer3Result.pm", - "version" : "1.006922" - }, - "Bio::Search::SearchUtils" : { - "file" : "Bio/Search/SearchUtils.pm", - "version" : "1.006922" - }, - "Bio::Search::StatisticsI" : { - "file" : "Bio/Search/StatisticsI.pm", - "version" : "1.006922" - }, - "Bio::Search::Tiling::MapTileUtils" : { - "file" : "Bio/Search/Tiling/MapTileUtils.pm", - "version" : "1.006922" - }, - "Bio::Search::Tiling::MapTiling" : { - "file" : "Bio/Search/Tiling/MapTiling.pm", - "version" : "1.006922" - }, - "Bio::Search::Tiling::TilingI" : { - "file" : "Bio/Search/Tiling/TilingI.pm", - "version" : "1.006922" - }, - "Bio::SearchDist" : { - "file" : "Bio/SearchDist.pm", - "version" : "1.006922" - }, - "Bio::SearchIO" : { - "file" : "Bio/SearchIO.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::EventHandlerI" : { - "file" : "Bio/SearchIO/EventHandlerI.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::FastHitEventBuilder" : { - "file" : "Bio/SearchIO/FastHitEventBuilder.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::IteratedSearchResultEventBuilder" : { - "file" : "Bio/SearchIO/IteratedSearchResultEventBuilder.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::SearchResultEventBuilder" : { - "file" : "Bio/SearchIO/SearchResultEventBuilder.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::SearchWriterI" : { - "file" : "Bio/SearchIO/SearchWriterI.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::BSMLResultWriter" : { - "file" : "Bio/SearchIO/Writer/BSMLResultWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::GbrowseGFF" : { - "file" : "Bio/SearchIO/Writer/GbrowseGFF.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::HSPTableWriter" : { - "file" : "Bio/SearchIO/Writer/HSPTableWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::HTMLResultWriter" : { - "file" : "Bio/SearchIO/Writer/HTMLResultWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::HitTableWriter" : { - "file" : "Bio/SearchIO/Writer/HitTableWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::ResultTableWriter" : { - "file" : "Bio/SearchIO/Writer/ResultTableWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::Writer::TextResultWriter" : { - "file" : "Bio/SearchIO/Writer/TextResultWriter.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::XML::BlastHandler" : { - "file" : "Bio/SearchIO/XML/BlastHandler.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::XML::PsiBlastHandler" : { - "file" : "Bio/SearchIO/XML/PsiBlastHandler.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::axt" : { - "file" : "Bio/SearchIO/axt.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::blast" : { - "file" : "Bio/SearchIO/blast.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::blast_pull" : { - "file" : "Bio/SearchIO/blast_pull.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::blasttable" : { - "file" : "Bio/SearchIO/blasttable.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::blastxml" : { - "file" : "Bio/SearchIO/blastxml.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::cross_match" : { - "file" : "Bio/SearchIO/cross_match.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::erpin" : { - "file" : "Bio/SearchIO/erpin.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::exonerate" : { - "file" : "Bio/SearchIO/exonerate.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::fasta" : { - "file" : "Bio/SearchIO/fasta.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::gmap_f9" : { - "file" : "Bio/SearchIO/gmap_f9.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::hmmer" : { - "file" : "Bio/SearchIO/hmmer.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::hmmer2" : { - "file" : "Bio/SearchIO/hmmer2.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::hmmer3" : { - "file" : "Bio/SearchIO/hmmer3.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::hmmer_pull" : { - "file" : "Bio/SearchIO/hmmer_pull.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::infernal" : { - "file" : "Bio/SearchIO/infernal.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::megablast" : { - "file" : "Bio/SearchIO/megablast.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::psl" : { - "file" : "Bio/SearchIO/psl.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::rnamotif" : { - "file" : "Bio/SearchIO/rnamotif.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::sim4" : { - "file" : "Bio/SearchIO/sim4.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::waba" : { - "file" : "Bio/SearchIO/waba.pm", - "version" : "1.006922" - }, - "Bio::SearchIO::wise" : { - "file" : "Bio/SearchIO/wise.pm", - "version" : "1.006922" - }, - "Bio::Seq" : { - "file" : "Bio/Seq.pm", - "version" : "1.006922" - }, - "Bio::Seq::BaseSeqProcessor" : { - "file" : "Bio/Seq/BaseSeqProcessor.pm", - "version" : "1.006922" - }, - "Bio::Seq::EncodedSeq" : { - "file" : "Bio/Seq/EncodedSeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::LargeLocatableSeq" : { - "file" : "Bio/Seq/LargeLocatableSeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::LargePrimarySeq" : { - "file" : "Bio/Seq/LargePrimarySeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::LargeSeq" : { - "file" : "Bio/Seq/LargeSeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::LargeSeqI" : { - "file" : "Bio/Seq/LargeSeqI.pm", - "version" : "1.006922" - }, - "Bio::Seq::Meta" : { - "file" : "Bio/Seq/Meta.pm", - "version" : "1.006922" - }, - "Bio::Seq::Meta::Array" : { - "file" : "Bio/Seq/Meta/Array.pm", - "version" : "1.006922" - }, - "Bio::Seq::MetaI" : { - "file" : "Bio/Seq/MetaI.pm", - "version" : "1.006922" - }, - "Bio::Seq::PrimaryQual" : { - "file" : "Bio/Seq/PrimaryQual.pm", - "version" : "1.006922" - }, - "Bio::Seq::PrimaryQual::Qual" : { - "file" : "Bio/DB/Qual.pm", - "version" : "1.006922" - }, - "Bio::Seq::PrimedSeq" : { - "file" : "Bio/Seq/PrimedSeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::QualI" : { - "file" : "Bio/Seq/QualI.pm", - "version" : "1.006922" - }, - "Bio::Seq::Quality" : { - "file" : "Bio/Seq/Quality.pm", - "version" : "1.006922" - }, - "Bio::Seq::RichSeq" : { - "file" : "Bio/Seq/RichSeq.pm", - "version" : "1.006922" - }, - "Bio::Seq::RichSeqI" : { - "file" : "Bio/Seq/RichSeqI.pm", - "version" : "1.006922" - }, - "Bio::Seq::SeqBuilder" : { - "file" : "Bio/Seq/SeqBuilder.pm", - "version" : "1.006922" - }, - "Bio::Seq::SeqFactory" : { - "file" : "Bio/Seq/SeqFactory.pm", - "version" : "1.006922" - }, - "Bio::Seq::SeqFastaSpeedFactory" : { - "file" : "Bio/Seq/SeqFastaSpeedFactory.pm", - "version" : "1.006922" - }, - "Bio::Seq::SeqWithQuality" : { - "file" : "Bio/Seq/SeqWithQuality.pm", - "version" : "1.006922" - }, - "Bio::Seq::SequenceTrace" : { - "file" : "Bio/Seq/SequenceTrace.pm", - "version" : "1.006922" - }, - "Bio::Seq::SimulatedRead" : { - "file" : "Bio/Seq/SimulatedRead.pm", - "version" : "1.006922" - }, - "Bio::Seq::TraceI" : { - "file" : "Bio/Seq/TraceI.pm", - "version" : "1.006922" - }, - "Bio::SeqAnalysisParserI" : { - "file" : "Bio/SeqAnalysisParserI.pm", - "version" : "1.006922" - }, - "Bio::SeqEvolution::DNAPoint" : { - "file" : "Bio/SeqEvolution/DNAPoint.pm", - "version" : "1.006922" - }, - "Bio::SeqEvolution::EvolutionI" : { - "file" : "Bio/SeqEvolution/EvolutionI.pm", - "version" : "1.006922" - }, - "Bio::SeqEvolution::Factory" : { - "file" : "Bio/SeqEvolution/Factory.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Amplicon" : { - "file" : "Bio/SeqFeature/Amplicon.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::AnnotationAdaptor" : { - "file" : "Bio/SeqFeature/AnnotationAdaptor.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Collection" : { - "file" : "Bio/SeqFeature/Collection.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::CollectionI" : { - "file" : "Bio/SeqFeature/CollectionI.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Computation" : { - "file" : "Bio/SeqFeature/Computation.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::FeaturePair" : { - "file" : "Bio/SeqFeature/FeaturePair.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::Exon" : { - "file" : "Bio/SeqFeature/Gene/Exon.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::ExonI" : { - "file" : "Bio/SeqFeature/Gene/ExonI.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::GeneStructure" : { - "file" : "Bio/SeqFeature/Gene/GeneStructure.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::GeneStructureI" : { - "file" : "Bio/SeqFeature/Gene/GeneStructureI.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::Intron" : { - "file" : "Bio/SeqFeature/Gene/Intron.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::NC_Feature" : { - "file" : "Bio/SeqFeature/Gene/NC_Feature.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::Poly_A_site" : { - "file" : "Bio/SeqFeature/Gene/Poly_A_site.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::Promoter" : { - "file" : "Bio/SeqFeature/Gene/Promoter.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::Transcript" : { - "file" : "Bio/SeqFeature/Gene/Transcript.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::TranscriptI" : { - "file" : "Bio/SeqFeature/Gene/TranscriptI.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Gene::UTR" : { - "file" : "Bio/SeqFeature/Gene/UTR.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Generic" : { - "file" : "Bio/SeqFeature/Generic.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Lite" : { - "file" : "Bio/SeqFeature/Lite.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::PositionProxy" : { - "file" : "Bio/SeqFeature/PositionProxy.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Primer" : { - "file" : "Bio/SeqFeature/Primer.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::SiRNA::Oligo" : { - "file" : "Bio/SeqFeature/SiRNA/Oligo.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::SiRNA::Pair" : { - "file" : "Bio/SeqFeature/SiRNA/Pair.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Similarity" : { - "file" : "Bio/SeqFeature/Similarity.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::SimilarityPair" : { - "file" : "Bio/SeqFeature/SimilarityPair.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::SubSeq" : { - "file" : "Bio/SeqFeature/SubSeq.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Tools::FeatureNamer" : { - "file" : "Bio/SeqFeature/Tools/FeatureNamer.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Tools::IDHandler" : { - "file" : "Bio/SeqFeature/Tools/IDHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Tools::TypeMapper" : { - "file" : "Bio/SeqFeature/Tools/TypeMapper.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::Tools::Unflattener" : { - "file" : "Bio/SeqFeature/Tools/Unflattener.pm", - "version" : "1.006922" - }, - "Bio::SeqFeature::TypedSeqFeatureI" : { - "file" : "Bio/SeqFeature/TypedSeqFeatureI.pm", - "version" : "1.006922" - }, - "Bio::SeqFeatureI" : { - "file" : "Bio/SeqFeatureI.pm", - "version" : "1.006922" - }, - "Bio::SeqI" : { - "file" : "Bio/SeqI.pm", - "version" : "1.006922" - }, - "Bio::SeqIO" : { - "file" : "Bio/SeqIO.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::FTHelper" : { - "file" : "Bio/SeqIO/FTHelper.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::Handler::GenericRichSeqHandler" : { - "file" : "Bio/SeqIO/Handler/GenericRichSeqHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::MultiFile" : { - "file" : "Bio/SeqIO/MultiFile.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::abi" : { - "file" : "Bio/SeqIO/abi.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::ace" : { - "file" : "Bio/SeqIO/ace.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::agave" : { - "file" : "Bio/SeqIO/agave.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::alf" : { - "file" : "Bio/SeqIO/alf.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::asciitree" : { - "file" : "Bio/SeqIO/asciitree.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::bsml" : { - "file" : "Bio/SeqIO/bsml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::bsml_sax" : { - "file" : "Bio/SeqIO/bsml_sax.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::chadoxml" : { - "file" : "Bio/SeqIO/chadoxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::chaos" : { - "file" : "Bio/SeqIO/chaos.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::chaosxml" : { - "file" : "Bio/SeqIO/chaosxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::ctf" : { - "file" : "Bio/SeqIO/ctf.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::embl" : { - "file" : "Bio/SeqIO/embl.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::embldriver" : { - "file" : "Bio/SeqIO/embldriver.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::entrezgene" : { - "file" : "Bio/SeqIO/entrezgene.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::excel" : { - "file" : "Bio/SeqIO/excel.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::exp" : { - "file" : "Bio/SeqIO/exp.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::fasta" : { - "file" : "Bio/SeqIO/fasta.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::fastq" : { - "file" : "Bio/SeqIO/fastq.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::flybase_chadoxml" : { - "file" : "Bio/SeqIO/flybase_chadoxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game" : { - "file" : "Bio/SeqIO/game.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game::featHandler" : { - "file" : "Bio/SeqIO/game/featHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game::gameHandler" : { - "file" : "Bio/SeqIO/game/gameHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game::gameSubs" : { - "file" : "Bio/SeqIO/game/gameSubs.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game::gameWriter" : { - "file" : "Bio/SeqIO/game/gameWriter.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::game::seqHandler" : { - "file" : "Bio/SeqIO/game/seqHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::gbdriver" : { - "file" : "Bio/SeqIO/gbdriver.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::gbxml" : { - "file" : "Bio/SeqIO/gbxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::gcg" : { - "file" : "Bio/SeqIO/gcg.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::genbank" : { - "file" : "Bio/SeqIO/genbank.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::interpro" : { - "file" : "Bio/SeqIO/interpro.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::kegg" : { - "file" : "Bio/SeqIO/kegg.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::largefasta" : { - "file" : "Bio/SeqIO/largefasta.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::lasergene" : { - "file" : "Bio/SeqIO/lasergene.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::locuslink" : { - "file" : "Bio/SeqIO/locuslink.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::mbsout" : { - "file" : "Bio/SeqIO/mbsout.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::metafasta" : { - "file" : "Bio/SeqIO/metafasta.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::msout" : { - "file" : "Bio/SeqIO/msout.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::nexml" : { - "file" : "Bio/SeqIO/nexml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::phd" : { - "file" : "Bio/SeqIO/phd.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::pir" : { - "file" : "Bio/SeqIO/pir.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::pln" : { - "file" : "Bio/SeqIO/pln.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::qual" : { - "file" : "Bio/SeqIO/qual.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::raw" : { - "file" : "Bio/SeqIO/raw.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::scf" : { - "file" : "Bio/SeqIO/scf.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::seqxml" : { - "file" : "Bio/SeqIO/seqxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::strider" : { - "file" : "Bio/SeqIO/strider.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::swiss" : { - "file" : "Bio/SeqIO/swiss.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::swissdriver" : { - "file" : "Bio/SeqIO/swissdriver.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::tab" : { - "file" : "Bio/SeqIO/tab.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::table" : { - "file" : "Bio/SeqIO/table.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::tigr" : { - "file" : "Bio/SeqIO/tigr.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::tigrxml" : { - "file" : "Bio/SeqIO/tigrxml.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::tinyseq" : { - "file" : "Bio/SeqIO/tinyseq.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::tinyseq::tinyseqHandler" : { - "file" : "Bio/SeqIO/tinyseq/tinyseqHandler.pm", - "version" : "1.006922" - }, - "Bio::SeqIO::ztr" : { - "file" : "Bio/SeqIO/ztr.pm", - "version" : "1.006922" - }, - "Bio::SeqUtils" : { - "file" : "Bio/SeqUtils.pm", - "version" : "1.006922" - }, - "Bio::SimpleAlign" : { - "file" : "Bio/SimpleAlign.pm", - "version" : "1.006922" - }, - "Bio::SimpleAnalysisI" : { - "file" : "Bio/SimpleAnalysisI.pm", - "version" : "1.006922" - }, - "Bio::Species" : { - "file" : "Bio/Species.pm", - "version" : "1.006922" - }, - "Bio::Structure::Atom" : { - "file" : "Bio/Structure/Atom.pm", - "version" : "1.006922" - }, - "Bio::Structure::Chain" : { - "file" : "Bio/Structure/Chain.pm", - "version" : "1.006922" - }, - "Bio::Structure::Entry" : { - "file" : "Bio/Structure/Entry.pm", - "version" : "1.006922" - }, - "Bio::Structure::IO" : { - "file" : "Bio/Structure/IO.pm", - "version" : "1.006922" - }, - "Bio::Structure::IO::pdb" : { - "file" : "Bio/Structure/IO/pdb.pm", - "version" : "1.006922" - }, - "Bio::Structure::Model" : { - "file" : "Bio/Structure/Model.pm", - "version" : "1.006922" - }, - "Bio::Structure::Residue" : { - "file" : "Bio/Structure/Residue.pm", - "version" : "1.006922" - }, - "Bio::Structure::SecStr::DSSP::Res" : { - "file" : "Bio/Structure/SecStr/DSSP/Res.pm", - "version" : "1.006922" - }, - "Bio::Structure::SecStr::STRIDE::Res" : { - "file" : "Bio/Structure/SecStr/STRIDE/Res.pm", - "version" : "1.006922" - }, - "Bio::Structure::StructureI" : { - "file" : "Bio/Structure/StructureI.pm", - "version" : "1.006922" - }, - "Bio::Symbol::Alphabet" : { - "file" : "Bio/Symbol/Alphabet.pm", - "version" : "1.006922" - }, - "Bio::Symbol::AlphabetI" : { - "file" : "Bio/Symbol/AlphabetI.pm", - "version" : "1.006922" - }, - "Bio::Symbol::DNAAlphabet" : { - "file" : "Bio/Symbol/DNAAlphabet.pm", - "version" : "1.006922" - }, - "Bio::Symbol::ProteinAlphabet" : { - "file" : "Bio/Symbol/ProteinAlphabet.pm", - "version" : "1.006922" - }, - "Bio::Symbol::Symbol" : { - "file" : "Bio/Symbol/Symbol.pm", - "version" : "1.006922" - }, - "Bio::Symbol::SymbolI" : { - "file" : "Bio/Symbol/SymbolI.pm", - "version" : "1.006922" - }, - "Bio::Taxon" : { - "file" : "Bio/Taxon.pm", - "version" : "1.006922" - }, - "Bio::Taxonomy" : { - "file" : "Bio/Taxonomy.pm", - "version" : "1.006922" - }, - "Bio::Taxonomy::FactoryI" : { - "file" : "Bio/Taxonomy/FactoryI.pm", - "version" : "1.006922" - }, - "Bio::Taxonomy::Node" : { - "file" : "Bio/Taxonomy/Node.pm", - "version" : "1.006922" - }, - "Bio::Taxonomy::Taxon" : { - "file" : "Bio/Taxonomy/Taxon.pm", - "version" : "1.006922" - }, - "Bio::Taxonomy::Tree" : { - "file" : "Bio/Taxonomy/Tree.pm", - "version" : "1.006922" - }, - "Bio::Tools::AlignFactory" : { - "file" : "Bio/Tools/AlignFactory.pm", - "version" : "1.006922" - }, - "Bio::Tools::Alignment::Consed" : { - "file" : "Bio/Tools/Alignment/Consed.pm", - "version" : "1.006922" - }, - "Bio::Tools::Alignment::Trim" : { - "file" : "Bio/Tools/Alignment/Trim.pm", - "version" : "1.006922" - }, - "Bio::Tools::AmpliconSearch" : { - "file" : "Bio/Tools/AmpliconSearch.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::DNA::ESEfinder" : { - "file" : "Bio/Tools/Analysis/DNA/ESEfinder.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::Domcut" : { - "file" : "Bio/Tools/Analysis/Protein/Domcut.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::ELM" : { - "file" : "Bio/Tools/Analysis/Protein/ELM.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::GOR4" : { - "file" : "Bio/Tools/Analysis/Protein/GOR4.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::HNN" : { - "file" : "Bio/Tools/Analysis/Protein/HNN.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::Mitoprot" : { - "file" : "Bio/Tools/Analysis/Protein/Mitoprot.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::NetPhos" : { - "file" : "Bio/Tools/Analysis/Protein/NetPhos.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::Scansite" : { - "file" : "Bio/Tools/Analysis/Protein/Scansite.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::Protein::Sopma" : { - "file" : "Bio/Tools/Analysis/Protein/Sopma.pm", - "version" : "1.006922" - }, - "Bio::Tools::Analysis::SimpleAnalysisBase" : { - "file" : "Bio/Tools/Analysis/SimpleAnalysisBase.pm", - "version" : "1.006922" - }, - "Bio::Tools::AnalysisResult" : { - "file" : "Bio/Tools/AnalysisResult.pm", - "version" : "1.006922" - }, - "Bio::Tools::Blat" : { - "file" : "Bio/Tools/Blat.pm", - "version" : "1.006922" - }, - "Bio::Tools::CodonTable" : { - "file" : "Bio/Tools/CodonTable.pm", - "version" : "1.006922" - }, - "Bio::Tools::Coil" : { - "file" : "Bio/Tools/Coil.pm", - "version" : "1.006922" - }, - "Bio::Tools::ECnumber" : { - "file" : "Bio/Tools/ECnumber.pm", - "version" : "1.006922" - }, - "Bio::Tools::EMBOSS::Palindrome" : { - "file" : "Bio/Tools/EMBOSS/Palindrome.pm", - "version" : "1.006922" - }, - "Bio::Tools::EPCR" : { - "file" : "Bio/Tools/EPCR.pm", - "version" : "1.006922" - }, - "Bio::Tools::ERPIN" : { - "file" : "Bio/Tools/ERPIN.pm", - "version" : "1.006922" - }, - "Bio::Tools::ESTScan" : { - "file" : "Bio/Tools/ESTScan.pm", - "version" : "1.006922" - }, - "Bio::Tools::Eponine" : { - "file" : "Bio/Tools/Eponine.pm", - "version" : "1.006922" - }, - "Bio::Tools::Est2Genome" : { - "file" : "Bio/Tools/Est2Genome.pm", - "version" : "1.006922" - }, - "Bio::Tools::Fgenesh" : { - "file" : "Bio/Tools/Fgenesh.pm", - "version" : "1.006922" - }, - "Bio::Tools::FootPrinter" : { - "file" : "Bio/Tools/FootPrinter.pm", - "version" : "1.006922" - }, - "Bio::Tools::GFF" : { - "file" : "Bio/Tools/GFF.pm", - "version" : "1.006922" - }, - "Bio::Tools::Gel" : { - "file" : "Bio/Tools/Gel.pm", - "version" : "1.006922" - }, - "Bio::Tools::Geneid" : { - "file" : "Bio/Tools/Geneid.pm", - "version" : "1.006922" - }, - "Bio::Tools::Genemark" : { - "file" : "Bio/Tools/Genemark.pm", - "version" : "1.006922" - }, - "Bio::Tools::Genewise" : { - "file" : "Bio/Tools/Genewise.pm", - "version" : "1.006922" - }, - "Bio::Tools::Genomewise" : { - "file" : "Bio/Tools/Genomewise.pm", - "version" : "1.006922" - }, - "Bio::Tools::Genscan" : { - "file" : "Bio/Tools/Genscan.pm", - "version" : "1.006922" - }, - "Bio::Tools::Glimmer" : { - "file" : "Bio/Tools/Glimmer.pm", - "version" : "1.006922" - }, - "Bio::Tools::Grail" : { - "file" : "Bio/Tools/Grail.pm", - "version" : "1.006922" - }, - "Bio::Tools::GuessSeqFormat" : { - "file" : "Bio/Tools/GuessSeqFormat.pm", - "version" : "1.006922" - }, - "Bio::Tools::HMMER::Domain" : { - "file" : "Bio/Tools/HMMER/Domain.pm", - "version" : "1.006922" - }, - "Bio::Tools::HMMER::Results" : { - "file" : "Bio/Tools/HMMER/Results.pm", - "version" : "1.006922" - }, - "Bio::Tools::HMMER::Set" : { - "file" : "Bio/Tools/HMMER/Set.pm", - "version" : "1.006922" - }, - "Bio::Tools::Hmmpfam" : { - "file" : "Bio/Tools/Hmmpfam.pm", - "version" : "1.006922" - }, - "Bio::Tools::IUPAC" : { - "file" : "Bio/Tools/IUPAC.pm", - "version" : "1.006922" - }, - "Bio::Tools::Infernal" : { - "file" : "Bio/Tools/Infernal.pm", - "version" : "1.006922" - }, - "Bio::Tools::Lucy" : { - "file" : "Bio/Tools/Lucy.pm", - "version" : "1.006922" - }, - "Bio::Tools::MZEF" : { - "file" : "Bio/Tools/MZEF.pm", - "version" : "1.006922" - }, - "Bio::Tools::Match" : { - "file" : "Bio/Tools/Match.pm", - "version" : "1.006922" - }, - "Bio::Tools::OddCodes" : { - "file" : "Bio/Tools/OddCodes.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::Gerp" : { - "file" : "Bio/Tools/Phylo/Gerp.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::Gumby" : { - "file" : "Bio/Tools/Phylo/Gumby.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::Molphy" : { - "file" : "Bio/Tools/Phylo/Molphy.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::Molphy::Result" : { - "file" : "Bio/Tools/Phylo/Molphy/Result.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::PAML" : { - "file" : "Bio/Tools/Phylo/PAML.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::PAML::Codeml" : { - "file" : "Bio/Tools/Phylo/PAML/Codeml.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::PAML::ModelResult" : { - "file" : "Bio/Tools/Phylo/PAML/ModelResult.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::PAML::Result" : { - "file" : "Bio/Tools/Phylo/PAML/Result.pm", - "version" : "1.006922" - }, - "Bio::Tools::Phylo::Phylip::ProtDist" : { - "file" : "Bio/Tools/Phylo/Phylip/ProtDist.pm", - "version" : "1.006922" - }, - "Bio::Tools::Prediction::Exon" : { - "file" : "Bio/Tools/Prediction/Exon.pm", - "version" : "1.006922" - }, - "Bio::Tools::Prediction::Gene" : { - "file" : "Bio/Tools/Prediction/Gene.pm", - "version" : "1.006922" - }, - "Bio::Tools::Primer3" : { - "file" : "Bio/Tools/Primer3.pm", - "version" : "1.006922" - }, - "Bio::Tools::Primer::Assessor::Base" : { - "file" : "Bio/Tools/Primer/Assessor/Base.pm", - "version" : "1.006922" - }, - "Bio::Tools::Primer::AssessorI" : { - "file" : "Bio/Tools/Primer/AssessorI.pm", - "version" : "1.006922" - }, - "Bio::Tools::Primer::Feature" : { - "file" : "Bio/Tools/Primer/Feature.pm", - "version" : "1.006922" - }, - "Bio::Tools::Primer::Pair" : { - "file" : "Bio/Tools/Primer/Pair.pm", - "version" : "1.006922" - }, - "Bio::Tools::Prints" : { - "file" : "Bio/Tools/Prints.pm", - "version" : "1.006922" - }, - "Bio::Tools::Profile" : { - "file" : "Bio/Tools/Profile.pm", - "version" : "1.006922" - }, - "Bio::Tools::Promoterwise" : { - "file" : "Bio/Tools/Promoterwise.pm", - "version" : "1.006922" - }, - "Bio::Tools::PrositeScan" : { - "file" : "Bio/Tools/PrositeScan.pm", - "version" : "1.006922" - }, - "Bio::Tools::Protparam" : { - "file" : "Bio/Tools/Protparam.pm", - "version" : "1.006922" - }, - "Bio::Tools::Pseudowise" : { - "file" : "Bio/Tools/Pseudowise.pm", - "version" : "1.006922" - }, - "Bio::Tools::QRNA" : { - "file" : "Bio/Tools/QRNA.pm", - "version" : "1.006922" - }, - "Bio::Tools::RNAMotif" : { - "file" : "Bio/Tools/RNAMotif.pm", - "version" : "1.006922" - }, - "Bio::Tools::RandomDistFunctions" : { - "file" : "Bio/Tools/RandomDistFunctions.pm", - "version" : "1.006922" - }, - "Bio::Tools::RepeatMasker" : { - "file" : "Bio/Tools/RepeatMasker.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::GenericParameters" : { - "file" : "Bio/Tools/Run/GenericParameters.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::ParametersI" : { - "file" : "Bio/Tools/Run/ParametersI.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::RemoteBlast" : { - "file" : "Bio/Tools/Run/RemoteBlast.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::StandAloneBlast" : { - "file" : "Bio/Tools/Run/StandAloneBlast.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::StandAloneNCBIBlast" : { - "file" : "Bio/Tools/Run/StandAloneNCBIBlast.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::StandAloneWUBlast" : { - "file" : "Bio/Tools/Run/StandAloneWUBlast.pm", - "version" : "1.006922" - }, - "Bio::Tools::Run::WrapperBase" : { - "file" : "Bio/Tools/Run/WrapperBase/CommandExts.pm", - "version" : "1.006922" - }, - "Bio::Tools::Seg" : { - "file" : "Bio/Tools/Seg.pm", - "version" : "1.006922" - }, - "Bio::Tools::SeqPattern" : { - "file" : "Bio/Tools/SeqPattern.pm", - "version" : "1.006922" - }, - "Bio::Tools::SeqPattern::Backtranslate" : { - "file" : "Bio/Tools/SeqPattern/Backtranslate.pm", - "version" : "1.006922" - }, - "Bio::Tools::SeqStats" : { - "file" : "Bio/Tools/SeqStats.pm", - "version" : "1.006922" - }, - "Bio::Tools::SeqWords" : { - "file" : "Bio/Tools/SeqWords.pm", - "version" : "1.006922" - }, - "Bio::Tools::SiRNA" : { - "file" : "Bio/Tools/SiRNA.pm", - "version" : "1.006922" - }, - "Bio::Tools::SiRNA::Ruleset::saigo" : { - "file" : "Bio/Tools/SiRNA/Ruleset/saigo.pm", - "version" : "1.006922" - }, - "Bio::Tools::SiRNA::Ruleset::tuschl" : { - "file" : "Bio/Tools/SiRNA/Ruleset/tuschl.pm", - "version" : "1.006922" - }, - "Bio::Tools::Sigcleave" : { - "file" : "Bio/Tools/Sigcleave.pm", - "version" : "1.006922" - }, - "Bio::Tools::Signalp" : { - "file" : "Bio/Tools/Signalp.pm", - "version" : "1.006922" - }, - "Bio::Tools::Signalp::ExtendedSignalp" : { - "file" : "Bio/Tools/Signalp/ExtendedSignalp.pm", - "version" : "1.006922" - }, - "Bio::Tools::Sim4::Exon" : { - "file" : "Bio/Tools/Sim4/Exon.pm", - "version" : "1.006922" - }, - "Bio::Tools::Sim4::Results" : { - "file" : "Bio/Tools/Sim4/Results.pm", - "version" : "1.006922" - }, - "Bio::Tools::Spidey::Exon" : { - "file" : "Bio/Tools/Spidey/Exon.pm", - "version" : "1.006922" - }, - "Bio::Tools::Spidey::Results" : { - "file" : "Bio/Tools/Spidey/Results.pm", - "version" : "1.006922" - }, - "Bio::Tools::TandemRepeatsFinder" : { - "file" : "Bio/Tools/TandemRepeatsFinder.pm", - "version" : "1.006922" - }, - "Bio::Tools::TargetP" : { - "file" : "Bio/Tools/TargetP.pm", - "version" : "1.006922" - }, - "Bio::Tools::Tmhmm" : { - "file" : "Bio/Tools/Tmhmm.pm", - "version" : "1.006922" - }, - "Bio::Tools::dpAlign" : { - "file" : "Bio/Tools/dpAlign.pm", - "version" : "1.006922" - }, - "Bio::Tools::ipcress" : { - "file" : "Bio/Tools/ipcress.pm", - "version" : "1.006922" - }, - "Bio::Tools::isPcr" : { - "file" : "Bio/Tools/isPcr.pm", - "version" : "1.006922" - }, - "Bio::Tools::pICalculator" : { - "file" : "Bio/Tools/pICalculator.pm", - "version" : "1.006922" - }, - "Bio::Tools::pSW" : { - "file" : "Bio/Tools/pSW.pm", - "version" : "1.006922" - }, - "Bio::Tools::tRNAscanSE" : { - "file" : "Bio/Tools/tRNAscanSE.pm", - "version" : "1.006922" - }, - "Bio::Tree::AlleleNode" : { - "file" : "Bio/Tree/AlleleNode.pm", - "version" : "1.006922" - }, - "Bio::Tree::AnnotatableNode" : { - "file" : "Bio/Tree/AnnotatableNode.pm", - "version" : "1.006922" - }, - "Bio::Tree::Compatible" : { - "file" : "Bio/Tree/Compatible.pm", - "version" : "1.006922" - }, - "Bio::Tree::DistanceFactory" : { - "file" : "Bio/Tree/DistanceFactory.pm", - "version" : "1.006922" - }, - "Bio::Tree::Draw::Cladogram" : { - "file" : "Bio/Tree/Draw/Cladogram.pm", - "version" : "1.006922" - }, - "Bio::Tree::Node" : { - "file" : "Bio/Tree/Node.pm", - "version" : "1.006922" - }, - "Bio::Tree::NodeI" : { - "file" : "Bio/Tree/NodeI.pm", - "version" : "1.006922" - }, - "Bio::Tree::NodeNHX" : { - "file" : "Bio/Tree/NodeNHX.pm", - "version" : "1.006922" - }, - "Bio::Tree::RandomFactory" : { - "file" : "Bio/Tree/RandomFactory.pm", - "version" : "1.006922" - }, - "Bio::Tree::Statistics" : { - "file" : "Bio/Tree/Statistics.pm", - "version" : "1.006922" - }, - "Bio::Tree::Tree" : { - "file" : "Bio/Tree/Tree.pm", - "version" : "1.006922" - }, - "Bio::Tree::TreeFunctionsI" : { - "file" : "Bio/Tree/TreeFunctionsI.pm", - "version" : "1.006922" - }, - "Bio::Tree::TreeI" : { - "file" : "Bio/Tree/TreeI.pm", - "version" : "1.006922" - }, - "Bio::TreeIO" : { - "file" : "Bio/TreeIO.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::NewickParser" : { - "file" : "Bio/TreeIO/NewickParser.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::TreeEventBuilder" : { - "file" : "Bio/TreeIO/TreeEventBuilder.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::cluster" : { - "file" : "Bio/TreeIO/cluster.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::lintree" : { - "file" : "Bio/TreeIO/lintree.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::newick" : { - "file" : "Bio/TreeIO/newick.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::nexml" : { - "file" : "Bio/TreeIO/nexml.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::nexus" : { - "file" : "Bio/TreeIO/nexus.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::nhx" : { - "file" : "Bio/TreeIO/nhx.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::pag" : { - "file" : "Bio/TreeIO/pag.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::phyloxml" : { - "file" : "Bio/TreeIO/phyloxml.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::svggraph" : { - "file" : "Bio/TreeIO/svggraph.pm", - "version" : "1.006922" - }, - "Bio::TreeIO::tabtree" : { - "file" : "Bio/TreeIO/tabtree.pm", - "version" : "1.006922" - }, - "Bio::UpdateableSeqI" : { - "file" : "Bio/UpdateableSeqI.pm", - "version" : "1.006922" - }, - "Bio::Variation::AAChange" : { - "file" : "Bio/Variation/AAChange.pm", - "version" : "1.006922" - }, - "Bio::Variation::AAReverseMutate" : { - "file" : "Bio/Variation/AAReverseMutate.pm", - "version" : "1.006922" - }, - "Bio::Variation::Allele" : { - "file" : "Bio/Variation/Allele.pm", - "version" : "1.006922" - }, - "Bio::Variation::DNAMutation" : { - "file" : "Bio/Variation/DNAMutation.pm", - "version" : "1.006922" - }, - "Bio::Variation::IO" : { - "file" : "Bio/Variation/IO.pm", - "version" : "1.006922" - }, - "Bio::Variation::IO::flat" : { - "file" : "Bio/Variation/IO/flat.pm", - "version" : "1.006922" - }, - "Bio::Variation::IO::xml" : { - "file" : "Bio/Variation/IO/xml.pm", - "version" : "1.006922" - }, - "Bio::Variation::RNAChange" : { - "file" : "Bio/Variation/RNAChange.pm", - "version" : "1.006922" - }, - "Bio::Variation::SNP" : { - "file" : "Bio/Variation/SNP.pm", - "version" : "1.006922" - }, - "Bio::Variation::SeqDiff" : { - "file" : "Bio/Variation/SeqDiff.pm", - "version" : "1.006922" - }, - "Bio::Variation::VariantI" : { - "file" : "Bio/Variation/VariantI.pm", - "version" : "1.006922" - }, - "Bio::WebAgent" : { - "file" : "Bio/WebAgent.pm", - "version" : "1.006922" - }, - "FeatureStore" : { - "file" : "Bio/DB/GFF/Adaptor/berkeleydb.pm", - "version" : "1.006922" - } - }, "release_status" : "stable", "resources" : { "license" : [ "http://dev.perl.org/licenses/" ] }, - "version" : "1.006922" + "version" : "1.006923" } diff -Nru bioperl-1.6.922/META.yml bioperl-1.6.923/META.yml --- bioperl-1.6.922/META.yml 2013-09-14 15:46:05.000000000 +0000 +++ bioperl-1.6.923/META.yml 2013-12-18 05:12:44.000000000 +0000 @@ -9,2493 +9,17 @@ Test::Most: 0 URI::Escape: 0 configure_requires: - Module::Build: 0.40 + Module::Build: 0.42 dynamic_config: 1 -generated_by: 'Module::Build version 0.4007, CPAN::Meta::Converter version 2.120921' +generated_by: 'Module::Build version 0.4203, CPAN::Meta::Converter version 2.132830' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: BioPerl no_index: - directory: + x_dir: - examples/root/lib -provides: - Bio::Align::AlignI: - file: Bio/Align/AlignI.pm - version: 1.006922 - Bio::Align::DNAStatistics: - file: Bio/Align/DNAStatistics.pm - version: 1.006922 - Bio::Align::Graphics: - file: Bio/Align/Graphics.pm - version: 1.006922 - Bio::Align::PairwiseStatistics: - file: Bio/Align/PairwiseStatistics.pm - version: 1.006922 - Bio::Align::ProteinStatistics: - file: Bio/Align/ProteinStatistics.pm - version: 1.006922 - Bio::Align::StatisticsI: - file: Bio/Align/StatisticsI.pm - version: 1.006922 - Bio::Align::Utilities: - file: Bio/Align/Utilities.pm - version: 1.006922 - Bio::AlignIO: - file: Bio/AlignIO.pm - version: 1.006922 - Bio::AlignIO::Handler::GenericAlignHandler: - file: Bio/AlignIO/Handler/GenericAlignHandler.pm - version: 1.006922 - Bio::AlignIO::arp: - file: Bio/AlignIO/arp.pm - version: 1.006922 - Bio::AlignIO::bl2seq: - file: Bio/AlignIO/bl2seq.pm - version: 1.006922 - Bio::AlignIO::clustalw: - file: Bio/AlignIO/clustalw.pm - version: 1.006922 - Bio::AlignIO::emboss: - file: Bio/AlignIO/emboss.pm - version: 1.006922 - Bio::AlignIO::fasta: - file: Bio/AlignIO/fasta.pm - version: 1.006922 - Bio::AlignIO::largemultifasta: - file: Bio/AlignIO/largemultifasta.pm - version: 1.006922 - Bio::AlignIO::maf: - file: Bio/AlignIO/maf.pm - version: 1.006922 - Bio::AlignIO::mase: - file: Bio/AlignIO/mase.pm - version: 1.006922 - Bio::AlignIO::mega: - file: Bio/AlignIO/mega.pm - version: 1.006922 - Bio::AlignIO::meme: - file: Bio/AlignIO/meme.pm - version: 1.006922 - Bio::AlignIO::metafasta: - file: Bio/AlignIO/metafasta.pm - version: 1.006922 - Bio::AlignIO::msf: - file: Bio/AlignIO/msf.pm - version: 1.006922 - Bio::AlignIO::nexml: - file: Bio/AlignIO/nexml.pm - version: 1.006922 - Bio::AlignIO::nexus: - file: Bio/AlignIO/nexus.pm - version: 1.006922 - Bio::AlignIO::pfam: - file: Bio/AlignIO/pfam.pm - version: 1.006922 - Bio::AlignIO::phylip: - file: Bio/AlignIO/phylip.pm - version: 1.006922 - Bio::AlignIO::po: - file: Bio/AlignIO/po.pm - version: 1.006922 - Bio::AlignIO::proda: - file: Bio/AlignIO/proda.pm - version: 1.006922 - Bio::AlignIO::prodom: - file: Bio/AlignIO/prodom.pm - version: 1.006922 - Bio::AlignIO::psi: - file: Bio/AlignIO/psi.pm - version: 1.006922 - Bio::AlignIO::selex: - file: Bio/AlignIO/selex.pm - version: 1.006922 - Bio::AlignIO::stockholm: - file: Bio/AlignIO/stockholm.pm - version: 1.006922 - Bio::AlignIO::xmfa: - file: Bio/AlignIO/xmfa.pm - version: 1.006922 - Bio::AnalysisI: - file: Bio/AnalysisI.pm - version: 1.006922 - Bio::AnalysisI::JobI: - file: Bio/AnalysisI.pm - version: 1.006922 - Bio::AnalysisParserI: - file: Bio/AnalysisParserI.pm - version: 1.006922 - Bio::AnalysisResultI: - file: Bio/AnalysisResultI.pm - version: 1.006922 - Bio::AnnotatableI: - file: Bio/AnnotatableI.pm - version: 1.006922 - Bio::Annotation::AnnotationFactory: - file: Bio/Annotation/AnnotationFactory.pm - version: 1.006922 - Bio::Annotation::Collection: - file: Bio/Annotation/Collection.pm - version: 1.006922 - Bio::Annotation::Comment: - file: Bio/Annotation/Comment.pm - version: 1.006922 - Bio::Annotation::DBLink: - file: Bio/Annotation/DBLink.pm - version: 1.006922 - Bio::Annotation::OntologyTerm: - file: Bio/Annotation/OntologyTerm.pm - version: 1.006922 - Bio::Annotation::Reference: - file: Bio/Annotation/Reference.pm - version: 1.006922 - Bio::Annotation::Relation: - file: Bio/Annotation/Relation.pm - version: 1.006922 - Bio::Annotation::SimpleValue: - file: Bio/Annotation/SimpleValue.pm - version: 1.006922 - Bio::Annotation::StructuredValue: - file: Bio/Annotation/StructuredValue.pm - version: 1.006922 - Bio::Annotation::TagTree: - file: Bio/Annotation/TagTree.pm - version: 1.006922 - Bio::Annotation::Target: - file: Bio/Annotation/Target.pm - version: 1.006922 - Bio::Annotation::Tree: - file: Bio/Annotation/Tree.pm - version: 1.006922 - Bio::Annotation::TypeManager: - file: Bio/Annotation/TypeManager.pm - version: 1.006922 - Bio::AnnotationCollectionI: - file: Bio/DB/HIV/HIVQueryHelper.pm - version: 1.006922 - Bio::AnnotationI: - file: Bio/AnnotationI.pm - version: 1.006922 - Bio::Assembly::Contig: - file: Bio/Assembly/Contig.pm - version: 1.006922 - Bio::Assembly::ContigAnalysis: - file: Bio/Assembly/ContigAnalysis.pm - version: 1.006922 - Bio::Assembly::IO: - file: Bio/Assembly/IO.pm - version: 1.006922 - Bio::Assembly::IO::ace: - file: Bio/Assembly/IO/ace.pm - version: 1.006922 - Bio::Assembly::IO::bowtie: - file: Bio/Assembly/IO/bowtie.pm - version: 1.006922 - Bio::Assembly::IO::maq: - file: Bio/Assembly/IO/maq.pm - version: 1.006922 - Bio::Assembly::IO::phrap: - file: Bio/Assembly/IO/phrap.pm - version: 1.006922 - Bio::Assembly::IO::sam: - file: Bio/Assembly/IO/sam.pm - version: 1.006922 - Bio::Assembly::IO::tigr: - file: Bio/Assembly/IO/tigr.pm - version: 1.006922 - Bio::Assembly::Scaffold: - file: Bio/Assembly/Scaffold.pm - version: 1.006922 - Bio::Assembly::ScaffoldI: - file: Bio/Assembly/ScaffoldI.pm - version: 1.006922 - Bio::Assembly::Singlet: - file: Bio/Assembly/Singlet.pm - version: 1.006922 - Bio::Assembly::Tools::ContigSpectrum: - file: Bio/Assembly/Tools/ContigSpectrum.pm - version: 1.006922 - Bio::Cluster::ClusterFactory: - file: Bio/Cluster/ClusterFactory.pm - version: 1.006922 - Bio::Cluster::FamilyI: - file: Bio/Cluster/FamilyI.pm - version: 1.006922 - Bio::Cluster::SequenceFamily: - file: Bio/Cluster/SequenceFamily.pm - version: 1.006922 - Bio::Cluster::UniGene: - file: Bio/Cluster/UniGene.pm - version: 1.006922 - Bio::Cluster::UniGeneI: - file: Bio/Cluster/UniGeneI.pm - version: 1.006922 - Bio::ClusterI: - file: Bio/ClusterI.pm - version: 1.006922 - Bio::ClusterIO: - file: Bio/ClusterIO.pm - version: 1.006922 - Bio::ClusterIO::dbsnp: - file: Bio/ClusterIO/dbsnp.pm - version: 1.006922 - Bio::ClusterIO::unigene: - file: Bio/ClusterIO/unigene.pm - version: 1.006922 - Bio::CodonUsage::IO: - file: Bio/CodonUsage/IO.pm - version: 1.006922 - Bio::CodonUsage::Table: - file: Bio/CodonUsage/Table.pm - version: 1.006922 - Bio::Coordinate::Chain: - file: Bio/Coordinate/Chain.pm - version: 1.006922 - Bio::Coordinate::Collection: - file: Bio/Coordinate/Collection.pm - version: 1.006922 - Bio::Coordinate::ExtrapolatingPair: - file: Bio/Coordinate/ExtrapolatingPair.pm - version: 1.006922 - Bio::Coordinate::GeneMapper: - file: Bio/Coordinate/GeneMapper.pm - version: 1.006922 - Bio::Coordinate::Graph: - file: Bio/Coordinate/Graph.pm - version: 1.006922 - Bio::Coordinate::MapperI: - file: Bio/Coordinate/MapperI.pm - version: 1.006922 - Bio::Coordinate::Pair: - file: Bio/Coordinate/Pair.pm - version: 1.006922 - Bio::Coordinate::Result: - file: Bio/Coordinate/Result.pm - version: 1.006922 - Bio::Coordinate::Result::Gap: - file: Bio/Coordinate/Result/Gap.pm - version: 1.006922 - Bio::Coordinate::Result::Match: - file: Bio/Coordinate/Result/Match.pm - version: 1.006922 - Bio::Coordinate::ResultI: - file: Bio/Coordinate/ResultI.pm - version: 1.006922 - Bio::Coordinate::Utils: - file: Bio/Coordinate/Utils.pm - version: 1.006922 - Bio::DB::Ace: - file: Bio/DB/Ace.pm - version: 1.006922 - Bio::DB::BioFetch: - file: Bio/DB/BioFetch.pm - version: 1.006922 - Bio::DB::CUTG: - file: Bio/DB/CUTG.pm - version: 1.006922 - Bio::DB::DBFetch: - file: Bio/DB/DBFetch.pm - version: 1.006922 - Bio::DB::EMBL: - file: Bio/DB/EMBL.pm - version: 1.006922 - Bio::DB::EntrezGene: - file: Bio/DB/EntrezGene.pm - version: 1.006922 - Bio::DB::Expression: - file: Bio/DB/Expression.pm - version: 1.006922 - Bio::DB::Expression::geo: - file: Bio/DB/Expression/geo.pm - version: 1.006922 - Bio::DB::Failover: - file: Bio/DB/Failover.pm - version: 1.006922 - Bio::DB::Fasta: - file: Bio/DB/Fasta.pm - version: 1.006922 - Bio::DB::Fasta::Subdir: - file: Bio/DB/SeqFeature/Store/berkeleydb.pm - version: 1.006922 - Bio::DB::FileCache: - file: Bio/DB/FileCache.pm - version: 1.006922 - Bio::DB::Flat: - file: Bio/DB/Flat.pm - version: 1.006922 - Bio::DB::Flat::BDB: - file: Bio/DB/Flat/BDB.pm - version: 1.006922 - Bio::DB::Flat::BDB::embl: - file: Bio/DB/Flat/BDB/embl.pm - version: 1.006922 - Bio::DB::Flat::BDB::fasta: - file: Bio/DB/Flat/BDB/fasta.pm - version: 1.006922 - Bio::DB::Flat::BDB::genbank: - file: Bio/DB/Flat/BDB/genbank.pm - version: 1.006922 - Bio::DB::Flat::BDB::swiss: - file: Bio/DB/Flat/BDB/swiss.pm - version: 1.006922 - Bio::DB::Flat::BinarySearch: - file: Bio/DB/Flat/BinarySearch.pm - version: 1.006922 - Bio::DB::GFF: - file: Bio/DB/GFF.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::ace: - file: Bio/DB/GFF/Adaptor/ace.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::berkeleydb: - file: Bio/DB/GFF/Adaptor/berkeleydb.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::berkeleydb::iterator: - file: Bio/DB/GFF/Adaptor/berkeleydb/iterator.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::biofetch: - file: Bio/DB/GFF/Adaptor/biofetch.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::biofetch_oracle: - file: Bio/DB/GFF/Adaptor/biofetch_oracle.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi: - file: Bio/DB/GFF/Adaptor/dbi.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::caching_handle: - file: Bio/DB/GFF/Adaptor/dbi/caching_handle.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::faux_dbh: - file: Bio/DB/GFF/Adaptor/dbi/caching_handle.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::iterator: - file: Bio/DB/GFF/Adaptor/dbi/iterator.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::mysql: - file: Bio/DB/GFF/Adaptor/dbi/mysql.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::mysqlace: - file: Bio/DB/GFF/Adaptor/dbi/mysqlace.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::mysqlcmap: - file: Bio/DB/GFF/Adaptor/dbi/mysqlcmap.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::mysqlopt: - file: Bio/DB/GFF/Adaptor/dbi/mysqlopt.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::oracle: - file: Bio/DB/GFF/Adaptor/dbi/oracle.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::oracleace: - file: Bio/DB/GFF/Adaptor/dbi/oracleace.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::pg: - file: Bio/DB/GFF/Adaptor/dbi/pg.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::dbi::pg_fts: - file: Bio/DB/GFF/Adaptor/dbi/pg_fts.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::memory: - file: Bio/DB/GFF/Adaptor/memory.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::memory::feature_serializer: - file: Bio/DB/GFF/Adaptor/memory/feature_serializer.pm - version: 1.006922 - Bio::DB::GFF::Adaptor::memory::iterator: - file: Bio/DB/GFF/Adaptor/memory/iterator.pm - version: 1.006922 - Bio::DB::GFF::Aggregator: - file: Bio/DB/GFF/Aggregator.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::alignment: - file: Bio/DB/GFF/Aggregator/alignment.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::clone: - file: Bio/DB/GFF/Aggregator/clone.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::coding: - file: Bio/DB/GFF/Aggregator/coding.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::gene: - file: Bio/DB/GFF/Aggregator/gene.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::match: - file: Bio/DB/GFF/Aggregator/match.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::none: - file: Bio/DB/GFF/Aggregator/none.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::orf: - file: Bio/DB/GFF/Aggregator/orf.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::processed_transcript: - file: Bio/DB/GFF/Aggregator/processed_transcript.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::so_transcript: - file: Bio/DB/GFF/Aggregator/so_transcript.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::transcript: - file: Bio/DB/GFF/Aggregator/transcript.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_acembly: - file: Bio/DB/GFF/Aggregator/ucsc_acembly.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_ensgene: - file: Bio/DB/GFF/Aggregator/ucsc_ensgene.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_genscan: - file: Bio/DB/GFF/Aggregator/ucsc_genscan.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_refgene: - file: Bio/DB/GFF/Aggregator/ucsc_refgene.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_sanger22: - file: Bio/DB/GFF/Aggregator/ucsc_sanger22.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_sanger22pseudo: - file: Bio/DB/GFF/Aggregator/ucsc_sanger22pseudo.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_softberry: - file: Bio/DB/GFF/Aggregator/ucsc_softberry.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_twinscan: - file: Bio/DB/GFF/Aggregator/ucsc_twinscan.pm - version: 1.006922 - Bio::DB::GFF::Aggregator::ucsc_unigene: - file: Bio/DB/GFF/Aggregator/ucsc_unigene.pm - version: 1.006922 - Bio::DB::GFF::Featname: - file: Bio/DB/GFF/Featname.pm - version: 1.006922 - Bio::DB::GFF::Feature: - file: Bio/DB/GFF/Feature.pm - version: 1.006922 - Bio::DB::GFF::FeatureIterator: - file: Bio/DB/GFF.pm - version: 1.006922 - Bio::DB::GFF::Homol: - file: Bio/DB/GFF/Homol.pm - version: 1.006922 - Bio::DB::GFF::ID_Iterator: - file: Bio/DB/GFF.pm - version: 1.006922 - Bio::DB::GFF::RelSegment: - file: Bio/DB/GFF/RelSegment.pm - version: 1.006922 - Bio::DB::GFF::Segment: - file: Bio/DB/GFF/Segment.pm - version: 1.006922 - Bio::DB::GFF::Typename: - file: Bio/DB/GFF/Typename.pm - version: 1.006922 - Bio::DB::GFF::Util::Binning: - file: Bio/DB/GFF/Util/Binning.pm - version: 1.006922 - Bio::DB::GFF::Util::Rearrange: - file: Bio/DB/GFF/Util/Rearrange.pm - version: 1.006922 - Bio::DB::GenBank: - file: Bio/DB/GenBank.pm - version: 1.006922 - Bio::DB::GenPept: - file: Bio/DB/GenPept.pm - version: 1.006922 - Bio::DB::GenericWebAgent: - file: Bio/DB/GenericWebAgent.pm - version: 1.006922 - Bio::DB::HIV: - file: Bio/DB/HIV.pm - version: 1.006922 - Bio::DB::HIV::HIVAnnotProcessor: - file: Bio/DB/HIV/HIVAnnotProcessor.pm - version: 1.006922 - Bio::DB::HIV::HIVQueryHelper: - file: Bio/DB/HIV/HIVQueryHelper.pm - version: 1.006922 - Bio::DB::InMemoryCache: - file: Bio/DB/InMemoryCache.pm - version: 1.006922 - Bio::DB::Indexed::Stream: - file: Bio/DB/IndexedBase.pm - version: 1.006922 - Bio::DB::IndexedBase: - file: Bio/DB/IndexedBase.pm - version: 1.006922 - Bio::DB::LocationI: - file: Bio/DB/LocationI.pm - version: 1.006922 - Bio::DB::MeSH: - file: Bio/DB/MeSH.pm - version: 1.006922 - Bio::DB::NCBIHelper: - file: Bio/DB/NCBIHelper.pm - version: 1.006922 - Bio::DB::Qual: - file: Bio/DB/Qual.pm - version: 1.006922 - Bio::DB::Query::GenBank: - file: Bio/DB/Query/GenBank.pm - version: 1.006922 - Bio::DB::Query::HIVQuery: - file: Bio/DB/Query/HIVQuery.pm - version: 1.006922 - Bio::DB::Query::WebQuery: - file: Bio/DB/Query/WebQuery.pm - version: 1.006922 - Bio::DB::QueryI: - file: Bio/DB/QueryI.pm - version: 1.006922 - Bio::DB::RandomAccessI: - file: Bio/DB/RandomAccessI.pm - version: 1.006922 - Bio::DB::RefSeq: - file: Bio/DB/RefSeq.pm - version: 1.006922 - Bio::DB::ReferenceI: - file: Bio/DB/ReferenceI.pm - version: 1.006922 - Bio::DB::Registry: - file: Bio/DB/Registry.pm - version: 1.006922 - Bio::DB::SeqFeature: - file: Bio/DB/SeqFeature.pm - version: 1.006922 - Bio::DB::SeqFeature::NormalizedFeature: - file: Bio/DB/SeqFeature/NormalizedFeature.pm - version: 1.006922 - Bio::DB::SeqFeature::NormalizedFeatureI: - file: Bio/DB/SeqFeature/NormalizedFeatureI.pm - version: 1.006922 - Bio::DB::SeqFeature::NormalizedTableFeatureI: - file: Bio/DB/SeqFeature/NormalizedTableFeatureI.pm - version: 1.006922 - Bio::DB::SeqFeature::Segment: - file: Bio/DB/SeqFeature/Segment.pm - version: 1.006922 - Bio::DB::SeqFeature::Store: - file: Bio/DB/SeqFeature/Store.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::DBI::Iterator: - file: Bio/DB/SeqFeature/Store/DBI/Iterator.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::DBI::Pg: - file: Bio/DB/SeqFeature/Store/DBI/Pg.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::DBI::SQLite: - file: Bio/DB/SeqFeature/Store/DBI/SQLite.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::DBI::mysql: - file: Bio/DB/SeqFeature/Store/DBI/mysql.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::FeatureFileLoader: - file: Bio/DB/SeqFeature/Store/FeatureFileLoader.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::FeatureIterator: - file: Bio/DB/SeqFeature/Store.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::GFF2Loader: - file: Bio/DB/SeqFeature/Store/GFF2Loader.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::GFF3Loader: - file: Bio/DB/SeqFeature/Store/GFF3Loader.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::LoadHelper: - file: Bio/DB/SeqFeature/Store/LoadHelper.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::Loader: - file: Bio/DB/SeqFeature/Store/Loader.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::bdb: - file: Bio/DB/SeqFeature/Store/bdb.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::berkeleydb: - file: Bio/DB/SeqFeature/Store/berkeleydb.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::berkeleydb3: - file: Bio/DB/SeqFeature/Store/berkeleydb3.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::berkeleydb::Iterator: - file: Bio/DB/SeqFeature/Store/berkeleydb.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::memory: - file: Bio/DB/SeqFeature/Store/memory.pm - version: 1.006922 - Bio::DB::SeqFeature::Store::memory::Iterator: - file: Bio/DB/SeqFeature/Store/memory.pm - version: 1.006922 - Bio::DB::SeqHound: - file: Bio/DB/SeqHound.pm - version: 1.006922 - Bio::DB::SeqI: - file: Bio/DB/SeqI.pm - version: 1.006922 - Bio::DB::SeqVersion: - file: Bio/DB/SeqVersion.pm - version: 1.006922 - Bio::DB::SeqVersion::gi: - file: Bio/DB/SeqVersion/gi.pm - version: 1.006922 - Bio::DB::SwissProt: - file: Bio/DB/SwissProt.pm - version: 1.006922 - Bio::DB::TFBS: - file: Bio/DB/TFBS.pm - version: 1.006922 - Bio::DB::TFBS::transfac_pro: - file: Bio/DB/TFBS/transfac_pro.pm - version: 1.006922 - Bio::DB::Taxonomy: - file: Bio/DB/Taxonomy.pm - version: 1.006922 - Bio::DB::Taxonomy::entrez: - file: Bio/DB/Taxonomy/entrez.pm - version: 1.006922 - Bio::DB::Taxonomy::flatfile: - file: Bio/DB/Taxonomy/flatfile.pm - version: 1.006922 - Bio::DB::Taxonomy::greengenes: - file: Bio/DB/Taxonomy/greengenes.pm - version: 1.006922 - Bio::DB::Taxonomy::list: - file: Bio/DB/Taxonomy/list.pm - version: 1.006922 - Bio::DB::Taxonomy::silva: - file: Bio/DB/Taxonomy/silva.pm - version: 1.006922 - Bio::DB::Universal: - file: Bio/DB/Universal.pm - version: 1.006922 - Bio::DB::UpdateableSeqI: - file: Bio/DB/UpdateableSeqI.pm - version: 1.006922 - Bio::DB::WebDBSeqI: - file: Bio/DB/WebDBSeqI.pm - version: 1.006922 - Bio::DBLinkContainerI: - file: Bio/DBLinkContainerI.pm - version: 1.006922 - Bio::Das::FeatureTypeI: - file: Bio/Das/FeatureTypeI.pm - version: 1.006922 - Bio::Das::SegmentI: - file: Bio/Das/SegmentI.pm - version: 1.006922 - Bio::DasI: - file: Bio/DasI.pm - version: 1.006922 - Bio::DescribableI: - file: Bio/DescribableI.pm - version: 1.006922 - Bio::Draw::Pictogram: - file: Bio/Draw/Pictogram.pm - version: 1.006922 - Bio::Event::EventGeneratorI: - file: Bio/Event/EventGeneratorI.pm - version: 1.006922 - Bio::Event::EventHandlerI: - file: Bio/Event/EventHandlerI.pm - version: 1.006922 - Bio::Factory::AnalysisI: - file: Bio/Factory/AnalysisI.pm - version: 1.006922 - Bio::Factory::ApplicationFactoryI: - file: Bio/Factory/ApplicationFactoryI.pm - version: 1.006922 - Bio::Factory::DriverFactory: - file: Bio/Factory/DriverFactory.pm - version: 1.006922 - Bio::Factory::FTLocationFactory: - file: Bio/Factory/FTLocationFactory.pm - version: 1.006922 - Bio::Factory::LocationFactoryI: - file: Bio/Factory/LocationFactoryI.pm - version: 1.006922 - Bio::Factory::MapFactoryI: - file: Bio/Factory/MapFactoryI.pm - version: 1.006922 - Bio::Factory::ObjectBuilderI: - file: Bio/Factory/ObjectBuilderI.pm - version: 1.006922 - Bio::Factory::ObjectFactory: - file: Bio/Factory/ObjectFactory.pm - version: 1.006922 - Bio::Factory::ObjectFactoryI: - file: Bio/Factory/ObjectFactoryI.pm - version: 1.006922 - Bio::Factory::SeqAnalysisParserFactory: - file: Bio/Factory/SeqAnalysisParserFactory.pm - version: 1.006922 - Bio::Factory::SeqAnalysisParserFactoryI: - file: Bio/Factory/SeqAnalysisParserFactoryI.pm - version: 1.006922 - Bio::Factory::SequenceFactoryI: - file: Bio/Factory/SequenceFactoryI.pm - version: 1.006922 - Bio::Factory::SequenceProcessorI: - file: Bio/Factory/SequenceProcessorI.pm - version: 1.006922 - Bio::Factory::SequenceStreamI: - file: Bio/Factory/SequenceStreamI.pm - version: 1.006922 - Bio::Factory::TreeFactoryI: - file: Bio/Factory/TreeFactoryI.pm - version: 1.006922 - Bio::FeatureHolderI: - file: Bio/FeatureHolderI.pm - version: 1.006922 - Bio::HandlerBaseI: - file: Bio/HandlerBaseI.pm - version: 1.006922 - Bio::IdCollectionI: - file: Bio/IdCollectionI.pm - version: 1.006922 - Bio::IdentifiableI: - file: Bio/IdentifiableI.pm - version: 1.006922 - Bio::Index::Abstract: - file: Bio/Index/Abstract.pm - version: 1.006922 - Bio::Index::AbstractSeq: - file: Bio/Index/AbstractSeq.pm - version: 1.006922 - Bio::Index::Blast: - file: Bio/Index/Blast.pm - version: 1.006922 - Bio::Index::BlastTable: - file: Bio/Index/BlastTable.pm - version: 1.006922 - Bio::Index::EMBL: - file: Bio/Index/EMBL.pm - version: 1.006922 - Bio::Index::Fasta: - file: Bio/Index/Fasta.pm - version: 1.006922 - Bio::Index::Fastq: - file: Bio/Index/Fastq.pm - version: 1.006922 - Bio::Index::GenBank: - file: Bio/Index/GenBank.pm - version: 1.006922 - Bio::Index::Hmmer: - file: Bio/Index/Hmmer.pm - version: 1.006922 - Bio::Index::Qual: - file: Bio/Index/Qual.pm - version: 1.006922 - Bio::Index::Stockholm: - file: Bio/Index/Stockholm.pm - version: 1.006922 - Bio::Index::SwissPfam: - file: Bio/Index/SwissPfam.pm - version: 1.006922 - Bio::Index::Swissprot: - file: Bio/Index/Swissprot.pm - version: 1.006922 - Bio::LiveSeq::AARange: - file: Bio/LiveSeq/AARange.pm - version: 1.006922 - Bio::LiveSeq::Chain: - file: Bio/LiveSeq/Chain.pm - version: 1.006922 - Bio::LiveSeq::ChainI: - file: Bio/LiveSeq/ChainI.pm - version: 1.006922 - Bio::LiveSeq::DNA: - file: Bio/LiveSeq/DNA.pm - version: 1.006922 - Bio::LiveSeq::Exon: - file: Bio/LiveSeq/Exon.pm - version: 1.006922 - Bio::LiveSeq::Gene: - file: Bio/LiveSeq/Gene.pm - version: 1.006922 - Bio::LiveSeq::IO::BioPerl: - file: Bio/LiveSeq/IO/BioPerl.pm - version: 1.006922 - Bio::LiveSeq::IO::Loader: - file: Bio/LiveSeq/IO/Loader.pm - version: 1.006922 - Bio::LiveSeq::Intron: - file: Bio/LiveSeq/Intron.pm - version: 1.006922 - Bio::LiveSeq::Mutation: - file: Bio/LiveSeq/Mutation.pm - version: 1.006922 - Bio::LiveSeq::Mutator: - file: Bio/LiveSeq/Mutator.pm - version: 1.006922 - Bio::LiveSeq::Prim_Transcript: - file: Bio/LiveSeq/Prim_Transcript.pm - version: 1.006922 - Bio::LiveSeq::Range: - file: Bio/LiveSeq/Range.pm - version: 1.006922 - Bio::LiveSeq::Repeat_Region: - file: Bio/LiveSeq/Repeat_Region.pm - version: 1.006922 - Bio::LiveSeq::Repeat_Unit: - file: Bio/LiveSeq/Repeat_Unit.pm - version: 1.006922 - Bio::LiveSeq::SeqI: - file: Bio/LiveSeq/SeqI.pm - version: 1.006922 - Bio::LiveSeq::Transcript: - file: Bio/LiveSeq/Transcript.pm - version: 1.006922 - Bio::LiveSeq::Translation: - file: Bio/LiveSeq/Translation.pm - version: 1.006922 - Bio::LocatableSeq: - file: Bio/LocatableSeq.pm - version: 1.006922 - Bio::Location::Atomic: - file: Bio/Location/Atomic.pm - version: 1.006922 - Bio::Location::AvWithinCoordPolicy: - file: Bio/Location/AvWithinCoordPolicy.pm - version: 1.006922 - Bio::Location::CoordinatePolicyI: - file: Bio/Location/CoordinatePolicyI.pm - version: 1.006922 - Bio::Location::Fuzzy: - file: Bio/Location/Fuzzy.pm - version: 1.006922 - Bio::Location::FuzzyLocationI: - file: Bio/Location/FuzzyLocationI.pm - version: 1.006922 - Bio::Location::NarrowestCoordPolicy: - file: Bio/Location/NarrowestCoordPolicy.pm - version: 1.006922 - Bio::Location::Simple: - file: Bio/Location/Simple.pm - version: 1.006922 - Bio::Location::Split: - file: Bio/Location/Split.pm - version: 1.006922 - Bio::Location::SplitLocationI: - file: Bio/Location/SplitLocationI.pm - version: 1.006922 - Bio::Location::WidestCoordPolicy: - file: Bio/Location/WidestCoordPolicy.pm - version: 1.006922 - Bio::LocationI: - file: Bio/LocationI.pm - version: 1.006922 - Bio::Map::Clone: - file: Bio/Map/Clone.pm - version: 1.006922 - Bio::Map::Contig: - file: Bio/Map/Contig.pm - version: 1.006922 - Bio::Map::CytoMap: - file: Bio/Map/CytoMap.pm - version: 1.006922 - Bio::Map::CytoMarker: - file: Bio/Map/CytoMarker.pm - version: 1.006922 - Bio::Map::CytoPosition: - file: Bio/Map/CytoPosition.pm - version: 1.006922 - Bio::Map::EntityI: - file: Bio/Map/EntityI.pm - version: 1.006922 - Bio::Map::FPCMarker: - file: Bio/Map/FPCMarker.pm - version: 1.006922 - Bio::Map::Gene: - file: Bio/Map/Gene.pm - version: 1.006922 - Bio::Map::GeneMap: - file: Bio/Map/GeneMap.pm - version: 1.006922 - Bio::Map::GenePosition: - file: Bio/Map/GenePosition.pm - version: 1.006922 - Bio::Map::GeneRelative: - file: Bio/Map/GeneRelative.pm - version: 1.006922 - Bio::Map::LinkageMap: - file: Bio/Map/LinkageMap.pm - version: 1.006922 - Bio::Map::LinkagePosition: - file: Bio/Map/LinkagePosition.pm - version: 1.006922 - Bio::Map::MapI: - file: Bio/Map/MapI.pm - version: 1.006922 - Bio::Map::Mappable: - file: Bio/Map/Mappable.pm - version: 1.006922 - Bio::Map::MappableI: - file: Bio/Map/MappableI.pm - version: 1.006922 - Bio::Map::Marker: - file: Bio/Map/Marker.pm - version: 1.006922 - Bio::Map::MarkerI: - file: Bio/Map/MarkerI.pm - version: 1.006922 - Bio::Map::Microsatellite: - file: Bio/Map/Microsatellite.pm - version: 1.006922 - Bio::Map::OrderedPosition: - file: Bio/Map/OrderedPosition.pm - version: 1.006922 - Bio::Map::OrderedPositionWithDistance: - file: Bio/Map/OrderedPositionWithDistance.pm - version: 1.006922 - Bio::Map::Physical: - file: Bio/Map/Physical.pm - version: 1.006922 - Bio::Map::Position: - file: Bio/Map/Position.pm - version: 1.006922 - Bio::Map::PositionHandler: - file: Bio/Map/PositionHandler.pm - version: 1.006922 - Bio::Map::PositionHandlerI: - file: Bio/Map/PositionHandlerI.pm - version: 1.006922 - Bio::Map::PositionI: - file: Bio/Map/PositionI.pm - version: 1.006922 - Bio::Map::PositionWithSequence: - file: Bio/Map/PositionWithSequence.pm - version: 1.006922 - Bio::Map::Prediction: - file: Bio/Map/Prediction.pm - version: 1.006922 - Bio::Map::Relative: - file: Bio/Map/Relative.pm - version: 1.006922 - Bio::Map::RelativeI: - file: Bio/Map/RelativeI.pm - version: 1.006922 - Bio::Map::SimpleMap: - file: Bio/Map/SimpleMap.pm - version: 1.006922 - Bio::Map::TranscriptionFactor: - file: Bio/Map/TranscriptionFactor.pm - version: 1.006922 - Bio::MapIO: - file: Bio/MapIO.pm - version: 1.006922 - Bio::MapIO::fpc: - file: Bio/MapIO/fpc.pm - version: 1.006922 - Bio::MapIO::mapmaker: - file: Bio/MapIO/mapmaker.pm - version: 1.006922 - Bio::Matrix::Generic: - file: Bio/Matrix/Generic.pm - version: 1.006922 - Bio::Matrix::IO: - file: Bio/Matrix/IO.pm - version: 1.006922 - Bio::Matrix::IO::mlagan: - file: Bio/Matrix/IO/mlagan.pm - version: 1.006922 - Bio::Matrix::IO::phylip: - file: Bio/Matrix/IO/phylip.pm - version: 1.006922 - Bio::Matrix::IO::scoring: - file: Bio/Matrix/IO/scoring.pm - version: 1.006922 - Bio::Matrix::MatrixI: - file: Bio/Matrix/MatrixI.pm - version: 1.006922 - Bio::Matrix::Mlagan: - file: Bio/Matrix/Mlagan.pm - version: 1.006922 - Bio::Matrix::PSM::IO: - file: Bio/Matrix/PSM/IO.pm - version: 1.006922 - Bio::Matrix::PSM::IO::mast: - file: Bio/Matrix/PSM/IO/mast.pm - version: 1.006922 - Bio::Matrix::PSM::IO::masta: - file: Bio/Matrix/PSM/IO/masta.pm - version: 1.006922 - Bio::Matrix::PSM::IO::meme: - file: Bio/Matrix/PSM/IO/meme.pm - version: 1.006922 - Bio::Matrix::PSM::IO::psiblast: - file: Bio/Matrix/PSM/IO/psiblast.pm - version: 1.006922 - Bio::Matrix::PSM::IO::transfac: - file: Bio/Matrix/PSM/IO/transfac.pm - version: 1.006922 - Bio::Matrix::PSM::InstanceSite: - file: Bio/Matrix/PSM/InstanceSite.pm - version: 1.006922 - Bio::Matrix::PSM::InstanceSiteI: - file: Bio/Matrix/PSM/InstanceSiteI.pm - version: 1.006922 - Bio::Matrix::PSM::ProtMatrix: - file: Bio/Matrix/PSM/ProtMatrix.pm - version: 1.006922 - Bio::Matrix::PSM::ProtPsm: - file: Bio/Matrix/PSM/ProtPsm.pm - version: 1.006922 - Bio::Matrix::PSM::Psm: - file: Bio/Matrix/PSM/Psm.pm - version: 1.006922 - Bio::Matrix::PSM::PsmHeader: - file: Bio/Matrix/PSM/PsmHeader.pm - version: 1.006922 - Bio::Matrix::PSM::PsmHeaderI: - file: Bio/Matrix/PSM/PsmHeaderI.pm - version: 1.006922 - Bio::Matrix::PSM::PsmI: - file: Bio/Matrix/PSM/PsmI.pm - version: 1.006922 - Bio::Matrix::PSM::SiteMatrix: - file: Bio/Matrix/PSM/SiteMatrix.pm - version: 1.006922 - Bio::Matrix::PSM::SiteMatrixI: - file: Bio/Matrix/PSM/SiteMatrixI.pm - version: 1.006922 - Bio::Matrix::PhylipDist: - file: Bio/Matrix/PhylipDist.pm - version: 1.006922 - Bio::Matrix::Scoring: - file: Bio/Matrix/Scoring.pm - version: 1.006922 - Bio::MolEvol::CodonModel: - file: Bio/MolEvol/CodonModel.pm - version: 1.006922 - Bio::Nexml::Factory: - file: Bio/Nexml/Factory.pm - version: 1.006922 - Bio::NexmlIO: - file: Bio/NexmlIO.pm - version: 1.006922 - Bio::Ontology::DocumentRegistry: - file: Bio/Ontology/DocumentRegistry.pm - version: 1.006922 - Bio::Ontology::GOterm: - file: Bio/Ontology/GOterm.pm - version: 1.006922 - Bio::Ontology::InterProTerm: - file: Bio/Ontology/InterProTerm.pm - version: 1.006922 - Bio::Ontology::OBOEngine: - file: Bio/Ontology/OBOEngine.pm - version: 1.006922 - Bio::Ontology::OBOterm: - file: Bio/Ontology/OBOterm.pm - version: 1.006922 - Bio::Ontology::Ontology: - file: Bio/Ontology/Ontology.pm - version: 1.006922 - Bio::Ontology::OntologyEngineI: - file: Bio/Ontology/OntologyEngineI.pm - version: 1.006922 - Bio::Ontology::OntologyI: - file: Bio/Ontology/OntologyI.pm - version: 1.006922 - Bio::Ontology::OntologyStore: - file: Bio/Ontology/OntologyStore.pm - version: 1.006922 - Bio::Ontology::Path: - file: Bio/Ontology/Path.pm - version: 1.006922 - Bio::Ontology::PathI: - file: Bio/Ontology/PathI.pm - version: 1.006922 - Bio::Ontology::Relationship: - file: Bio/Ontology/Relationship.pm - version: 1.006922 - Bio::Ontology::RelationshipFactory: - file: Bio/Ontology/RelationshipFactory.pm - version: 1.006922 - Bio::Ontology::RelationshipI: - file: Bio/Ontology/RelationshipI.pm - version: 1.006922 - Bio::Ontology::RelationshipType: - file: Bio/Ontology/RelationshipType.pm - version: 1.006922 - Bio::Ontology::SimpleGOEngine::GraphAdaptor: - file: Bio/Ontology/SimpleGOEngine/GraphAdaptor.pm - version: 1.006922 - Bio::Ontology::SimpleOntologyEngine: - file: Bio/Ontology/SimpleOntologyEngine.pm - version: 1.006922 - Bio::Ontology::Term: - file: Bio/Ontology/Term.pm - version: 1.006922 - Bio::Ontology::TermFactory: - file: Bio/Ontology/TermFactory.pm - version: 1.006922 - Bio::Ontology::TermI: - file: Bio/Ontology/TermI.pm - version: 1.006922 - Bio::OntologyIO: - file: Bio/OntologyIO.pm - version: 1.006922 - Bio::OntologyIO::Handlers::BaseSAXHandler: - file: Bio/OntologyIO/Handlers/BaseSAXHandler.pm - version: 1.006922 - Bio::OntologyIO::Handlers::InterProHandler: - file: Bio/OntologyIO/Handlers/InterProHandler.pm - version: 1.006922 - Bio::OntologyIO::Handlers::InterPro_BioSQL_Handler: - file: Bio/OntologyIO/Handlers/InterPro_BioSQL_Handler.pm - version: 1.006922 - Bio::OntologyIO::InterProParser: - file: Bio/OntologyIO/InterProParser.pm - version: 1.006922 - Bio::OntologyIO::dagflat: - file: Bio/OntologyIO/dagflat.pm - version: 1.006922 - Bio::OntologyIO::goflat: - file: Bio/OntologyIO/goflat.pm - version: 1.006922 - Bio::OntologyIO::obo: - file: Bio/OntologyIO/obo.pm - version: 1.006922 - Bio::OntologyIO::simplehierarchy: - file: Bio/OntologyIO/simplehierarchy.pm - version: 1.006922 - Bio::OntologyIO::soflat: - file: Bio/OntologyIO/soflat.pm - version: 1.006922 - Bio::ParameterBaseI: - file: Bio/ParameterBaseI.pm - version: 1.006922 - Bio::Perl: - file: Bio/Perl.pm - version: 1.006922 - Bio::Phenotype::Correlate: - file: Bio/Phenotype/Correlate.pm - version: 1.006922 - Bio::Phenotype::MeSH::Term: - file: Bio/Phenotype/MeSH/Term.pm - version: 1.006922 - Bio::Phenotype::MeSH::Twig: - file: Bio/Phenotype/MeSH/Twig.pm - version: 1.006922 - Bio::Phenotype::Measure: - file: Bio/Phenotype/Measure.pm - version: 1.006922 - Bio::Phenotype::OMIM::MiniMIMentry: - file: Bio/Phenotype/OMIM/MiniMIMentry.pm - version: 1.006922 - Bio::Phenotype::OMIM::OMIMentry: - file: Bio/Phenotype/OMIM/OMIMentry.pm - version: 1.006922 - Bio::Phenotype::OMIM::OMIMentryAllelicVariant: - file: Bio/Phenotype/OMIM/OMIMentryAllelicVariant.pm - version: 1.006922 - Bio::Phenotype::OMIM::OMIMparser: - file: Bio/Phenotype/OMIM/OMIMparser.pm - version: 1.006922 - Bio::Phenotype::Phenotype: - file: Bio/Phenotype/Phenotype.pm - version: 1.006922 - Bio::Phenotype::PhenotypeI: - file: Bio/Phenotype/PhenotypeI.pm - version: 1.006922 - Bio::PhyloNetwork: - file: Bio/PhyloNetwork.pm - version: 1.006922 - Bio::PhyloNetwork::Factory: - file: Bio/PhyloNetwork/Factory.pm - version: 1.006922 - Bio::PhyloNetwork::FactoryX: - file: Bio/PhyloNetwork/FactoryX.pm - version: 1.006922 - Bio::PhyloNetwork::GraphViz: - file: Bio/PhyloNetwork/GraphViz.pm - version: 1.006922 - Bio::PhyloNetwork::RandomFactory: - file: Bio/PhyloNetwork/RandomFactory.pm - version: 1.006922 - Bio::PhyloNetwork::TreeFactory: - file: Bio/PhyloNetwork/TreeFactory.pm - version: 1.006922 - Bio::PhyloNetwork::TreeFactoryMulti: - file: Bio/PhyloNetwork/TreeFactoryMulti.pm - version: 1.006922 - Bio::PhyloNetwork::TreeFactoryX: - file: Bio/PhyloNetwork/TreeFactoryX.pm - version: 1.006922 - Bio::PhyloNetwork::muVector: - file: Bio/PhyloNetwork/muVector.pm - version: 1.006922 - Bio::PopGen::Genotype: - file: Bio/PopGen/Genotype.pm - version: 1.006922 - Bio::PopGen::GenotypeI: - file: Bio/PopGen/GenotypeI.pm - version: 1.006922 - Bio::PopGen::HtSNP: - file: Bio/PopGen/HtSNP.pm - version: 1.006922 - Bio::PopGen::IO: - file: Bio/PopGen/IO.pm - version: 1.006922 - Bio::PopGen::IO::csv: - file: Bio/PopGen/IO/csv.pm - version: 1.006922 - Bio::PopGen::IO::hapmap: - file: Bio/PopGen/IO/hapmap.pm - version: 1.006922 - Bio::PopGen::IO::phase: - file: Bio/PopGen/IO/phase.pm - version: 1.006922 - Bio::PopGen::IO::prettybase: - file: Bio/PopGen/IO/prettybase.pm - version: 1.006922 - Bio::PopGen::Individual: - file: Bio/PopGen/Individual.pm - version: 1.006922 - Bio::PopGen::IndividualI: - file: Bio/PopGen/IndividualI.pm - version: 1.006922 - Bio::PopGen::Marker: - file: Bio/PopGen/Marker.pm - version: 1.006922 - Bio::PopGen::MarkerI: - file: Bio/PopGen/MarkerI.pm - version: 1.006922 - Bio::PopGen::PopStats: - file: Bio/PopGen/PopStats.pm - version: 1.006922 - Bio::PopGen::Population: - file: Bio/PopGen/Population.pm - version: 1.006922 - Bio::PopGen::PopulationI: - file: Bio/PopGen/PopulationI.pm - version: 1.006922 - Bio::PopGen::Simulation::Coalescent: - file: Bio/PopGen/Simulation/Coalescent.pm - version: 1.006922 - Bio::PopGen::Simulation::GeneticDrift: - file: Bio/PopGen/Simulation/GeneticDrift.pm - version: 1.006922 - Bio::PopGen::Statistics: - file: Bio/PopGen/Statistics.pm - version: 1.006922 - Bio::PopGen::TagHaplotype: - file: Bio/PopGen/TagHaplotype.pm - version: 1.006922 - Bio::PopGen::Utilities: - file: Bio/PopGen/Utilities.pm - version: 1.006922 - Bio::PrimarySeq: - file: Bio/PrimarySeq.pm - version: 1.006922 - Bio::PrimarySeq::Fasta: - file: Bio/DB/Fasta.pm - version: 1.006922 - Bio::PrimarySeqI: - file: Bio/PrimarySeqI.pm - version: 1.006922 - Bio::PullParserI: - file: Bio/PullParserI.pm - version: 1.006922 - Bio::Range: - file: Bio/Range.pm - version: 1.006922 - Bio::RangeI: - file: Bio/RangeI.pm - version: 1.006922 - Bio::Restriction::Analysis: - file: Bio/Restriction/Analysis.pm - version: 1.006922 - Bio::Restriction::Enzyme: - file: Bio/Restriction/Enzyme.pm - version: 1.006922 - Bio::Restriction::Enzyme::MultiCut: - file: Bio/Restriction/Enzyme/MultiCut.pm - version: 1.006922 - Bio::Restriction::Enzyme::MultiSite: - file: Bio/Restriction/Enzyme/MultiSite.pm - version: 1.006922 - Bio::Restriction::EnzymeCollection: - file: Bio/Restriction/EnzymeCollection.pm - version: 1.006922 - Bio::Restriction::EnzymeI: - file: Bio/Restriction/EnzymeI.pm - version: 1.006922 - Bio::Restriction::IO: - file: Bio/Restriction/IO.pm - version: 1.006922 - Bio::Restriction::IO::bairoch: - file: Bio/Restriction/IO/bairoch.pm - version: 1.006922 - Bio::Restriction::IO::base: - file: Bio/Restriction/IO/base.pm - version: 1.006922 - Bio::Restriction::IO::itype2: - file: Bio/Restriction/IO/itype2.pm - version: 1.006922 - Bio::Restriction::IO::prototype: - file: Bio/Restriction/IO/prototype.pm - version: 1.006922 - Bio::Restriction::IO::withrefm: - file: Bio/Restriction/IO/withrefm.pm - version: 1.006922 - Bio::Root::Build: - file: Bio/Root/Build.pm - version: 1.006922 - Bio::Root::Exception: - file: Bio/Root/Exception.pm - version: 1.006922 - Bio::Root::HTTPget: - file: Bio/Root/HTTPget.pm - version: 1.006922 - Bio::Root::IO: - file: Bio/Root/IO.pm - version: 1.006922 - Bio::Root::Root: - file: Bio/Root/Root.pm - version: 1.006922 - Bio::Root::RootI: - file: Bio/Root/RootI.pm - version: 1.006922 - Bio::Root::Storable: - file: Bio/Root/Storable.pm - version: 1.006922 - Bio::Root::Test: - file: Bio/Root/Test.pm - version: 1.006922 - Bio::Root::Utilities: - file: Bio/Root/Utilities.pm - version: 1.006922 - Bio::Root::Version: - file: Bio/Root/Version.pm - version: 1.006922 - Bio::Search::BlastStatistics: - file: Bio/Search/BlastStatistics.pm - version: 1.006922 - Bio::Search::BlastUtils: - file: Bio/Search/BlastUtils.pm - version: 1.006922 - Bio::Search::DatabaseI: - file: Bio/Search/DatabaseI.pm - version: 1.006922 - Bio::Search::GenericDatabase: - file: Bio/Search/GenericDatabase.pm - version: 1.006922 - Bio::Search::GenericStatistics: - file: Bio/Search/GenericStatistics.pm - version: 1.006922 - Bio::Search::HSP::BlastHSP: - file: Bio/Search/HSP/BlastHSP.pm - version: 1.006922 - Bio::Search::HSP::BlastPullHSP: - file: Bio/Search/HSP/BlastPullHSP.pm - version: 1.006922 - Bio::Search::HSP::FastaHSP: - file: Bio/Search/HSP/FastaHSP.pm - version: 1.006922 - Bio::Search::HSP::GenericHSP: - file: Bio/Search/HSP/GenericHSP.pm - version: 1.006922 - Bio::Search::HSP::HMMERHSP: - file: Bio/Search/HSP/HMMERHSP.pm - version: 1.006922 - Bio::Search::HSP::HSPFactory: - file: Bio/Search/HSP/HSPFactory.pm - version: 1.006922 - Bio::Search::HSP::HSPI: - file: Bio/Search/HSP/HSPI.pm - version: 1.006922 - Bio::Search::HSP::HmmpfamHSP: - file: Bio/Search/HSP/HmmpfamHSP.pm - version: 1.006922 - Bio::Search::HSP::ModelHSP: - file: Bio/Search/HSP/ModelHSP.pm - version: 1.006922 - Bio::Search::HSP::PSLHSP: - file: Bio/Search/HSP/PSLHSP.pm - version: 1.006922 - Bio::Search::HSP::PsiBlastHSP: - file: Bio/Search/HSP/PsiBlastHSP.pm - version: 1.006922 - Bio::Search::HSP::PullHSPI: - file: Bio/Search/HSP/PullHSPI.pm - version: 1.006922 - Bio::Search::HSP::WABAHSP: - file: Bio/Search/HSP/WABAHSP.pm - version: 1.006922 - Bio::Search::Hit::BlastHit: - file: Bio/Search/Hit/BlastHit.pm - version: 1.006922 - Bio::Search::Hit::BlastPullHit: - file: Bio/Search/Hit/BlastPullHit.pm - version: 1.006922 - Bio::Search::Hit::Fasta: - file: Bio/Search/Hit/Fasta.pm - version: 1.006922 - Bio::Search::Hit::GenericHit: - file: Bio/Search/Hit/GenericHit.pm - version: 1.006922 - Bio::Search::Hit::HMMERHit: - file: Bio/Search/Hit/HMMERHit.pm - version: 1.006922 - Bio::Search::Hit::HitFactory: - file: Bio/Search/Hit/HitFactory.pm - version: 1.006922 - Bio::Search::Hit::HitI: - file: Bio/Search/Hit/HitI.pm - version: 1.006922 - Bio::Search::Hit::HmmpfamHit: - file: Bio/Search/Hit/HmmpfamHit.pm - version: 1.006922 - Bio::Search::Hit::ModelHit: - file: Bio/Search/Hit/ModelHit.pm - version: 1.006922 - Bio::Search::Hit::PsiBlastHit: - file: Bio/Search/Hit/PsiBlastHit.pm - version: 1.006922 - Bio::Search::Hit::PullHitI: - file: Bio/Search/Hit/PullHitI.pm - version: 1.006922 - Bio::Search::Hit::hmmer3Hit: - file: Bio/Search/Hit/hmmer3Hit.pm - version: 1.006922 - Bio::Search::Iteration::GenericIteration: - file: Bio/Search/Iteration/GenericIteration.pm - version: 1.006922 - Bio::Search::Iteration::IterationI: - file: Bio/Search/Iteration/IterationI.pm - version: 1.006922 - Bio::Search::Processor: - file: Bio/Search/Processor.pm - version: 1.006922 - Bio::Search::Result::BlastPullResult: - file: Bio/Search/Result/BlastPullResult.pm - version: 1.006922 - Bio::Search::Result::BlastResult: - file: Bio/Search/Result/BlastResult.pm - version: 1.006922 - Bio::Search::Result::CrossMatchResult: - file: Bio/Search/Result/CrossMatchResult.pm - version: 1.006922 - Bio::Search::Result::GenericResult: - file: Bio/Search/Result/GenericResult.pm - version: 1.006922 - Bio::Search::Result::HMMERResult: - file: Bio/Search/Result/HMMERResult.pm - version: 1.006922 - Bio::Search::Result::HmmpfamResult: - file: Bio/Search/Result/HmmpfamResult.pm - version: 1.006922 - Bio::Search::Result::PullResultI: - file: Bio/Search/Result/PullResultI.pm - version: 1.006922 - Bio::Search::Result::ResultFactory: - file: Bio/Search/Result/ResultFactory.pm - version: 1.006922 - Bio::Search::Result::ResultI: - file: Bio/Search/Result/ResultI.pm - version: 1.006922 - Bio::Search::Result::WABAResult: - file: Bio/Search/Result/WABAResult.pm - version: 1.006922 - Bio::Search::Result::hmmer3Result: - file: Bio/Search/Result/hmmer3Result.pm - version: 1.006922 - Bio::Search::SearchUtils: - file: Bio/Search/SearchUtils.pm - version: 1.006922 - Bio::Search::StatisticsI: - file: Bio/Search/StatisticsI.pm - version: 1.006922 - Bio::Search::Tiling::MapTileUtils: - file: Bio/Search/Tiling/MapTileUtils.pm - version: 1.006922 - Bio::Search::Tiling::MapTiling: - file: Bio/Search/Tiling/MapTiling.pm - version: 1.006922 - Bio::Search::Tiling::TilingI: - file: Bio/Search/Tiling/TilingI.pm - version: 1.006922 - Bio::SearchDist: - file: Bio/SearchDist.pm - version: 1.006922 - Bio::SearchIO: - file: Bio/SearchIO.pm - version: 1.006922 - Bio::SearchIO::EventHandlerI: - file: Bio/SearchIO/EventHandlerI.pm - version: 1.006922 - Bio::SearchIO::FastHitEventBuilder: - file: Bio/SearchIO/FastHitEventBuilder.pm - version: 1.006922 - Bio::SearchIO::IteratedSearchResultEventBuilder: - file: Bio/SearchIO/IteratedSearchResultEventBuilder.pm - version: 1.006922 - Bio::SearchIO::SearchResultEventBuilder: - file: Bio/SearchIO/SearchResultEventBuilder.pm - version: 1.006922 - Bio::SearchIO::SearchWriterI: - file: Bio/SearchIO/SearchWriterI.pm - version: 1.006922 - Bio::SearchIO::Writer::BSMLResultWriter: - file: Bio/SearchIO/Writer/BSMLResultWriter.pm - version: 1.006922 - Bio::SearchIO::Writer::GbrowseGFF: - file: Bio/SearchIO/Writer/GbrowseGFF.pm - version: 1.006922 - Bio::SearchIO::Writer::HSPTableWriter: - file: Bio/SearchIO/Writer/HSPTableWriter.pm - version: 1.006922 - Bio::SearchIO::Writer::HTMLResultWriter: - file: Bio/SearchIO/Writer/HTMLResultWriter.pm - version: 1.006922 - Bio::SearchIO::Writer::HitTableWriter: - file: Bio/SearchIO/Writer/HitTableWriter.pm - version: 1.006922 - Bio::SearchIO::Writer::ResultTableWriter: - file: Bio/SearchIO/Writer/ResultTableWriter.pm - version: 1.006922 - Bio::SearchIO::Writer::TextResultWriter: - file: Bio/SearchIO/Writer/TextResultWriter.pm - version: 1.006922 - Bio::SearchIO::XML::BlastHandler: - file: Bio/SearchIO/XML/BlastHandler.pm - version: 1.006922 - Bio::SearchIO::XML::PsiBlastHandler: - file: Bio/SearchIO/XML/PsiBlastHandler.pm - version: 1.006922 - Bio::SearchIO::axt: - file: Bio/SearchIO/axt.pm - version: 1.006922 - Bio::SearchIO::blast: - file: Bio/SearchIO/blast.pm - version: 1.006922 - Bio::SearchIO::blast_pull: - file: Bio/SearchIO/blast_pull.pm - version: 1.006922 - Bio::SearchIO::blasttable: - file: Bio/SearchIO/blasttable.pm - version: 1.006922 - Bio::SearchIO::blastxml: - file: Bio/SearchIO/blastxml.pm - version: 1.006922 - Bio::SearchIO::cross_match: - file: Bio/SearchIO/cross_match.pm - version: 1.006922 - Bio::SearchIO::erpin: - file: Bio/SearchIO/erpin.pm - version: 1.006922 - Bio::SearchIO::exonerate: - file: Bio/SearchIO/exonerate.pm - version: 1.006922 - Bio::SearchIO::fasta: - file: Bio/SearchIO/fasta.pm - version: 1.006922 - Bio::SearchIO::gmap_f9: - file: Bio/SearchIO/gmap_f9.pm - version: 1.006922 - Bio::SearchIO::hmmer: - file: Bio/SearchIO/hmmer.pm - version: 1.006922 - Bio::SearchIO::hmmer2: - file: Bio/SearchIO/hmmer2.pm - version: 1.006922 - Bio::SearchIO::hmmer3: - file: Bio/SearchIO/hmmer3.pm - version: 1.006922 - Bio::SearchIO::hmmer_pull: - file: Bio/SearchIO/hmmer_pull.pm - version: 1.006922 - Bio::SearchIO::infernal: - file: Bio/SearchIO/infernal.pm - version: 1.006922 - Bio::SearchIO::megablast: - file: Bio/SearchIO/megablast.pm - version: 1.006922 - Bio::SearchIO::psl: - file: Bio/SearchIO/psl.pm - version: 1.006922 - Bio::SearchIO::rnamotif: - file: Bio/SearchIO/rnamotif.pm - version: 1.006922 - Bio::SearchIO::sim4: - file: Bio/SearchIO/sim4.pm - version: 1.006922 - Bio::SearchIO::waba: - file: Bio/SearchIO/waba.pm - version: 1.006922 - Bio::SearchIO::wise: - file: Bio/SearchIO/wise.pm - version: 1.006922 - Bio::Seq: - file: Bio/Seq.pm - version: 1.006922 - Bio::Seq::BaseSeqProcessor: - file: Bio/Seq/BaseSeqProcessor.pm - version: 1.006922 - Bio::Seq::EncodedSeq: - file: Bio/Seq/EncodedSeq.pm - version: 1.006922 - Bio::Seq::LargeLocatableSeq: - file: Bio/Seq/LargeLocatableSeq.pm - version: 1.006922 - Bio::Seq::LargePrimarySeq: - file: Bio/Seq/LargePrimarySeq.pm - version: 1.006922 - Bio::Seq::LargeSeq: - file: Bio/Seq/LargeSeq.pm - version: 1.006922 - Bio::Seq::LargeSeqI: - file: Bio/Seq/LargeSeqI.pm - version: 1.006922 - Bio::Seq::Meta: - file: Bio/Seq/Meta.pm - version: 1.006922 - Bio::Seq::Meta::Array: - file: Bio/Seq/Meta/Array.pm - version: 1.006922 - Bio::Seq::MetaI: - file: Bio/Seq/MetaI.pm - version: 1.006922 - Bio::Seq::PrimaryQual: - file: Bio/Seq/PrimaryQual.pm - version: 1.006922 - Bio::Seq::PrimaryQual::Qual: - file: Bio/DB/Qual.pm - version: 1.006922 - Bio::Seq::PrimedSeq: - file: Bio/Seq/PrimedSeq.pm - version: 1.006922 - Bio::Seq::QualI: - file: Bio/Seq/QualI.pm - version: 1.006922 - Bio::Seq::Quality: - file: Bio/Seq/Quality.pm - version: 1.006922 - Bio::Seq::RichSeq: - file: Bio/Seq/RichSeq.pm - version: 1.006922 - Bio::Seq::RichSeqI: - file: Bio/Seq/RichSeqI.pm - version: 1.006922 - Bio::Seq::SeqBuilder: - file: Bio/Seq/SeqBuilder.pm - version: 1.006922 - Bio::Seq::SeqFactory: - file: Bio/Seq/SeqFactory.pm - version: 1.006922 - Bio::Seq::SeqFastaSpeedFactory: - file: Bio/Seq/SeqFastaSpeedFactory.pm - version: 1.006922 - Bio::Seq::SeqWithQuality: - file: Bio/Seq/SeqWithQuality.pm - version: 1.006922 - Bio::Seq::SequenceTrace: - file: Bio/Seq/SequenceTrace.pm - version: 1.006922 - Bio::Seq::SimulatedRead: - file: Bio/Seq/SimulatedRead.pm - version: 1.006922 - Bio::Seq::TraceI: - file: Bio/Seq/TraceI.pm - version: 1.006922 - Bio::SeqAnalysisParserI: - file: Bio/SeqAnalysisParserI.pm - version: 1.006922 - Bio::SeqEvolution::DNAPoint: - file: Bio/SeqEvolution/DNAPoint.pm - version: 1.006922 - Bio::SeqEvolution::EvolutionI: - file: Bio/SeqEvolution/EvolutionI.pm - version: 1.006922 - Bio::SeqEvolution::Factory: - file: Bio/SeqEvolution/Factory.pm - version: 1.006922 - Bio::SeqFeature::Amplicon: - file: Bio/SeqFeature/Amplicon.pm - version: 1.006922 - Bio::SeqFeature::AnnotationAdaptor: - file: Bio/SeqFeature/AnnotationAdaptor.pm - version: 1.006922 - Bio::SeqFeature::Collection: - file: Bio/SeqFeature/Collection.pm - version: 1.006922 - Bio::SeqFeature::CollectionI: - file: Bio/SeqFeature/CollectionI.pm - version: 1.006922 - Bio::SeqFeature::Computation: - file: Bio/SeqFeature/Computation.pm - version: 1.006922 - Bio::SeqFeature::FeaturePair: - file: Bio/SeqFeature/FeaturePair.pm - version: 1.006922 - Bio::SeqFeature::Gene::Exon: - file: Bio/SeqFeature/Gene/Exon.pm - version: 1.006922 - Bio::SeqFeature::Gene::ExonI: - file: Bio/SeqFeature/Gene/ExonI.pm - version: 1.006922 - Bio::SeqFeature::Gene::GeneStructure: - file: Bio/SeqFeature/Gene/GeneStructure.pm - version: 1.006922 - Bio::SeqFeature::Gene::GeneStructureI: - file: Bio/SeqFeature/Gene/GeneStructureI.pm - version: 1.006922 - Bio::SeqFeature::Gene::Intron: - file: Bio/SeqFeature/Gene/Intron.pm - version: 1.006922 - Bio::SeqFeature::Gene::NC_Feature: - file: Bio/SeqFeature/Gene/NC_Feature.pm - version: 1.006922 - Bio::SeqFeature::Gene::Poly_A_site: - file: Bio/SeqFeature/Gene/Poly_A_site.pm - version: 1.006922 - Bio::SeqFeature::Gene::Promoter: - file: Bio/SeqFeature/Gene/Promoter.pm - version: 1.006922 - Bio::SeqFeature::Gene::Transcript: - file: Bio/SeqFeature/Gene/Transcript.pm - version: 1.006922 - Bio::SeqFeature::Gene::TranscriptI: - file: Bio/SeqFeature/Gene/TranscriptI.pm - version: 1.006922 - Bio::SeqFeature::Gene::UTR: - file: Bio/SeqFeature/Gene/UTR.pm - version: 1.006922 - Bio::SeqFeature::Generic: - file: Bio/SeqFeature/Generic.pm - version: 1.006922 - Bio::SeqFeature::Lite: - file: Bio/SeqFeature/Lite.pm - version: 1.006922 - Bio::SeqFeature::PositionProxy: - file: Bio/SeqFeature/PositionProxy.pm - version: 1.006922 - Bio::SeqFeature::Primer: - file: Bio/SeqFeature/Primer.pm - version: 1.006922 - Bio::SeqFeature::SiRNA::Oligo: - file: Bio/SeqFeature/SiRNA/Oligo.pm - version: 1.006922 - Bio::SeqFeature::SiRNA::Pair: - file: Bio/SeqFeature/SiRNA/Pair.pm - version: 1.006922 - Bio::SeqFeature::Similarity: - file: Bio/SeqFeature/Similarity.pm - version: 1.006922 - Bio::SeqFeature::SimilarityPair: - file: Bio/SeqFeature/SimilarityPair.pm - version: 1.006922 - Bio::SeqFeature::SubSeq: - file: Bio/SeqFeature/SubSeq.pm - version: 1.006922 - Bio::SeqFeature::Tools::FeatureNamer: - file: Bio/SeqFeature/Tools/FeatureNamer.pm - version: 1.006922 - Bio::SeqFeature::Tools::IDHandler: - file: Bio/SeqFeature/Tools/IDHandler.pm - version: 1.006922 - Bio::SeqFeature::Tools::TypeMapper: - file: Bio/SeqFeature/Tools/TypeMapper.pm - version: 1.006922 - Bio::SeqFeature::Tools::Unflattener: - file: Bio/SeqFeature/Tools/Unflattener.pm - version: 1.006922 - Bio::SeqFeature::TypedSeqFeatureI: - file: Bio/SeqFeature/TypedSeqFeatureI.pm - version: 1.006922 - Bio::SeqFeatureI: - file: Bio/SeqFeatureI.pm - version: 1.006922 - Bio::SeqI: - file: Bio/SeqI.pm - version: 1.006922 - Bio::SeqIO: - file: Bio/SeqIO.pm - version: 1.006922 - Bio::SeqIO::FTHelper: - file: Bio/SeqIO/FTHelper.pm - version: 1.006922 - Bio::SeqIO::Handler::GenericRichSeqHandler: - file: Bio/SeqIO/Handler/GenericRichSeqHandler.pm - version: 1.006922 - Bio::SeqIO::MultiFile: - file: Bio/SeqIO/MultiFile.pm - version: 1.006922 - Bio::SeqIO::abi: - file: Bio/SeqIO/abi.pm - version: 1.006922 - Bio::SeqIO::ace: - file: Bio/SeqIO/ace.pm - version: 1.006922 - Bio::SeqIO::agave: - file: Bio/SeqIO/agave.pm - version: 1.006922 - Bio::SeqIO::alf: - file: Bio/SeqIO/alf.pm - version: 1.006922 - Bio::SeqIO::asciitree: - file: Bio/SeqIO/asciitree.pm - version: 1.006922 - Bio::SeqIO::bsml: - file: Bio/SeqIO/bsml.pm - version: 1.006922 - Bio::SeqIO::bsml_sax: - file: Bio/SeqIO/bsml_sax.pm - version: 1.006922 - Bio::SeqIO::chadoxml: - file: Bio/SeqIO/chadoxml.pm - version: 1.006922 - Bio::SeqIO::chaos: - file: Bio/SeqIO/chaos.pm - version: 1.006922 - Bio::SeqIO::chaosxml: - file: Bio/SeqIO/chaosxml.pm - version: 1.006922 - Bio::SeqIO::ctf: - file: Bio/SeqIO/ctf.pm - version: 1.006922 - Bio::SeqIO::embl: - file: Bio/SeqIO/embl.pm - version: 1.006922 - Bio::SeqIO::embldriver: - file: Bio/SeqIO/embldriver.pm - version: 1.006922 - Bio::SeqIO::entrezgene: - file: Bio/SeqIO/entrezgene.pm - version: 1.006922 - Bio::SeqIO::excel: - file: Bio/SeqIO/excel.pm - version: 1.006922 - Bio::SeqIO::exp: - file: Bio/SeqIO/exp.pm - version: 1.006922 - Bio::SeqIO::fasta: - file: Bio/SeqIO/fasta.pm - version: 1.006922 - Bio::SeqIO::fastq: - file: Bio/SeqIO/fastq.pm - version: 1.006922 - Bio::SeqIO::flybase_chadoxml: - file: Bio/SeqIO/flybase_chadoxml.pm - version: 1.006922 - Bio::SeqIO::game: - file: Bio/SeqIO/game.pm - version: 1.006922 - Bio::SeqIO::game::featHandler: - file: Bio/SeqIO/game/featHandler.pm - version: 1.006922 - Bio::SeqIO::game::gameHandler: - file: Bio/SeqIO/game/gameHandler.pm - version: 1.006922 - Bio::SeqIO::game::gameSubs: - file: Bio/SeqIO/game/gameSubs.pm - version: 1.006922 - Bio::SeqIO::game::gameWriter: - file: Bio/SeqIO/game/gameWriter.pm - version: 1.006922 - Bio::SeqIO::game::seqHandler: - file: Bio/SeqIO/game/seqHandler.pm - version: 1.006922 - Bio::SeqIO::gbdriver: - file: Bio/SeqIO/gbdriver.pm - version: 1.006922 - Bio::SeqIO::gbxml: - file: Bio/SeqIO/gbxml.pm - version: 1.006922 - Bio::SeqIO::gcg: - file: Bio/SeqIO/gcg.pm - version: 1.006922 - Bio::SeqIO::genbank: - file: Bio/SeqIO/genbank.pm - version: 1.006922 - Bio::SeqIO::interpro: - file: Bio/SeqIO/interpro.pm - version: 1.006922 - Bio::SeqIO::kegg: - file: Bio/SeqIO/kegg.pm - version: 1.006922 - Bio::SeqIO::largefasta: - file: Bio/SeqIO/largefasta.pm - version: 1.006922 - Bio::SeqIO::lasergene: - file: Bio/SeqIO/lasergene.pm - version: 1.006922 - Bio::SeqIO::locuslink: - file: Bio/SeqIO/locuslink.pm - version: 1.006922 - Bio::SeqIO::mbsout: - file: Bio/SeqIO/mbsout.pm - version: 1.006922 - Bio::SeqIO::metafasta: - file: Bio/SeqIO/metafasta.pm - version: 1.006922 - Bio::SeqIO::msout: - file: Bio/SeqIO/msout.pm - version: 1.006922 - Bio::SeqIO::nexml: - file: Bio/SeqIO/nexml.pm - version: 1.006922 - Bio::SeqIO::phd: - file: Bio/SeqIO/phd.pm - version: 1.006922 - Bio::SeqIO::pir: - file: Bio/SeqIO/pir.pm - version: 1.006922 - Bio::SeqIO::pln: - file: Bio/SeqIO/pln.pm - version: 1.006922 - Bio::SeqIO::qual: - file: Bio/SeqIO/qual.pm - version: 1.006922 - Bio::SeqIO::raw: - file: Bio/SeqIO/raw.pm - version: 1.006922 - Bio::SeqIO::scf: - file: Bio/SeqIO/scf.pm - version: 1.006922 - Bio::SeqIO::seqxml: - file: Bio/SeqIO/seqxml.pm - version: 1.006922 - Bio::SeqIO::strider: - file: Bio/SeqIO/strider.pm - version: 1.006922 - Bio::SeqIO::swiss: - file: Bio/SeqIO/swiss.pm - version: 1.006922 - Bio::SeqIO::swissdriver: - file: Bio/SeqIO/swissdriver.pm - version: 1.006922 - Bio::SeqIO::tab: - file: Bio/SeqIO/tab.pm - version: 1.006922 - Bio::SeqIO::table: - file: Bio/SeqIO/table.pm - version: 1.006922 - Bio::SeqIO::tigr: - file: Bio/SeqIO/tigr.pm - version: 1.006922 - Bio::SeqIO::tigrxml: - file: Bio/SeqIO/tigrxml.pm - version: 1.006922 - Bio::SeqIO::tinyseq: - file: Bio/SeqIO/tinyseq.pm - version: 1.006922 - Bio::SeqIO::tinyseq::tinyseqHandler: - file: Bio/SeqIO/tinyseq/tinyseqHandler.pm - version: 1.006922 - Bio::SeqIO::ztr: - file: Bio/SeqIO/ztr.pm - version: 1.006922 - Bio::SeqUtils: - file: Bio/SeqUtils.pm - version: 1.006922 - Bio::SimpleAlign: - file: Bio/SimpleAlign.pm - version: 1.006922 - Bio::SimpleAnalysisI: - file: Bio/SimpleAnalysisI.pm - version: 1.006922 - Bio::Species: - file: Bio/Species.pm - version: 1.006922 - Bio::Structure::Atom: - file: Bio/Structure/Atom.pm - version: 1.006922 - Bio::Structure::Chain: - file: Bio/Structure/Chain.pm - version: 1.006922 - Bio::Structure::Entry: - file: Bio/Structure/Entry.pm - version: 1.006922 - Bio::Structure::IO: - file: Bio/Structure/IO.pm - version: 1.006922 - Bio::Structure::IO::pdb: - file: Bio/Structure/IO/pdb.pm - version: 1.006922 - Bio::Structure::Model: - file: Bio/Structure/Model.pm - version: 1.006922 - Bio::Structure::Residue: - file: Bio/Structure/Residue.pm - version: 1.006922 - Bio::Structure::SecStr::DSSP::Res: - file: Bio/Structure/SecStr/DSSP/Res.pm - version: 1.006922 - Bio::Structure::SecStr::STRIDE::Res: - file: Bio/Structure/SecStr/STRIDE/Res.pm - version: 1.006922 - Bio::Structure::StructureI: - file: Bio/Structure/StructureI.pm - version: 1.006922 - Bio::Symbol::Alphabet: - file: Bio/Symbol/Alphabet.pm - version: 1.006922 - Bio::Symbol::AlphabetI: - file: Bio/Symbol/AlphabetI.pm - version: 1.006922 - Bio::Symbol::DNAAlphabet: - file: Bio/Symbol/DNAAlphabet.pm - version: 1.006922 - Bio::Symbol::ProteinAlphabet: - file: Bio/Symbol/ProteinAlphabet.pm - version: 1.006922 - Bio::Symbol::Symbol: - file: Bio/Symbol/Symbol.pm - version: 1.006922 - Bio::Symbol::SymbolI: - file: Bio/Symbol/SymbolI.pm - version: 1.006922 - Bio::Taxon: - file: Bio/Taxon.pm - version: 1.006922 - Bio::Taxonomy: - file: Bio/Taxonomy.pm - version: 1.006922 - Bio::Taxonomy::FactoryI: - file: Bio/Taxonomy/FactoryI.pm - version: 1.006922 - Bio::Taxonomy::Node: - file: Bio/Taxonomy/Node.pm - version: 1.006922 - Bio::Taxonomy::Taxon: - file: Bio/Taxonomy/Taxon.pm - version: 1.006922 - Bio::Taxonomy::Tree: - file: Bio/Taxonomy/Tree.pm - version: 1.006922 - Bio::Tools::AlignFactory: - file: Bio/Tools/AlignFactory.pm - version: 1.006922 - Bio::Tools::Alignment::Consed: - file: Bio/Tools/Alignment/Consed.pm - version: 1.006922 - Bio::Tools::Alignment::Trim: - file: Bio/Tools/Alignment/Trim.pm - version: 1.006922 - Bio::Tools::AmpliconSearch: - file: Bio/Tools/AmpliconSearch.pm - version: 1.006922 - Bio::Tools::Analysis::DNA::ESEfinder: - file: Bio/Tools/Analysis/DNA/ESEfinder.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::Domcut: - file: Bio/Tools/Analysis/Protein/Domcut.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::ELM: - file: Bio/Tools/Analysis/Protein/ELM.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::GOR4: - file: Bio/Tools/Analysis/Protein/GOR4.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::HNN: - file: Bio/Tools/Analysis/Protein/HNN.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::Mitoprot: - file: Bio/Tools/Analysis/Protein/Mitoprot.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::NetPhos: - file: Bio/Tools/Analysis/Protein/NetPhos.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::Scansite: - file: Bio/Tools/Analysis/Protein/Scansite.pm - version: 1.006922 - Bio::Tools::Analysis::Protein::Sopma: - file: Bio/Tools/Analysis/Protein/Sopma.pm - version: 1.006922 - Bio::Tools::Analysis::SimpleAnalysisBase: - file: Bio/Tools/Analysis/SimpleAnalysisBase.pm - version: 1.006922 - Bio::Tools::AnalysisResult: - file: Bio/Tools/AnalysisResult.pm - version: 1.006922 - Bio::Tools::Blat: - file: Bio/Tools/Blat.pm - version: 1.006922 - Bio::Tools::CodonTable: - file: Bio/Tools/CodonTable.pm - version: 1.006922 - Bio::Tools::Coil: - file: Bio/Tools/Coil.pm - version: 1.006922 - Bio::Tools::ECnumber: - file: Bio/Tools/ECnumber.pm - version: 1.006922 - Bio::Tools::EMBOSS::Palindrome: - file: Bio/Tools/EMBOSS/Palindrome.pm - version: 1.006922 - Bio::Tools::EPCR: - file: Bio/Tools/EPCR.pm - version: 1.006922 - Bio::Tools::ERPIN: - file: Bio/Tools/ERPIN.pm - version: 1.006922 - Bio::Tools::ESTScan: - file: Bio/Tools/ESTScan.pm - version: 1.006922 - Bio::Tools::Eponine: - file: Bio/Tools/Eponine.pm - version: 1.006922 - Bio::Tools::Est2Genome: - file: Bio/Tools/Est2Genome.pm - version: 1.006922 - Bio::Tools::Fgenesh: - file: Bio/Tools/Fgenesh.pm - version: 1.006922 - Bio::Tools::FootPrinter: - file: Bio/Tools/FootPrinter.pm - version: 1.006922 - Bio::Tools::GFF: - file: Bio/Tools/GFF.pm - version: 1.006922 - Bio::Tools::Gel: - file: Bio/Tools/Gel.pm - version: 1.006922 - Bio::Tools::Geneid: - file: Bio/Tools/Geneid.pm - version: 1.006922 - Bio::Tools::Genemark: - file: Bio/Tools/Genemark.pm - version: 1.006922 - Bio::Tools::Genewise: - file: Bio/Tools/Genewise.pm - version: 1.006922 - Bio::Tools::Genomewise: - file: Bio/Tools/Genomewise.pm - version: 1.006922 - Bio::Tools::Genscan: - file: Bio/Tools/Genscan.pm - version: 1.006922 - Bio::Tools::Glimmer: - file: Bio/Tools/Glimmer.pm - version: 1.006922 - Bio::Tools::Grail: - file: Bio/Tools/Grail.pm - version: 1.006922 - Bio::Tools::GuessSeqFormat: - file: Bio/Tools/GuessSeqFormat.pm - version: 1.006922 - Bio::Tools::HMMER::Domain: - file: Bio/Tools/HMMER/Domain.pm - version: 1.006922 - Bio::Tools::HMMER::Results: - file: Bio/Tools/HMMER/Results.pm - version: 1.006922 - Bio::Tools::HMMER::Set: - file: Bio/Tools/HMMER/Set.pm - version: 1.006922 - Bio::Tools::Hmmpfam: - file: Bio/Tools/Hmmpfam.pm - version: 1.006922 - Bio::Tools::IUPAC: - file: Bio/Tools/IUPAC.pm - version: 1.006922 - Bio::Tools::Infernal: - file: Bio/Tools/Infernal.pm - version: 1.006922 - Bio::Tools::Lucy: - file: Bio/Tools/Lucy.pm - version: 1.006922 - Bio::Tools::MZEF: - file: Bio/Tools/MZEF.pm - version: 1.006922 - Bio::Tools::Match: - file: Bio/Tools/Match.pm - version: 1.006922 - Bio::Tools::OddCodes: - file: Bio/Tools/OddCodes.pm - version: 1.006922 - Bio::Tools::Phylo::Gerp: - file: Bio/Tools/Phylo/Gerp.pm - version: 1.006922 - Bio::Tools::Phylo::Gumby: - file: Bio/Tools/Phylo/Gumby.pm - version: 1.006922 - Bio::Tools::Phylo::Molphy: - file: Bio/Tools/Phylo/Molphy.pm - version: 1.006922 - Bio::Tools::Phylo::Molphy::Result: - file: Bio/Tools/Phylo/Molphy/Result.pm - version: 1.006922 - Bio::Tools::Phylo::PAML: - file: Bio/Tools/Phylo/PAML.pm - version: 1.006922 - Bio::Tools::Phylo::PAML::Codeml: - file: Bio/Tools/Phylo/PAML/Codeml.pm - version: 1.006922 - Bio::Tools::Phylo::PAML::ModelResult: - file: Bio/Tools/Phylo/PAML/ModelResult.pm - version: 1.006922 - Bio::Tools::Phylo::PAML::Result: - file: Bio/Tools/Phylo/PAML/Result.pm - version: 1.006922 - Bio::Tools::Phylo::Phylip::ProtDist: - file: Bio/Tools/Phylo/Phylip/ProtDist.pm - version: 1.006922 - Bio::Tools::Prediction::Exon: - file: Bio/Tools/Prediction/Exon.pm - version: 1.006922 - Bio::Tools::Prediction::Gene: - file: Bio/Tools/Prediction/Gene.pm - version: 1.006922 - Bio::Tools::Primer3: - file: Bio/Tools/Primer3.pm - version: 1.006922 - Bio::Tools::Primer::Assessor::Base: - file: Bio/Tools/Primer/Assessor/Base.pm - version: 1.006922 - Bio::Tools::Primer::AssessorI: - file: Bio/Tools/Primer/AssessorI.pm - version: 1.006922 - Bio::Tools::Primer::Feature: - file: Bio/Tools/Primer/Feature.pm - version: 1.006922 - Bio::Tools::Primer::Pair: - file: Bio/Tools/Primer/Pair.pm - version: 1.006922 - Bio::Tools::Prints: - file: Bio/Tools/Prints.pm - version: 1.006922 - Bio::Tools::Profile: - file: Bio/Tools/Profile.pm - version: 1.006922 - Bio::Tools::Promoterwise: - file: Bio/Tools/Promoterwise.pm - version: 1.006922 - Bio::Tools::PrositeScan: - file: Bio/Tools/PrositeScan.pm - version: 1.006922 - Bio::Tools::Protparam: - file: Bio/Tools/Protparam.pm - version: 1.006922 - Bio::Tools::Pseudowise: - file: Bio/Tools/Pseudowise.pm - version: 1.006922 - Bio::Tools::QRNA: - file: Bio/Tools/QRNA.pm - version: 1.006922 - Bio::Tools::RNAMotif: - file: Bio/Tools/RNAMotif.pm - version: 1.006922 - Bio::Tools::RandomDistFunctions: - file: Bio/Tools/RandomDistFunctions.pm - version: 1.006922 - Bio::Tools::RepeatMasker: - file: Bio/Tools/RepeatMasker.pm - version: 1.006922 - Bio::Tools::Run::GenericParameters: - file: Bio/Tools/Run/GenericParameters.pm - version: 1.006922 - Bio::Tools::Run::ParametersI: - file: Bio/Tools/Run/ParametersI.pm - version: 1.006922 - Bio::Tools::Run::RemoteBlast: - file: Bio/Tools/Run/RemoteBlast.pm - version: 1.006922 - Bio::Tools::Run::StandAloneBlast: - file: Bio/Tools/Run/StandAloneBlast.pm - version: 1.006922 - Bio::Tools::Run::StandAloneNCBIBlast: - file: Bio/Tools/Run/StandAloneNCBIBlast.pm - version: 1.006922 - Bio::Tools::Run::StandAloneWUBlast: - file: Bio/Tools/Run/StandAloneWUBlast.pm - version: 1.006922 - Bio::Tools::Run::WrapperBase: - file: Bio/Tools/Run/WrapperBase/CommandExts.pm - version: 1.006922 - Bio::Tools::Seg: - file: Bio/Tools/Seg.pm - version: 1.006922 - Bio::Tools::SeqPattern: - file: Bio/Tools/SeqPattern.pm - version: 1.006922 - Bio::Tools::SeqPattern::Backtranslate: - file: Bio/Tools/SeqPattern/Backtranslate.pm - version: 1.006922 - Bio::Tools::SeqStats: - file: Bio/Tools/SeqStats.pm - version: 1.006922 - Bio::Tools::SeqWords: - file: Bio/Tools/SeqWords.pm - version: 1.006922 - Bio::Tools::SiRNA: - file: Bio/Tools/SiRNA.pm - version: 1.006922 - Bio::Tools::SiRNA::Ruleset::saigo: - file: Bio/Tools/SiRNA/Ruleset/saigo.pm - version: 1.006922 - Bio::Tools::SiRNA::Ruleset::tuschl: - file: Bio/Tools/SiRNA/Ruleset/tuschl.pm - version: 1.006922 - Bio::Tools::Sigcleave: - file: Bio/Tools/Sigcleave.pm - version: 1.006922 - Bio::Tools::Signalp: - file: Bio/Tools/Signalp.pm - version: 1.006922 - Bio::Tools::Signalp::ExtendedSignalp: - file: Bio/Tools/Signalp/ExtendedSignalp.pm - version: 1.006922 - Bio::Tools::Sim4::Exon: - file: Bio/Tools/Sim4/Exon.pm - version: 1.006922 - Bio::Tools::Sim4::Results: - file: Bio/Tools/Sim4/Results.pm - version: 1.006922 - Bio::Tools::Spidey::Exon: - file: Bio/Tools/Spidey/Exon.pm - version: 1.006922 - Bio::Tools::Spidey::Results: - file: Bio/Tools/Spidey/Results.pm - version: 1.006922 - Bio::Tools::TandemRepeatsFinder: - file: Bio/Tools/TandemRepeatsFinder.pm - version: 1.006922 - Bio::Tools::TargetP: - file: Bio/Tools/TargetP.pm - version: 1.006922 - Bio::Tools::Tmhmm: - file: Bio/Tools/Tmhmm.pm - version: 1.006922 - Bio::Tools::dpAlign: - file: Bio/Tools/dpAlign.pm - version: 1.006922 - Bio::Tools::ipcress: - file: Bio/Tools/ipcress.pm - version: 1.006922 - Bio::Tools::isPcr: - file: Bio/Tools/isPcr.pm - version: 1.006922 - Bio::Tools::pICalculator: - file: Bio/Tools/pICalculator.pm - version: 1.006922 - Bio::Tools::pSW: - file: Bio/Tools/pSW.pm - version: 1.006922 - Bio::Tools::tRNAscanSE: - file: Bio/Tools/tRNAscanSE.pm - version: 1.006922 - Bio::Tree::AlleleNode: - file: Bio/Tree/AlleleNode.pm - version: 1.006922 - Bio::Tree::AnnotatableNode: - file: Bio/Tree/AnnotatableNode.pm - version: 1.006922 - Bio::Tree::Compatible: - file: Bio/Tree/Compatible.pm - version: 1.006922 - Bio::Tree::DistanceFactory: - file: Bio/Tree/DistanceFactory.pm - version: 1.006922 - Bio::Tree::Draw::Cladogram: - file: Bio/Tree/Draw/Cladogram.pm - version: 1.006922 - Bio::Tree::Node: - file: Bio/Tree/Node.pm - version: 1.006922 - Bio::Tree::NodeI: - file: Bio/Tree/NodeI.pm - version: 1.006922 - Bio::Tree::NodeNHX: - file: Bio/Tree/NodeNHX.pm - version: 1.006922 - Bio::Tree::RandomFactory: - file: Bio/Tree/RandomFactory.pm - version: 1.006922 - Bio::Tree::Statistics: - file: Bio/Tree/Statistics.pm - version: 1.006922 - Bio::Tree::Tree: - file: Bio/Tree/Tree.pm - version: 1.006922 - Bio::Tree::TreeFunctionsI: - file: Bio/Tree/TreeFunctionsI.pm - version: 1.006922 - Bio::Tree::TreeI: - file: Bio/Tree/TreeI.pm - version: 1.006922 - Bio::TreeIO: - file: Bio/TreeIO.pm - version: 1.006922 - Bio::TreeIO::NewickParser: - file: Bio/TreeIO/NewickParser.pm - version: 1.006922 - Bio::TreeIO::TreeEventBuilder: - file: Bio/TreeIO/TreeEventBuilder.pm - version: 1.006922 - Bio::TreeIO::cluster: - file: Bio/TreeIO/cluster.pm - version: 1.006922 - Bio::TreeIO::lintree: - file: Bio/TreeIO/lintree.pm - version: 1.006922 - Bio::TreeIO::newick: - file: Bio/TreeIO/newick.pm - version: 1.006922 - Bio::TreeIO::nexml: - file: Bio/TreeIO/nexml.pm - version: 1.006922 - Bio::TreeIO::nexus: - file: Bio/TreeIO/nexus.pm - version: 1.006922 - Bio::TreeIO::nhx: - file: Bio/TreeIO/nhx.pm - version: 1.006922 - Bio::TreeIO::pag: - file: Bio/TreeIO/pag.pm - version: 1.006922 - Bio::TreeIO::phyloxml: - file: Bio/TreeIO/phyloxml.pm - version: 1.006922 - Bio::TreeIO::svggraph: - file: Bio/TreeIO/svggraph.pm - version: 1.006922 - Bio::TreeIO::tabtree: - file: Bio/TreeIO/tabtree.pm - version: 1.006922 - Bio::UpdateableSeqI: - file: Bio/UpdateableSeqI.pm - version: 1.006922 - Bio::Variation::AAChange: - file: Bio/Variation/AAChange.pm - version: 1.006922 - Bio::Variation::AAReverseMutate: - file: Bio/Variation/AAReverseMutate.pm - version: 1.006922 - Bio::Variation::Allele: - file: Bio/Variation/Allele.pm - version: 1.006922 - Bio::Variation::DNAMutation: - file: Bio/Variation/DNAMutation.pm - version: 1.006922 - Bio::Variation::IO: - file: Bio/Variation/IO.pm - version: 1.006922 - Bio::Variation::IO::flat: - file: Bio/Variation/IO/flat.pm - version: 1.006922 - Bio::Variation::IO::xml: - file: Bio/Variation/IO/xml.pm - version: 1.006922 - Bio::Variation::RNAChange: - file: Bio/Variation/RNAChange.pm - version: 1.006922 - Bio::Variation::SNP: - file: Bio/Variation/SNP.pm - version: 1.006922 - Bio::Variation::SeqDiff: - file: Bio/Variation/SeqDiff.pm - version: 1.006922 - Bio::Variation::VariantI: - file: Bio/Variation/VariantI.pm - version: 1.006922 - Bio::WebAgent: - file: Bio/WebAgent.pm - version: 1.006922 - FeatureStore: - file: Bio/DB/GFF/Adaptor/berkeleydb.pm - version: 1.006922 recommends: Algorithm::Munkres: 0 Array::Compare: 0 @@ -2511,7 +35,6 @@ HTTP::Request::Common: 0 LWP::UserAgent: 0 List::MoreUtils: 0 - Math::Random: 0 PostScript::TextBlock: 0 SOAP::Lite: 0 SVG: 2.26 @@ -2538,4 +61,4 @@ perl: v5.6.1 resources: license: http://dev.perl.org/licenses/ -version: 1.006922 +version: 1.006923 diff -Nru bioperl-1.6.922/debian/changelog bioperl-1.6.923/debian/changelog --- bioperl-1.6.922/debian/changelog 2013-09-22 04:39:56.000000000 +0000 +++ bioperl-1.6.923/debian/changelog 2014-01-18 02:42:05.000000000 +0000 @@ -1,3 +1,13 @@ +bioperl (1.6.923-1) unstable; urgency=medium + + * New upstream release. + * Does not need non-free libmath-random-perl anymore. + * Build-depend on libmodule-build-perl (>= 0.420000). Despite Lintian's + warning that it is useless, the package does not build without. + * Conforms to Policy version 3.9.5. + + -- Charles Plessy Sat, 18 Jan 2014 11:41:11 +0900 + bioperl (1.6.922-1) unstable; urgency=low * New upstream release. diff -Nru bioperl-1.6.922/debian/control bioperl-1.6.923/debian/control --- bioperl-1.6.922/debian/control 2013-09-22 04:30:54.000000000 +0000 +++ bioperl-1.6.923/debian/control 2014-01-18 02:41:10.000000000 +0000 @@ -8,6 +8,8 @@ Olivier Sallou Build-Depends: debhelper (>= 9) Build-Depends-Indep: perl, perl-modules (>= 5.10.1), +# Unnecessary according to lintian, but building with sbuild shows the contrary. + libmodule-build-perl (>= 0.420000), libio-string-perl, libdata-stag-perl, libtest-most-perl, @@ -28,7 +30,6 @@ libhtml-parser-perl, libhtml-tableextract-perl, liblist-moreutils-perl, -# (non-free) libmath-random-perl, libpostscript-perl, libset-scalar-perl, libsoap-lite-perl, @@ -51,7 +52,7 @@ libwww-perl, # Needed to avoid downloading DTDs during the tests and therefore fail when network is not available: libxml-sax-expatxs-perl -Standards-Version: 3.9.4 +Standards-Version: 3.9.5 Vcs-Browser: http://anonscm.debian.org/viewvc/debian-med/trunk/packages/bioperl/trunk/ Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/bioperl/trunk/ Homepage: http://www.bioperl.org/ @@ -148,7 +149,6 @@ libhtml-parser-perl, libhtml-tableextract-perl, liblist-moreutils-perl, -# (non-free) libmath-random-perl, libpostscript-perl, libset-scalar-perl, libsoap-lite-perl, @@ -169,8 +169,6 @@ libxml-libxml-perl, libwww-perl Suggests: bioperl, - libmath-random-perl, -# libmath-random-perl is non-free. libxml-sax-expatxs-perl # Needed to avoid downloading DTDs. Description: BioPerl core perl modules diff -Nru bioperl-1.6.922/debian/copyright bioperl-1.6.923/debian/copyright --- bioperl-1.6.922/debian/copyright 2013-09-22 04:33:04.000000000 +0000 +++ bioperl-1.6.923/debian/copyright 2014-01-18 01:52:06.000000000 +0000 @@ -1,5 +1,5 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Source: http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.6.922.tar.gz +Source: http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.6.923.tar.gz Files: * Copyright: The Bioperl developers. diff -Nru bioperl-1.6.922/doc/Deobfuscator/README bioperl-1.6.923/doc/Deobfuscator/README --- bioperl-1.6.922/doc/Deobfuscator/README 2013-09-14 15:45:59.000000000 +0000 +++ bioperl-1.6.923/doc/Deobfuscator/README 2013-12-18 05:12:43.000000000 +0000 @@ -15,7 +15,8 @@ DOCUMENTATION -All of the code in this distribution have POD documentation, which can be read using the perldoc command. For example, +All of the code in this distribution have POD documentation, which can +be read using the perldoc command. For example, perldoc lib/Deobfuscator.pm @@ -35,7 +36,8 @@ Follow these steps to install the Deobfuscator on your system: -1) Follow the standard CPAN installation procedure to install the Deobfuscator.pm module and the deob_index.pl program. +1) Follow the standard CPAN installation procedure to install the +Deobfuscator.pm module and the deob_index.pl program. Run the following commands: @@ -63,12 +65,15 @@ should do it. -4) Run deob_index.pl. For a default installation, run it from your webserver's cgi-bin directory. On UNIX systems, it should be something like: +4) Run deob_index.pl. For a default installation, run it from your +webserver's cgi-bin directory. On UNIX systems, it should be something +like: cd /Library/WebServer/CGI-Executables deob_index.pl /Library/Perl/5.8.6/Bio . -When the command finishes, it should show you some stats on the indexing. On my system it looked like this for BioPerl 1.5.1: +When the command finishes, it should show you some stats on the +indexing. On my system it looked like this for BioPerl 1.5.1: This indexing run found: 803 files @@ -77,7 +82,8 @@ 788 synopsis 5660 methods -If the number of files is much lower than this (like 0), then deob_index.pl may have been pointed to the wrong directory. +If the number of files is much lower than this (like 0), then +deob_index.pl may have been pointed to the wrong directory. There should also be some new files in the directory you ran it from: packages.db @@ -85,18 +91,36 @@ package_list.txt deob_index.log -You can move or delete deob_index.log and the Deobfuscator should still work, -but the other three files need to be in the same directory as deob_interface.cgi and deob_index.cgi unless you change the hardcoded variables in those scripts. See their documentation if you want to do that. +You can move or delete deob_index.log and the Deobfuscator should +still work, but the other three files need to be in the same directory +as deob_interface.cgi and deob_index.cgi unless you change the +hardcoded variables in those scripts. See their documentation if you +want to do that. -5) Test your installation by pointing your browser to the deob_interface.cgi script. On my system, the URL is: +5) Test your installation by pointing your browser to the +deob_interface.cgi script. On my system, the URL is: http://localhost/cgi-bin/deob_interface.cgi -If you get an error, check the permissions on the cgi-scripts and the files that deob_index.pl created in the last step. Your webserver error log may also be helpful. - -If you moved any of the files outside of your webserver's cgi-bin directory, make sure that the hardcoded variables in deob_interface.cgi point to their new location. - -6) That should be it! As always, check the POD documentation in the individual files for more information. And if you have comments, suggesions, or problems, send an email to the BioPerl mailing list . +If you get an error, check the permissions on the cgi-scripts and the +files that deob_index.pl created in the last step. Your webserver +error log may also be helpful. + +If you moved any of the files outside of your webserver's cgi-bin +directory, make sure that the hardcoded variables in +deob_interface.cgi point to their new location. + +The BioPerl code itself (the modules) need to be in the @INC +(PERL5LIB) of the user running the Deobfuscator +itself. (Class::Inspector, used under the hood by the Deobfuscator, +must be able to 'use' a module in order to find its methods.) You may +need to add a 'use lib' directive at the beginning of +deob_interface.cgi. + +6) That should be it! As always, check the POD documentation in the +individual files for more information. And if you have comments, +suggesions, or problems, send an email to the BioPerl mailing list +. DEPENDENCIES diff -Nru bioperl-1.6.922/doc/Deobfuscator/bin/run-deobfuscator-update.pl bioperl-1.6.923/doc/Deobfuscator/bin/run-deobfuscator-update.pl --- bioperl-1.6.922/doc/Deobfuscator/bin/run-deobfuscator-update.pl 1970-01-01 00:00:00.000000000 +0000 +++ bioperl-1.6.923/doc/Deobfuscator/bin/run-deobfuscator-update.pl 2013-12-18 05:12:45.000000000 +0000 @@ -0,0 +1,28 @@ +#!/usr/bin/perl -w +use strict; + +my $base = '/home/websites/bioperl.org'; +my $srcdir = "$base/src/git"; +my $deob_index = "$base/src/Deobfuscator/bin/deob_index.pl"; + +my @modules = qw( + bioperl-corba-client + bioperl-corba-server + bioperl-db + bioperl-dev + bioperl-ext + bioperl-gui + bioperl-live + bioperl-microarray + bioperl-network + bioperl-pedigree + bioperl-pipeline + bioperl-pise + bioperl-run +); + +chdir $srcdir; +for my $module (@modules) { + system("/usr/bin/perl $deob_index -s $module $srcdir/$module/Bio $srcdir/$module"); +} +exit(); diff -Nru bioperl-1.6.922/doc/Deobfuscator/cgi-bin/deob_detail.cgi bioperl-1.6.923/doc/Deobfuscator/cgi-bin/deob_detail.cgi --- bioperl-1.6.922/doc/Deobfuscator/cgi-bin/deob_detail.cgi 2013-09-14 15:45:47.000000000 +0000 +++ bioperl-1.6.923/doc/Deobfuscator/cgi-bin/deob_detail.cgi 2013-12-18 05:13:02.000000000 +0000 @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w # Deob_detail.cgi # part of the Deobfuscator package @@ -79,7 +79,7 @@ the bugs and their resolution. Bug reports can be submitted via the web: - https://redmine.open-bio.org/projects/bioperl/ + http://bugzilla.bioperl.org/ =head1 SEE ALSO @@ -206,4 +206,4 @@ Deobfuscator::close_db($BerkeleyDB_packages); Deobfuscator::close_db($BerkeleyDB_methods); -__END__ \ No newline at end of file +__END__ diff -Nru bioperl-1.6.922/doc/Deobfuscator/lib/Deobfuscator.pm bioperl-1.6.923/doc/Deobfuscator/lib/Deobfuscator.pm --- bioperl-1.6.922/doc/Deobfuscator/lib/Deobfuscator.pm 2013-09-14 15:45:37.000000000 +0000 +++ bioperl-1.6.923/doc/Deobfuscator/lib/Deobfuscator.pm 2013-12-18 05:12:56.000000000 +0000 @@ -10,7 +10,7 @@ # part of the Deobfuscator package # by Laura Kavanaugh and Dave Messina # -# cared for by Dave Messina +# cared for by Dave Messina # # POD documentation - main docs before the code @@ -87,6 +87,15 @@ =back +=item C<< error: couldn't load [module] >> + +The BioPerl modules aren't in the Perl lib (PERL5LIB) and so can't be searched +(the Deobfuscator uses I for this. Check that the value of +your PERL5LIB includes BioPerl's modules. If need be, you can set a use lub directive +at the beginning of deob_interface.cgi. + +=back + =head1 CONFIGURATION AND ENVIRONMENT @@ -139,24 +148,13 @@ bioperl-l@bioperl.org - General discussion http://www.bioperl.org/wiki/Mailing_lists - About the mailing lists -=head2 Support - -Please direct usage questions or support issues to the mailing list: - -L - -rather than to the module maintainer directly. Many experienced and -reponsive experts will be able look at the problem and quickly -address it. Please include a thorough description of the problem -with code and data examples if at all possible. - =head2 Reporting Bugs Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via the web: - https://redmine.open-bio.org/projects/bioperl/ + http://bugzilla.bioperl.org/ =head1 SEE ALSO @@ -248,7 +246,8 @@ foreach my $class (@input) { # fancy eval so that we can loop through different modules - _load_module($class); + my $retval = _load_module($class); + if ($retval) { die "error: couldn't load $class: $retval\n"; } # methods returned from Class::Inspector as: # [ @@ -293,7 +292,8 @@ foreach my $class (@input) { # fancy eval so that we can loop through different modules - _load_module($class); + my $retval = _load_module($class); + if ($retval) { die "error: couldn't load $class: $retval\n"; } # methods returned as # [ diff -Nru bioperl-1.6.922/t/Align/SimpleAlign.t bioperl-1.6.923/t/Align/SimpleAlign.t --- bioperl-1.6.922/t/Align/SimpleAlign.t 2013-09-14 15:45:54.000000000 +0000 +++ bioperl-1.6.923/t/Align/SimpleAlign.t 2013-12-18 05:13:02.000000000 +0000 @@ -426,11 +426,9 @@ for my $feature ( $aln->get_SeqFeatures ) { for my $loc ( $feature->location->each_Location ) { my $masked = $aln->mask_columns( $loc->start, $loc->end, '?'); - TODO: { - local $TODO = "This should pass but dies; see bug 2842"; - $masked->verbose(2); - lives_ok {my $fslice = $masked->slice( $loc->start, $loc->end )}; - } + $masked->verbose(2); + lives_ok {my $fslice = $masked->slice( $loc->start, $loc->end )}; + $masked->verbose(-1); my $fslice = $masked->slice( $loc->start, $loc->end ); is( $fslice->length, $slice_lens[ $i++ ], "slice $i len" ); diff -Nru bioperl-1.6.922/t/AlignIO/bl2seq.t bioperl-1.6.923/t/AlignIO/bl2seq.t --- bioperl-1.6.922/t/AlignIO/bl2seq.t 2013-09-14 15:46:00.000000000 +0000 +++ bioperl-1.6.923/t/AlignIO/bl2seq.t 2013-12-18 05:12:58.000000000 +0000 @@ -4,12 +4,12 @@ use strict; BEGIN { - use lib '.'; + use lib '.'; use Bio::Root::Test; - test_begin(-tests => 3); - - use_ok('Bio::AlignIO::bl2seq'); + test_begin(-tests => 7); + + use_ok('Bio::AlignIO::bl2seq'); } my $DEBUG = test_debug(); @@ -17,11 +17,20 @@ my ($str,$aln,$strout,$status); # BL2SEQ -$str = Bio::AlignIO->new( - '-file' => test_input_file("bl2seq.out"), - '-format' => 'bl2seq', - '-report_type' => 'blastp'); +$str = Bio::AlignIO->new(-file => test_input_file("bl2seq.out"), + -format => 'bl2seq', + -report_type => 'blastp'); $aln = $str->next_aln(); isa_ok($aln,'Bio::Align::AlignI'); -is $aln->get_seq_by_pos(2)->get_nse, 'ALEU_HORVU/60-360', - "BLAST bl2seq format test"; \ No newline at end of file +is $aln->get_seq_by_pos(2)->get_nse, 'ALEU_HORVU/60-360', "BLAST bl2seq format test"; + +# Bug 2978, test report_type guessing for TBLASTN and correct Frame assignment to HitFrame +$str = Bio::AlignIO->new(-file => test_input_file("bl2seq.tblastn.out"), + -format => 'bl2seq'); +$aln = $str->next_aln(); +isa_ok($aln,'Bio::Align::AlignI'); +foreach my $seq ( $aln->each_seq_with_id('WAN03UHTX_1') ) { + is $seq->start(), 946; + is $seq->end(), 990; + is $seq->strand(), -1; +} diff -Nru bioperl-1.6.922/t/LocalDB/BioDBGFF.t bioperl-1.6.923/t/LocalDB/BioDBGFF.t --- bioperl-1.6.922/t/LocalDB/BioDBGFF.t 2013-09-14 15:45:48.000000000 +0000 +++ bioperl-1.6.923/t/LocalDB/BioDBGFF.t 2013-12-18 05:12:52.000000000 +0000 @@ -9,8 +9,7 @@ use lib '.'; use Bio::Root::Test; - test_begin(-tests => 275, - -excludes_os => 'mswin'); + test_begin(-tests => 275); use_ok('Bio::DB::GFF'); } diff -Nru bioperl-1.6.922/t/LocalDB/Fasta.t bioperl-1.6.923/t/LocalDB/Fasta.t --- bioperl-1.6.922/t/LocalDB/Fasta.t 2013-09-14 15:46:07.000000000 +0000 +++ bioperl-1.6.923/t/LocalDB/Fasta.t 2013-12-18 05:12:42.000000000 +0000 @@ -172,6 +172,9 @@ is $db3->file('AW057336'), '3.fa'; is $db1->file('AW057231'), '1.fa'; is $db4->file('AW057410'), '3.fa'; + unlink $db1->index_name; + unlink $db2->index_name; + unlink $db3->index_name; } diff -Nru bioperl-1.6.922/t/LocalDB/Index/Index.t bioperl-1.6.923/t/LocalDB/Index/Index.t --- bioperl-1.6.922/t/LocalDB/Index/Index.t 2013-09-14 15:45:54.000000000 +0000 +++ bioperl-1.6.923/t/LocalDB/Index/Index.t 2013-12-18 05:12:59.000000000 +0000 @@ -24,8 +24,8 @@ } my $ind = Bio::Index::Fasta->new(-filename => 'Wibbl', - -write_flag => 1, - -verbose => 0); + -write_flag => 1, + -verbose => 0); $ind->make_index(test_input_file('multifa.seq')); $ind->make_index(test_input_file('seqs.fas')); @@ -47,15 +47,15 @@ isa_ok $seq, 'Bio::PrimarySeqI'; $ind = Bio::Index::Fasta->new(-filename => 'multifa_index', - -write_flag => 1, - -verbose => 0); + -write_flag => 1, + -verbose => 0); $ind->make_index(test_input_file('multifa.seq.qual')); ok ( -e "multifa_index" ); $ind = Bio::Index::Qual->new(-filename => 'multifa_qual_index', - -write_flag => 1, - -verbose => 0); + -write_flag => 1, + -verbose => 0); $ind->make_index(test_input_file('multifa.seq.qual')); ok ( -e "multifa_qual_index" ); @@ -75,19 +75,19 @@ ok(! defined $seq); $ind = Bio::Index::SwissPfam->new(-filename => 'Wibbl2', - -write_flag =>1); + -write_flag =>1); $ind->make_index(test_input_file('swisspfam.data')); ok ( -e "Wibbl2" || -e "Wibbl2.pag" ); $ind = Bio::Index::EMBL->new(-filename => 'Wibbl3', - -write_flag =>1); + -write_flag =>1); $ind->make_index(test_input_file('test.embl')); ok ( -e "Wibbl3" || -e "Wibbl3.pag" ); is ($ind->fetch('AL031232')->length, 4870); $ind = Bio::Index::Swissprot->new(-filename => 'Wibbl4', - -write_flag => 1); + -write_flag => 1); $ind->make_index(test_input_file('roa1.swiss')); ok ( -e "Wibbl4" || -e "Wibbl4.pag" ); $seq = $ind->fetch('ROA1_HUMAN'); @@ -97,7 +97,7 @@ # test id_parser $ind = Bio::Index::Swissprot->new(-filename => 'Wibbl4', - -write_flag => 1); + -write_flag => 1); $ind->id_parser(\&get_id); $ind->make_index(test_input_file('roa1.swiss')); ok ( -e "Wibbl4" || -e "Wibbl4.pag" ); @@ -106,8 +106,8 @@ my $gb_ind = Bio::Index::GenBank->new(-filename => 'Wibbl5', - -write_flag =>1, - -verbose => 0); + -write_flag =>1, + -verbose => 0); $gb_ind->make_index(test_input_file('roa1.genbank')); ok ( -e "Wibbl5" || -e "Wibbl5.pag" ); $seq = $gb_ind->fetch('AI129902'); @@ -124,8 +124,8 @@ test_skip(-tests => 22, -requires_module => 'Bio::DB::FileCache'); $cache = Bio::DB::FileCache->new(-seqdb => $gb_ind, - -keep => 1, - -file => 'filecache.idx'); + -keep => 1, + -file => 'filecache.idx'); # problem: my $seq = $cache->get_Seq_by_id('AI129902'); ok ( $seq); @@ -147,8 +147,8 @@ $cache = undef; $cache = Bio::DB::FileCache->new(-seqdb => $gb_ind, - -keep => 0, - -file => 'filecache.idx'); + -keep => 0, + -file => 'filecache.idx'); $seq = $cache->get_Seq_by_id('AI129902'); ok ( $seq); is ( $seq->length, 37); @@ -170,8 +170,8 @@ # test id_parser $gb_ind = Bio::Index::GenBank->new(-filename => 'Wibbl5', - -write_flag =>1, - -verbose => 0); + -write_flag =>1, + -verbose => 0); $gb_ind->id_parser(\&get_id); $gb_ind->make_index(test_input_file('roa1.genbank')); ok ( -e "Wibbl5" || -e "Wibbl5.pag" ); @@ -180,8 +180,8 @@ # test Stockholm my $st_ind = Bio::Index::Stockholm->new(-filename => 'Wibbl6', - -write_flag => 1, - -verbose => 0); + -write_flag => 1, + -verbose => 0); isa_ok $st_ind, 'Bio::Index::Stockholm'; $st_ind->make_index(test_input_file('testaln.stockholm')); ok ( -e "Wibbl6" ); @@ -192,20 +192,20 @@ sub get_id { - my $line = shift; - return $1 if ($line =~ /product="([^"]+)"/); - return $1 if ($line =~ /^DR\s+EMBL;\s+([^;]+)/); + my $line = shift; + return $1 if ($line =~ /product="([^"]+)"/); + return $1 if ($line =~ /^DR\s+EMBL;\s+([^;]+)/); } END { - cleanup(); + cleanup(); } sub cleanup { - for my $root ( qw( Wibbl Wibbl2 Wibbl3 Wibbl4 Wibbl5 Wibbl6 + for my $root ( qw( Wibbl Wibbl2 Wibbl3 Wibbl4 Wibbl5 Wibbl6 multifa_index multifa_qual_index ) ) { - unlink $root if( -e $root ); - unlink "$root.pag" if( -e "$root.pag"); - unlink "$root.dir" if( -e "$root.dir"); - } + unlink $root if( -e $root ); + unlink "$root.pag" if( -e "$root.pag"); + unlink "$root.dir" if( -e "$root.dir"); + } } diff -Nru bioperl-1.6.922/t/LocalDB/SeqFeature.t bioperl-1.6.923/t/LocalDB/SeqFeature.t --- bioperl-1.6.922/t/LocalDB/SeqFeature.t 2013-09-14 15:45:53.000000000 +0000 +++ bioperl-1.6.923/t/LocalDB/SeqFeature.t 2013-12-18 05:12:54.000000000 +0000 @@ -319,9 +319,10 @@ my $fasta_dir = make_fasta_testdir(); my $dbfa = Bio::DB::Fasta->new($fasta_dir, -reindex => 1); ok($dbfa); + ok(my $contig1=$dbfa->seq('Contig1')); -$db = Bio::DB::SeqFeature::Store->new(@args,-fasta=>$dbfa); +$db = Bio::DB::SeqFeature::Store->new(@args,-fasta=>$dbfa); $loader = Bio::DB::SeqFeature::Store::GFF3Loader->new(-store=>$db); ok($loader->load($gff_file)); @@ -334,6 +335,18 @@ my $length = $f->length; ok(substr($contig2,0,$length) eq $f->dna); +# DESTROY for $dbfa sometimes is not being called at script end, +# so call it explicitly to close temporal filehandles +# and allow their deletion +$dbfa->DESTROY; + +# Remove temporal database file used for SQLite tests +if ($db->isa('Bio::DB::SeqFeature::Store::DBI::SQLite')) { + $db->DESTROY; + unlink $db->{dbh_file}; +} + + # testing namespaces for mysql and Pg adaptor SKIP: { diff -Nru bioperl-1.6.922/t/RemoteDB/EntrezGene.t bioperl-1.6.923/t/RemoteDB/EntrezGene.t --- bioperl-1.6.922/t/RemoteDB/EntrezGene.t 2013-09-14 15:45:38.000000000 +0000 +++ bioperl-1.6.923/t/RemoteDB/EntrezGene.t 2013-12-18 05:12:46.000000000 +0000 @@ -38,4 +38,3 @@ is $seq->display_id, "RP"; is $seq->accession_number, 6099; } - diff -Nru bioperl-1.6.922/t/RemoteDB/MeSH.t bioperl-1.6.923/t/RemoteDB/MeSH.t --- bioperl-1.6.922/t/RemoteDB/MeSH.t 2013-09-14 15:45:42.000000000 +0000 +++ bioperl-1.6.923/t/RemoteDB/MeSH.t 2013-12-18 05:12:46.000000000 +0000 @@ -30,4 +30,3 @@ is $t->description, "Thrombus formation in an intracranial venous sinus, including the superior sagittal, cavernous, lateral, and petrous sinuses. Etiologies include thrombosis due to infection, DEHYDRATION, coagulation disorders (see THROMBOPHILIA), and CRANIOCEREBRAL TRAUMA."; is $t->id, "D012851"; } - diff -Nru bioperl-1.6.922/t/RemoteDB/Query/GenBank.t bioperl-1.6.923/t/RemoteDB/Query/GenBank.t --- bioperl-1.6.922/t/RemoteDB/Query/GenBank.t 2013-09-14 15:45:38.000000000 +0000 +++ bioperl-1.6.923/t/RemoteDB/Query/GenBank.t 2013-12-18 05:13:01.000000000 +0000 @@ -82,4 +82,3 @@ $query = Bio::DB::Query::GenBank->new('-query' => 'AF303112', '-ids' => [qw(J00522 AF303112 2981014)]); is $query->query, 'J00522[PACC]|AF303112[PACC]|2981014[UID]'; - diff -Nru bioperl-1.6.922/t/Root/HTTPget.t bioperl-1.6.923/t/Root/HTTPget.t --- bioperl-1.6.922/t/Root/HTTPget.t 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/t/Root/HTTPget.t 2013-12-18 05:12:53.000000000 +0000 @@ -102,4 +102,3 @@ $newobj->authentication(@TEST_AUTHENTICATION); is ($newobj->proxy(), $TEST_PROXY); is_deeply([$newobj->authentication], \@TEST_AUTHENTICATION); - diff -Nru bioperl-1.6.922/t/SearchIO/blast_pull.t bioperl-1.6.923/t/SearchIO/blast_pull.t --- bioperl-1.6.922/t/SearchIO/blast_pull.t 2013-09-14 15:45:46.000000000 +0000 +++ bioperl-1.6.923/t/SearchIO/blast_pull.t 2013-12-18 05:12:50.000000000 +0000 @@ -228,7 +228,7 @@ is(sprintf("%.4f",$hsp->frac_identical('hit')), 0.9831); is($hsp->query->frame(), 0); is($hsp->hit->frame(), 0); - is($hsp->query->seq_id, undef); + is($hsp->query->seq_id, ''); is($hsp->hit->seq_id, 'gb|AY052359.1|'); is($hsp->gaps('query'), 0); is($hsp->gaps('hit'), 1); diff -Nru bioperl-1.6.922/t/Seq/LargePSeq.t bioperl-1.6.923/t/Seq/LargePSeq.t --- bioperl-1.6.922/t/Seq/LargePSeq.t 2013-09-14 15:46:01.000000000 +0000 +++ bioperl-1.6.923/t/Seq/LargePSeq.t 2013-12-18 05:13:04.000000000 +0000 @@ -50,7 +50,7 @@ is( $pseq->subseq($fuzzy), 'GGTGAAACC'); -is($pseq->trunc(8,15)->seq, 'GGGGTGAA', +is($pseq->trunc(8,15)->seq, 'GGGGTGAA', 'trunc seq was ' . $pseq->trunc(8,15)->seq); @@ -96,4 +96,3 @@ is $seq->alphabet('dna'), 'dna'; # so translate will not complain is $seq->translate()->seq, 'MGWG'; - diff -Nru bioperl-1.6.922/t/Seq/PrimarySeq.t bioperl-1.6.923/t/Seq/PrimarySeq.t --- bioperl-1.6.922/t/Seq/PrimarySeq.t 2013-09-14 15:45:45.000000000 +0000 +++ bioperl-1.6.923/t/Seq/PrimarySeq.t 2013-12-18 05:13:00.000000000 +0000 @@ -7,7 +7,7 @@ BEGIN { use lib '.'; use Bio::Root::Test; - test_begin( -tests => 181 ); + test_begin( -tests => 287 ); use_ok('Bio::PrimarySeq'); use_ok('Bio::Location::Simple'); @@ -48,7 +48,7 @@ is $seq->alphabet(), 'dna'; is $seq->is_circular(), undef; ok $seq->is_circular(1); -is $seq->is_circular(0), 0; +is $seq->is_circular(0), 0; # check IdentifiableI and DescribableI interfaces isa_ok $seq, 'Bio::IdentifiableI'; @@ -131,6 +131,45 @@ is $seq->subseq( -start => 7, -end => 10 ), 'TTAA'; } +### Test for Bug #2936 +# Without strand input argument (case: user don't think is necessary) +my $split_loc_obj1 = Bio::Location::Split->new(); +$split_loc_obj1->add_sub_Location( + Bio::Location::Simple->new( + '-start' => 1, + '-end' => 10 + ) +); +$split_loc_obj1->add_sub_Location( + Bio::Location::Simple->new( + '-start' => 20, + '-end' => 30 + ) +); +# With strand input argument (case: user provides the argument) +my $split_loc_obj2 = Bio::Location::Split->new(); +$split_loc_obj2->add_sub_Location( + Bio::Location::Simple->new( + '-start' => 1, + '-end' => 10, + '-strand' => 1 + ) +); +$split_loc_obj2->add_sub_Location( + Bio::Location::Simple->new( + '-start' => 20, + '-end' => 30, + '-strand' => 1 + ) +); +is $split_loc_obj1->to_FTstring, "join(1..10,20..30)"; +is $split_loc_obj2->to_FTstring, "join(1..10,20..30)"; +$split_loc_obj1->flip_strand; +$split_loc_obj2->flip_strand; +is $split_loc_obj1->to_FTstring, "complement(join(1..10,20..30))"; +is $split_loc_obj2->to_FTstring, "complement(join(1..10,20..30))"; +### + # Test trunc my $trunc = $seq->trunc( 1, 4 ); isa_ok $trunc, 'Bio::PrimarySeqI'; @@ -150,24 +189,16 @@ is $rev->seq(), 'AGTTGACGCCACCAA' or diag( 'revcom() failed, was ' . $rev->seq() ); -is $rev->display_id, 'new-id'; -is $rev->display_name(), 'new-id'; +is $rev->display_id, 'new-id'; +is $rev->display_name(), 'new-id'; is $rev->accession_number(), 'X677667'; -is $rev->alphabet, 'dna'; -is $rev->description, 'Sample Bio::Seq object'; - - -TODO: { - local $TODO = - 'all attributes of primaryseqs are not currently copied through revcom()'; - # Probably also not copied through trunc(), transcribe() and rev_transcribe() - is $rev->is_circular(), 0, 'is_circular copied through revcom'; - is $rev->version, 47, 'version copied through revcom'; - is $rev->authority, 'bioperl.org', 'authority copied through revcom'; - is $rev->namespace, 't', 'namespace copied through revcom'; - is $rev->namespace_string(), - "t:X677667.47", 'namespace_string copied through revcom'; -} +is $rev->alphabet, 'dna'; +is $rev->description, 'Sample Bio::Seq object'; +is $rev->is_circular(), 0; +is $rev->version, 47; +is $rev->authority, 'bioperl.org'; +is $rev->namespace, 't'; +is $rev->namespace_string(), 't:X677667.47'; # # Translate @@ -439,3 +470,252 @@ ); } } + +##### +# Extensive location and subsequence tests +ok $seq = Bio::PrimarySeq->new('-seq' => 'AAAAACCCCCGGGGGTTTTT',); +ok $seq->is_circular(1); + +# NOTE: "_no_strand" variables tests the possibility that the user didn't set +# Strand for positive coordinates (or the object comes from +# Bio::Factory::FTLocationFactory->from_string) + +# Single location +# Coordinates: 1..5 => AAAAA +# Revcom: complement(1..5) => TTTTT +ok my $loc1_strand = Bio::Location::Simple->new('-start' => 1, '-end' => 5,'-strand' => 1); +ok my $loc1_no_strand = Bio::Location::Simple->new('-start' => 1, '-end' => 5); +is $seq->subseq($loc1_strand), 'AAAAA'; +is $seq->subseq($loc1_no_strand), 'AAAAA'; +is $loc1_strand->to_FTstring, '1..5'; +is $loc1_no_strand->to_FTstring, '1..5'; +$loc1_strand->flip_strand; +$loc1_no_strand->flip_strand; +is $seq->subseq($loc1_strand), 'TTTTT'; +is $seq->subseq($loc1_no_strand), 'TTTTT'; +is $loc1_strand->to_FTstring, 'complement(1..5)'; +is $loc1_no_strand->to_FTstring, 'complement(1..5)'; + +# Basic split, both locations in positive strand +# Coords: join(6..10,16..20) => CCCCCTTTTT +# Revcom: complement(join(6..10,16..20)) => AAAAAGGGGG +ok my $loc2_strand = Bio::Location::Split->new(); +ok my $loc2_no_strand = Bio::Location::Split->new(); +ok $loc2_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => 1) ); +ok $loc2_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => 1) ); +ok $loc2_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10) ); +ok $loc2_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20) ); +is $seq->subseq($loc2_strand), 'CCCCCTTTTT'; +is $seq->subseq($loc2_no_strand), 'CCCCCTTTTT'; +is $loc2_strand->to_FTstring, 'join(6..10,16..20)'; +is $loc2_no_strand->to_FTstring, 'join(6..10,16..20)'; +$loc2_strand->flip_strand; +$loc2_no_strand->flip_strand; +is $seq->subseq($loc2_strand), 'AAAAAGGGGG'; +is $seq->subseq($loc2_no_strand), 'AAAAAGGGGG'; +is $loc2_strand->to_FTstring, 'complement(join(6..10,16..20))'; +is $loc2_no_strand->to_FTstring, 'complement(join(6..10,16..20))'; + +# Basic split, both locations in negative strand +# Coords: complement(join(6..10,16..20)) => AAAAAGGGGG +# Revcom: join(6..10,16..20) => CCCCCTTTTT +my $loc3_strand = Bio::Location::Split->new(); +$loc3_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => -1) ); +$loc3_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => -1) ); +is $seq->subseq($loc3_strand), 'AAAAAGGGGG'; +is $loc3_strand->to_FTstring, 'complement(join(6..10,16..20))'; +$loc3_strand->flip_strand; +is $seq->subseq($loc3_strand), 'CCCCCTTTTT'; +is $loc3_strand->to_FTstring, 'join(6..10,16..20)'; + +## Cut by origin-split, same strand, single sequence that pass through origin +#Coords: join(16..20,1..2) => TTTTTAA +#Revcom: complement(join(16..20,1..2)) => TTAAAAA +my $loc4_strand = Bio::Location::Split->new(); +my $loc4_no_strand = Bio::Location::Split->new(); +$loc4_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => 1) ); +$loc4_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2, '-strand' => 1) ); +$loc4_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20) ); +$loc4_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2) ); +is $seq->subseq($loc4_strand), 'TTTTTAA'; +is $seq->subseq($loc4_no_strand), 'TTTTTAA'; +is $loc4_strand->to_FTstring, 'join(16..20,1..2)'; +is $loc4_no_strand->to_FTstring, 'join(16..20,1..2)'; +$loc4_strand->flip_strand; +$loc4_no_strand->flip_strand; +is $seq->subseq($loc4_strand), 'TTAAAAA'; +is $seq->subseq($loc4_no_strand), 'TTAAAAA'; +is $loc4_strand->to_FTstring, 'complement(join(16..20,1..2))'; +is $loc4_no_strand->to_FTstring, 'complement(join(16..20,1..2))'; + +## Cut by origin-combo split, same strand, 2 sequences with 1st passing through origin +#Coords: join(19..20,1..2,11..13) => TTAAGGG +#Revcom: complement(join(19..20,1..2,11..13)) => CCCTTAA +my $loc5_strand = Bio::Location::Split->new(); +my $loc5_no_strand = Bio::Location::Split->new(); +$loc5_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20, '-strand' => 1) ); +$loc5_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2, '-strand' => 1) ); +$loc5_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13, '-strand' => 1) ); +$loc5_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20) ); +$loc5_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2) ); +$loc5_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13) ); +is $seq->subseq($loc5_strand), 'TTAAGGG'; +is $seq->subseq($loc5_no_strand), 'TTAAGGG'; +is $loc5_strand->to_FTstring, 'join(19..20,1..2,11..13)'; +is $loc5_no_strand->to_FTstring, 'join(19..20,1..2,11..13)'; +$loc5_strand->flip_strand; +$loc5_no_strand->flip_strand; +is $seq->subseq($loc5_strand), 'CCCTTAA'; +is $seq->subseq($loc5_no_strand), 'CCCTTAA'; +is $loc5_strand->to_FTstring, 'complement(join(19..20,1..2,11..13))'; +is $loc5_no_strand->to_FTstring, 'complement(join(19..20,1..2,11..13))'; + +## Cut by origin-combo split, same strand, 2 sequences with 2nd passing through origin +#Coords: join(6..10,19..20,1..4) => CCCCCTTAAAA +#Revcom: complement(join(6..10,19..20,1..4)) => TTTTAAGGGGG +my $loc6_strand = Bio::Location::Split->new(); +my $loc6_no_strand = Bio::Location::Split->new(); +$loc6_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => 1) ); +$loc6_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20, '-strand' => 1) ); +$loc6_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 4, '-strand' => 1) ); +$loc6_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10) ); +$loc6_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20) ); +$loc6_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 4) ); +is $seq->subseq($loc6_strand), 'CCCCCTTAAAA'; +is $seq->subseq($loc6_no_strand), 'CCCCCTTAAAA'; +is $loc6_strand->to_FTstring, 'join(6..10,19..20,1..4)'; +is $loc6_no_strand->to_FTstring, 'join(6..10,19..20,1..4)'; +$loc6_strand->flip_strand; +$loc6_no_strand->flip_strand; +is $seq->subseq($loc6_strand), 'TTTTAAGGGGG'; +is $seq->subseq($loc6_no_strand), 'TTTTAAGGGGG'; +is $loc6_strand->to_FTstring, 'complement(join(6..10,19..20,1..4))'; +is $loc6_no_strand->to_FTstring, 'complement(join(6..10,19..20,1..4))'; + +## Trans-splicing, 2 sequences in different strands, 2nd in complement +#Coords: join(6..10,complement(16..20)) => CCCCCAAAAA +#Revcom: join(16..20,complement(6..10)) => TTTTTGGGGG +my $loc7_strand = Bio::Location::Split->new(); +my $loc7_no_strand = Bio::Location::Split->new(); +$loc7_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => 1) ); +$loc7_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => -1) ); +$loc7_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10) ); +$loc7_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => -1) ); +is $seq->subseq($loc7_strand), 'CCCCCAAAAA'; +is $seq->subseq($loc7_no_strand), 'CCCCCAAAAA'; +is $loc7_strand->to_FTstring, 'join(6..10,complement(16..20))'; +is $loc7_no_strand->to_FTstring, 'join(6..10,complement(16..20))'; +$loc7_strand->flip_strand; +$loc7_no_strand->flip_strand; +is $seq->subseq($loc7_strand), 'TTTTTGGGGG'; +is $seq->subseq($loc7_no_strand), 'TTTTTGGGGG'; +is $loc7_strand->to_FTstring, 'join(16..20,complement(6..10))'; +is $loc7_no_strand->to_FTstring, 'join(16..20,complement(6..10))'; + +## Trans-splicing, 2 sequences in different strands, 1st in complement +#Coords: join(complement(16..20),6..10) => AAAAACCCCC +#Revcom: join(complement(6..10),16..20) => GGGGGTTTTT +my $loc8_strand = Bio::Location::Split->new(); +my $loc8_no_strand = Bio::Location::Split->new(); +$loc8_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => -1) ); +$loc8_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => 1) ); +$loc8_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 16, '-end' => 20, '-strand' => -1) ); +$loc8_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10) ); +is $seq->subseq($loc8_strand), 'AAAAACCCCC'; +is $seq->subseq($loc8_no_strand), 'AAAAACCCCC'; +is $loc8_strand->to_FTstring, 'join(complement(16..20),6..10)'; +is $loc8_no_strand->to_FTstring, 'join(complement(16..20),6..10)'; +$loc8_strand->flip_strand; +$loc8_no_strand->flip_strand; +is $seq->subseq($loc8_strand), 'GGGGGTTTTT'; +is $seq->subseq($loc8_no_strand), 'GGGGGTTTTT'; +is $loc8_strand->to_FTstring, 'join(complement(6..10),16..20)'; +is $loc8_no_strand->to_FTstring, 'join(complement(6..10),16..20)'; + +## Trans-splicing w/cut by origin, 2 sequences with 1st passing through origin, 2nd in complement +#Coords: join(19..20,1..3,complement(11..13)) => TTAAACCC +#Revcom: join(11..13,complement(1..3),complement(19..20)) => GGGTTTAA +my $loc9_strand = Bio::Location::Split->new(); +my $loc9_no_strand = Bio::Location::Split->new(); +$loc9_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20, '-strand' => 1) ); +$loc9_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 3, '-strand' => 1) ); +$loc9_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13, '-strand' => -1) ); +$loc9_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20) ); +$loc9_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 3) ); +$loc9_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13, '-strand' => -1) ); +is $seq->subseq($loc9_strand), 'TTAAACCC'; +is $seq->subseq($loc9_no_strand), 'TTAAACCC'; +is $loc9_strand->to_FTstring, 'join(19..20,1..3,complement(11..13))'; +is $loc9_no_strand->to_FTstring, 'join(19..20,1..3,complement(11..13))'; +$loc9_strand->flip_strand; +$loc9_no_strand->flip_strand; +is $seq->subseq($loc9_strand), 'GGGTTTAA'; +is $seq->subseq($loc9_no_strand), 'GGGTTTAA'; +is $loc9_strand->to_FTstring, 'join(11..13,complement(1..3),complement(19..20))'; +is $loc9_no_strand->to_FTstring, 'join(11..13,complement(1..3),complement(19..20))'; + +## Trans-splicing w/cut by origin, 2 sequences with 1st passing through origin, 1st in complement +#Coords: join(complement(1..3),complement(19..20),11..13) => TTTAAGGG +#Revcom: join(complement(11..13),19..20,1..3) => CCCTTAAA +my $loc10_strand = Bio::Location::Split->new(); +my $loc10_no_strand = Bio::Location::Split->new(); +$loc10_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 3, '-strand' => -1) ); +$loc10_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20, '-strand' => -1) ); +$loc10_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13, '-strand' => 1) ); +$loc10_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 3, '-strand' => -1) ); +$loc10_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 19, '-end' => 20, '-strand' => -1) ); +$loc10_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 11, '-end' => 13) ); +is $seq->subseq($loc10_strand), 'TTTAAGGG'; +is $seq->subseq($loc10_no_strand), 'TTTAAGGG'; +is $loc10_strand->to_FTstring, 'join(complement(1..3),complement(19..20),11..13)'; +is $loc10_no_strand->to_FTstring, 'join(complement(1..3),complement(19..20),11..13)'; +$loc10_strand->flip_strand; +$loc10_no_strand->flip_strand; +is $seq->subseq($loc10_strand), 'CCCTTAAA'; +is $seq->subseq($loc10_no_strand), 'CCCTTAAA'; +is $loc10_strand->to_FTstring, 'join(complement(11..13),19..20,1..3)'; +is $loc10_no_strand->to_FTstring, 'join(complement(11..13),19..20,1..3)'; + +## Trans-splicing w/cut by origin, 2 sequences with 2nd passing through origin, 2nd in complement +#Coords: join(6..10,complement(1..2),complement(18..20)) => CCCCCTTAAA +#Revcom: join(18..20,1..2,complement(6..10)) => TTTAAGGGGG +my $loc11_strand = Bio::Location::Split->new(); +my $loc11_no_strand = Bio::Location::Split->new(); +$loc11_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => 1) ); +$loc11_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2, '-strand' => -1) ); +$loc11_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 18, '-end' => 20, '-strand' => -1) ); +$loc11_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10) ); +$loc11_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2, '-strand' => -1) ); +$loc11_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 18, '-end' => 20, '-strand' => -1) ); +is $seq->subseq($loc11_strand), 'CCCCCTTAAA'; +is $seq->subseq($loc11_no_strand), 'CCCCCTTAAA'; +is $loc11_strand->to_FTstring, 'join(6..10,complement(1..2),complement(18..20))'; +is $loc11_no_strand->to_FTstring, 'join(6..10,complement(1..2),complement(18..20))'; +$loc11_strand->flip_strand; +$loc11_no_strand->flip_strand; +is $seq->subseq($loc11_strand), 'TTTAAGGGGG'; +is $seq->subseq($loc11_no_strand), 'TTTAAGGGGG'; +is $loc11_strand->to_FTstring, 'join(18..20,1..2,complement(6..10))'; +is $loc11_no_strand->to_FTstring, 'join(18..20,1..2,complement(6..10))'; + +## Trans-splicing w/cut by origin, 2 sequences with 2nd passing through origin, 1st in complement +#Coords: join(complement(6..10),18..20,1..2) => GGGGGTTTAA +#Revcom: join(complement(1..2),complement(18..20),6..10) => TTAAACCCCC +my $loc12_strand = Bio::Location::Split->new(); +my $loc12_no_strand = Bio::Location::Split->new(); +$loc12_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => -1) ); +$loc12_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 18, '-end' => 20, '-strand' => 1) ); +$loc12_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2, '-strand' => 1) ); +$loc12_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 6, '-end' => 10, '-strand' => -1) ); +$loc12_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 18, '-end' => 20) ); +$loc12_no_strand->add_sub_Location( Bio::Location::Simple->new('-start' => 1, '-end' => 2) ); +is $seq->subseq($loc12_strand), 'GGGGGTTTAA'; +is $seq->subseq($loc12_no_strand), 'GGGGGTTTAA'; +is $loc12_strand->to_FTstring, 'join(complement(6..10),18..20,1..2)'; +is $loc12_no_strand->to_FTstring, 'join(complement(6..10),18..20,1..2)'; +$loc12_strand->flip_strand; +$loc12_no_strand->flip_strand; +is $seq->subseq($loc12_strand), 'TTAAACCCCC'; +is $seq->subseq($loc12_no_strand), 'TTAAACCCCC'; +is $loc12_strand->to_FTstring, 'join(complement(1..2),complement(18..20),6..10)'; +is $loc12_no_strand->to_FTstring, 'join(complement(1..2),complement(18..20),6..10)'; diff -Nru bioperl-1.6.922/t/SeqFeature/Generic.t bioperl-1.6.923/t/SeqFeature/Generic.t --- bioperl-1.6.922/t/SeqFeature/Generic.t 2013-09-14 15:46:07.000000000 +0000 +++ bioperl-1.6.923/t/SeqFeature/Generic.t 2013-12-18 05:13:00.000000000 +0000 @@ -304,7 +304,7 @@ # start 'A' => [3981, 136, 1, 1542, 'join(3981..5386,1..136)', 'ATGGTTCGTT'], 'A*' => [4497, 136, 1, 1026, 'join(4497..5386,1..136)', 'ATGAAATCGC'], - 'B' => [5075, 136, 1, 363, 'join(5075..5386,1..51)', 'ATGGAACAAC'], + 'B' => [5075, 51, 1, 363, 'join(5075..5386,1..51)', 'ATGGAACAAC'], ); ok my @split_sfs = grep { @@ -318,16 +318,10 @@ ok my ($tag) = $sf->get_tag_values('product'); my ($start, $end, $strand, $length, $ftstring, $first_ten) = @{$sf_data{$tag}}; - # these pass is $sf->location->to_FTstring, $ftstring, 'Feature string'; is $sf->spliced_seq->subseq(1,10), $first_ten, 'First ten nucleotides'; is $sf->strand, $strand, 'Strand'; - - TODO: { - local $TODO = "Need to define how to deal with start, end length for circular sequences"; - is $sf->start, $start, 'Start'; - is $sf->end, $end, 'End'; - is $sf->length, $length, 'Expected length'; - } + is $sf->start, $start, 'Start'; + is $sf->end, $end, 'End'; + is $sf->length, $length, 'Expected length'; } - diff -Nru bioperl-1.6.922/t/SeqIO/genbank.t bioperl-1.6.923/t/SeqIO/genbank.t --- bioperl-1.6.922/t/SeqIO/genbank.t 2013-09-14 15:45:50.000000000 +0000 +++ bioperl-1.6.923/t/SeqIO/genbank.t 2013-12-18 05:13:02.000000000 +0000 @@ -6,7 +6,7 @@ BEGIN { use lib '.'; use Bio::Root::Test; - test_begin(-tests => 282 ); + test_begin(-tests => 287 ); use_ok('Bio::SeqIO::genbank'); } @@ -640,3 +640,20 @@ my ($read_label)=$read_feature->get_tag_values('label'); is($read_label, $label, 'Label is the same'); } + +# bug 3448 + +$in = Bio::SeqIO->new(-format => 'genbank', + -file => test_input_file('YP_007988852.gp'), + -verbose => $verbose); +$seq = $in->next_seq(); # should not throw a warning now +is($seq->length, 205); + +my @anns = $seq->annotation->get_Annotations('contig'); +is(@anns, 1); +isa_ok($anns[0], 'Bio::Annotation::SimpleValue'); +is($anns[0]->value, 'join(WP_015639704.1:1..205)'); + +is($seq->seq, 'MENRKFGYIRVSSKDQNEGRQLEAMRKIGITERDIYLDKQSGKNFERANYQLLKRIIRKGDI'. + 'LYIHSLDRFGRNKEEILQEWNDLTKNIEADIVVLDMPLLDTTQYKDSMGTFIADLVLQILSWMAEEERERIRK'. + 'RQREGIDLALQNGIQFGRSPVVVSDEFKEVYRKWKAKELTAVEAMQEAGVKKTSFYKLVKAHENSIKVNS'); diff -Nru bioperl-1.6.922/t/SeqIO/interpro.t bioperl-1.6.923/t/SeqIO/interpro.t --- bioperl-1.6.922/t/SeqIO/interpro.t 2013-09-14 15:45:53.000000000 +0000 +++ bioperl-1.6.923/t/SeqIO/interpro.t 2013-12-18 05:12:51.000000000 +0000 @@ -8,7 +8,7 @@ use Bio::Root::Test; test_begin(-tests => 20, - -requires_module => 'XML::DOM::XPath'); + -requires_module => 'XML::DOM::XPath'); use_ok('Bio::SeqIO::interpro'); } @@ -16,9 +16,9 @@ my $verbose = test_debug(); my $t_file = test_input_file('test.interpro'); -my $a_in = Bio::SeqIO->new( -file => $t_file, - -verbose => $verbose, - -format => 'interpro'); +my $a_in = Bio::SeqIO->new( -file => $t_file, + -verbose => $verbose, + -format => 'interpro'); isa_ok($a_in, 'Bio::SeqIO'); my $seq = $a_in->next_seq(); @@ -38,9 +38,9 @@ # Bug 1908 (enhancement) $t_file = test_input_file('interpro_ebi.xml'); -my $b_in = Bio::SeqIO->new( -file => $t_file, - -verbose => $verbose, - -format => 'interpro'); +my $b_in = Bio::SeqIO->new( -file => $t_file, + -verbose => $verbose, + -format => 'interpro'); $seq = $b_in->next_seq(); ok($seq, 'bug 1908'); @@ -56,13 +56,12 @@ is($dblinks[2]->primary_id, 'PF06257.1', 'second primary_id'); my $other_t_file = test_input_file('test.interpro-go.xml'); -my $ipr_in = Bio::SeqIO->new( -file => $other_t_file, +my $ipr_in = Bio::SeqIO->new( -file => $other_t_file, -verbose => $verbose, - -format => 'interpro'); + -format => 'interpro'); $seq = $ipr_in->next_seq(); @features = $seq->get_SeqFeatures; @dblinks = $features[0]->annotation->get_Annotations('dblink'); is(scalar @dblinks, 4, 'right number of dblinks'); is($dblinks[3]->primary_id, 'GO:0003677', 'primary_id via dblinks'); - diff -Nru bioperl-1.6.922/t/SeqIO/largefasta.t bioperl-1.6.923/t/SeqIO/largefasta.t --- bioperl-1.6.922/t/SeqIO/largefasta.t 2013-09-14 15:45:45.000000000 +0000 +++ bioperl-1.6.923/t/SeqIO/largefasta.t 2013-12-18 05:13:00.000000000 +0000 @@ -8,15 +8,15 @@ use Bio::Root::Test; test_begin(-tests => 16); - - use_ok('Bio::SeqIO::largefasta'); + + use_ok('Bio::SeqIO::largefasta'); } my $tmpfile = test_output_file(); my $seqio = Bio::SeqIO->new('-format' => 'largefasta', - '-file' => test_input_file('genomic-seq.fasta'), - ); + '-file' => test_input_file('genomic-seq.fasta'), + ); isa_ok($seqio, 'Bio::SeqIO'); my $pseq = $seqio->next_seq(); @@ -37,14 +37,14 @@ is open(OUT, ">$tmpfile"), 1; my $seqout = Bio::SeqIO->new('-format' => 'largefasta', - '-fh' => \*OUT ); + '-fh' => \*OUT ); is defined $seqout, 1; is $seqout->write_seq($pseq), 1; $seqout->close(); close(OUT); my $seqin = Bio::SeqIO->new('-format' => 'largefasta', - '-file' => $tmpfile); + '-file' => $tmpfile); my $pseq2 = $seqin->next_seq; is ($plength, $pseq2->length()); is ($pseq->display_id(), $pseq2->display_id()); diff -Nru bioperl-1.6.922/t/SeqTools/CodonTable.t bioperl-1.6.923/t/SeqTools/CodonTable.t --- bioperl-1.6.922/t/SeqTools/CodonTable.t 2013-09-14 15:45:47.000000000 +0000 +++ bioperl-1.6.923/t/SeqTools/CodonTable.t 2013-12-18 05:12:46.000000000 +0000 @@ -7,7 +7,7 @@ use lib '.'; use Bio::Root::Test; - test_begin(-tests => 61); + test_begin(-tests => 71); use_ok('Bio::Tools::CodonTable'); use_ok('Bio::CodonUsage::IO'); @@ -177,7 +177,7 @@ ); ok my $custct = $myCodonTable->add_table(@custom_table); -is $custct, 24; +is $custct, 25; is $myCodonTable->translate('atgaaraayacmacracwacka'), 'MKNTTTT'; ok $myCodonTable->id($custct); is $myCodonTable->translate('atgaaraayacmacracwacka'), 'MKXXTTT'; @@ -208,3 +208,24 @@ ok my $io = Bio::CodonUsage::IO->new(-file => test_input_file('MmCT')); ok my $cut = $io->next_data(); is $myCodonTable->reverse_translate_best($seq,$cut), 'GCCTGCGACGAGTTCGGCCACATCAAGCTGATGAACCCCCAGCGCTCCACCGTGTGGTAC'; + +# +# test 'Strict' table, requires a Bio::CodonUsage::Table object +# + +$myCodonTable = Bio::Tools::CodonTable->new(); + +# boolean tests +is $myCodonTable->is_start_codon('ATG'), 1; +is $myCodonTable->is_start_codon('GTG'), 0; +is $myCodonTable->is_start_codon('TTG'), 1; +is $myCodonTable->is_start_codon('CTG'), 1; +is $myCodonTable->is_start_codon('CCC'), 0; + +$myCodonTable->id(24); + +is $myCodonTable->is_start_codon('ATG'), 1; +is $myCodonTable->is_start_codon('GTG'), 0; +is $myCodonTable->is_start_codon('TTG'), 0; +is $myCodonTable->is_start_codon('CTG'), 0; +is $myCodonTable->is_start_codon('CCC'), 0; diff -Nru bioperl-1.6.922/t/SeqTools/SeqUtils.t bioperl-1.6.923/t/SeqTools/SeqUtils.t --- bioperl-1.6.922/t/SeqTools/SeqUtils.t 2013-09-14 15:45:53.000000000 +0000 +++ bioperl-1.6.923/t/SeqTools/SeqUtils.t 2013-12-18 05:12:53.000000000 +0000 @@ -671,5 +671,3 @@ use base 'Bio::Seq'; sub can_call_new { 0 } - - diff -Nru bioperl-1.6.922/t/Tree/TreeIO/nhx.t bioperl-1.6.923/t/Tree/TreeIO/nhx.t --- bioperl-1.6.922/t/Tree/TreeIO/nhx.t 2013-09-14 15:45:56.000000000 +0000 +++ bioperl-1.6.923/t/Tree/TreeIO/nhx.t 2013-12-18 05:12:52.000000000 +0000 @@ -86,6 +86,7 @@ $string = ; close IN; $string =~ s/\n//g; + $string =~ s/\r//g; # For files with Windows line-endings #print STDERR "STR: $string\n"; return $string; } diff -Nru bioperl-1.6.922/t/data/YP_007988852.gp bioperl-1.6.923/t/data/YP_007988852.gp --- bioperl-1.6.922/t/data/YP_007988852.gp 1970-01-01 00:00:00.000000000 +0000 +++ bioperl-1.6.923/t/data/YP_007988852.gp 2013-12-18 05:12:47.000000000 +0000 @@ -0,0 +1,100 @@ +LOCUS YP_007988852 205 aa linear CON 22-MAY-2013 +DEFINITION recombinase [Staphylococcus aureus]. +ACCESSION YP_007988852 +VERSION YP_007988852.1 GI:502045014 +DBLINK Project: 178791 + BioProject: PRJNA178791 +DBSOURCE REFSEQ: accession NC_021230.1 +KEYWORDS RefSeq. +SOURCE Staphylococcus aureus + ORGANISM Staphylococcus aureus + Bacteria; Firmicutes; Bacilli; Bacillales; Staphylococcus. +REFERENCE 1 (residues 1 to 205) + AUTHORS Mendes,R.E., Deshpande,L.M., Bonilla,H.F., Huband,M.D., Jones,R.N. + and Quinn,J.P. + TITLE Molecular analysis of cfr-carrying Staphylococcus aureus and + Staphylococcus epidermidis clinical isolates recovered from two + hospitals in Ohio + JOURNAL Unpublished +REFERENCE 2 (residues 1 to 205) + CONSRTM NCBI Genome Project + TITLE Direct Submission + JOURNAL Submitted (16-MAY-2013) National Center for Biotechnology + Information, NIH, Bethesda, MD 20894, USA +REFERENCE 3 (residues 1 to 205) + AUTHORS Mendes,R.E., Deshpande,L.M., Bonilla,H.F., Huband,M.D., Jones,R.N. + and Quinn,J.P. + TITLE Direct Submission + JOURNAL Submitted (31-JAN-2013) Molecular Studies, JMI Laboratories, 345 + Beaver Kreek Centre, North Liberty, IA 52317, USA +COMMENT PROVISIONAL REFSEQ: This record has not yet been subject to final + NCBI review. The reference sequence is identical to AGL42326. + Method: conceptual translation. +FEATURES Location/Qualifiers + source 1..205 + /organism="Staphylococcus aureus" + /strain="1" + /isolation_source="blood culture" + /host="Homo sapiens" + /db_xref="taxon:1280" + /plasmid="pSA8589" + /country="USA" + Protein 1..205 + /product="recombinase" + /calculated_mol_wt=23947 + Region 4..>155 + /region_name="PinR" + /note="Site-specific recombinases, DNA invertase Pin + homologs [DNA replication, recombination, and repair]; + COG1961" + /db_xref="CDD:224872" + Region 5..126 + /region_name="SR_ResInv" + /note="Serine Recombinase (SR) family, Resolvase and + Invertase subfamily, catalytic domain; members contain a + C-terminal DNA binding domain. Serine recombinases + catalyze site-specific recombination of DNA molecules by a + concerted, four-strand cleavage and...; cd03768" + /db_xref="CDD:239737" + Site order(10,12,69..70,73) + /site_type="active" + /note="catalytic residues [active]" + /db_xref="CDD:239737" + Site 12 + /site_type="active" + /note="catalytic nucleophile [active]" + /db_xref="CDD:239737" + Site order(68,121..122,124..125) + /site_type="other" + /note="Presynaptic Site I dimer interface [polypeptide + binding]" + /db_xref="CDD:239737" + Site order(74,79..80,117,120..121,124..125) + /site_type="other" + /note="Synaptic Antiparallel dimer interface [polypeptide + binding]" + /db_xref="CDD:239737" + Site order(98..100,117..118,121..122,125) + /site_type="other" + /note="Synaptic Flat tetramer interface [polypeptide + binding]" + /db_xref="CDD:239737" + Site order(98,122,125) + /site_type="other" + /note="Synaptic Site I dimer interface [polypeptide + binding]" + /db_xref="CDD:239737" + CDS 1..205 + /locus_tag="D646_p13002" + /coded_by="NC_021230.1:1774..2391" + /note="ORF1" + /transl_table=11 + /db_xref="GeneID:15564138" +CONTIG join(WP_015639704.1:1..205) +ORIGIN + 1 menrkfgyir vsskdqnegr qleamrkigi terdiyldkq sgknferany qllkriirkg + 61 dilyihsldr fgrnkeeilq ewndltknie adivvldmpl ldttqykdsm gtfiadlvlq + 121 ilswmaeeer erirkrqreg idlalqngiq fgrspvvvsd efkevyrkwk akeltaveam + 181 qeagvkktsf yklvkahens ikvns +// + diff -Nru bioperl-1.6.922/t/data/bl2seq.tblastn.out bioperl-1.6.923/t/data/bl2seq.tblastn.out --- bioperl-1.6.922/t/data/bl2seq.tblastn.out 1970-01-01 00:00:00.000000000 +0000 +++ bioperl-1.6.923/t/data/bl2seq.tblastn.out 2013-12-18 05:12:54.000000000 +0000 @@ -0,0 +1,90 @@ +Query= + (15 letters) + +>WAN03UHTX_1 pSMED2_VHP_GVHS-001 Homo sapiens + Length = 2367 + + Score = 42.4 bits (98), Expect = 4e-09 + Identities = 15/15 (100%), Positives = 15/15 (100%) + Frame = -1 + +Query: 1 EPKSCDKTHTCPPCP 15 + EPKSCDKTHTCPPCP +Sbjct: 990 EPKSCDKTHTCPPCP 946 + + + + Score = 19.6 bits (39), Expect = 0.026 + Identities = 5/9 (55%), Positives = 6/9 (66%) + Frame = -1 + +Query: 7 KTHTCPPCP 15 + + H C PCP +Sbjct: 390 ENHRCTPCP 364 + + + + Score = 16.9 bits (32), Expect = 0.17 + Identities = 5/10 (50%), Positives = 6/10 (60%) + Frame = +2 + +Query: 5 CDKTHTCPPC 14 + C + TC PC +Sbjct: 542 CWRPCTCTPC 571 + + + + Score = 16.5 bits (31), Expect = 0.22 + Identities = 6/12 (50%), Positives = 6/12 (50%) + Frame = +3 + +Query: 2 PKSCDKTHTCPP 13 + P SC T C P +Sbjct: 2154 PDSCSCT*ECTP 2189 + + + + Score = 15.8 bits (29), Expect = 0.37 + Identities = 5/12 (41%), Positives = 5/12 (41%) + Frame = +1 + +Query: 4 SCDKTHTCPPCP 15 + SC C P P +Sbjct: 250 SCSPAAHCSPTP 285 + + +Lambda K H + 0.316 0.138 0.541 + +Gapped +Lambda K H + 0.267 0.0410 0.140 + + +Matrix: BLOSUM62 +Gap Penalties: Existence: 11, Extension: 1 +Number of Hits to DB: 303 +Number of Sequences: 0 +Number of extensions: 5 +Number of successful extensions: 5 +Number of sequences better than 10.0: 2 +Number of HSP's better than 10.0 without gapping: 4 +Number of HSP's successfully gapped in prelim test: 0 +Number of HSP's that attempted gapping in prelim test: 0 +Number of HSP's gapped (non-prelim): 5 +length of query: 15 +length of database: 789 +effective HSP length: 0 +effective length of query: 24 +effective length of database: 789 +effective search space: 18936 +effective search space used: 18936 +frameshift window, decay const: 50, 0.1 +T: 13 +A: 40 +X1: 16 ( 7.3 bits) +X2: 38 (14.6 bits) +X3: 64 (24.7 bits) +S1: 17 (10.6 bits) +S2: 17 (11.2 bits) +