Mercurial > repos > greg > snpeff_v2_from_pablo
diff snpEff_2_1a/scripts/fastaSplit.pl @ 0:f8eaa3f8194b default tip
Uploaded snpEff_v2_1a_core.tgz from Pablo Cingolani
author | greg |
---|---|
date | Fri, 20 Apr 2012 14:47:09 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/snpEff_2_1a/scripts/fastaSplit.pl Fri Apr 20 14:47:09 2012 -0400 @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +#------------------------------------------------------------------------------ +# Split a fasta file (create one file per sequence) +# +# +#------------------------------------------------------------------------------ + +use strict; + +#------------------------------------------------------------------------------ +# Write fasta file +#------------------------------------------------------------------------------ +sub writeSeq($$) { + my($name, $seq) = @_; + $name = "chr" . $name . ".fa"; + print "Writing to $name\n"; + open OUT, "> $name"; + print OUT $seq; + close OUT; +} + +#------------------------------------------------------------------------------ +# Main +#------------------------------------------------------------------------------ + +my($seq, $name) = ('', ''); +my($lineNum, $l, $newName); +#--- +# Read fasta file +#--- +for($lineNum=0 ; $l = <STDIN> ; $lineNum++ ) { + if( $l =~/^>\s*(.*?)\s+.*/ ) { + $newName = $1; + if( $seq ne "" ) { writeSeq($name, $seq); } + # New sequence + $name = $newName; + $seq = $l; + } else { $seq .= $l; } +} + +if( $seq ne "" ) { writeSeq($name, $seq); }