BioMart::Formatter DIFF_TSV
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvsRaw content
Summary
BioMart::Formatter::DIFF_TSV
Package variables
No package variables defined.
Included modules
Readonly
Inherit
BioMart::FormatterI
Synopsis
The DIFF_TSV Formatter returns tab separated tabular data
for a BioMart query's ResultTable
Description
When given a BioMart::ResultTable containing the results of
a BioMart::Query the DIFF_TSV Formatter will return tabular output
with one line for each row of data in the ResultTable and tabs
separating the individual entries in each row. The getDisplayNames
and getFooterText can be used to return appropiately formatted
headers and footers respectively
Methods
_new
No description
Code
getDisplayNames
No description
Code
getFormatterDisplayName
No description
Code
nextRow
No description
Code
processQuery
No description
Code
Methods description
None available.
Methods code
_newdescriptionprevnextTop
sub _new {
    my ($self) = @_;

    $self->SUPER::_new();
    $self->attr('reference',0);
}
getDisplayNamesdescriptionprevnextTop
sub getDisplayNames {
    my $self = shift;
    my @displayNames = $self->getTextDisplayNames();

    if ($self->get('reference')){
        $displayNames[-1] .= " (Reference)";
    }


    # Enclose non-numeric values in double quotes & escape the quotes already in them
map { s/$FIELD_DELIMITER/\$FIELD_DELIMITER/g } @displayNames; # Create the final header string
return join($FIELD_DELIMITER, @displayNames) . $RECORD_DELIMITER; } 1;
}
getFormatterDisplayNamedescriptionprevnextTop
sub getFormatterDisplayName {
    return 'Diff to reference (tab separated)';
}
nextRowdescriptionprevnextTop
sub nextRow {
    my $self = shift;

    my $rtable = $self->get('result_table');
    my $row = $rtable->nextRow;
    if (!$row){
        return;
    }

    my $reference;
    if ($self->get('reference')){
	$reference= $$row[-1];

	if (!$reference){
	    return "\n";
	}
    }
    my $result_seen;


    # Escape delimiters in value-strings
for (my $i = 0; $i < @{$row}; $i++) { if (($i != @{$row} - 1) && ($$row[$i] eq $reference) && $$row[$i] && $reference){ $$row[$i] = ''; } if ($reference){ $result_seen = 1 if ($$row[$i] =~ /^[ACGT]$/ && ($i != @{$row} - 1)); } else{ $result_seen = 1 if ($$row[$i] =~ /^[ACGT]$/ ); } $$row[$i] = q{} unless defined ($$row[$i]); $$row[$i] =~ s/$FIELD_DELIMITER/\$FIELD_DELIMITER/g; } if ($result_seen){ # Create the final record-string
return join($FIELD_DELIMITER, @{$row}) . $RECORD_DELIMITER; } else{ return "\n"; }
}
processQuerydescriptionprevnextTop
sub processQuery {
    my ($self, $query) = @_;

    my $filters = $query->getAllFilters();
    my @filts;
    foreach my $filter(@{$filters}){
        if ($filter->name eq 'reference_strain'){
            my $rows = $filter->get('attribute_table')->getRows();
            my $ref_strain = ${$$rows[0]}[0];
            # remove the filter
$ref_strain =~ s/\//\_/g; $ref_strain =~ s/ /\_/g; $ref_strain =~ s/\+/\_/g; $ref_strain =~ s/\./\_/g; $ref_strain =~ s/\-/\_/g; $query->addAttribute(lc($ref_strain)); $self->set('reference',1); } else{ push @filts,$filter; } } $query->removeAllFilters(); $query->addFilters(\@filts); $self->set('original_attributes',[@{$query->getAllAttributes()}]) if ($query->getAllAttributes()); $self->set('query',$query); return $query;
}
General documentation
AUTHORSTop
    *
CONTACTTop
This module is part of the BioMart project
http://www.biomart.org
Questions can be posted to the mart-dev mailing list: mart-dev@ebi.ac.uk