0
|
1 package Bio::EnsEMBL::Pipeline::FASTA::Indexer;
|
|
2
|
|
3 use strict;
|
|
4 use warnings;
|
|
5
|
|
6 use base qw/Bio::EnsEMBL::Pipeline::FASTA::Base/;
|
|
7
|
|
8 use File::Copy qw/copy/;
|
|
9 use File::Spec;
|
|
10 use Bio::EnsEMBL::Utils::Exception qw/throw/;
|
|
11
|
|
12 sub decompress {
|
|
13 my ($self) = @_;
|
|
14 my $source = $self->param('file');
|
|
15 my $target_dir = $self->target_dir();
|
|
16 my ($vol, $dir, $file) = File::Spec->splitpath($source);
|
|
17 my $target = File::Spec->catdir($target_dir, $file);
|
|
18 my $gunzipped_target = $target;
|
|
19 $gunzipped_target =~ s/.gz$//;
|
|
20 $self->info('Copying from %s to %s', $source, $target);
|
|
21 copy($source, $target) or throw "Cannot copy $source to $target: $!";
|
|
22 $self->info('Decompressing %s to %s', $source, $gunzipped_target);
|
|
23 system("gunzip -f $target") and throw sprintf('Could not gunzip. Exited with code %d', ($? >>8));
|
|
24 return $gunzipped_target;
|
|
25 }
|
|
26
|
|
27 sub repeat_mask_date {
|
|
28 my ($self) = @_;
|
|
29 my $res = $self->get_DBAdaptor()->dbc()->sql_helper()->execute_simple(
|
|
30 -SQL => <<'SQL',
|
|
31 select max(date_format( created, "%Y%m%d"))
|
|
32 from analysis a join meta m on (a.logic_name = lower(m.meta_value))
|
|
33 where meta_key =?
|
|
34 SQL
|
|
35 -PARAMS => ['repeat.analysis']
|
|
36 );
|
|
37 return $res->[0] if @$res;
|
|
38 return q{};
|
|
39 }
|
|
40
|
|
41 sub run {
|
|
42 my ($self) = @_;
|
|
43 my $decompressed = $self->decompress();
|
|
44 $self->index_file($decompressed);
|
|
45 $self->cleanup_DBAdaptor();
|
|
46 return;
|
|
47 }
|
|
48
|
|
49 sub index_file {
|
|
50 die "Implement";
|
|
51 }
|
|
52
|
|
53 sub target_dir {
|
|
54 die "Implement";
|
|
55 }
|
|
56
|
|
57
|
|
58 1;
|