Branch Coverage

Bio/Tools/GFF.pm
Criterion Covered Total %
branch 115 260 44.2


line true false branch
201 16 0 unless $noparse
204 0 16 unless ($self->gff_version($gff_version))
235 0 46 if /^\s+$/
236 42 4 if ($line =~ /^\#\#sequence-region\s+(\S+)\s+(\S+)\s+(\S+)\s*/) { }
0 4 elsif ($line =~ /^(\#\#feature-ontology)/) { }
0 4 elsif ($line =~ /^(\#\#attribute-ontology)/) { }
0 4 elsif ($line =~ /^(\#\#source-ontology)/) { }
0 4 elsif ($line =~ /^(\#\#\#)/) { }
0 4 elsif ($line =~ /^(\#\#FASTA)/) { }
260 0 0 unless ($line =~ /^\>(\S+)/)
265 0 46 if ($line =~ /^\>(.*)/)
268 0 0 if ($seq)
274 4 42 unless ($handled)
279 3 43 unless $line =~ /^\#/
292 0 0 if ($line =~ /^\>(.*)/) { }
297 0 0 if ($seqid =~ /(\S+)\s+(.*)/)
302 0 0 if ($line =~ /^\#/)
305 0 0 if ($line =~ /^\>/)
312 0 0 if $self->ignore_sequence
319 0 0 if ($self->features_attached_to_seqs)
349 1 0 if defined $self->{'segments'}
375 0 3 if ($gff_string =~ /^\#\#\#/)
378 0 3 if $gff_string =~ /^\#/ or $gff_string =~ /^\s*$/ or $gff_string =~ m[^//]
384 0 0 if ($seq)
387 0 0 unless $gff_string
392 1 3 unless $gff_string
397 0 3 if ($self->features_attached_to_seqs)
407 0 0 if @_
409 0 0 unless $self->{'__feature_idx_by_seq_id'}
434 1 2 if ($self->gff_version == 1) { }
1 1 elsif ($self->gff_version == 3) { }
462 0 1 unless (defined $frame)
465 1 0 unless $frame =~ /^\d+$/
472 0 1 if ($score eq '.') { }
477 1 0 if ($strand eq '-')
478 0 1 if ($strand eq '+')
479 0 1 if ($strand eq '.')
481 0 0 if ($g =~ /(\S+)=(\S+)/) { }
523 0 1 unless (defined $frame)
532 0 1 if ($score eq '.') { }
537 1 0 if ($strand eq '-')
538 0 1 if ($strand eq '+')
539 0 1 if ($strand eq '.')
558 1 1 $flag == 0 ? :
2 59 if ($a eq '"') { }
1 58 elsif ($a eq ';' and $flag) { }
0 116 elsif ($a eq '#' and not $flag) { }
577 3 0 if (defined $values)
594 2 0 if (length $othervalue > 0)
616 0 1 unless (defined $frame)
625 1 0 if ($score eq '.') { }
630 0 1 if ($strand eq '-')
631 1 0 if ($strand eq '+')
632 0 1 if ($strand eq '.')
665 0 3 unless @features
666 1 2 if ($self->{'_first'} and $self->gff_version == 3)
694 1 10 if ($self->gff_version == 1) { }
8 2 elsif ($self->gff_version == 3) { }
0 2 elsif ($self->gff_version == 2.5) { }
721 1 0 if ($feat->can('score'))
724 0 1 unless defined $score
726 1 0 if ($feat->can('frame'))
729 1 0 unless defined $frame
732 0 1 if (not $strand) { }
0 1 elsif ($strand == 1) { }
1 0 elsif ($feat->strand == -1) { }
740 1 0 if ($feat->can('seqname')) { }
758 1 3 if exists $SKIPPED_TAGS{$tag}
760 3 0 if $value
782 0 2 if ($origfeat->isa('Bio::SeqFeature::FeaturePair')) { }
789 2 0 if ($feat->can('score'))
792 1 1 unless defined $score
794 2 0 if ($feat->can('frame'))
797 2 0 unless defined $frame
800 0 2 if (not $strand) { }
1 1 elsif ($strand == 1) { }
1 0 elsif ($feat->strand == -1) { }
808 2 0 if ($feat->can('seqname'))
835 1 6 if exists $SKIPPED_TAGS{$tag}
838 0 6 if (not defined $value && length $value) { }
1 5 elsif ($value =~ /[^A-Za-z0-9_]/) { }
855 0 2 if (not $feat->has_tag('Target') || $feat->has_tag('Group') and $origfeat->isa('Bio::SeqFeature::FeaturePair'))
858 0 0 $origfeat->feature1->strand < 0 ? :
0 0 $str2 ? :
884 0 0 if ($origfeat->isa('Bio::SeqFeature::FeaturePair')) { }
891 0 0 if ($feat->can('score'))
894 0 0 unless defined $score
896 0 0 if ($feat->can('frame'))
899 0 0 unless defined $frame
902 0 0 if (not $strand) { }
0 0 elsif ($strand == 1) { }
0 0 elsif ($feat->strand == -1) { }
910 0 0 if ($feat->can('seqname')) { }
928 0 0 if (@all_tags)
932 0 0 if exists $SKIPPED_TAGS{$tag}
933 0 0 if (not defined $value && length $value) { }
0 0 elsif ($value =~ /[^A-Za-z0-9_]/) { }
947 0 0 if ($tag eq 'Group' or $tag eq 'Target') { }
956 0 0 if (not $feat->has_tag('Target') || $feat->has_tag('Group') and $origfeat->isa('Bio::SeqFeature::FeaturePair'))
959 0 0 $origfeat->feature1->strand < 0 ? :
0 0 $str2 ? :
985 0 8 if ($origfeat->isa('Bio::SeqFeature::FeaturePair')) { }
995 8 0 if ($feat->can('score'))
998 1 7 unless defined $score
1000 8 0 if ($feat->can('frame'))
1003 1 7 unless defined $frame
1007 0 8 if (not $strand) { }
8 0 elsif ($strand == 1) { }
0 0 elsif ($feat->strand == -1) { }
1015 8 0 if ($feat->can('seqname')) { }
1028 19 5 if $feat->has_tag($t)
1032 7 29 if exists $SKIPPED_TAGS{$tag}
1034 7 22 if ($tag eq 'Target' and not $origfeat->isa('Bio::SeqFeature::FeaturePair'))
1037 0 0 unless defined $e and defined $b and $target_id
1038 0 0 if defined $strand and $strand < 0
1050 20 2 if (defined $value and length $value) { }
1052 0 20 if (ref $value eq 'Bio::Annotation::Comment')
1056 1 19 if ($value =~ /[^a-zA-Z0-9\,\;\=\.:\%\^\*\$\@\!\+\_\?\-]/)
1072 3 19 unless $tag =~ /^(ID|Name|Alias|Parent|Gap|Target|Derives_from|Note|Dbxref|Ontology_term)$/
1078 0 7 if ($feat->has_tag('Target') and not $feat->has_tag('Group') and $origfeat->isa('Bio::SeqFeature::FeaturePair'))
1085 0 0 $origfeat->feature1->strand < 0 ? :
1096 0 8 if ($feat->can('name') and defined $feat->name)
1102 0 8 if ($feat->location->isa('Bio::Location::SplitLocationI')) { }
1147 16 31 if (defined $value and grep {$value == $_;} 1, 2, 2.5, 3)
1171 0 0 unless my $self = $class->new(@_)
1208 0 0 if @_
1210 0 0 unless $self->{'_seq_by_id_h'}
1256 0 3 if @_
1279 0 0 if @_
1296 0 0 unless wantarray