Convert fastq to fasta

From HPCwiki
Revision as of 16:46, 24 November 2011 by Hjmegens (talk | contribs) (Created page with "Converting fasq to fasta can sometimes be useful. Here a simple perl script is described that can do this. The script works on a stream, and will output to STDOUT. Optional is fi...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Converting fasq to fasta can sometimes be useful. Here a simple perl script is described that can do this. The script works on a stream, and will output to STDOUT. Optional is filtering for reads that have a certain minimum length

Example for invoking the script, assuming the script is named fastq_to_fasta.pl: <source lang='bash'> gunzip -c fastqfile.fq.gz | perl fastq_to_fasta.pl -l 50 | gzip -c >fastafile.fa.gz </source>

Here is the perl script itself:

<source lang='perl'>

#!/usr/bin/perl -w
use strict;
use warnings;
use Getopt::Std;
my %opts = ();
$opts{l}=60;
getopt('l', \%opts);
my $minlength = $opts{l};
my $count=0;
my $name='nn';
while (<>){
       my $line = $_;
       chomp $line;
       ++$count;
       if ($count==1){
               $name = $line;
               $name =~ s/^@/>/;
       }
       if ($count==2){
               if (length $line > 60){
                       print "$name\n$line\n";
               }
       }
       if ($count==4){
               $count=0;
       }
}
exit;

</source>