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); }