BioPerl-DB
view release on metacpan or search on metacpan
scripts/biosql/terms/importrelation.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use URI;
use LWP::UserAgent;
use HTTP::Request;
use XML::LibXML;
use File::Temp qw(tempfile tempdir);
use Bio::DB::BioDB;
use Bio::Seq;
use Bio::Annotation::OntologyTerm;
use Bio::Ontology::Ontology;
use Bio::Ontology::Term;
use Bio::Ontology::RelationshipType;
use Bio::Ontology::Relationship;
use Bio::SeqIO;
# Open the config file.
my $root = XML::LibXML->new()->parse_file('conf.xml')->getDocumentElement() or die("Could not parse XML config file");
my $node;
#
# create the DBAdaptorI for our database
#
$node = @{$root->findnodes('database')}[0];
my $db = Bio::DB::BioDB->new(-database => "biosql",
-driver => $node->findvalue('driver'),
-host => $node->findvalue('host'),
-dbname => $node->findvalue('dbname'),
-user => $node->findvalue('username'),
-pass => $node->findvalue('password')
);
#
# create the UserAgent to do our web fetches
#
my $ua = LWP::UserAgent->new();
$node = @{$root->findnodes('httpproxy')}[0];
$ua->proxy(['http','https'],$node->findvalue('url')) if $node;
print "Running parsers...\n";
# Loop through the parser children of parsers
for my $parser (@{$root->findnodes('parsers')}[0]->findnodes('parser')) {
my $parsertype = $parser->findvalue('@type');
my $sourcenamespace = $parser->findvalue('sourcenamespace');
my $targetnamespace = $parser->findvalue('targetnamespace');
my $relnamespace = "Term Importer Map";
my $script = $parser->findvalue('../@scriptdir').'/'.$parser->findvalue('script');
print "Parser ".$parser->findvalue('@name')." (type ".$parsertype.") lives at ".$script."\n";
print "(links ".$sourcenamespace." to ".$targetnamespace.")\n";
if (! ($parsertype eq 'TERM2TERM' || $parsertype eq 'SEQ2TERM')) {
print("!!! ".$parsertype." is not a valid parser type. Skipping.");
next;
}
my $uri = new URI;
$uri->scheme($parser->findvalue('server/@protocol'));
$uri->host($parser->findvalue('server/host'));
$uri->path($parser->findvalue('server/filename'));
print "Downloading data from: ".$uri->as_string()."\n";
my $res = $ua->get($uri->as_string());
die("Could not download data!") unless $res->is_success();
( run in 3.024 seconds using v1.01-cache-2.11-cpan-5623c5533a1 )