Mercurial > repos > pcingola > snpeff
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/snpEff_2_1a/snpEff_2_1a/scripts/fastaSample.pl Fri Apr 20 11:22:59 2012 -0400 @@ -0,0 +1,41 @@ +#!/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";