TFBS::DB
TRANSFAC
TFBS::DB::TRANSFAC - interface to database of TRANSFAC public position frequency matrices at TESS (http://www.cbil.upenn.edu/tess)
-------------------------------- NOTICE ---------------------------------- The TRANSFAC database is free for non-commercial use. For commercial use the TRANSFAC databases and programs have to be licensed. Please read the DISCLAIMER at http://transfac.gbf.de/TRANSFAC/disclaimer.htm. -------------------------------------------------------------------------
|
| Globals (from use vars definitions) |
| $ua |
TFBS::DB::TRANSFAC is a read only database interface that fetches TRANSFAC matrix data from TESS web interface (http://www.cbil.upen.edu/TESS) and returns TFBS::Matrix::* objects.
|
Methods description
Title : connect
Usage : my $db = TFBS::DB::TRANSFAC->connect(%args);
Function: Creates a TRANSFAC database connection object, which can be used
to retrieve matrices from public TRANSFAC databases via the web
Returns : a TFBS::DB::TRANSFAC object
Args : -proxy # OPTIONAL: a http proxy server name,
# usually required for accessing TRANSFAC from behind
# a firewall
-accept_conditions # OPTIONAL: by setting this to a true
# value, you confirm that you
# have read and accepted the terms
# of use of TRANSFAC at
# http://transfac.gbf.de/TRANSFAC/disclaimer.htm;
# this also supresses the annoying
# message that is printed to STDERR
# upon invoking the method
Title : get_Matrix_by_ID
Usage : my $pfm = $db->get_Matrix_by_ID('V$CREB_01', 'PFM');
Function: fetches matrix data under the given TRANSFAC ID from the
database and returns a TFBS::Matrix::* object
Returns : a TFBS::Matrix::* object; the exact type of the
object depending on the second argument (allowed
values are 'PFM', 'ICM', and 'PWM'); returns undef if
matrix with the given ID is not found
Args : (Matrix_ID, Matrix_type)
Matrix_ID is a string; Matrix_type is one of the
following: 'PFM' (raw position frequency matrix),
'ICM' (information content matrix) or 'PWM' (position
weight matrix)
If Matrix_type is omitted, a PFM is retrieved by default.
Title : get_Matrix_by_acc
Usage : my $pfm = $db->get_Matrix_by_acc('V$CREB_01', 'PFM');
Function: fetches matrix data under the given TRANSFAC aaccession number
from database and returns a TFBS::Matrix::* object
Returns : a TFBS::Matrix::* object; the exact type of the
object depending on the second argument (allowed
values are 'PFM', 'ICM', and 'PWM'); returns undef if
matrix with the given ID is not found
Args : (Matrix_ID, Matrix_type)
Matrix_ID is a string; Matrix_type is one of the
following: 'PFM' (raw position frequency matrix),
'ICM' (information content matrix) or 'PWM' (position
weight matrix)
If Matrix_type is omitted, a PFM is retrieved by default.
Title : connect
Usage : my $db = TFBS::DB::TRANSFAC->connect(%args);
Function: Here, new is just a synonim for connect
(to make the interface consistent with other
bioperl read-obly Bio::DB::* objects)
Returns : a TFBS::DB::TRANSFAC object
Args : -accept_conditions # see explanation at new
Methods code
| _get_Matrix_by_URL | description | top | prev | next |
sub _get_Matrix_by_URL
{ my ($self, $url, $mt) = @_;
my $HTMLpage = get $url || return undef;
my (@As, @Cs, @Gs, @Ts, $name, $ID, $acc);
my @lines = split "\n", $HTMLpage;
foreach my $line (@lines) {
$line =~ s/\r//;
$line =~ s/<\/{0,1}b>//gi;
$line =~ s/ //gi;
if ($line =~ /Name<\/td><td>([^<]+)</) {
$name = $1;
}
elsif ($line =~ /ID<\/td><td>([^<]+)</) {
$ID = $1;
}
elsif ($line =~ /AccNo<\/td><td>([^<]+)</) {
$acc = $1;
}
elsif ($line =~ /\d+\.\d+\s+(\d+\.\d+)\s+(\d+\.{0,1}\d*)\s+(\d+\.{0,1}\d*)\s+(\d+\.{0,1}\d*)\s+(\d+\.{0,1}\d*)/) {
my ($nr, $A, $C, $G, $T) = ($1,$2,$3,$4,$5); ##split /\s+/, $line;
push @As,$A; push @Cs,$C; push @Gs,$G; push @Ts,$T;
}
}
return undef unless @As;
my $pfm = TFBS::Matrix::PFM-> new ( -ID => $ID,
-name => $name,
-tags => {acc=>$acc},
-matrix => [\@ As,\@ Cs,\@ Gs,\@ Ts]
);
if (!defined($mt) or uc($mt) eq "PFM") {return $pfm;}
elsif (uc($mt) eq "ICM") {return $pfm->to_ICM;}
elsif (uc($mt) eq "PWM") {return $pfm->to_PWM;}
else { $self->throw("Unrecognized matrix format: $mt"); }}
sub connect
{ my ($caller, %args) = @_;
my $self = bless {}, ref $caller || $caller;
unless (defined ($args{-accept_conditions}) and $args{-accept_conditions}) {
print STDERR <<ENDNOTICE
-------------------------------- NOTICE ----------------------------------
The TRANSFAC database is free for non-commercial use. For commercial use
the TRANSFAC databases and programs have to be licensed. Please read
the DISCLAIMER at http://transfac.gbf.de/TRANSFAC/disclaimer.htm.
-----------
If you have read the disclaimer and accept the conditions stated therein,
you can suppres this notice by connecting to TRANSFAC like this:
my\$ db = TFBS::DB::TRANSFAC->connect(-accept_conditions => 1);
--------------------------------------------------------------------------
ENDNOTICE
;
}
if (defined $args{'-proxy'}) {
$ua->proxy('http',$args{'-proxy'});
}
return $self;}
sub get_MatrixSet
{ my ($self, %args) = @_;
## not yet implemented
}
sub get_Matrix_by_ID
{ my ($self, $ID, $mt) = @_;
unless (defined $ID) {
$self->throw("No parameters passed to get_Matrix_by_ID.");
}
my $url = "http://www.cbil.upenn.edu/cgi-bin/tess/tess33?request=MTX-DBRTRV-Id&key=$ID";
## my $url = "http://www.cbil.upenn.edu/cgi-bin/tess/tess33?request=MTX-DBRTRV-Id&key=$ID";
return $self->_get_Matrix_by_URL($url, $mt);}
sub get_Matrix_by_acc
{ my ($self, $acc, $mt) = @_;
unless (defined $acc) {
$self->throw("No parameters passed to get_Matrix_by_ID.");
}
my $url = "http://www.cbil.upenn.edu/cgi-bin/tess/tess33?request=MTX-DBRTRV-Accno&key=$acc";
return $self->_get_Matrix_by_URL($url, $mt);}
sub new
{ my ($caller, %args) = @_;
$caller->connect(%args);}
General documentation
No general documentation available.