Bio-GMOD
view release on metacpan or search on metacpan
GMOD/Admin/Update/WormBase.pm view on Meta::CPAN
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
my $version = $adaptor->version;
my $rsync_module = $adaptor->rsync_module;
$self->analyze_logs(-version => $version,
-site => `hostname`);
$self->prepare_tmp_dir();
$self->fetch_acedb(-version => $version);
$self->fetch_elegans_gff(-version => $version);
$self->fetch_briggsae_gff(-version => $version);
$self->fetch_blast_blat(-version => $version);
$self->rsync_software(-module => $rsync_module,
-install_root => '/usr/local/wormbase/');
}
sub fetch_acedb {
my ($self,@p) = @_;
$self->logit(-msg => 'Fetching and installing Acedb',
-emphasis => 1);
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
# Version to update to
my $version = $adaptor->version;
# Where to find the database tarballs.
my $databases = $adaptor->database_repository;
# The acedb tarball
my $acedb = sprintf($adaptor->acedb_tarball,$version);
# Local and remote paths
my $remote_path = "$databases/$version/$acedb";
my $local_path = $adaptor->tmp_path . "/$version";
# Make sure there is enough space first
my $disk_space = $adaptor->acedb_disk_space;
$self->check_disk_space(-path => $local_path,
-required => $disk_space,
-component => 'acedb');
$self->mirror(-remote_path => $remote_path,
-local_path => $local_path);
my $acedb_path = $adaptor->acedb_path;
unless ($adaptor->dl_only) {
$self->logit(-msg => "Unpacking and installing $acedb");
chdir($acedb_path);
system("gunzip -c $local_path/$acedb | tar -x --no-same-owner -f -");
unlink($acedb_path . '/elegans');
symlink("elegans_$version",'elegans');
# Adjust permissions
my $command = <<END;
chown -R acedb $acedb_path/elegans*
chgrp -R acedb $acedb_path/elegans*
chmod 2775 $acedb_path/elegans*
##chown acedb $acedb_path/bin/*
##chgrp acedb $acedb_path/bin/*
END
$self->test_for_error(system($command),"Fetching and installing acedb for WormBase");
}
}
sub fetch_elegans_gff {
my ($self,@p) = @_;
$self->logit(-msg=>'Fetching and installing C. elegans GFF database',
-emphasis => 1);
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
# Version to update to
my $version = $adaptor->version;
# Where to find the database tarballs.
my $databases = $adaptor->database_repository;
# The gff tarball
my $gff = sprintf($adaptor->elegans_gff_tarball,$version);
# Local and remote paths
my $remote_path = "$databases/$version/$gff";
my $local_path = $adaptor->tmp_path . "/$version";
# Make sure there is enough space first
my $disk_space = $adaptor->elegans_gff_disk_space;
$self->check_disk_space(-path => $local_path,
-required => $disk_space,
-component => 'elegans_gff');
$self->mirror(-remote_path => $remote_path,
-local_path => $local_path);
my $mysql_path = $adaptor->mysql_path;
unless ($adaptor->dl_only) {
$self->logit(-msg => "Unpacking and installing $gff");
my $command = <<END;
cd $mysql_path
mv elegans elegans.bak
mv elegans_pmap elegans_pmap.bak
gunzip -c $local_path/$gff | tar xvf -
rm -rf elegans.bak
rm -rf elegans_pmap.bak
chgrp -R mysql elegans_pmap
chgrp -R mysql elegans
chown -R mysql elegans_pmap
chown -R mysql elegans
END
$self->test_for_error(system($command),"Fetching and installing C. elegans GFF database for WormBase");
}
}
sub fetch_blast_blat {
my ($self,@p) = @_;
$self->logit(-msg=>'Fetching and installing BLAST databases',
-emphasis => 1);
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
# Version to update to
my $version = $adaptor->version;
# Where to find the database tarballs.
my $databases = $adaptor->database_repository;
# The gff tarball
my $blast = sprintf($adaptor->blast_tarball,$version);
# Local and remote paths
my $remote_path = "$databases/$version/$blast";
my $local_path = $adaptor->tmp_path . "/$version";
# Make sure there is enough space first
my $disk_space = $adaptor->blast_disk_space;
$self->check_disk_space(-path => $local_path,
-required => $disk_space,
-component => 'blast');
$self->mirror(-remote_path => $remote_path,
-local_path => $local_path);
unless ($adaptor->dl_only) {
$self->logit(-msg => "Unpacking and installing $blast");
my $command = <<END;
cd /usr/local/wormbase
# Deal with blat
rm -rf blat.previous
mkdir blat.previous
mv blat/* blat.previous/.
# Create the blast directory
mkdir blast
gunzip -c $local_path/$blast | tar -x --no-same-owner -f -
mv blast_$version blast/.
rm -f blast/blast
cd blast/
ln -s blast_$version blast
# Fix permissions as necessary
chgrp -R wormbase /usr/local/wormbase/blat
chmod 2775 /usr/local/wormbase/blat
END
$self->test_for_error(system($command),"Fetching and installing blast databases for WormBase");
}
}
sub fetch_briggsae_gff {
my ($self,@p) = @_;
$self->logit(-msg=>'Fetching and installing C. briggsae GFF database',
-emphasis => 1);
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
# Version to update to
my $version = $adaptor->version;
# Where to find the database tarballs.
my $databases = $adaptor->database_repository;
# The gff tarball
my $gff = sprintf($adaptor->briggsae_gff_tarball,$version);
# Local and remote paths
my $remote_path = "$databases/$version/$gff";
my $local_path = $adaptor->tmp_path . "/$version";
my $disk_space = $adaptor->briggsae_disk_space;
$self->check_disk_space(-path => $local_path,
-required => $disk_space,
-component => 'briggsae_gff');
my $result = $self->mirror(-remote_path => $remote_path,
-local_path => $local_path);
# If the briggsae GFF isn't present it hasn't been updated
# This is not yet complete! Note that the packaging script also
# needs to be updated.
# unless ($result) {
# # Do we have a briggsae DB installed? If not, fetch the stable version
# unless (-d "$mysql_path/briggsae") {
# my $stable = $adaptor->database_repository_stable;
# my $remote_path = $stable . "/briggsae/$gff";
# }
# }
my $mysql_path = $adaptor->mysql_path;
unless ($adaptor->dl_only) {
$self->logit(-msg => "Unpacking and installing $gff");
my $command = <<END;
cd $mysql_path
mv briggsae briggsae.bak
gunzip -c $local_path/$gff | tar -xf -
rm -rf briggsae.bak
chgrp -R mysql briggsae
chown -R mysql briggsae
END
$self->test_for_error(system($command),"Fetching and installing C. briggsae GFF database for WormBase");
( run in 0.936 second using v1.01-cache-2.11-cpan-d8267643d1d )