##Invoking subroutines HashSequences(); SpecifySeqLengths(my $id, my %seq); ## Open file. Hash sequences. Make the sequence IDs the keys to their ## respective (hashed) sequences. sub HashSequences{ open F, "human_hg19_circRNAs_putative_spliced_sequence.fa", or die $!; my %seq = (); my $id = ''; while (){ chomp; if ($_ =~ /^>(.+)/){ $id = $1; }else{ $seq{$id} .= $_; } } close F; return (%seq, $id); } ## Request sequence length desired. Sieve sequences of given length into ## arrays. Create file containing desired sequences. sub SpecifySeqLengths{ print "Enter Max sequence length: \n"; my $maxlength = ; chomp $maxlength; print "Enter Min sequence length: \n"; my $minlength = ; chomp $minlength; my @seqarray; foreach $id (keys %seq){ if ((length$seq{$id} <= $maxlength) && (length$seq{$id} >= $minlength)){ push @seqarray, $id; } } for $id (@seqarray){ if (-f $id){print $id, " already exists. It is about to be overwritten"}; open new_F, '>>', "SeqLength_$minlength-$maxlength", or die$!; print new_F ($id."\n".$seq{$id}."\n"); close new_F; } }