@@ -165,7 +165,13 @@ sub get_samples {
165165 $attr -> walk_process_data( $self -> global_keys );
166166 }
167167
168- if ( $self -> global_attr-> can(' sample_rule' ) ) {
168+ # Backwards compatibility
169+ # For both file_rule and sample_rule
170+ if ( $self -> first_index_global_keys( sub { $_ eq ' sample_rule' } ) != -1 ) {
171+ $text = $self -> global_attr-> sample_rule;
172+ }
173+ elsif ( $self -> first_index_global_keys( sub { $_ eq ' file_rule' } ) != -1 )
174+ {
169175 $text = $self -> global_attr-> sample_rule;
170176 }
171177 else {
@@ -186,10 +192,7 @@ sub get_samples {
186192 if ( $whole [0] eq $attr -> indir ) {
187193 shift (@whole );
188194 }
189-
190- # File find puts directory we are looking in, not just subdirs
191195 @basename = map { basename($_ ) } @whole ;
192- @basename = sort (@basename );
193196 }
194197 }
195198 else {
@@ -199,17 +202,18 @@ sub get_samples {
199202 extras => { follow => 1 },
200203 in => $attr -> indir
201204 );
202-
205+ @basename = @whole ;
203206 @basename = map { $self -> match_samples( $_ , $text ) } @whole ;
204- @basename = uniq(@basename );
205- @basename = sort (@basename );
206207 }
207208
208209 my @sample_files = map { path($_ )-> absolute } @whole ;
209210 @sample_files = sort (@sample_files );
210211
211- # Throw error if sample don't exist
212- $self -> samples( \@basename ) if @basename ;
212+ if (@basename ) {
213+ @basename = uniq(@basename );
214+ @basename = sort (@basename );
215+ $self -> samples( \@basename );
216+ }
213217 $self -> sample_files( \@sample_files ) if @sample_files ;
214218
215219 $self -> global_attr-> samples( dclone( $self -> samples ) );
@@ -226,15 +230,15 @@ sub get_samples {
226230sub check_sample_exist {
227231 my $self = shift ;
228232
229- my $exists = 0;
233+ my $exists = 0;
230234 if ( $self -> has_samples && !$self -> resample ) {
231235 my (@samples ) = $self -> sorted_samples;
232236 $self -> samples( \@samples );
233237 $self -> app_log-> info(' Samples passed in on command line.' );
234238 $exists = 1;
235239 }
236240 elsif ( $self -> global_attr-> has_samples ) {
237- my (@samples ) = @{$self -> global_attr-> samples};
241+ my (@samples ) = @{ $self -> global_attr-> samples };
238242 @samples = sort (@samples );
239243 $self -> samples( \@samples );
240244 $self -> app_log-> info(' Samples were defined in the global key.' );
@@ -256,10 +260,16 @@ sub match_samples {
256260 my $file = shift ;
257261 my $text = shift ;
258262
259- my @tmp = fileparse($_ );
260- my ($m ) = $tmp [0] =~ qr /$text / ;
263+ if ( $text =~ m /\( / ) {
264+ my @tmp = fileparse($file );
265+ my ($m ) = $tmp [0] =~ qr /$text / ;
261266
262- return $m ;
267+ return $m ;
268+ }
269+ else {
270+ my @tmp = fileparse($file );
271+ return $tmp [0];
272+ }
263273}
264274
265275=head3 process_by_sample_outdir
0 commit comments