Mercurial > repos > greg > snpeff_v2_from_pablo
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f8eaa3f8194b |
|---|---|
| 1 #!/usr/bin/perl | |
| 2 | |
| 3 #------------------------------------------------------------------------------ | |
| 4 # Split a fasta file (create one file per sequence) | |
| 5 # | |
| 6 # | |
| 7 #------------------------------------------------------------------------------ | |
| 8 | |
| 9 use strict; | |
| 10 | |
| 11 #------------------------------------------------------------------------------ | |
| 12 # Write fasta file | |
| 13 #------------------------------------------------------------------------------ | |
| 14 sub writeSeq($$) { | |
| 15 my($name, $seq) = @_; | |
| 16 $name = "chr" . $name . ".fa"; | |
| 17 print "Writing to $name\n"; | |
| 18 open OUT, "> $name"; | |
| 19 print OUT $seq; | |
| 20 close OUT; | |
| 21 } | |
| 22 | |
| 23 #------------------------------------------------------------------------------ | |
| 24 # Main | |
| 25 #------------------------------------------------------------------------------ | |
| 26 | |
| 27 my($seq, $name) = ('', ''); | |
| 28 my($lineNum, $l, $newName); | |
| 29 #--- | |
| 30 # Read fasta file | |
| 31 #--- | |
| 32 for($lineNum=0 ; $l = <STDIN> ; $lineNum++ ) { | |
| 33 if( $l =~/^>\s*(.*?)\s+.*/ ) { | |
| 34 $newName = $1; | |
| 35 if( $seq ne "" ) { writeSeq($name, $seq); } | |
| 36 # New sequence | |
| 37 $name = $newName; | |
| 38 $seq = $l; | |
| 39 } else { $seq .= $l; } | |
| 40 } | |
| 41 | |
| 42 if( $seq ne "" ) { writeSeq($name, $seq); } |
