diff --git a/modules/Bio/EnsEMBL/Hive/RunnableDB/FastaFactory.pm b/modules/Bio/EnsEMBL/Hive/RunnableDB/FastaFactory.pm index 67bdbf260d56b241ee0929cc0f249eeb9e7d816d..7f6633e6df1df95a444077f7cfac39e2f7528321 100644 --- a/modules/Bio/EnsEMBL/Hive/RunnableDB/FastaFactory.pm +++ b/modules/Bio/EnsEMBL/Hive/RunnableDB/FastaFactory.pm @@ -72,7 +72,12 @@ sub fetch_input { my $self = shift @_; my $inputfile = $self->param('inputfile') || die "'inputfile' is an obligatory parameter"; - my $input_seqio = Bio::SeqIO->new(-file => '<'.$inputfile) || die "Could not open or parse '$inputfile', please investigate"; + die "Cannot read '$inputfile'" unless(-r $inputfile); + + if($inputfile=~/\.(?:gz|Z)$/) { + $inputfile = "gunzip -c $inputfile |"; + } + my $input_seqio = Bio::SeqIO->new(-file => $inputfile) || die "Could not open or parse '$inputfile', please investigate"; $self->param('input_seqio', $input_seqio); }