view snpEff_2_1a/snpEff_2_1a/scripts/fastaSample.pl @ 3:c052639fa666 default tip

Uploaded
author pcingola
date Fri, 20 Apr 2012 11:22:59 -0400
parents
children
line wrap: on
line source

#!/usr/bin/perl

#---
# Initialize parameters
#---
$sampleStart = $ARGV[0];
$sampleEnd = $ARGV[1];
if(( $ARGV[0] eq '' ) || ($ARGV[1] eq ''))	{ die "Usage: fastaSample sampleStart sampleEnd\n"; }

$sampleStart--;
$sampleEnd--;
$sampleLen = $sampleEnd - $sampleStart + 1;

#---
# Read fasta file
#---
for($lineNum=0 ; $l = <STDIN> ; $lineNum++ ) {
	if( $l =~/^>/ ) {
		# Sample if not empty
		if( $seq ne "" ) { 
			$s = substr( $seq, $sampleStart, $sampleLen);
			print "$s\n";
		}
		# New sequence
		$seq = "";
	} else {
		chomp($l);
		$seq .= $l;
	}
}

# Sample if not empty
if( $seq ne "" ) { 
	$s = substr( $seq, $sampleStart, $sampleLen);
	print "$s\n";
}

$len = length($seq);
print STDERR "Lines: $lineNum\n";
print STDERR "Sequence size: $len\n";
print STDERR "Sample size: $sampleLen\n";